From a7aefb7788ed5c56c6e6972e0a45cd7c0cb29a1f Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Thu, 27 May 2021 07:13:17 +0200 Subject: [PATCH] Fixed pasting logical switch --- radio/src/gui/colorlcd/model_logical_switches.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/radio/src/gui/colorlcd/model_logical_switches.cpp b/radio/src/gui/colorlcd/model_logical_switches.cpp index 707820b40..4d3e6aa5e 100644 --- a/radio/src/gui/colorlcd/model_logical_switches.cpp +++ b/radio/src/gui/colorlcd/model_logical_switches.cpp @@ -352,10 +352,21 @@ void ModelLogicalSwitchesPage::build(FormWindow * window, int8_t focusIndex) for (uint8_t i = 0; i < MAX_LOGICAL_SWITCHES; i++) { LogicalSwitchData * ls = lswAddress(i); + if (ls->func == LS_FUNC_NONE) { auto button = new TextButton(window, grid.getLabelSlot(), getSwitchPositionName(SWSRC_SW1+i)); button->setPressHandler([=]() { - editLogicalSwitch(window, i); + if (clipboard.type == CLIPBOARD_TYPE_CUSTOM_SWITCH) { + Menu* menu = new Menu(window); + menu->addLine(STR_EDIT, [=]() { editLogicalSwitch(window, i); }); + menu->addLine(STR_PASTE, [=]() { + *ls = clipboard.data.csw; + storageDirty(EE_MODEL); + rebuild(window, i); + }); + } else { + editLogicalSwitch(window, i); + } return 0; }); grid.spacer(button->height() + 5); @@ -366,7 +377,6 @@ void ModelLogicalSwitchesPage::build(FormWindow * window, int8_t focusIndex) auto button = new LogicalSwitchButton(window, grid.getFieldSlot(), i); button->setPressHandler([=]() { Menu * menu = new Menu(window); - LogicalSwitchData * ls = lswAddress(i); menu->addLine(STR_EDIT, [=]() { editLogicalSwitch(window, i); });