summaryrefslogtreecommitdiffstats
path: root/src/Authoring/Studio/Palettes/Action/ActionView.cpp
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@qt.io>2018-09-13 12:19:51 +0300
committerMiikka Heikkinen <miikka.heikkinen@qt.io>2018-09-14 07:53:02 +0000
commit79278993120533dbc72c5dfeff8a45e9289c4639 (patch)
tree9f311bc493369e267301023a43bb8a0c095ff4b7 /src/Authoring/Studio/Palettes/Action/ActionView.cpp
parentc876a6832fa6bf6d05b8e2ec0f0d51b96e85fbba (diff)
Disconnect action browser dialogs before initial selection
If the browser dialog had been shown to another instance previously, the selection change connection would still point to wrong instance at the time the initial selection was set to the shown dialog. This would either trigger property change on wrong instance or crash if the instance was no longer valid. Task-number: QT3DS-2318 Change-Id: Ia7afac2b25c4e389e1ced698486240ffdc65b7de Reviewed-by: Janne Kangas <janne.kangas@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Diffstat (limited to 'src/Authoring/Studio/Palettes/Action/ActionView.cpp')
-rw-r--r--src/Authoring/Studio/Palettes/Action/ActionView.cpp12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/Authoring/Studio/Palettes/Action/ActionView.cpp b/src/Authoring/Studio/Palettes/Action/ActionView.cpp
index 1cb5ab2d..7cfdc2d1 100644
--- a/src/Authoring/Studio/Palettes/Action/ActionView.cpp
+++ b/src/Authoring/Studio/Palettes/Action/ActionView.cpp
@@ -422,9 +422,8 @@ QObject *ActionView::showTriggerObjectBrowser(const QPoint &point)
const auto actionInfo = m_actionsModel->actionInfoAt(m_currentActionIndex);
const auto instanceHandle = GetBridge()->GetInstance(actionInfo.m_Owner,
actionInfo.m_TriggerObject);
- m_triggerObjectBrowser->selectAndExpand(instanceHandle, actionInfo.m_Owner);
-
m_triggerObjectBrowser->disconnect();
+ m_triggerObjectBrowser->selectAndExpand(instanceHandle, actionInfo.m_Owner);
CDialogs::showWidgetBrowser(this, m_triggerObjectBrowser, point);
connect(m_triggerObjectBrowser, &ObjectBrowserView::selectionChanged,
@@ -454,9 +453,8 @@ QObject *ActionView::showTargetObjectBrowser(const QPoint &point)
const auto actionInfo = m_actionsModel->actionInfoAt(m_currentActionIndex);
const auto instanceHandle = GetBridge()->GetInstance(actionInfo.m_Owner,
actionInfo.m_TargetObject);
- m_targetObjectBrowser->selectAndExpand(instanceHandle, actionInfo.m_Owner);
-
m_targetObjectBrowser->disconnect();
+ m_targetObjectBrowser->selectAndExpand(instanceHandle, actionInfo.m_Owner);
CDialogs::showWidgetBrowser(this, m_targetObjectBrowser, point);
connect(m_targetObjectBrowser, &ObjectBrowserView::selectionChanged,
@@ -517,8 +515,8 @@ QObject *ActionView::showEventBrowser(const QPoint &point)
m_eventsBrowser->setModel(m_eventsModel);
- m_eventsBrowser->selectAndExpand(QString::fromStdWString(actionInfo.m_Event));
m_eventsBrowser->disconnect();
+ m_eventsBrowser->selectAndExpand(QString::fromStdWString(actionInfo.m_Event));
CDialogs::showWidgetBrowser(this, m_eventsBrowser, point);
connect(m_eventsBrowser, &EventsBrowserView::selectionChanged,
@@ -553,8 +551,8 @@ QObject *ActionView::showHandlerBrowser(const QPoint &point)
m_handlerBrowser->setModel(m_handlersModel);
- m_handlerBrowser->selectAndExpand(QString::fromStdWString(actionInfo.m_Handler));
m_handlerBrowser->disconnect();
+ m_handlerBrowser->selectAndExpand(QString::fromStdWString(actionInfo.m_Handler));
CDialogs::showWidgetBrowser(this, m_handlerBrowser, point);
connect(m_handlerBrowser, &EventsBrowserView::selectionChanged,
@@ -601,8 +599,8 @@ QObject *ActionView::showEventBrowserForArgument(int handle, const QPoint &point
eventName = QString::fromWCharArray(eventInfo.m_Name.wide_str());
}
}
- m_fireEventsBrowser->selectAndExpand(eventName);
m_fireEventsBrowser->disconnect();
+ m_fireEventsBrowser->selectAndExpand(eventName);
CDialogs::showWidgetBrowser(this, m_fireEventsBrowser, point);
connect(m_fireEventsBrowser, &EventsBrowserView::selectionChanged,