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
This commit is contained in:
3djc
2016-12-15 20:14:33 +01:00
committed by Bertrand Songis
parent 6e7eb99763
commit e2a18d3fdc
3 changed files with 19 additions and 13 deletions
+6 -2
View File
@@ -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;
}
+6 -6
View File
@@ -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);
}
}
}
+7 -5
View File
@@ -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<ModelCell *>
f_puts("]", file);
f_putc('\n', file);
for (std::list<ModelCell *>::iterator it = begin(); it != end(); ++it) {
f_puts((*it)->name, file);
f_puts((*it)->modelFilename, file);
f_putc('\n', file);
}
}