diff --git a/src/plugins/qmljseditor/qmljseditor.cpp b/src/plugins/qmljseditor/qmljseditor.cpp index d49620fc9b9..62bdd051573 100644 --- a/src/plugins/qmljseditor/qmljseditor.cpp +++ b/src/plugins/qmljseditor/qmljseditor.cpp @@ -1338,6 +1338,15 @@ void QmlJSTextEditor::followSymbolUnderCursor() openLink(findLinkAt(textCursor())); } +void QmlJSTextEditor::showContextPane() +{ + if (m_contextPane) { + Node *newNode = m_semanticInfo.declaringMemberNoProperties(position()); + m_contextPane->apply(editableInterface(), m_semanticInfo.document, m_semanticInfo.snapshot, newNode, false, true); + m_oldCursorPosition = position(); + } +} + void QmlJSTextEditor::contextMenuEvent(QContextMenuEvent *e) { QMenu *menu = new QMenu(); @@ -1654,8 +1663,6 @@ void QmlJSTextEditor::updateSemanticInfo(const SemanticInfo &semanticInfo) void QmlJSTextEditor::onCursorPositionChanged() { - - if (m_contextPane) { Node *newNode = m_semanticInfo.declaringMemberNoProperties(position()); Node *oldNode = m_semanticInfo.declaringMemberNoProperties(m_oldCursorPosition); diff --git a/src/plugins/qmljseditor/qmljseditor.h b/src/plugins/qmljseditor/qmljseditor.h index 238197a306e..79f03fd6137 100644 --- a/src/plugins/qmljseditor/qmljseditor.h +++ b/src/plugins/qmljseditor/qmljseditor.h @@ -227,6 +227,7 @@ public: public slots: void followSymbolUnderCursor(); + void showContextPane(); virtual void setFontSettings(const TextEditor::FontSettings &); signals: diff --git a/src/plugins/qmljseditor/qmljseditorconstants.h b/src/plugins/qmljseditor/qmljseditorconstants.h index f3df94ff8c6..b9f47b80daf 100644 --- a/src/plugins/qmljseditor/qmljseditorconstants.h +++ b/src/plugins/qmljseditor/qmljseditorconstants.h @@ -45,6 +45,7 @@ const char * const C_QMLJSEDITOR_DISPLAY_NAME = QT_TRANSLATE_NOOP("OpenWith::Edi const char * const TASK_INDEX = "QmlJSEditor.TaskIndex"; const char * const FOLLOW_SYMBOL_UNDER_CURSOR = "QmlJSEditor.FollowSymbolUnderCursor"; +const char * const SHOW_QT_QUICK_HELPER = "QmlJSEditor.ShowQtQuickHelper"; const char * const QML_MIMETYPE = "application/x-qml"; const char * const JS_MIMETYPE = "application/javascript"; diff --git a/src/plugins/qmljseditor/qmljseditorplugin.cpp b/src/plugins/qmljseditor/qmljseditorplugin.cpp index e89ec025c3a..7b4ba9e138e 100644 --- a/src/plugins/qmljseditor/qmljseditorplugin.cpp +++ b/src/plugins/qmljseditor/qmljseditorplugin.cpp @@ -155,6 +155,12 @@ bool QmlJSEditorPlugin::initialize(const QStringList & /*arguments*/, QString *e connect(followSymbolUnderCursorAction, SIGNAL(triggered()), this, SLOT(followSymbolUnderCursor())); contextMenu->addAction(cmd); + QAction *showQuickToolbar = new QAction(tr("Show Qt Quick helper"), this); + cmd = am->registerAction(showQuickToolbar, Constants::SHOW_QT_QUICK_HELPER, context); + cmd->setDefaultKeySequence(QKeySequence(Qt::CTRL + Qt::ALT + Qt::Key_Space)); + connect(showQuickToolbar, SIGNAL(triggered()), this, SLOT(showContextPane())); + contextMenu->addAction(cmd); + cmd = am->command(TextEditor::Constants::AUTO_INDENT_SELECTION); contextMenu->addAction(cmd); @@ -242,6 +248,15 @@ void QmlJSEditorPlugin::followSymbolUnderCursor() editor->followSymbolUnderCursor(); } +void QmlJSEditorPlugin::showContextPane() +{ + Core::EditorManager *em = Core::EditorManager::instance(); + + if (QmlJSTextEditor *editor = qobject_cast(em->currentEditor()->widget())) + editor->showContextPane(); + +} + Core::Command *QmlJSEditorPlugin::addToolAction(QAction *a, Core::ActionManager *am, Core::Context &context, const QString &name, Core::ActionContainer *c1, const QString &keySequence) diff --git a/src/plugins/qmljseditor/qmljseditorplugin.h b/src/plugins/qmljseditor/qmljseditorplugin.h index fb19f78afd4..efa356df2d8 100644 --- a/src/plugins/qmljseditor/qmljseditorplugin.h +++ b/src/plugins/qmljseditor/qmljseditorplugin.h @@ -89,6 +89,7 @@ public: public Q_SLOTS: void followSymbolUnderCursor(); + void showContextPane(); private Q_SLOTS: void openPreview();