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:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user