QmlDesigner: Deactivate integrated text editor in detach

We delete the integrated text editor and set the original
text editor as the current one.

Change-Id: I2dd6c7421d4d3078dda8ca9dae8fb04553723240
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Thomas Hartmann
2017-03-16 10:52:27 +01:00
parent 149039edf4
commit bfb2248f39
2 changed files with 19 additions and 12 deletions

View File

@@ -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<Import> &/*addedImports*/, const QList<Import> &/*removedImports*/)

View File

@@ -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();