fix: MPM proto scan

This commit is contained in:
Raphael Coeffic
2022-06-11 15:38:08 +02:00
committed by Raphael Coeffic
parent 6e65533d9e
commit 0f07f2b690
3 changed files with 1 additions and 66 deletions
+1 -1
View File
@@ -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()");
}
-49
View File
@@ -69,52 +69,3 @@ void RfScanDialog::checkEvents()
Dialog::checkEvents();
}
MultiProtoChoice::MultiProtoChoice(FormGroup* parent, const rect_t& rect,
unsigned int moduleIdx,
std::function<void(int)> setValue,
std::function<void()> 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); });
}
-16
View File
@@ -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<void(int)> setValue, std::function<void()> updateForm);
void openMenu() override;
void addProto(unsigned int proto, const char* protocolName);
};