aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2018-07-06 09:11:05 +0200
committerEike Ziller <eike.ziller@qt.io>2018-07-06 14:01:40 +0000
commit299da013325be20ff731b91e7ead47b20242b1cd (patch)
tree722dc2a5a37b9ddae23a1cf8b19057aa530c1490 /src
parentcb572773c0f6e6d577e29702c7484ce3f252cdff (diff)
QmlDesigner: Fix crash when opening qmlproject while Design mode is open
Fix the order of signal handling, which was changed in a5935cb27a0609764586302bf109796d74060f3d but leads to this crash. The connection to the DesignMode instance still needs to be delayed to after it has been created in Core plugin's extensionsInitialized, so do the final initialization as a reaction to ICore::coreAboutToOpen. Task-number: QTCREATORBUG-20495 Change-Id: I92d9a4ff689d2f191d2fd368966ca582bf8af2f7 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/qmldesigner/qmldesignerplugin.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/plugins/qmldesigner/qmldesignerplugin.cpp b/src/plugins/qmldesigner/qmldesignerplugin.cpp
index c5710957da..1aadaa081a 100644
--- a/src/plugins/qmldesigner/qmldesignerplugin.cpp
+++ b/src/plugins/qmldesigner/qmldesignerplugin.cpp
@@ -198,15 +198,15 @@ bool QmlDesignerPlugin::delayedInitialize()
d->viewManager.registerFormEditorToolTakingOwnership(new QmlDesigner::TextTool);
d->viewManager.registerFormEditorToolTakingOwnership(new QmlDesigner::PathTool);
- connect(Core::DesignMode::instance(), &Core::DesignMode::actionsUpdated,
- &d->shortCutManager, &ShortCutManager::updateActions);
-
return true;
}
void QmlDesignerPlugin::extensionsInitialized()
{
- integrateIntoQtCreator(&d->mainWidget);
+ // delay after Core plugin's extensionsInitialized, so the DesignMode is availabe
+ connect(Core::ICore::instance(), &Core::ICore::coreAboutToOpen, this, [this] {
+ integrateIntoQtCreator(&d->mainWidget);
+ });
}
static QStringList allUiQmlFilesforCurrentProject(const Utils::FileName &fileName)
@@ -255,6 +255,9 @@ void QmlDesignerPlugin::integrateIntoQtCreator(QWidget *modeWidget)
Core::DesignMode::registerDesignWidget(modeWidget, mimeTypes, d->context->context());
+ connect(Core::DesignMode::instance(), &Core::DesignMode::actionsUpdated,
+ &d->shortCutManager, &ShortCutManager::updateActions);
+
connect(Core::EditorManager::instance(), &Core::EditorManager::currentEditorChanged, [this] (Core::IEditor *editor) {
if (d && checkIfEditorIsQtQuick(editor) && isInDesignerMode())
changeEditor();