diff --git a/lib/advanced-scene-switcher.cpp b/lib/advanced-scene-switcher.cpp index 85abdfa3..48bd4af6 100644 --- a/lib/advanced-scene-switcher.cpp +++ b/lib/advanced-scene-switcher.cpp @@ -599,7 +599,7 @@ static void handleSceneCollectionChanging() AdvSceneSwitcher::window->close(); } if (!switcher->stop) { - switcher->sceneColletionStop = true; + switcher->sceneCollectionStop = true; switcher->Stop(); } } diff --git a/lib/general.cpp b/lib/general.cpp index 6991116f..3e65440b 100644 --- a/lib/general.cpp +++ b/lib/general.cpp @@ -535,8 +535,8 @@ void SwitcherData::SaveGeneralSettings(obs_data_t *obj) cooldown.Save(obj, "cooldown"); obs_data_set_bool(obj, "enableCooldown", enableCooldown); - obs_data_set_bool(obj, "active", sceneColletionStop ? true : !stop); - sceneColletionStop = false; + obs_data_set_bool(obj, "active", sceneCollectionStop ? true : !stop); + sceneCollectionStop = false; obs_data_set_int(obj, "startup_behavior", static_cast(startupBehavior)); diff --git a/lib/macro/macro-action-variable.cpp b/lib/macro/macro-action-variable.cpp index 04e38f1d..b335f878 100644 --- a/lib/macro/macro-action-variable.cpp +++ b/lib/macro/macro-action-variable.cpp @@ -884,7 +884,8 @@ MacroActionVariableEdit::MacroActionVariableEdit( QWidget::connect(_segmentIdx, SIGNAL(SelectionChanged(const IntVariable &)), this, SLOT(SegmentIndexChanged(const IntVariable &))); - QWidget::connect(window(), SIGNAL(MacroSegmentOrderChanged()), this, + QWidget::connect(GetSettingsWindow(), + SIGNAL(MacroSegmentOrderChanged()), this, SLOT(MacroSegmentOrderChanged())); QWidget::connect( _subStringStart, diff --git a/lib/macro/macro-list.cpp b/lib/macro/macro-list.cpp index 7625b354..14b712ab 100644 --- a/lib/macro/macro-list.cpp +++ b/lib/macro/macro-list.cpp @@ -10,11 +10,12 @@ MacroList::MacroList(QWidget *parent, bool allowDuplicates, bool reorder) : ListEditor(parent, reorder), _allowDuplicates(allowDuplicates) { - QWidget::connect(window(), + QWidget::connect(GetSettingsWindow(), SIGNAL(MacroRenamed(const QString &, const QString &)), this, SLOT(MacroRename(const QString &, const QString &))); - QWidget::connect(window(), SIGNAL(MacroRemoved(const QString &)), this, + QWidget::connect(GetSettingsWindow(), + SIGNAL(MacroRemoved(const QString &)), this, SLOT(MacroRemove(const QString &))); UpdateListSize(); } diff --git a/lib/macro/macro-run-button.cpp b/lib/macro/macro-run-button.cpp index cab8336d..cc458f56 100644 --- a/lib/macro/macro-run-button.cpp +++ b/lib/macro/macro-run-button.cpp @@ -11,10 +11,14 @@ namespace advss { MacroRunButton::MacroRunButton(QWidget *parent) : QPushButton(parent) { installEventFilter(this); - auto parentWindow = window(); - if (parentWindow) { - parentWindow->installEventFilter(this); - } + + // GetSettingsWindow() might still return null while this constructor is called + QTimer::singleShot(0, this, [this]() { + auto parentWindow = GetSettingsWindow(); + if (parentWindow) { + parentWindow->installEventFilter(this); + } + }); setToolTip(obs_module_text("AdvSceneSwitcher.macroTab.run.tooltip")); diff --git a/lib/macro/macro-segment-selection.cpp b/lib/macro/macro-segment-selection.cpp index ec165c37..c4d09975 100644 --- a/lib/macro/macro-segment-selection.cpp +++ b/lib/macro/macro-segment-selection.cpp @@ -31,7 +31,8 @@ MacroSegmentSelection::MacroSegmentSelection(QWidget *parent, Type type, _index, SIGNAL(NumberVariableChanged(const NumberVariable &)), this, SLOT(IndexChanged(const NumberVariable &))); - QWidget::connect(window(), SIGNAL(MacroSegmentOrderChanged()), this, + QWidget::connect(GetSettingsWindow(), + SIGNAL(MacroSegmentOrderChanged()), this, SLOT(MacroSegmentOrderChanged())); auto layout = new QHBoxLayout; diff --git a/lib/macro/macro-segment.cpp b/lib/macro/macro-segment.cpp index b8c7526b..6f6b631f 100644 --- a/lib/macro/macro-segment.cpp +++ b/lib/macro/macro-segment.cpp @@ -257,20 +257,25 @@ MacroSegmentEdit::MacroSegmentEdit(QWidget *parent) QWidget::connect(_section, &Section::Collapsed, this, &MacroSegmentEdit::Collapsed); // Macro signals - QWidget::connect(parent, SIGNAL(MacroAdded(const QString &)), this, + QWidget::connect(GetSettingsWindow(), + SIGNAL(MacroAdded(const QString &)), this, SIGNAL(MacroAdded(const QString &))); - QWidget::connect(parent, SIGNAL(MacroRemoved(const QString &)), this, + QWidget::connect(GetSettingsWindow(), + SIGNAL(MacroRemoved(const QString &)), this, SIGNAL(MacroRemoved(const QString &))); QWidget::connect( - parent, SIGNAL(MacroRenamed(const QString &, const QString &)), - this, SIGNAL(MacroRenamed(const QString &, const QString &))); + GetSettingsWindow(), + SIGNAL(MacroRenamed(const QString &, const QString &)), this, + SIGNAL(MacroRenamed(const QString &, const QString &))); // Scene group signals - QWidget::connect(parent, SIGNAL(SceneGroupAdded(const QString &)), this, + QWidget::connect(GetSettingsWindow(), + SIGNAL(SceneGroupAdded(const QString &)), this, SIGNAL(SceneGroupAdded(const QString &))); - QWidget::connect(parent, SIGNAL(SceneGroupRemoved(const QString &)), - this, SIGNAL(SceneGroupRemoved(const QString &))); + QWidget::connect(GetSettingsWindow(), + SIGNAL(SceneGroupRemoved(const QString &)), this, + SIGNAL(SceneGroupRemoved(const QString &))); QWidget::connect( - parent, + GetSettingsWindow(), SIGNAL(SceneGroupRenamed(const QString &, const QString)), this, SIGNAL(SceneGroupRenamed(const QString &, const QString))); diff --git a/lib/macro/macro-selection.cpp b/lib/macro/macro-selection.cpp index 7625cffa..fff843db 100644 --- a/lib/macro/macro-selection.cpp +++ b/lib/macro/macro-selection.cpp @@ -49,7 +49,7 @@ void MacroSelection::SetCurrentMacro(const MacroRef ¯o) void MacroSelection::HideSelectedMacro() { - auto ssWindow = static_cast(window()); + auto ssWindow = static_cast(GetSettingsWindow()); if (!ssWindow) { return; } diff --git a/lib/switcher-data.hpp b/lib/switcher-data.hpp index 333c2a28..880b77cd 100644 --- a/lib/switcher-data.hpp +++ b/lib/switcher-data.hpp @@ -101,7 +101,7 @@ public: bool firstBoot = true; bool transitionActive = false; - bool sceneColletionStop = false; + bool sceneCollectionStop = false; bool obsIsShuttingDown = false; bool firstInterval = true; bool firstIntervalAfterStop = true; diff --git a/lib/utils/scene-selection.cpp b/lib/utils/scene-selection.cpp index 3c2a444e..1f45589d 100644 --- a/lib/utils/scene-selection.cpp +++ b/lib/utils/scene-selection.cpp @@ -314,12 +314,14 @@ SceneSelectionWidget::SceneSelectionWidget(QWidget *parent, bool variables, SLOT(SelectionChanged(int))); // Scene groups - QWidget::connect(window(), SIGNAL(SceneGroupAdded(const QString &)), - this, SLOT(ItemAdd(const QString &))); - QWidget::connect(window(), SIGNAL(SceneGroupRemoved(const QString &)), - this, SLOT(ItemRemove(const QString &))); + QWidget::connect(GetSettingsWindow(), + SIGNAL(SceneGroupAdded(const QString &)), this, + SLOT(ItemAdd(const QString &))); + QWidget::connect(GetSettingsWindow(), + SIGNAL(SceneGroupRemoved(const QString &)), this, + SLOT(ItemRemove(const QString &))); QWidget::connect( - window(), + GetSettingsWindow(), SIGNAL(SceneGroupRenamed(const QString &, const QString &)), this, SLOT(ItemRename(const QString &, const QString &))); diff --git a/lib/utils/temp-variable.cpp b/lib/utils/temp-variable.cpp index c39478f0..86d288c2 100644 --- a/lib/utils/temp-variable.cpp +++ b/lib/utils/temp-variable.cpp @@ -272,9 +272,10 @@ TempVariableSelection::TempVariableSelection(QWidget *parent) SLOT(SelectionIdxChanged(int))); QWidget::connect(_selection, SIGNAL(highlighted(int)), this, SLOT(HighlightChanged(int))); - QWidget::connect(window(), SIGNAL(MacroSegmentOrderChanged()), this, + QWidget::connect(GetSettingsWindow(), + SIGNAL(MacroSegmentOrderChanged()), this, SLOT(MacroSegmentsChanged())); - QWidget::connect(window(), + QWidget::connect(GetSettingsWindow(), SIGNAL(SegmentTempVarsChanged(MacroSegment *)), this, SLOT(SegmentTempVarsChanged(MacroSegment *))); @@ -334,7 +335,8 @@ void TempVariableSelection::HighlightChanged(int idx) void TempVariableSelection::PopulateSelection() { - auto advssWindow = qobject_cast(window()); + auto advssWindow = + qobject_cast(GetSettingsWindow()); if (!advssWindow) { return; } @@ -367,7 +369,8 @@ void TempVariableSelection::PopulateSelection() void TempVariableSelection::HighlightSelection(const TempVariableRef &var) { - auto advssWindow = qobject_cast(window()); + auto advssWindow = + qobject_cast(GetSettingsWindow()); if (!advssWindow) { return; } @@ -394,7 +397,8 @@ QString TempVariableSelection::SetupInfoLabel() { auto currentSelection = _selection->itemData(_selection->currentIndex()) .value(); - auto advssWindow = qobject_cast(window()); + auto advssWindow = + qobject_cast(GetSettingsWindow()); if (!advssWindow) { _info->setToolTip(""); _info->hide(); diff --git a/plugins/base/macro-action-projector.cpp b/plugins/base/macro-action-projector.cpp index 7376151e..64e38cf1 100644 --- a/plugins/base/macro-action-projector.cpp +++ b/plugins/base/macro-action-projector.cpp @@ -242,9 +242,9 @@ MacroActionProjectorEdit::MacroActionProjectorEdit( _actions(new QComboBox()), _types(new QComboBox()), _windowTypes(new QComboBox()), - _scenes(new SceneSelectionWidget(window(), true, false, true, true, + _scenes(new SceneSelectionWidget(this, true, false, true, true, true)), - _sources(new SourceSelectionWidget(window(), getSourcesList, true)), + _sources(new SourceSelectionWidget(this, getSourcesList, true)), _monitors(new MonitorSelectionWidget(this)), _projectorWindowName(new VariableLineEdit(this)), _regex(new RegexConfigWidget(this)), diff --git a/plugins/base/macro-action-random.cpp b/plugins/base/macro-action-random.cpp index 15ca3e74..687fc8c8 100644 --- a/plugins/base/macro-action-random.cpp +++ b/plugins/base/macro-action-random.cpp @@ -1,6 +1,7 @@ #include "macro-action-random.hpp" #include "layout-helpers.hpp" #include "macro-helpers.hpp" +#include "ui-helpers.hpp" #include @@ -105,7 +106,8 @@ MacroActionRandomEdit::MacroActionRandomEdit( QWidget::connect(_list, SIGNAL(Removed(int)), this, SLOT(Remove(int))); QWidget::connect(_list, SIGNAL(Replaced(int, const std::string &)), this, SLOT(Replace(int, const std::string &))); - QWidget::connect(window(), SIGNAL(MacroRemoved(const QString &)), this, + QWidget::connect(GetSettingsWindow(), + SIGNAL(MacroRemoved(const QString &)), this, SLOT(MacroRemove(const QString &))); QWidget::connect(_allowRepeat, SIGNAL(stateChanged(int)), this, SLOT(AllowRepeatChanged(int))); diff --git a/plugins/base/macro-action-scene-lock.cpp b/plugins/base/macro-action-scene-lock.cpp index 069f0d2b..fa1bdffe 100644 --- a/plugins/base/macro-action-scene-lock.cpp +++ b/plugins/base/macro-action-scene-lock.cpp @@ -112,7 +112,7 @@ void MacroActionSceneLock::ResolveVariablesToFixedValues() MacroActionSceneLockEdit::MacroActionSceneLockEdit( QWidget *parent, std::shared_ptr entryData) : QWidget(parent), - _scenes(new SceneSelectionWidget(window(), true, false, true, true)), + _scenes(new SceneSelectionWidget(this, true, false, true, true)), _sources(new SceneItemSelectionWidget(parent)), _actions(new QComboBox()) { diff --git a/plugins/base/macro-action-scene-switch.cpp b/plugins/base/macro-action-scene-switch.cpp index f5f81a9b..d5d429ee 100644 --- a/plugins/base/macro-action-scene-switch.cpp +++ b/plugins/base/macro-action-scene-switch.cpp @@ -224,7 +224,7 @@ static inline void populateTypeSelection(QComboBox *list) MacroActionSwitchSceneEdit::MacroActionSwitchSceneEdit( QWidget *parent, std::shared_ptr entryData) : QWidget(parent), - _scenes(new SceneSelectionWidget(window(), true, true, true)), + _scenes(new SceneSelectionWidget(this, true, true, true)), _transitions(new TransitionSelectionWidget(this)), _duration(new DurationSelection(parent, false)), _blockUntilTransitionDone(new QCheckBox(obs_module_text( diff --git a/plugins/base/macro-action-scene-transform.cpp b/plugins/base/macro-action-scene-transform.cpp index ac904966..76498df5 100644 --- a/plugins/base/macro-action-scene-transform.cpp +++ b/plugins/base/macro-action-scene-transform.cpp @@ -399,7 +399,7 @@ static inline void populateActionSelection(QComboBox *list) MacroActionSceneTransformEdit::MacroActionSceneTransformEdit( QWidget *parent, std::shared_ptr entryData) : QWidget(parent), - _scenes(new SceneSelectionWidget(window(), true, false, false, true)), + _scenes(new SceneSelectionWidget(this, true, false, false, true)), _sources(new SceneItemSelectionWidget(parent)), _action(new QComboBox()), _rotation(new VariableDoubleSpinBox()), diff --git a/plugins/base/macro-action-scene-visibility.cpp b/plugins/base/macro-action-scene-visibility.cpp index 4860a37e..6553cb65 100644 --- a/plugins/base/macro-action-scene-visibility.cpp +++ b/plugins/base/macro-action-scene-visibility.cpp @@ -127,7 +127,7 @@ static inline void populateActionSelection(QComboBox *list) MacroActionSceneVisibilityEdit::MacroActionSceneVisibilityEdit( QWidget *parent, std::shared_ptr entryData) : QWidget(parent), - _scenes(new SceneSelectionWidget(window(), true, false, true, true)), + _scenes(new SceneSelectionWidget(this, true, false, true, true)), _sources(new SceneItemSelectionWidget(parent)), _actions(new QComboBox()) { diff --git a/plugins/base/macro-action-sequence.cpp b/plugins/base/macro-action-sequence.cpp index 044f91fb..b3a2567c 100644 --- a/plugins/base/macro-action-sequence.cpp +++ b/plugins/base/macro-action-sequence.cpp @@ -212,7 +212,7 @@ MacroActionSequenceEdit::MacroActionSequenceEdit( SLOT(ContinueFromClicked())); QWidget::connect(_restart, SIGNAL(stateChanged(int)), this, SLOT(RestartChanged(int))); - QWidget::connect(window(), SIGNAL(MacroRemoved(const QString &)), this, + QWidget::connect(this, SIGNAL(MacroRemoved(const QString &)), this, SLOT(MacroRemove(const QString &))); QWidget::connect(_actions, SIGNAL(currentIndexChanged(int)), this, SLOT(ActionChanged(int))); diff --git a/plugins/base/macro-action-studio-mode.cpp b/plugins/base/macro-action-studio-mode.cpp index bdb2a2d7..9431882e 100644 --- a/plugins/base/macro-action-studio-mode.cpp +++ b/plugins/base/macro-action-studio-mode.cpp @@ -9,7 +9,7 @@ const std::string MacroActionSudioMode::id = "studio_mode"; bool MacroActionSudioMode::_registered = MacroActionFactory::Register( MacroActionSudioMode::id, - {MacroActionSudioMode::Create, MacroActionSudioModeEdit::Create, + {MacroActionSudioMode::Create, MacroActionStudioModeEdit::Create, "AdvSceneSwitcher.action.studioMode"}); const static std::map actionTypes = { @@ -124,11 +124,11 @@ static inline void populateActionSelection(QComboBox *list) } } -MacroActionSudioModeEdit::MacroActionSudioModeEdit( +MacroActionStudioModeEdit::MacroActionStudioModeEdit( QWidget *parent, std::shared_ptr entryData) : QWidget(parent), _actions(new QComboBox()), - _scenes(new SceneSelectionWidget(window(), true, true, true, true)) + _scenes(new SceneSelectionWidget(this, true, true, true, true)) { populateActionSelection(_actions); QWidget::connect(_actions, SIGNAL(currentIndexChanged(int)), this, @@ -151,7 +151,7 @@ MacroActionSudioModeEdit::MacroActionSudioModeEdit( _loading = false; } -void MacroActionSudioModeEdit::UpdateEntryData() +void MacroActionStudioModeEdit::UpdateEntryData() { if (!_entryData) { return; @@ -162,7 +162,7 @@ void MacroActionSudioModeEdit::UpdateEntryData() SetWidgetVisibility(); } -void MacroActionSudioModeEdit::SceneChanged(const SceneSelection &s) +void MacroActionStudioModeEdit::SceneChanged(const SceneSelection &s) { GUARD_LOADING_AND_LOCK(); _entryData->_scene = s; @@ -170,7 +170,7 @@ void MacroActionSudioModeEdit::SceneChanged(const SceneSelection &s) QString::fromStdString(_entryData->GetShortDesc())); } -void MacroActionSudioModeEdit::SetWidgetVisibility() +void MacroActionStudioModeEdit::SetWidgetVisibility() { _scenes->setVisible(_entryData->_action == MacroActionSudioMode::Action::SET_SCENE); @@ -181,7 +181,7 @@ void MacroActionSudioModeEdit::SetWidgetVisibility() } } -void MacroActionSudioModeEdit::ActionChanged(int index) +void MacroActionStudioModeEdit::ActionChanged(int index) { GUARD_LOADING_AND_LOCK(); _entryData->_action = static_cast( diff --git a/plugins/base/macro-action-studio-mode.hpp b/plugins/base/macro-action-studio-mode.hpp index 9f782f9b..4c4e0846 100644 --- a/plugins/base/macro-action-studio-mode.hpp +++ b/plugins/base/macro-action-studio-mode.hpp @@ -32,18 +32,18 @@ private: static const std::string id; }; -class MacroActionSudioModeEdit : public QWidget { +class MacroActionStudioModeEdit : public QWidget { Q_OBJECT public: - MacroActionSudioModeEdit( + MacroActionStudioModeEdit( QWidget *parent, std::shared_ptr entryData = nullptr); void UpdateEntryData(); static QWidget *Create(QWidget *parent, std::shared_ptr action) { - return new MacroActionSudioModeEdit( + return new MacroActionStudioModeEdit( parent, std::dynamic_pointer_cast( action)); } diff --git a/plugins/base/macro-condition-media.cpp b/plugins/base/macro-condition-media.cpp index de4a05a6..a473e082 100644 --- a/plugins/base/macro-condition-media.cpp +++ b/plugins/base/macro-condition-media.cpp @@ -622,8 +622,7 @@ MacroConditionMediaEdit::MacroConditionMediaEdit( : QWidget(parent), _sourceTypes(new QComboBox()), _checkTypes(new QComboBox()), - _scenes(new SceneSelectionWidget(window(), true, true, true, true, - true)), + _scenes(new SceneSelectionWidget(this, true, true, true, true, true)), _sources(new SourceSelectionWidget(this, getMediaSourcesList, true)), _states(new QComboBox()), _timeRestrictions(new QComboBox()), diff --git a/plugins/base/macro-condition-scene-order.cpp b/plugins/base/macro-condition-scene-order.cpp index ffd988a6..55077185 100644 --- a/plugins/base/macro-condition-scene-order.cpp +++ b/plugins/base/macro-condition-scene-order.cpp @@ -197,7 +197,7 @@ static inline void populateConditionSelection(QComboBox *list) MacroConditionSceneOrderEdit::MacroConditionSceneOrderEdit( QWidget *parent, std::shared_ptr entryData) : QWidget(parent), - _scenes(new SceneSelectionWidget(window(), true, false, false, true)), + _scenes(new SceneSelectionWidget(this, true, false, false, true)), _conditions(new QComboBox()), _sources(new SceneItemSelectionWidget(parent)), _sources2(new SceneItemSelectionWidget(parent)), diff --git a/plugins/base/macro-condition-scene-transform.cpp b/plugins/base/macro-condition-scene-transform.cpp index 54e8dc2c..b0bd1a5c 100644 --- a/plugins/base/macro-condition-scene-transform.cpp +++ b/plugins/base/macro-condition-scene-transform.cpp @@ -333,7 +333,7 @@ MacroConditionSceneTransformEdit::MacroConditionSceneTransformEdit( QWidget *parent, std::shared_ptr entryData) : QWidget(parent), - _scenes(new SceneSelectionWidget(window(), true, false, false, true)), + _scenes(new SceneSelectionWidget(this, true, false, false, true)), _sources(new SceneItemSelectionWidget( parent, true, SceneItemSelectionWidget::Placeholder::ANY)), _settingsType(new QComboBox()), diff --git a/plugins/base/macro-condition-scene-visibility.cpp b/plugins/base/macro-condition-scene-visibility.cpp index b7e7736b..261a5fce 100644 --- a/plugins/base/macro-condition-scene-visibility.cpp +++ b/plugins/base/macro-condition-scene-visibility.cpp @@ -134,7 +134,7 @@ MacroConditionSceneVisibilityEdit::MacroConditionSceneVisibilityEdit( std::shared_ptr entryData) : QWidget(parent) { - _scenes = new SceneSelectionWidget(window(), true, false, true, true); + _scenes = new SceneSelectionWidget(this, true, false, true, true); _sources = new SceneItemSelectionWidget(parent); _conditions = new QComboBox(); diff --git a/plugins/base/macro-condition-scene.cpp b/plugins/base/macro-condition-scene.cpp index 6ceba250..4eaa21d2 100644 --- a/plugins/base/macro-condition-scene.cpp +++ b/plugins/base/macro-condition-scene.cpp @@ -264,8 +264,7 @@ static inline void populateTypeSelection(QComboBox *list) MacroConditionSceneEdit::MacroConditionSceneEdit( QWidget *parent, std::shared_ptr entryData) : QWidget(parent), - _scenes(new SceneSelectionWidget(window(), true, false, false, - false)), + _scenes(new SceneSelectionWidget(this, true, false, false, false)), _sceneType(new QComboBox()), _pattern(new QLineEdit()), _useTransitionTargetScene(new QCheckBox(obs_module_text( diff --git a/plugins/base/macro-condition-studio-mode.cpp b/plugins/base/macro-condition-studio-mode.cpp index dab40c2f..3b14f7d2 100644 --- a/plugins/base/macro-condition-studio-mode.cpp +++ b/plugins/base/macro-condition-studio-mode.cpp @@ -90,7 +90,7 @@ MacroConditionStudioModeEdit::MacroConditionStudioModeEdit( : QWidget(parent) { _condition = new QComboBox(); - _scenes = new SceneSelectionWidget(window(), true, false, true, true); + _scenes = new SceneSelectionWidget(this, true, false, true, true); populateConditionSelection(_condition);