Go straight to add widget when zone is empty

This commit is contained in:
3djc
2021-04-06 11:56:31 +02:00
parent 6239a4000d
commit 88a1ce94d8
+22 -12
View File
@@ -158,25 +158,35 @@ class SetupWidgetsPageSlot: public Button
{
widget = screen->getWidget(slotIndex);
setPressHandler([=]() -> uint8_t {
Menu * menu = new Menu(this);
menu->addLine(TR_SELECT_WIDGET, [=]() {
Menu * menu = new Menu(this);
for (auto factory: getRegisteredWidgets()) {
menu->addLine(factory->getName(), [=]() {
if (widget) widget->deleteLater();
widget = screen->createWidget(slotIndex, factory);
});
}
});
if (widget) {
Menu * menu = new Menu(this);
menu->addLine(TR_SELECT_WIDGET, [=]() {
Menu * menu = new Menu(this);
for (auto factory: getRegisteredWidgets()) {
menu->addLine(factory->getName(), [=]() {
if (widget) widget->deleteLater();
widget = screen->createWidget(slotIndex, factory);
});
}
});
menu->addLine(TR_WIDGET_SETTINGS, [=]() {
new WidgetSettings(this, widget);
});
menu->addLine(STR_REMOVE_WIDGET, [=]() {
widget->deleteLater();
widget = nullptr;
widget->deleteLater();
widget = nullptr;
});
return 0;
}
else {
Menu * menu = new Menu(this);
for (auto factory: getRegisteredWidgets()) {
menu->addLine(factory->getName(), [=]() {
if (widget) widget->deleteLater();
widget = screen->createWidget(slotIndex, factory);
});
}
}
return 0;
});