diff --git a/data/locale/en-US.ini b/data/locale/en-US.ini index 6b98fb53..fcd11713 100644 --- a/data/locale/en-US.ini +++ b/data/locale/en-US.ini @@ -96,6 +96,7 @@ AdvSceneSwitcher.condition.scene="Scene" AdvSceneSwitcher.condition.scene.type.current="Current scene is" AdvSceneSwitcher.condition.scene.type.previous="Previous scene is" AdvSceneSwitcher.condition.scene.type.changed="Scene chagned" +AdvSceneSwitcher.condition.scene.type.notChanged="Scene has not changed" AdvSceneSwitcher.condition.scene.entry="{{sceneType}} {{scenes}}" AdvSceneSwitcher.condition.window="Window" AdvSceneSwitcher.condition.window.entry.line1="{{windows}} exist and ..." diff --git a/src/headers/macro-condition-scene.hpp b/src/headers/macro-condition-scene.hpp index 56a23813..feb959c8 100644 --- a/src/headers/macro-condition-scene.hpp +++ b/src/headers/macro-condition-scene.hpp @@ -9,6 +9,7 @@ enum class SceneType { CURRENT, PREVIOUS, CHANGED, + NOTCHANGED, }; class MacroConditionScene : public MacroCondition { diff --git a/src/macro-condition-scene.cpp b/src/macro-condition-scene.cpp index 494fe3c2..b79131fc 100644 --- a/src/macro-condition-scene.cpp +++ b/src/macro-condition-scene.cpp @@ -14,6 +14,8 @@ static std::map sceneTypes = { {SceneType::CURRENT, "AdvSceneSwitcher.condition.scene.type.current"}, {SceneType::PREVIOUS, "AdvSceneSwitcher.condition.scene.type.previous"}, {SceneType::CHANGED, "AdvSceneSwitcher.condition.scene.type.changed"}, + {SceneType::NOTCHANGED, + "AdvSceneSwitcher.condition.scene.type.notChanged"}, }; bool MacroConditionScene::CheckCondition() @@ -31,6 +33,8 @@ bool MacroConditionScene::CheckCondition() return switcher->previousScene == _scene.GetScene(false); case SceneType::CHANGED: return sceneChanged; + case SceneType::NOTCHANGED: + return !sceneChanged; default: break; } @@ -119,7 +123,8 @@ void MacroConditionSceneEdit::TypeChanged(int value) void MacroConditionSceneEdit::SetWidgetVisibility() { - _scenes->setVisible(_entryData->_type != SceneType::CHANGED); + _scenes->setVisible(_entryData->_type == SceneType::CURRENT || + _entryData->_type == SceneType::PREVIOUS); } void MacroConditionSceneEdit::UpdateEntryData()