fix(color): model yaml file may be needlessly saved when editing screen setup (#7795)

This commit is contained in:
philmoz
2026-09-17 08:46:11 +10:00
committed by GitHub
parent ca82bc5dd9
commit 5da9f9257f
5 changed files with 12 additions and 23 deletions
@@ -168,6 +168,8 @@ void ScreenSetupPage::build(Window* window)
}
buildLayoutOptions();
SET_DIRTY();
};
Window* btn = new LayoutChoice(line, getFactory, setLayout);
+4 -10
View File
@@ -101,19 +101,11 @@ void SetupTopBarWidgetsPage::onClicked()
// block event forwarding (window is transparent)
}
void SetupTopBarWidgetsPage::onCancel() { deleteLater(); }
void SetupTopBarWidgetsPage::deleteLater()
void SetupTopBarWidgetsPage::onCancel()
{
if (_deleted) return;
// and continue async deletion...
Window::deleteLater();
deleteLater();
// restore screen setting tab on top
QuickMenu::openPage(QM_UI_SETUP);
storageDirty(EE_MODEL);
}
//-----------------------------------------------------------------------------
@@ -208,6 +200,8 @@ void TopBar::removeWidget(unsigned int index)
g_model.getTopbarData()->clearZone(index);
WidgetsContainer::removeWidget(index);
storageDirty(EE_MODEL);
}
void TopBar::load()
-1
View File
@@ -38,7 +38,6 @@ class SetupTopBarWidgetsPage : public NavWindow
void onClicked() override;
void onCancel() override;
void deleteLater() override;
#if defined(HARDWARE_KEYS)
void onPressSYS() override {}
@@ -45,7 +45,10 @@ SetupWidgetsPageSlot::SetupWidgetsPageSlot(Window* parent, const rect_t& rect,
menu->addLine(STR_WIDGET_SETTINGS,
[=]() { new WidgetSettings(widget); });
menu->addLine(STR_REMOVE_WIDGET,
[=]() { container->removeWidget(slotIndex); });
[=]() {
container->removeWidget(slotIndex);
storageDirty(EE_MODEL);
});
} else {
addNewWidget(container, slotIndex);
}
@@ -98,6 +101,7 @@ void SetupWidgetsPageSlot::addNewWidget(WidgetsContainer* container,
auto widget = container->getWidget(slotIndex);
if (widget->hasOptions())
new WidgetSettings(widget);
storageDirty(EE_MODEL);
});
if (cur && strcmp(cur, factory->getDisplayName()) == 0)
selected = index;
@@ -147,14 +151,8 @@ void SetupWidgetsPage::onClicked()
void SetupWidgetsPage::onCancel()
{
deleteLater();
QuickMenu::openPage((QMPage)(QM_UI_SCREEN1 + customScreenIdx));
}
void SetupWidgetsPage::deleteLater()
{
if (_deleted) return;
Window::deleteLater();
// and continue async deletion...
auto screen = customScreens[customScreenIdx];
@@ -163,6 +161,4 @@ void SetupWidgetsPage::deleteLater()
viewMain->setCurrentMainView(savedView);
viewMain->showTopBarEdgeTxButton();
}
storageDirty(EE_MODEL);
}
@@ -55,8 +55,6 @@ class SetupWidgetsPage : public NavWindow
protected:
uint8_t customScreenIdx;
unsigned savedView = 0;
void deleteLater() override;
};
class SetupWidgetsPageSlot : public ButtonBase