* Use GetSettingsWindow() instead of window() to avoid connecting to the
  wrong widget
* Fix typos
This commit is contained in:
WarmUpTill 2025-06-22 20:08:21 +02:00 committed by WarmUpTill
parent be8f7bd70f
commit 0b774c171d
26 changed files with 75 additions and 57 deletions

View File

@ -599,7 +599,7 @@ static void handleSceneCollectionChanging()
AdvSceneSwitcher::window->close();
}
if (!switcher->stop) {
switcher->sceneColletionStop = true;
switcher->sceneCollectionStop = true;
switcher->Stop();
}
}

View File

@ -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<int>(startupBehavior));

View File

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

View File

@ -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();
}

View File

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

View File

@ -31,7 +31,8 @@ MacroSegmentSelection::MacroSegmentSelection(QWidget *parent, Type type,
_index,
SIGNAL(NumberVariableChanged(const NumberVariable<int> &)),
this, SLOT(IndexChanged(const NumberVariable<int> &)));
QWidget::connect(window(), SIGNAL(MacroSegmentOrderChanged()), this,
QWidget::connect(GetSettingsWindow(),
SIGNAL(MacroSegmentOrderChanged()), this,
SLOT(MacroSegmentOrderChanged()));
auto layout = new QHBoxLayout;

View File

@ -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)));

View File

@ -49,7 +49,7 @@ void MacroSelection::SetCurrentMacro(const MacroRef &macro)
void MacroSelection::HideSelectedMacro()
{
auto ssWindow = static_cast<AdvSceneSwitcher *>(window());
auto ssWindow = static_cast<AdvSceneSwitcher *>(GetSettingsWindow());
if (!ssWindow) {
return;
}

View File

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

View File

@ -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 &)));

View File

@ -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<AdvSceneSwitcher *>(window());
auto advssWindow =
qobject_cast<AdvSceneSwitcher *>(GetSettingsWindow());
if (!advssWindow) {
return;
}
@ -367,7 +369,8 @@ void TempVariableSelection::PopulateSelection()
void TempVariableSelection::HighlightSelection(const TempVariableRef &var)
{
auto advssWindow = qobject_cast<AdvSceneSwitcher *>(window());
auto advssWindow =
qobject_cast<AdvSceneSwitcher *>(GetSettingsWindow());
if (!advssWindow) {
return;
}
@ -394,7 +397,8 @@ QString TempVariableSelection::SetupInfoLabel()
{
auto currentSelection = _selection->itemData(_selection->currentIndex())
.value<TempVariableRef>();
auto advssWindow = qobject_cast<AdvSceneSwitcher *>(window());
auto advssWindow =
qobject_cast<AdvSceneSwitcher *>(GetSettingsWindow());
if (!advssWindow) {
_info->setToolTip("");
_info->hide();

View File

@ -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)),

View File

@ -1,6 +1,7 @@
#include "macro-action-random.hpp"
#include "layout-helpers.hpp"
#include "macro-helpers.hpp"
#include "ui-helpers.hpp"
#include <cstdlib>
@ -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)));

View File

@ -112,7 +112,7 @@ void MacroActionSceneLock::ResolveVariablesToFixedValues()
MacroActionSceneLockEdit::MacroActionSceneLockEdit(
QWidget *parent, std::shared_ptr<MacroActionSceneLock> 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())
{

View File

@ -224,7 +224,7 @@ static inline void populateTypeSelection(QComboBox *list)
MacroActionSwitchSceneEdit::MacroActionSwitchSceneEdit(
QWidget *parent, std::shared_ptr<MacroActionSwitchScene> 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(

View File

@ -399,7 +399,7 @@ static inline void populateActionSelection(QComboBox *list)
MacroActionSceneTransformEdit::MacroActionSceneTransformEdit(
QWidget *parent, std::shared_ptr<MacroActionSceneTransform> 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()),

View File

@ -127,7 +127,7 @@ static inline void populateActionSelection(QComboBox *list)
MacroActionSceneVisibilityEdit::MacroActionSceneVisibilityEdit(
QWidget *parent, std::shared_ptr<MacroActionSceneVisibility> 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())
{

View File

@ -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)));

View File

@ -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<MacroActionSudioMode::Action, std::string> actionTypes = {
@ -124,11 +124,11 @@ static inline void populateActionSelection(QComboBox *list)
}
}
MacroActionSudioModeEdit::MacroActionSudioModeEdit(
MacroActionStudioModeEdit::MacroActionStudioModeEdit(
QWidget *parent, std::shared_ptr<MacroActionSudioMode> 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<MacroActionSudioMode::Action>(

View File

@ -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<MacroActionSudioMode> entryData = nullptr);
void UpdateEntryData();
static QWidget *Create(QWidget *parent,
std::shared_ptr<MacroAction> action)
{
return new MacroActionSudioModeEdit(
return new MacroActionStudioModeEdit(
parent, std::dynamic_pointer_cast<MacroActionSudioMode>(
action));
}

View File

@ -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()),

View File

@ -197,7 +197,7 @@ static inline void populateConditionSelection(QComboBox *list)
MacroConditionSceneOrderEdit::MacroConditionSceneOrderEdit(
QWidget *parent, std::shared_ptr<MacroConditionSceneOrder> 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)),

View File

@ -333,7 +333,7 @@ MacroConditionSceneTransformEdit::MacroConditionSceneTransformEdit(
QWidget *parent,
std::shared_ptr<MacroConditionSceneTransform> 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()),

View File

@ -134,7 +134,7 @@ MacroConditionSceneVisibilityEdit::MacroConditionSceneVisibilityEdit(
std::shared_ptr<MacroConditionSceneVisibility> 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();

View File

@ -264,8 +264,7 @@ static inline void populateTypeSelection(QComboBox *list)
MacroConditionSceneEdit::MacroConditionSceneEdit(
QWidget *parent, std::shared_ptr<MacroConditionScene> 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(

View File

@ -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);