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) void TextEditorView::modelAboutToBeDetached(Model *model)
{ {
AbstractView::modelAboutToBeDetached(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*/) 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(); TextEditor::BaseTextEditor *oldEditor = m_textEditor.release();
m_textEditor.reset(textEditor); 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, QmlDesignerPlugin::instance()->emitCurrentTextEditorChanged(textEditor);
this, [this]() {
/* Cursor position is changed by rewriter */
if (!m_blockCurserSelectionSyncronisation)
m_updateSelectionTimer.start();
});
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) if (oldEditor)
oldEditor->deleteLater(); oldEditor->deleteLater();