QmlJSEditor: avoid jumping cursor while editing

Writing a property made the cursor jumped to the beginning. Now we
only set the cursor if the textedit has not the focus and no code
completion open.

Change-Id: I7e5d41d5f7f9d75ebc90506d276ccaeb193c64b2
Task-number: QTCREATORBUG-15680
Task-number: QTCREATORBUG-17413
Reviewed-by: Marco Benelli <marco.benelli@qt.io>
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
This commit is contained in:
Tim Jenssen
2017-04-06 17:27:52 +02:00
committed by Robert Loehning
parent c643095f17
commit 76dc24c3b7
3 changed files with 28 additions and 17 deletions

View File

@@ -218,6 +218,11 @@ void QmlJSEditorWidget::modificationChanged(bool changed)
m_modelManager->fileChangedOnDisk(textDocument()->filePath().toString());
}
bool QmlJSEditorWidget::isOutlineCursorChangesBlocked()
{
return hasFocus() || m_blockOutLineCursorChanges;
}
void QmlJSEditorWidget::jumpToOutlineElement(int /*index*/)
{
QModelIndex index = m_outlineCombo->view()->currentIndex();
@@ -808,6 +813,7 @@ void QmlJSEditorWidget::showContextPane()
void QmlJSEditorWidget::contextMenuEvent(QContextMenuEvent *e)
{
m_blockOutLineCursorChanges = true;
QPointer<QMenu> menu(new QMenu(this));
QMenu *refactoringMenu = new QMenu(tr("Refactoring"), menu);
@@ -852,6 +858,7 @@ void QmlJSEditorWidget::contextMenuEvent(QContextMenuEvent *e)
menu->exec(e->globalPos());
delete menu;
m_blockOutLineCursorChanges = false;
}
bool QmlJSEditorWidget::event(QEvent *e)