From 263565700a8dee380ba2a3c1cf066b5af7959311 Mon Sep 17 00:00:00 2001 From: WarmUpTill Date: Thu, 15 Aug 2024 20:11:01 +0200 Subject: [PATCH] Fix crashes related to widget highlighting --- lib/legacy/scene-group.cpp | 6 ++++-- lib/macro/macro-tab.cpp | 12 ++++++++---- lib/macro/macro-tree.cpp | 2 +- lib/utils/status-control.cpp | 1 + 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/lib/legacy/scene-group.cpp b/lib/legacy/scene-group.cpp index 018b7a79..6094455f 100644 --- a/lib/legacy/scene-group.cpp +++ b/lib/legacy/scene-group.cpp @@ -170,8 +170,10 @@ void AdvSceneSwitcher::on_sceneGroupAdd_clicked() item->setData(Qt::UserRole, text); ui->sceneGroups->setCurrentItem(item); - addPulse->deleteLater(); - addPulse = nullptr; + if (addPulse) { + addPulse->deleteLater(); + addPulse = nullptr; + } ui->sceneGroupHelp->setVisible(false); emit SceneGroupAdded(QString::fromStdString(name)); diff --git a/lib/macro/macro-tab.cpp b/lib/macro/macro-tab.cpp index 76d3cf43..f29b0eae 100644 --- a/lib/macro/macro-tab.cpp +++ b/lib/macro/macro-tab.cpp @@ -100,8 +100,10 @@ void AdvSceneSwitcher::on_macroAdd_clicked() } ui->macros->Add(newMacro); - addPulse->deleteLater(); - addPulse = nullptr; + if (addPulse) { + addPulse->deleteLater(); + addPulse = nullptr; + } emit MacroAdded(QString::fromStdString(name)); } @@ -1218,8 +1220,10 @@ void AdvSceneSwitcher::CopyMacro() Macro::PrepareMoveToGroup(macro->Parent(), newMacro); ui->macros->Add(newMacro, macro); - addPulse->deleteLater(); - addPulse = nullptr; + if (addPulse) { + addPulse->deleteLater(); + addPulse = nullptr; + } emit MacroAdded(QString::fromStdString(name)); } diff --git a/lib/macro/macro-tree.cpp b/lib/macro/macro-tree.cpp index cb5166af..6a866de2 100644 --- a/lib/macro/macro-tree.cpp +++ b/lib/macro/macro-tree.cpp @@ -160,7 +160,7 @@ void MacroTreeItem::Update(bool force) _spacer = nullptr; } - if (_type == Type::Group) { + if (_type == Type::Group && _expand) { _boxLayout->removeWidget(_expand); _expand->deleteLater(); _expand = nullptr; diff --git a/lib/utils/status-control.cpp b/lib/utils/status-control.cpp index 9203b5c9..24ff2304 100644 --- a/lib/utils/status-control.cpp +++ b/lib/utils/status-control.cpp @@ -154,6 +154,7 @@ void StatusControl::SetStarted() _status->setText(obs_module_text("AdvSceneSwitcher.status.active")); if (_pulse) { _pulse->deleteLater(); + _pulse = nullptr; } SetStatusStyleSheet(false); _setToStopped = false;