From d18044b764f57dbddcfba5157d422c2a9cc1e83d Mon Sep 17 00:00:00 2001 From: WarmUpTill Date: Mon, 6 May 2024 19:37:32 +0200 Subject: [PATCH] Add handling for fading of else-controls --- lib/advanced-scene-switcher.hpp | 4 -- lib/macro/macro-tab.cpp | 79 ++++++++++++++------------------- 2 files changed, 34 insertions(+), 49 deletions(-) diff --git a/lib/advanced-scene-switcher.hpp b/lib/advanced-scene-switcher.hpp index 9d52a29a..be35a710 100644 --- a/lib/advanced-scene-switcher.hpp +++ b/lib/advanced-scene-switcher.hpp @@ -169,10 +169,6 @@ public slots: void RemoveMacroCondition(int idx); void MoveMacroConditionUp(int idx); void MoveMacroConditionDown(int idx); - void FadeOutActionControls(); - void FadeOutConditionControls(); - void ResetOpacityActionControls(); - void ResetOpacityConditionControls(); void HighlightControls(); void HighlightOnChange(); void on_macroProperties_clicked(); diff --git a/lib/macro/macro-tab.cpp b/lib/macro/macro-tab.cpp index 2615c5fa..e998202b 100644 --- a/lib/macro/macro-tab.cpp +++ b/lib/macro/macro-tab.cpp @@ -1343,58 +1343,47 @@ static void fade(QWidget *widget, bool fadeOut) animation->start(QPropertyAnimation::DeleteWhenStopped); } -void AdvSceneSwitcher::FadeOutActionControls() +void fadeWidgets(const std::vector &widgets, bool fadeOut) { - fade(ui->actionAdd, true); - fade(ui->actionRemove, true); - fade(ui->actionTop, true); - fade(ui->actionUp, true); - fade(ui->actionDown, true); - fade(ui->actionBottom, true); -} - -void AdvSceneSwitcher::FadeOutConditionControls() -{ - fade(ui->conditionAdd, true); - fade(ui->conditionRemove, true); - fade(ui->conditionTop, true); - fade(ui->conditionUp, true); - fade(ui->conditionDown, true); - fade(ui->conditionBottom, true); -} - -void AdvSceneSwitcher::ResetOpacityActionControls() -{ - fade(ui->actionAdd, false); - fade(ui->actionRemove, false); - fade(ui->actionTop, false); - fade(ui->actionUp, false); - fade(ui->actionDown, false); - fade(ui->actionBottom, false); -} - -void AdvSceneSwitcher::ResetOpacityConditionControls() -{ - fade(ui->conditionAdd, false); - fade(ui->conditionRemove, false); - fade(ui->conditionTop, false); - fade(ui->conditionUp, false); - fade(ui->conditionDown, false); - fade(ui->conditionBottom, false); + for (const auto &widget : widgets) { + fade(widget, fadeOut); + } } void AdvSceneSwitcher::HighlightControls() { - if ((currentActionIdx == -1 && currentConditionIdx == -1) || - (currentActionIdx != -1 && currentConditionIdx != -1)) { - ResetOpacityActionControls(); - ResetOpacityConditionControls(); + const std::vector conditionControls{ + ui->conditionAdd, ui->conditionRemove, ui->conditionTop, + ui->conditionUp, ui->conditionDown, ui->conditionBottom, + }; + const std::vector actionControls{ + ui->actionAdd, ui->actionRemove, ui->actionTop, + ui->actionUp, ui->actionDown, ui->actionBottom, + }; + const std::vector elseActionControls{ + ui->elseActionAdd, ui->elseActionRemove, ui->elseActionTop, + ui->elseActionUp, ui->elseActionDown, ui->elseActionBottom, + }; + + if ((currentActionIdx == -1 && currentConditionIdx == -1 && + currentElseActionIdx == -1)) { + fadeWidgets(conditionControls, false); + fadeWidgets(actionControls, false); + fadeWidgets(elseActionControls, false); + } else if (currentConditionIdx != -1) { + fadeWidgets(conditionControls, true); + fadeWidgets(actionControls, false); + fadeWidgets(elseActionControls, false); } else if (currentActionIdx != -1) { - FadeOutConditionControls(); - ResetOpacityActionControls(); + fadeWidgets(conditionControls, false); + fadeWidgets(actionControls, true); + fadeWidgets(elseActionControls, false); + } else if (currentElseActionIdx != -1) { + fadeWidgets(conditionControls, false); + fadeWidgets(actionControls, false); + fadeWidgets(elseActionControls, true); } else { - FadeOutActionControls(); - ResetOpacityConditionControls(); + assert(false); } }