Fix model names and indexes on storage creation
This commit is contained in:
@@ -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);
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user