From 5da074f95a0a8fcc548a5b0bad4fe50a5fa11e5a Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Fri, 14 Oct 2016 17:18:24 +0200 Subject: [PATCH] QmlDesigner: Fix ESC issues We do not want to switch to the editor whenever pressing ESCAPE. Using shortcut override does not work for QQuickWidget. Therefore we register our own action and disable it. Change-Id: I399265a5254767d2825edf3fe823dd35177a6ce5 Reviewed-by: Tim Jenssen --- .../HelperWidgets/ExpressionTextField.qml | 2 ++ src/plugins/qmldesigner/shortcutmanager.cpp | 5 +++++ src/plugins/qmldesigner/shortcutmanager.h | 1 + 3 files changed, 8 insertions(+) diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/HelperWidgets/ExpressionTextField.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/HelperWidgets/ExpressionTextField.qml index 3bcced8bc65..0bbb1cbc48d 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/HelperWidgets/ExpressionTextField.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/HelperWidgets/ExpressionTextField.qml @@ -133,6 +133,8 @@ Controls.TextField { event.accepted = true if (textField.completionActive) { listView.model = null + } else { + textField.rejected() } } diff --git a/src/plugins/qmldesigner/shortcutmanager.cpp b/src/plugins/qmldesigner/shortcutmanager.cpp index d06f32c1181..417eeb34806 100644 --- a/src/plugins/qmldesigner/shortcutmanager.cpp +++ b/src/plugins/qmldesigner/shortcutmanager.cpp @@ -218,6 +218,11 @@ void ShortCutManager::registerActions(const Core::Context &qmlDesignerMainContex command->setAttribute(Core::Command::CA_Hide); viewsMenu->addAction(command); + /* Registering disabled action for Escape, because Qt Quick does not support shortcut overrides. */ + command = Core::ActionManager::registerAction(&m_escapeAction, Core::Constants::S_RETURNTOEDITOR, qmlDesignerMainContext); + command->setDefaultKeySequence(QKeySequence(Qt::Key_Escape)); + m_escapeAction.setEnabled(false); + Core::ActionManager::registerAction(&m_hideSidebarsAction, Core::Constants::TOGGLE_SIDEBAR, qmlDesignerMainContext); } diff --git a/src/plugins/qmldesigner/shortcutmanager.h b/src/plugins/qmldesigner/shortcutmanager.h index 226babb9875..310b08d69c7 100644 --- a/src/plugins/qmldesigner/shortcutmanager.h +++ b/src/plugins/qmldesigner/shortcutmanager.h @@ -91,6 +91,7 @@ private: QAction m_toggleLeftSidebarAction; QAction m_toggleRightSidebarAction; QAction m_goIntoComponentAction; + QAction m_escapeAction; }; } // namespace QmlDesigner