diff --git a/src/plugins/qmldesigner/designmodewidget.cpp b/src/plugins/qmldesigner/designmodewidget.cpp index 34183af8b26..3dea9e15762 100644 --- a/src/plugins/qmldesigner/designmodewidget.cpp +++ b/src/plugins/qmldesigner/designmodewidget.cpp @@ -651,6 +651,11 @@ void DesignModeWidget::setMinimumSizeHintFromContentMinimumSize(bool value) dockContainer->layout()->update(); } +bool DesignModeWidget::isInitialized() const +{ + return m_initStatus == Initialized; +} + void DesignModeWidget::dragEnterEvent(QDragEnterEvent *event) { event->accept(); diff --git a/src/plugins/qmldesigner/designmodewidget.h b/src/plugins/qmldesigner/designmodewidget.h index 881335da75c..38be692b109 100644 --- a/src/plugins/qmldesigner/designmodewidget.h +++ b/src/plugins/qmldesigner/designmodewidget.h @@ -75,6 +75,8 @@ public: void setMinimumSizeHintFromContentMinimumSize(bool value); + bool isInitialized() const; + signals: void navigationHistoryChanged(); void initialized(); diff --git a/src/plugins/qmldesigner/qmldesignerplugin.cpp b/src/plugins/qmldesigner/qmldesignerplugin.cpp index 61dfb8adf45..b0f7c7f0891 100644 --- a/src/plugins/qmldesigner/qmldesignerplugin.cpp +++ b/src/plugins/qmldesigner/qmldesignerplugin.cpp @@ -529,8 +529,15 @@ void QmlDesignerPlugin::hideDesigner() void QmlDesignerPlugin::changeEditor() { - clearDesigner(); - setupDesigner(); + if (d->mainWidget.isInitialized()) { + // showDesigner was already already called + clearDesigner(); + setupDesigner(); + } else { + // we are already in Design mode, but showDesigner wasn't called yet, + // so we need to call that to set up the widgets + showDesigner(); + } } void QmlDesignerPlugin::jumpTextCursorToSelectedModelNode()