From 06fc246a64b7c63f7499747df004c99319ed19b2 Mon Sep 17 00:00:00 2001 From: philmoz Date: Fri, 14 Feb 2025 07:15:45 +1100 Subject: [PATCH] Ensure all old top bar widgets are removed when changing models. --- radio/src/gui/colorlcd/mainview/layout.cpp | 2 ++ radio/src/gui/colorlcd/mainview/widgets_container_impl.h | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/radio/src/gui/colorlcd/mainview/layout.cpp b/radio/src/gui/colorlcd/mainview/layout.cpp index 320391ebe89..9697439f94c 100644 --- a/radio/src/gui/colorlcd/mainview/layout.cpp +++ b/radio/src/gui/colorlcd/mainview/layout.cpp @@ -66,6 +66,8 @@ void LayoutFactory::deleteCustomScreens() screen = nullptr; } } + + ViewMain::instance()->getTopbar()->removeAllWidgets(); } void LayoutFactory::loadDefaultLayout() diff --git a/radio/src/gui/colorlcd/mainview/widgets_container_impl.h b/radio/src/gui/colorlcd/mainview/widgets_container_impl.h index d61c6d479a5..59c0f99acde 100644 --- a/radio/src/gui/colorlcd/mainview/widgets_container_impl.h +++ b/radio/src/gui/colorlcd/mainview/widgets_container_impl.h @@ -83,6 +83,12 @@ class WidgetsContainerImpl : public WidgetsContainer virtual void create() { memset(persistentData, 0, sizeof(PersistentData)); } + void removeAllWidgets() + { + for (unsigned int i = 0; i < N; i++) + removeWidget(i); + } + virtual void load() { unsigned int count = getZonesCount();