Fix model names and indexes on storage creation

This commit is contained in:
Raphael Coeffic
2021-11-10 11:07:03 +01:00
parent 3717e37e3f
commit bcdb9bd311
5 changed files with 25 additions and 7 deletions
+4 -1
View File
@@ -334,7 +334,10 @@ class ModelCategoryPageBody : public FormWindow
{
return [=]() {
storageCheck(true);
modelslist.setCurrentModel(modelslist.addModel(category, createModel()));
auto model = modelslist.addModel(category, createModel(), false);
model->setModelName(g_model.header.name);
modelslist.setCurrentModel(model);
modelslist.save();
update(category->size() - 1);
};
}
+5 -1
View File
@@ -135,7 +135,11 @@ void setModelDefaults(uint8_t id)
setVendorSpecificModelDefaults(id);
strAppendUnsigned(strAppend(g_model.header.name, STR_MODEL), id + 1, 2);
#if !defined(STORAGE_MODELSLIST)
// EEPROM model indexes starting with 0
id++;
#endif
strAppendUnsigned(strAppend(g_model.header.name, STR_MODEL), id, 2);
#if defined(LUA) && defined(PCBTARANIS) // Horus uses menuModelWizard() for wizard
if (isFileAvailable(WIZARD_PATH "/" WIZARD_NAME)) {
+2 -1
View File
@@ -38,7 +38,8 @@ ModelsList modelslist;
ModelCell::ModelCell(const char* name) : valid_rfData(false)
{
strncpy(modelFilename, name, sizeof(modelFilename));
strncpy(modelFilename, name, sizeof(modelFilename)-1);
modelFilename[sizeof(modelFilename)-1] = '\0';
}
ModelCell::ModelCell(const char* name, uint8_t len) : valid_rfData(false)
+7 -3
View File
@@ -60,6 +60,7 @@ void storageEraseAll(bool warn)
storageFormat();
storageDirty(EE_GENERAL);
storageDirty(EE_MODEL);
storageCheck(true);
}
@@ -67,10 +68,13 @@ void storageFormat()
{
sdCheckAndCreateDirectory(RADIO_PATH);
sdCheckAndCreateDirectory(MODELS_PATH);
#if defined(STORAGE_MODELSLIST)
storageCreateModelsList();
#endif
generalDefault();
#if defined(STORAGE_MODELSLIST)
setModelDefaults(1);
storageCreateModelsList();
#else
setModelDefaults(0);
#endif
}
void storageCheck(bool immediately)
+7 -1
View File
@@ -76,7 +76,13 @@ void storageCreateModelsList()
{
modelslist.clear();
ModelsCategory* cat = modelslist.createCategory(DEFAULT_CATEGORY, false);
cat->addModel(DEFAULT_MODEL_FILENAME);
ModelCell* model = nullptr;
if (g_eeGeneral.currModelFilename[0] != '\0') {
model = modelslist.addModel(cat, g_eeGeneral.currModelFilename, false);
} else {
model = modelslist.addModel(cat, DEFAULT_MODEL_FILENAME, false);
}
model->setModelName(g_model.header.name);
modelslist.save();
}
#endif