diff --git a/src/plugins/qmldesigner/components/texteditor/texteditorview.cpp b/src/plugins/qmldesigner/components/texteditor/texteditorview.cpp index 60ee35a922d..c4b120c97b5 100644 --- a/src/plugins/qmldesigner/components/texteditor/texteditorview.cpp +++ b/src/plugins/qmldesigner/components/texteditor/texteditorview.cpp @@ -114,6 +114,10 @@ void TextEditorView::modelAttached(Model *model) void TextEditorView::modelAboutToBeDetached(Model *model) { AbstractView::modelAboutToBeDetached(model); + + m_widget->setTextEditor(0); + + QmlDesignerPlugin::instance()->emitCurrentTextEditorChanged(QmlDesignerPlugin::instance()->currentDesignDocument()->textEditor()); } void TextEditorView::importsChanged(const QList &/*addedImports*/, const QList &/*removedImports*/) diff --git a/src/plugins/qmldesigner/components/texteditor/texteditorwidget.cpp b/src/plugins/qmldesigner/components/texteditor/texteditorwidget.cpp index e645ad2ef6a..2d3e1a5a820 100644 --- a/src/plugins/qmldesigner/components/texteditor/texteditorwidget.cpp +++ b/src/plugins/qmldesigner/components/texteditor/texteditorwidget.cpp @@ -68,21 +68,24 @@ void TextEditorWidget::setTextEditor(TextEditor::BaseTextEditor *textEditor) { TextEditor::BaseTextEditor *oldEditor = m_textEditor.release(); m_textEditor.reset(textEditor); - layout()->removeWidget(m_statusBar); - layout()->addWidget(textEditor->editorWidget()); - layout()->addWidget(m_statusBar); - setFocusProxy(textEditor->editorWidget()); - QmlDesignerPlugin::instance()->emitCurrentTextEditorChanged(textEditor); + if (textEditor) { + layout()->removeWidget(m_statusBar); + layout()->addWidget(textEditor->editorWidget()); + layout()->addWidget(m_statusBar); + setFocusProxy(textEditor->editorWidget()); - connect(textEditor->editorWidget(), &QPlainTextEdit::cursorPositionChanged, - this, [this]() { - /* Cursor position is changed by rewriter */ - if (!m_blockCurserSelectionSyncronisation) - m_updateSelectionTimer.start(); - }); + QmlDesignerPlugin::instance()->emitCurrentTextEditorChanged(textEditor); - textEditor->editorWidget()->installEventFilter(this); + connect(textEditor->editorWidget(), &QPlainTextEdit::cursorPositionChanged, + this, [this]() { + /* Cursor position is changed by rewriter */ + if (!m_blockCurserSelectionSyncronisation) + m_updateSelectionTimer.start(); + }); + + textEditor->editorWidget()->installEventFilter(this); + } if (oldEditor) oldEditor->deleteLater();