From c16a7b93ea1473b331d5f46d1d1f046519b3cb04 Mon Sep 17 00:00:00 2001 From: WarmUpTill Date: Sat, 4 Nov 2023 22:31:29 +0100 Subject: [PATCH] Add temp variable support to window condition --- data/locale/en-US.ini | 3 +++ src/macro-core/macro-condition-window.cpp | 10 ++++++++++ src/macro-core/macro-condition-window.hpp | 2 +- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/data/locale/en-US.ini b/data/locale/en-US.ini index 895a619b..b4e71330 100644 --- a/data/locale/en-US.ini +++ b/data/locale/en-US.ini @@ -1411,6 +1411,9 @@ AdvSceneSwitcher.tempVar.audio.sync_offset="Source audio sync offset" AdvSceneSwitcher.tempVar.audio.monitor="Source audio monitor type" AdvSceneSwitcher.tempVar.audio.balance="Source audio balance" +AdvSceneSwitcher.tempVar.window.window="Window title" +AdvSceneSwitcher.tempVar.window.window.description="The window title of the current foreground window." + AdvSceneSwitcher.selectScene="--select scene--" AdvSceneSwitcher.selectPreviousScene="Previous Scene" AdvSceneSwitcher.selectCurrentScene="Current Scene" diff --git a/src/macro-core/macro-condition-window.cpp b/src/macro-core/macro-condition-window.cpp index f144040a..743433db 100644 --- a/src/macro-core/macro-condition-window.cpp +++ b/src/macro-core/macro-condition-window.cpp @@ -96,6 +96,7 @@ bool MacroConditionWindow::WindowRegexMatches( void MacroConditionWindow::SetVariableValueBasedOnMatch( const std::string &matchWindow) { + SetTempVarValue("window", matchWindow); if (!IsReferencedInVars()) { return; } @@ -173,6 +174,15 @@ std::string MacroConditionWindow::GetShortDesc() const return _window; } +void MacroConditionWindow::SetupTempVars() +{ + AddTempvar( + "window", + obs_module_text("AdvSceneSwitcher.tempVar.window.window"), + obs_module_text( + "AdvSceneSwitcher.tempVar.window.window.description")); +} + MacroConditionWindowEdit::MacroConditionWindowEdit( QWidget *parent, std::shared_ptr entryData) : QWidget(parent), diff --git a/src/macro-core/macro-condition-window.hpp b/src/macro-core/macro-condition-window.hpp index 19e4d665..4c080f3e 100644 --- a/src/macro-core/macro-condition-window.hpp +++ b/src/macro-core/macro-condition-window.hpp @@ -21,7 +21,6 @@ public: return std::make_shared(m); } -public: StringVariable _window; RegexConfig _windowRegex; bool _checkTitle = true; @@ -40,6 +39,7 @@ private: bool WindowMatches(const std::vector &windowList); bool WindowRegexMatches(const std::vector &windowList); void SetVariableValueBasedOnMatch(const std::string &matchWindow); + void SetupTempVars(); static bool _registered; static const std::string id;