diff --git a/radio/src/gui/colorlcd/module_setup.cpp b/radio/src/gui/colorlcd/module_setup.cpp index 804908822..b88750377 100644 --- a/radio/src/gui/colorlcd/module_setup.cpp +++ b/radio/src/gui/colorlcd/module_setup.cpp @@ -881,7 +881,7 @@ void ModuleSubTypeChoice::update() protos->triggerScan(); if (protos->isScanning()) { - new RfScanDialog(parent, protos, nullptr/* std::move(updateForm) */); + new RfScanDialog(parent, protos, [=](){ update(); }); } else { TRACE("!protos->isScanning()"); } diff --git a/radio/src/gui/colorlcd/multi_rfprotos.cpp b/radio/src/gui/colorlcd/multi_rfprotos.cpp index 42266e66e..a619182e8 100644 --- a/radio/src/gui/colorlcd/multi_rfprotos.cpp +++ b/radio/src/gui/colorlcd/multi_rfprotos.cpp @@ -69,52 +69,3 @@ void RfScanDialog::checkEvents() Dialog::checkEvents(); } -MultiProtoChoice::MultiProtoChoice(FormGroup* parent, const rect_t& rect, - unsigned int moduleIdx, - std::function setValue, - std::function updateForm) : - Choice( - parent, rect, 0, 0, - [=] { return g_model.moduleData[moduleIdx].multi.rfProtocol; }, - setValue), - moduleIdx(moduleIdx) -{ - TRACE("MultiProtoChoice::MultiProtoChoice(%p)", this); - protos = MultiRfProtocols::instance(moduleIdx); - protos->triggerScan(); - - if (protos->isScanning()) { - new RfScanDialog(parent, protos, std::move(updateForm)); - } else { - TRACE("!protos->isScanning()"); - } - - setTextHandler([=](int value) { - return protos->getProtoLabel(value); - }); -} - -void MultiProtoChoice::openMenu() -{ - menu = new Menu(this); - - if (!menuTitle.empty()) menu->setTitle(menuTitle); - menu->setCloseHandler([=]() { setEditMode(false); }); - - setEditMode(true); - invalidate(); - - protos->fillList([=](const MultiRfProtocols::RfProto& p){ - addProto(p.proto, p.label.c_str()); - }); - - int idx = protos->getIndex(g_model.moduleData[moduleIdx].multi.rfProtocol); - if (idx >= 0) menu->select(idx); -} - -void MultiProtoChoice::addProto(unsigned int proto, const char* protocolName) -{ - addValue(protocolName); - menu->addLine(protocolName, [=]() { setValue(proto); }); -} - diff --git a/radio/src/gui/colorlcd/multi_rfprotos.h b/radio/src/gui/colorlcd/multi_rfprotos.h index 0c497fcd2..1397ce34e 100644 --- a/radio/src/gui/colorlcd/multi_rfprotos.h +++ b/radio/src/gui/colorlcd/multi_rfprotos.h @@ -44,19 +44,3 @@ class RfScanDialog : public Dialog void checkEvents() override; }; -class MultiProtoChoice : public Choice -{ - unsigned int moduleIdx; - - MultiRfProtocols* protos = nullptr; - Menu* menu = nullptr; - - public: - MultiProtoChoice(FormGroup *parent, const rect_t &rect, unsigned int moduleIdx, - std::function setValue, std::function updateForm); - - void openMenu() override; - void addProto(unsigned int proto, const char* protocolName); - -}; -