mirror of
https://github.com/WarmUpTill/SceneSwitcher.git
synced 2026-08-29 20:55:28 -05:00
Add option to check for value change
This commit is contained in:
@@ -24,6 +24,8 @@ const static std::map<MacroConditionVariable::Type, std::string>
|
||||
"AdvSceneSwitcher.condition.variable.type.lessThan"},
|
||||
{MacroConditionVariable::Type::GREATER_THAN,
|
||||
"AdvSceneSwitcher.condition.variable.type.greaterThan"},
|
||||
{MacroConditionVariable::Type::VALUE_CHANGED,
|
||||
"AdvSceneSwitcher.condition.variable.type.valueChanged"},
|
||||
};
|
||||
|
||||
static bool isNumber(const Variable &var)
|
||||
@@ -59,6 +61,15 @@ bool MacroConditionVariable::Compare(const Variable &var) const
|
||||
}
|
||||
}
|
||||
|
||||
bool MacroConditionVariable::ValueChanged(const Variable &var)
|
||||
{
|
||||
bool changed = var.Value() != _lastValue;
|
||||
if (changed) {
|
||||
_lastValue = var.Value();
|
||||
}
|
||||
return changed;
|
||||
}
|
||||
|
||||
bool MacroConditionVariable::CheckCondition()
|
||||
{
|
||||
auto var = GetVariableByName(_variableName);
|
||||
@@ -77,6 +88,8 @@ bool MacroConditionVariable::CheckCondition()
|
||||
return compareNumber(*var, _numValue, true);
|
||||
case MacroConditionVariable::Type::GREATER_THAN:
|
||||
return compareNumber(*var, _numValue, false);
|
||||
case MacroConditionVariable::Type::VALUE_CHANGED:
|
||||
return ValueChanged(*var);
|
||||
}
|
||||
|
||||
return false;
|
||||
@@ -258,6 +271,11 @@ void MacroConditionVariableEdit::SetWidgetVisibility()
|
||||
_strValue->hide();
|
||||
_numValue->show();
|
||||
break;
|
||||
case MacroConditionVariable::Type::VALUE_CHANGED:
|
||||
_regex->hide();
|
||||
_strValue->hide();
|
||||
_numValue->hide();
|
||||
break;
|
||||
}
|
||||
|
||||
adjustSize();
|
||||
|
||||
Reference in New Issue
Block a user