diff --git a/radio/src/edgetx.cpp b/radio/src/edgetx.cpp index 6b728ba85..a38bab088 100644 --- a/radio/src/edgetx.cpp +++ b/radio/src/edgetx.cpp @@ -1575,7 +1575,7 @@ void edgeTxInit() #endif // defined(GUI) #if defined(COLORLCD) - LayoutFactory::deleteCustomScreens(true); + LayoutFactory::deleteCustomScreens(); LayoutFactory::loadCustomScreens(); #endif diff --git a/radio/src/gui/colorlcd/mainview/layout.cpp b/radio/src/gui/colorlcd/mainview/layout.cpp index 83e9ff9cc..9b6dc97db 100644 --- a/radio/src/gui/colorlcd/mainview/layout.cpp +++ b/radio/src/gui/colorlcd/mainview/layout.cpp @@ -107,7 +107,7 @@ WidgetsContainer* LayoutFactory::loadLayout( // // Detaches and deletes all custom screens // -void LayoutFactory::deleteCustomScreens(bool clearTopBar) +void LayoutFactory::deleteCustomScreens() { for (auto& screen : customScreens) { if (screen) { @@ -115,9 +115,12 @@ void LayoutFactory::deleteCustomScreens(bool clearTopBar) screen = nullptr; } } +} - if (clearTopBar) - ViewMain::instance()->getTopbar()->removeAllWidgets(); +// Clear top bar +void LayoutFactory::deleteTopBarWidgets() +{ + ViewMain::instance()->getTopbar()->removeAllWidgets(); } void LayoutFactory::loadDefaultLayout() diff --git a/radio/src/gui/colorlcd/mainview/layout.h b/radio/src/gui/colorlcd/mainview/layout.h index 0c3a7f246..76a41e4e7 100644 --- a/radio/src/gui/colorlcd/mainview/layout.h +++ b/radio/src/gui/colorlcd/mainview/layout.h @@ -176,7 +176,9 @@ class LayoutFactory void initPersistentData(int screenNum, bool setDefault) const; // delete all custom screens from memory - static void deleteCustomScreens(bool clearTopBar = false); + static void deleteCustomScreens(); + // delete all top bar widgets from memory + static void deleteTopBarWidgets(); // intended for existing models static void loadCustomScreens(); diff --git a/radio/src/gui/colorlcd/model/model_select.cpp b/radio/src/gui/colorlcd/model/model_select.cpp index 324bb29e0..5946ef3e9 100644 --- a/radio/src/gui/colorlcd/model/model_select.cpp +++ b/radio/src/gui/colorlcd/model/model_select.cpp @@ -626,7 +626,8 @@ void ModelLabelsWindow::newModel() snprintf(path, LEN_BUFFER, "%s/%s", TEMPLATES_PATH, folder.c_str()); // Read model template - LayoutFactory::deleteCustomScreens(true); + LayoutFactory::deleteCustomScreens(); + LayoutFactory::deleteTopBarWidgets(); loadModel((name + YAML_EXT).c_str(), false, path); storageFlushCurrentModel(); storageCheck(true); diff --git a/radio/src/model_init.cpp b/radio/src/model_init.cpp index 9d8883720..752e3510f 100644 --- a/radio/src/model_init.cpp +++ b/radio/src/model_init.cpp @@ -149,7 +149,8 @@ void applyDefaultTemplate() #if defined(COLORLCD) g_model.resetScreenData(); - LayoutFactory::deleteCustomScreens(true); + LayoutFactory::deleteCustomScreens(); + LayoutFactory::deleteTopBarWidgets(); LayoutFactory::loadDefaultLayout(); #endif