From e2a18d3fdcda3ac0ec548799b2e2acbf5602950a Mon Sep 17 00:00:00 2001 From: 3djc Date: Thu, 15 Dec 2016 20:14:33 +0100 Subject: [PATCH] Deletion confirm changed from filename to modelname(filename) (#4100) * Deletion confirm chnaged from filename to modelname(filename) * Improvements based on Bsongis remarks * Fix taranis confirm that was not displaying anything * Got carried away, back to a simpler requirement * Cosmetics * Bertrand's feedbacks, take 2 :) * Use reusable buffer --- radio/src/gui/212x64/model_select.cpp | 8 ++++++-- radio/src/gui/480x272/model_select.cpp | 12 ++++++------ radio/src/storage/modelslist.h | 12 +++++++----- 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/radio/src/gui/212x64/model_select.cpp b/radio/src/gui/212x64/model_select.cpp index e8fa52f12..974750350 100644 --- a/radio/src/gui/212x64/model_select.cpp +++ b/radio/src/gui/212x64/model_select.cpp @@ -50,8 +50,10 @@ void onModelSelectMenu(const char * result) } } else if (result == STR_DELETE_MODEL) { + char * nametmp = reusableBuffer.modelsel.mainname; + strcat_modelname (nametmp, sub); POPUP_CONFIRMATION(STR_DELETEMODEL); - SET_WARNING_INFO(modelHeaders[sub].name, sizeof(g_model.header.name), ZCHAR); + SET_WARNING_INFO(nametmp, sizeof(g_model.header.name), 0); } else { // The user choosed a file on SD to restore @@ -98,8 +100,10 @@ void menuModelSelect(event_t event) case EVT_KEY_LONG(KEY_EXIT): if (s_copyMode && s_copyTgtOfs == 0 && g_eeGeneral.currModel != sub && eeModelExists(sub)) { + char * nametmp = reusableBuffer.modelsel.mainname; + strcat_modelname (nametmp, sub); POPUP_CONFIRMATION(STR_DELETEMODEL); - SET_WARNING_INFO(modelHeaders[sub].name, sizeof(g_model.header.name), ZCHAR); + SET_WARNING_INFO(nametmp, sizeof(g_model.header.name), 0); killEvents(event); break; } diff --git a/radio/src/gui/480x272/model_select.cpp b/radio/src/gui/480x272/model_select.cpp index 87e00e150..3da082d38 100644 --- a/radio/src/gui/480x272/model_select.cpp +++ b/radio/src/gui/480x272/model_select.cpp @@ -225,7 +225,7 @@ void onModelSelectMenu(const char * result) // we store the latest changes if any storageFlushCurrentModel(); storageCheck(true); - memcpy(g_eeGeneral.currModelFilename, currentModel->name, LEN_MODEL_FILENAME); + memcpy(g_eeGeneral.currModelFilename, currentModel->modelFilename, LEN_MODEL_FILENAME); loadModel(g_eeGeneral.currModelFilename, false); storageDirty(EE_GENERAL); storageCheck(true); @@ -234,7 +234,7 @@ void onModelSelectMenu(const char * result) } else if (result == STR_DELETE_MODEL) { POPUP_CONFIRMATION(STR_DELETEMODEL); - SET_WARNING_INFO(currentModel->name, LEN_MODEL_FILENAME, 0); + SET_WARNING_INFO(currentModel->modelName, LEN_MODEL_NAME, 0); deleteMode = MODE_DELETE_MODEL; } else if (result == STR_CREATE_MODEL) { @@ -248,9 +248,9 @@ void onModelSelectMenu(const char * result) } else if (result == STR_DUPLICATE_MODEL) { char duplicatedFilename[LEN_MODEL_FILENAME+1]; - memcpy(duplicatedFilename, currentModel->name, sizeof(duplicatedFilename)); + memcpy(duplicatedFilename, currentModel->modelFilename, sizeof(duplicatedFilename)); if (findNextFileIndex(duplicatedFilename, LEN_MODEL_FILENAME, MODELS_PATH)) { - sdCopyFile(currentModel->name, MODELS_PATH, duplicatedFilename, MODELS_PATH); + sdCopyFile(currentModel->modelFilename, MODELS_PATH, duplicatedFilename, MODELS_PATH); modelslist.addModel(currentCategory, duplicatedFilename); unsigned int index = currentCategory->size() - 1; setCurrentModel(index); @@ -461,7 +461,7 @@ bool menuModelSelect(event_t event) for (ModelsCategory::iterator it = currentCategory->begin(); it != currentCategory->end(); ++it, ++index) { if (index >= menuVerticalOffset*2 && index < (menuVerticalOffset+4)*2) { bool selected = ((selectMode==MODE_SELECT_MODEL || selectMode==MODE_MOVE_MODEL) && index==menuVerticalPosition*2+menuHorizontalPosition); - bool current = !strncmp((*it)->name, g_eeGeneral.currModelFilename, LEN_MODEL_FILENAME); + bool current = !strncmp((*it)->modelFilename, g_eeGeneral.currModelFilename, LEN_MODEL_FILENAME); if (index & 1) { drawModel(MODELS_LEFT + MODELS_COLUMN_WIDTH, y, *it, current, selected); y += 66; @@ -471,7 +471,7 @@ bool menuModelSelect(event_t event) } if (selected) { lcd->drawBitmap(5, LCD_H-FH, modelselModelNameBitmap); - lcdDrawText(22, LCD_H-FH-1, (*it)->name, SMLSIZE|TEXT_COLOR); + lcdDrawText(22, LCD_H-FH-1, (*it)->modelFilename, SMLSIZE|TEXT_COLOR); } } } diff --git a/radio/src/storage/modelslist.h b/radio/src/storage/modelslist.h index 46f782e53..6f96b7130 100644 --- a/radio/src/storage/modelslist.h +++ b/radio/src/storage/modelslist.h @@ -33,7 +33,7 @@ class ModelCell ModelCell(const char * name): buffer(NULL) { - strncpy(this->name, name, sizeof(this->name)); + strncpy(this->modelFilename, name, sizeof(this->modelFilename)); } const BitmapBuffer * getBuffer() @@ -52,16 +52,17 @@ class ModelCell buffer = new BitmapBuffer(BMP_RGB565, MODELCELL_WIDTH, MODELCELL_HEIGHT); buffer->clear(TEXT_BGCOLOR); - if (strncmp(name, g_eeGeneral.currModelFilename, LEN_MODEL_FILENAME) == 0) + if (strncmp(modelFilename, g_eeGeneral.currModelFilename, LEN_MODEL_FILENAME) == 0) header = g_model.header; else - error = readModel(name, (uint8_t *)&header, sizeof(header)); + error = readModel(modelFilename, (uint8_t *)&header, sizeof(header)); if (error) { buffer->drawText(5, 2, "(Invalid Model)", TEXT_COLOR); buffer->drawBitmapPattern(5, 23, LBM_LIBRARY_SLOT, TEXT_COLOR); } else { + zchar2str(modelName, header.name, LEN_MODEL_NAME); char timer[LEN_TIMER_STRING]; buffer->drawSizedText(5, 2, header.name, LEN_MODEL_NAME, SMLSIZE|ZCHAR|TEXT_COLOR); getTimerString(timer, 0); @@ -82,7 +83,8 @@ class ModelCell buffer->drawSolidHorizontalLine(5, 19, 143, LINE_COLOR); } - char name[LEN_MODEL_FILENAME+1]; + char modelFilename[LEN_MODEL_FILENAME+1]; + char modelName[LEN_MODEL_NAME+1]; BitmapBuffer * buffer; }; @@ -141,7 +143,7 @@ class ModelsCategory: public std::list f_puts("]", file); f_putc('\n', file); for (std::list::iterator it = begin(); it != end(); ++it) { - f_puts((*it)->name, file); + f_puts((*it)->modelFilename, file); f_putc('\n', file); } }