mirror of
https://github.com/WarmUpTill/SceneSwitcher.git
synced 2026-03-29 05:15:29 -05:00
Add option to check for value change
This commit is contained in:
parent
c22f40e333
commit
3e1e8d01b6
|
|
@ -350,6 +350,7 @@ AdvSceneSwitcher.condition.variable.type.empty="is empty"
|
|||
AdvSceneSwitcher.condition.variable.type.number="is a number"
|
||||
AdvSceneSwitcher.condition.variable.type.lessThan="is less than"
|
||||
AdvSceneSwitcher.condition.variable.type.greaterThan="is greater than"
|
||||
AdvSceneSwitcher.condition.variable.type.valueChanged="value changed"
|
||||
AdvSceneSwitcher.condition.variable.regex="Use regular expressions"
|
||||
AdvSceneSwitcher.condition.variable.entry="{{variables}}{{conditions}}{{strValue}}{{numValue}}"
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ public:
|
|||
IS_NUMBER,
|
||||
LESS_THAN,
|
||||
GREATER_THAN,
|
||||
VALUE_CHANGED,
|
||||
//...
|
||||
};
|
||||
|
||||
|
|
@ -37,6 +38,9 @@ public:
|
|||
|
||||
private:
|
||||
bool Compare(const Variable &) const;
|
||||
bool ValueChanged(const Variable &);
|
||||
|
||||
std::string _lastValue = "";
|
||||
|
||||
static bool _registered;
|
||||
static const std::string id;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user