Add temp variable support to window condition

This commit is contained in:
WarmUpTill 2023-11-04 22:31:29 +01:00 committed by WarmUpTill
parent f89bb1a750
commit c16a7b93ea
3 changed files with 14 additions and 1 deletions

View File

@ -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"

View File

@ -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<MacroConditionWindow> entryData)
: QWidget(parent),

View File

@ -21,7 +21,6 @@ public:
return std::make_shared<MacroConditionWindow>(m);
}
public:
StringVariable _window;
RegexConfig _windowRegex;
bool _checkTitle = true;
@ -40,6 +39,7 @@ private:
bool WindowMatches(const std::vector<std::string> &windowList);
bool WindowRegexMatches(const std::vector<std::string> &windowList);
void SetVariableValueBasedOnMatch(const std::string &matchWindow);
void SetupTempVars();
static bool _registered;
static const std::string id;