diff --git a/src/plugins/qmldesigner/qmldesignerplugin.cpp b/src/plugins/qmldesigner/qmldesignerplugin.cpp index c5710957da1..1aadaa081ae 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();