From 6a09939e899bb00b3c85e69c1824cb15616bc03e Mon Sep 17 00:00:00 2001 From: philmoz Date: Thu, 25 Apr 2024 09:13:07 +1000 Subject: [PATCH] fix(color): personal templates saved to wrong folder (#4886) --- radio/src/gui/colorlcd/model_select.cpp | 18 +++++++++++++----- radio/src/sdcard.h | 3 ++- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/radio/src/gui/colorlcd/model_select.cpp b/radio/src/gui/colorlcd/model_select.cpp index 46c48f9f9e7..a2f64ec01f9 100644 --- a/radio/src/gui/colorlcd/model_select.cpp +++ b/radio/src/gui/colorlcd/model_select.cpp @@ -444,18 +444,26 @@ class ModelsPageBody : public FormWindow char modelName[size]; snprintf(modelName, size, "%s%s", model->modelName, YAML_EXT); char templatePath[FF_MAX_LFN]; - snprintf(templatePath, FF_MAX_LFN, "%s%c%s", PERS_TEMPL_PATH, '/', - modelName); sdCheckAndCreateDirectory(TEMPLATES_PATH); - sdCheckAndCreateDirectory(PERS_TEMPL_PATH); + const char* persFolder = nullptr; + if (isFileAvailable(PERS_TEMPL_PATH)) { + persFolder = PERS_TEMPL_PATH; + } else if (isFileAvailable(PERS_TEMPL_PATH_OLD)) { + persFolder = PERS_TEMPL_PATH_OLD; + } else { + persFolder = PERS_TEMPL_PATH; + sdCheckAndCreateDirectory(PERS_TEMPL_PATH); + } + snprintf(templatePath, FF_MAX_LFN, "%s%c%s", persFolder, '/', + modelName); if (isFileAvailable(templatePath)) { new ConfirmDialog(parent, STR_FILE_EXISTS, STR_ASK_OVERWRITE, [=] { sdCopyFile(model->modelFilename, MODELS_PATH, modelName, - PERS_TEMPL_PATH); + persFolder); }); } else { sdCopyFile(model->modelFilename, MODELS_PATH, modelName, - PERS_TEMPL_PATH); + persFolder); } }); } diff --git a/radio/src/sdcard.h b/radio/src/sdcard.h index 1e5e097e0e0..5a67cf71607 100644 --- a/radio/src/sdcard.h +++ b/radio/src/sdcard.h @@ -37,7 +37,8 @@ extern FIL g_oLogFile; #define UNUSED_MODELS_PATH MODELS_PATH PATH_SEPARATOR "UNUSED" #define RADIO_PATH ROOT_PATH "RADIO" // no trailing slash = important #define TEMPLATES_PATH ROOT_PATH "TEMPLATES" -#define PERS_TEMPL_PATH TEMPLATES_PATH "/PERSONAL" +#define PERS_TEMPL_PATH TEMPLATES_PATH "/2.Personal" +#define PERS_TEMPL_PATH_OLD TEMPLATES_PATH "/PERSONAL" #define LOGS_PATH ROOT_PATH "LOGS" #define SCREENSHOTS_PATH ROOT_PATH "SCREENSHOTS" #define SOUNDS_PATH ROOT_PATH "SOUNDS/en"