fix: Write model name into models.yml when duplicating model (#2224)
* Update model name in the models.yml file (#2214) * Fix the length of the name.
This commit is contained in:
@@ -554,7 +554,7 @@ class ModelCategoryPageBody : public FormWindow
|
||||
void createModel()
|
||||
{
|
||||
storageCheck(true);
|
||||
auto model = modelslist.addModel(category, ::createModel(), false);
|
||||
auto model = modelslist.addModel(category, ::createModel(), nullptr, false);
|
||||
modelslist.setCurrentModel(model);
|
||||
new SelectTemplateFolder([=]() {
|
||||
model->setModelName(g_model.header.name);
|
||||
@@ -572,7 +572,7 @@ class ModelCategoryPageBody : public FormWindow
|
||||
MODELS_PATH)) {
|
||||
sdCopyFile(model->modelFilename, MODELS_PATH, duplicatedFilename,
|
||||
MODELS_PATH);
|
||||
auto new_model = modelslist.addModel(category, duplicatedFilename);
|
||||
auto new_model = modelslist.addModel(category, duplicatedFilename, model->modelName);
|
||||
addModelButton(new_model);
|
||||
} else {
|
||||
POPUP_WARNING("Invalid File"); // TODO: translation
|
||||
|
||||
@@ -208,11 +208,13 @@ ModelsCategory::~ModelsCategory()
|
||||
}
|
||||
}
|
||||
|
||||
ModelCell * ModelsCategory::addModel(const char * name)
|
||||
ModelCell * ModelsCategory::addModel(const char * fileName, const char* modelName)
|
||||
{
|
||||
if (!name) return NULL;
|
||||
|
||||
ModelCell * result = new ModelCell(name);
|
||||
ModelCell * result = new ModelCell(fileName);
|
||||
if(modelName)
|
||||
strncpy(result->modelName, modelName, LEN_MODEL_NAME);
|
||||
push_back(result);
|
||||
return result;
|
||||
}
|
||||
@@ -508,9 +510,10 @@ ModelsCategory * ModelsList::createCategory(const char* name, bool save)
|
||||
return result;
|
||||
}
|
||||
|
||||
ModelCell * ModelsList::addModel(ModelsCategory * category, const char * name, bool save)
|
||||
ModelCell * ModelsList::addModel(ModelsCategory * category, const char * fileName, const char* modelName, bool save)
|
||||
{
|
||||
ModelCell * result = category->addModel(name);
|
||||
ModelCell * result = category->addModel(fileName, modelName);
|
||||
TRACE("modelName is %s", result->modelName);
|
||||
modelsCount++;
|
||||
if (save) this->save();
|
||||
return result;
|
||||
|
||||
@@ -82,7 +82,7 @@ public:
|
||||
explicit ModelsCategory(const char * name, uint8_t len);
|
||||
~ModelsCategory();
|
||||
|
||||
ModelCell * addModel(const char * name);
|
||||
ModelCell* addModel(const char* fileName, const char* modelName = nullptr);
|
||||
void removeModel(ModelCell * model);
|
||||
void moveModel(ModelCell * model, int8_t step);
|
||||
|
||||
@@ -161,7 +161,7 @@ public:
|
||||
ModelsCategory * createCategory(const char * name, bool save=true);
|
||||
void removeCategory(ModelsCategory * category);
|
||||
|
||||
ModelCell * addModel(ModelsCategory * category, const char * name, bool save=true);
|
||||
ModelCell * addModel(ModelsCategory * category, const char * name, const char* modelName = nullptr, bool save=true);
|
||||
void removeModel(ModelsCategory * category, ModelCell * model);
|
||||
void moveModel(ModelsCategory * category, ModelCell * model, int8_t step);
|
||||
void moveModel(ModelCell * model, ModelsCategory * previous_category, ModelsCategory * new_category);
|
||||
|
||||
@@ -79,9 +79,9 @@ void storageCreateModelsList()
|
||||
ModelsCategory* cat = modelslist.createCategory(DEFAULT_CATEGORY, false);
|
||||
ModelCell* model = nullptr;
|
||||
if (g_eeGeneral.currModelFilename[0] != '\0') {
|
||||
model = modelslist.addModel(cat, g_eeGeneral.currModelFilename, false);
|
||||
model = modelslist.addModel(cat, g_eeGeneral.currModelFilename, nullptr, false);
|
||||
} else {
|
||||
model = modelslist.addModel(cat, DEFAULT_MODEL_FILENAME, false);
|
||||
model = modelslist.addModel(cat, DEFAULT_MODEL_FILENAME, nullptr, false);
|
||||
}
|
||||
model->setModelName(g_model.header.name);
|
||||
modelslist.save();
|
||||
|
||||
Reference in New Issue
Block a user