Allow selecting either an action or condition but not both

This commit is contained in:
WarmUpTill
2022-02-20 20:09:24 +01:00
committed by WarmUpTill
parent 1054bce4a7
commit 89efb6d1c8
4 changed files with 19 additions and 14 deletions

View File

@@ -286,6 +286,8 @@ public slots:
void on_close_clicked();
private:
void SetSelection(MacroSegmentList *, int);
MacroSegmentList *conditionsList = nullptr;
MacroSegmentList *actionsList = nullptr;

View File

@@ -313,17 +313,13 @@ void AdvSceneSwitcher::MacroActionSelectionChanged(int idx)
return;
}
for (int i = 0; i < actionsList->ContentLayout()->count(); ++i) {
auto widget = static_cast<MacroSegmentEdit *>(
actionsList->ContentLayout()->itemAt(i)->widget());
if (widget) {
widget->SetSelected(i == idx);
}
}
SetSelection(actionsList, idx);
SetSelection(conditionsList, -1);
if (idx < 0 || idx >= macro->Actions().size()) {
currentActionIdx = -1;
} else {
currentActionIdx = idx;
}
currentConditionIdx = -1;
}

View File

@@ -455,17 +455,13 @@ void AdvSceneSwitcher::MacroConditionSelectionChanged(int idx)
return;
}
for (int i = 0; i < conditionsList->ContentLayout()->count(); ++i) {
auto widget = static_cast<MacroSegmentEdit *>(
conditionsList->ContentLayout()->itemAt(i)->widget());
if (widget) {
widget->SetSelected(i == idx);
}
}
SetSelection(conditionsList, idx);
SetSelection(actionsList, -1);
if (idx < 0 || idx >= macro->Conditions().size()) {
currentConditionIdx = -1;
} else {
currentConditionIdx = idx;
}
currentActionIdx = -1;
}

View File

@@ -581,3 +581,14 @@ void AdvSceneSwitcher::HighlightMatchedMacros()
}
}
}
void AdvSceneSwitcher::SetSelection(MacroSegmentList *list, int idx)
{
for (int i = 0; i < list->ContentLayout()->count(); ++i) {
auto widget = static_cast<MacroSegmentEdit *>(
list->ContentLayout()->itemAt(i)->widget());
if (widget) {
widget->SetSelected(i == idx);
}
}
}