mirror of
https://github.com/WarmUpTill/SceneSwitcher.git
synced 2026-08-21 16:55:29 -05:00
Fade out segment controls which will likely not be needed
This was done to give some hints which controls will likely need to be used to avoid mistakenly clicking on the action controls when editing conditions.
This commit is contained in:
@@ -153,6 +153,11 @@ 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 HighlightMatchedMacros();
|
||||
void MacroDragDropReorder(QModelIndex, int, int, QModelIndex, int);
|
||||
|
||||
|
||||
@@ -322,4 +322,5 @@ void AdvSceneSwitcher::MacroActionSelectionChanged(int idx)
|
||||
currentActionIdx = idx;
|
||||
}
|
||||
currentConditionIdx = -1;
|
||||
HighlightControls();
|
||||
}
|
||||
|
||||
@@ -464,4 +464,5 @@ void AdvSceneSwitcher::MacroConditionSelectionChanged(int idx)
|
||||
currentConditionIdx = idx;
|
||||
}
|
||||
currentActionIdx = -1;
|
||||
HighlightControls();
|
||||
}
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
|
||||
#include <QColor>
|
||||
#include <QMenu>
|
||||
#include <QGraphicsOpacityEffect>
|
||||
#include <QPropertyAnimation>
|
||||
|
||||
static QTimer highlightMatchTimer;
|
||||
static QMetaObject::Connection addPulse;
|
||||
@@ -312,6 +314,7 @@ void AdvSceneSwitcher::SetEditMacro(Macro &m)
|
||||
|
||||
currentActionIdx = -1;
|
||||
currentConditionIdx = -1;
|
||||
HighlightControls();
|
||||
}
|
||||
|
||||
void AdvSceneSwitcher::HighlightAction(int idx)
|
||||
@@ -636,3 +639,75 @@ void AdvSceneSwitcher::DeleteMacroSegementHotkey()
|
||||
RemoveMacroCondition(currentConditionIdx);
|
||||
}
|
||||
}
|
||||
|
||||
void fade(QWidget *widget, bool fadeOut)
|
||||
{
|
||||
auto curEffect = widget->graphicsEffect();
|
||||
if (curEffect) {
|
||||
auto curOpacity =
|
||||
dynamic_cast<QGraphicsOpacityEffect *>(curEffect);
|
||||
if (curOpacity && ((fadeOut && curOpacity->opacity() == 0.3) ||
|
||||
(!fadeOut && curOpacity->opacity() == 1))) {
|
||||
return;
|
||||
}
|
||||
} else if (!fadeOut) {
|
||||
return;
|
||||
}
|
||||
|
||||
QGraphicsOpacityEffect *opacityEffect = new QGraphicsOpacityEffect();
|
||||
widget->setGraphicsEffect(opacityEffect);
|
||||
QPropertyAnimation *animation =
|
||||
new QPropertyAnimation(opacityEffect, "opacity");
|
||||
animation->setDuration(350);
|
||||
animation->setStartValue(fadeOut ? 1 : 0.3);
|
||||
animation->setEndValue(fadeOut ? .3 : 1);
|
||||
animation->setEasingCurve(QEasingCurve::OutQuint);
|
||||
animation->start(QPropertyAnimation::DeleteWhenStopped);
|
||||
}
|
||||
|
||||
void AdvSceneSwitcher::FadeOutActionControls()
|
||||
{
|
||||
fade(ui->actionAdd, true);
|
||||
fade(ui->actionRemove, true);
|
||||
fade(ui->actionUp, true);
|
||||
fade(ui->actionDown, true);
|
||||
}
|
||||
|
||||
void AdvSceneSwitcher::FadeOutConditionControls()
|
||||
{
|
||||
fade(ui->conditionAdd, true);
|
||||
fade(ui->conditionRemove, true);
|
||||
fade(ui->conditionUp, true);
|
||||
fade(ui->conditionDown, true);
|
||||
}
|
||||
|
||||
void AdvSceneSwitcher::ResetOpacityActionControls()
|
||||
{
|
||||
fade(ui->actionAdd, false);
|
||||
fade(ui->actionRemove, false);
|
||||
fade(ui->actionUp, false);
|
||||
fade(ui->actionDown, false);
|
||||
}
|
||||
|
||||
void AdvSceneSwitcher::ResetOpacityConditionControls()
|
||||
{
|
||||
fade(ui->conditionAdd, false);
|
||||
fade(ui->conditionRemove, false);
|
||||
fade(ui->conditionUp, false);
|
||||
fade(ui->conditionDown, false);
|
||||
}
|
||||
|
||||
void AdvSceneSwitcher::HighlightControls()
|
||||
{
|
||||
if ((currentActionIdx == -1 && currentConditionIdx == -1) ||
|
||||
(currentActionIdx != -1 && currentConditionIdx != -1)) {
|
||||
ResetOpacityActionControls();
|
||||
ResetOpacityConditionControls();
|
||||
} else if (currentActionIdx != -1) {
|
||||
FadeOutConditionControls();
|
||||
ResetOpacityActionControls();
|
||||
} else {
|
||||
FadeOutActionControls();
|
||||
ResetOpacityConditionControls();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user