diff --git a/src/plugins/cmakeprojectmanager/cmakeeditor.cpp b/src/plugins/cmakeprojectmanager/cmakeeditor.cpp index 14be95994dace441c9a0f3d3b65c957b040a58ee..0f970bfef69cf25036960cf206d2c8ccb16ae80f 100644 --- a/src/plugins/cmakeprojectmanager/cmakeeditor.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeeditor.cpp @@ -180,11 +180,6 @@ void CMakeEditorWidget::setFontSettings(const TextEditor::FontSettings &fs) highlighter->rehighlight(); } -void CMakeEditorWidget::jumpToFile() -{ - openLink(findLinkAt(textCursor())); -} - static bool isValidFileNameChar(const QChar &c) { if (c.isLetterOrNumber() diff --git a/src/plugins/cmakeprojectmanager/cmakeeditor.h b/src/plugins/cmakeprojectmanager/cmakeeditor.h index 990ececf66d8cc4620a8b15928dbd8790c1ade9c..97fe2529f932eb02f84020da4a4dedf9e2ae715d 100644 --- a/src/plugins/cmakeprojectmanager/cmakeeditor.h +++ b/src/plugins/cmakeprojectmanager/cmakeeditor.h @@ -83,8 +83,6 @@ public: CMakeEditorFactory *factory() { return m_factory; } TextEditor::TextEditorActionHandler *actionHandler() const { return m_ah; } - void jumpToFile(); - Link findLinkAt(const QTextCursor &cursor, bool resolveTarget = true); diff --git a/src/plugins/cmakeprojectmanager/cmakeeditorfactory.cpp b/src/plugins/cmakeprojectmanager/cmakeeditorfactory.cpp index 17a9ccec1c4c6ddb28ae2deb4d103697d2f25c1d..f054f6f066941115dc07657d6dad8531b23475f7 100644 --- a/src/plugins/cmakeprojectmanager/cmakeeditorfactory.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeeditorfactory.cpp @@ -54,7 +54,8 @@ CMakeEditorFactory::CMakeEditorFactory(CMakeManager *manager) m_actionHandler = new TextEditorActionHandler(Constants::C_CMAKEEDITOR, - TextEditorActionHandler::UnCommentSelection); + TextEditorActionHandler::UnCommentSelection + | TextEditorActionHandler::JumpToFileUnderCursor); ICore *core = ICore::instance(); ActionManager *am = core->actionManager(); @@ -62,11 +63,7 @@ CMakeEditorFactory::CMakeEditorFactory(CMakeManager *manager) Command *cmd; Context cmakeEditorContext = Context(Constants::C_CMAKEEDITOR); - QAction *jumpToFile = new QAction(tr("Jump to File Under Cursor"), this); - cmd = am->registerAction(jumpToFile, - Constants::JUMP_TO_FILE, cmakeEditorContext); - cmd->setDefaultKeySequence(QKeySequence(Qt::Key_F2)); - connect(jumpToFile, SIGNAL(triggered()), this, SLOT(jumpToFile())); + cmd = am->command(TextEditor::Constants::JUMP_TO_FILE_UNDER_CURSOR); contextMenu->addAction(cmd); QAction *separator = new QAction(this); @@ -101,14 +98,6 @@ Core::IEditor *CMakeEditorFactory::createEditor(QWidget *parent) return rc->editor(); } -void CMakeEditorFactory::jumpToFile() -{ - Core::EditorManager *em = Core::EditorManager::instance(); - CMakeEditorWidget *editor = qobject_cast<CMakeEditorWidget*>(em->currentEditor()->widget()); - if (editor) - editor->jumpToFile(); -} - QStringList CMakeEditorFactory::mimeTypes() const { return m_mimeTypes; diff --git a/src/plugins/cmakeprojectmanager/cmakeeditorfactory.h b/src/plugins/cmakeprojectmanager/cmakeeditorfactory.h index e2d8e4ba58c66f3307acb0a93ce6dd2b88da21da..a58a4115d169db956c1f3969d5ddad1035cc2840 100644 --- a/src/plugins/cmakeprojectmanager/cmakeeditorfactory.h +++ b/src/plugins/cmakeprojectmanager/cmakeeditorfactory.h @@ -60,9 +60,6 @@ public: Core::IDocument *open(const QString &fileName); Core::IEditor *createEditor(QWidget *parent); -public slots: - void jumpToFile(); - private: const QStringList m_mimeTypes; CMakeManager *m_manager; diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectconstants.h b/src/plugins/cmakeprojectmanager/cmakeprojectconstants.h index 2ae0ba66b2416a351c20c77108986cd11abd0bb0..1b9296276752a2e1ce61151e6d881a3e169a29a4 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectconstants.h +++ b/src/plugins/cmakeprojectmanager/cmakeprojectconstants.h @@ -52,7 +52,6 @@ const char M_CONTEXT[] = "CMakeEditor.ContextMenu"; // Actions const char SEPARATOR[] = "CMakeEditor.Separator"; -const char JUMP_TO_FILE[] = "CMakeEditor.JumpToFile"; } // namespace Constants } // namespace CMakeProjectManager diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp index 9bea3f0d4c5c97557b8e7765df8defdce5d99a06..b18cc1dacb90c025aaf13b914e2d9198d28c4d0f 100644 --- a/src/plugins/cppeditor/cppeditor.cpp +++ b/src/plugins/cppeditor/cppeditor.cpp @@ -1485,11 +1485,6 @@ CPPEditorWidget::Link CPPEditorWidget::findLinkAt(const QTextCursor &cursor, return Link(); } -void CPPEditorWidget::jumpToDefinition() -{ - openLink(findLinkAt(textCursor())); -} - Symbol *CPPEditorWidget::findDefinition(Symbol *symbol, const Snapshot &snapshot) const { if (symbol->isFunction()) diff --git a/src/plugins/cppeditor/cppeditor.h b/src/plugins/cppeditor/cppeditor.h index bcdcf3e15c05589bbae5aad0310b768e083ae1db..b9a75de2ce7916f7efc517baad81fcbb17ad8d2c 100644 --- a/src/plugins/cppeditor/cppeditor.h +++ b/src/plugins/cppeditor/cppeditor.h @@ -208,7 +208,6 @@ public Q_SLOTS: virtual void setTabSettings(const TextEditor::TabSettings &); void setSortedOutline(bool sort); void switchDeclarationDefinition(); - void jumpToDefinition(); void renameSymbolUnderCursor(); void renameUsages(); void findUsages(); diff --git a/src/plugins/cppeditor/cppeditorconstants.h b/src/plugins/cppeditor/cppeditorconstants.h index e2aeff9d688c2f0cfbba73e1df837815429a5eb3..6ad17f0fda5354df1cab8bbd2b020753baf317ad 100644 --- a/src/plugins/cppeditor/cppeditorconstants.h +++ b/src/plugins/cppeditor/cppeditorconstants.h @@ -48,7 +48,6 @@ const char SEPARATOR[] = "CppEditor.Separator"; const char SEPARATOR2[] = "CppEditor.Separator2"; const char SEPARATOR3[] = "CppEditor.Separator3"; const char SEPARATOR4[] = "CppEditor.Separator4"; -const char JUMP_TO_DEFINITION[] = "CppEditor.JumpToDefinition"; const char UPDATE_CODEMODEL[] = "CppEditor.UpdateCodeModel"; const int TYPE_HIERARCHY_PRIORITY = 700; diff --git a/src/plugins/cppeditor/cppplugin.cpp b/src/plugins/cppeditor/cppplugin.cpp index b96205e43c4a8f851cd05a2545698a319342054e..bfc49aafdfef43f9ab240e097f20910fbb02b57f 100644 --- a/src/plugins/cppeditor/cppplugin.cpp +++ b/src/plugins/cppeditor/cppplugin.cpp @@ -242,12 +242,7 @@ bool CppPlugin::initialize(const QStringList & /*arguments*/, QString *errorMess cmd = am->command(Core::Id(CppTools::Constants::SWITCH_HEADER_SOURCE)); contextMenu->addAction(cmd); - QAction *jumpToDefinition = new QAction(tr("Follow Symbol Under Cursor"), this); - cmd = am->registerAction(jumpToDefinition, - Constants::JUMP_TO_DEFINITION, context, true); - cmd->setDefaultKeySequence(QKeySequence(Qt::Key_F2)); - connect(jumpToDefinition, SIGNAL(triggered()), - this, SLOT(jumpToDefinition())); + cmd = am->command(TextEditor::Constants::FOLLOW_SYMBOL_UNDER_CURSOR); contextMenu->addAction(cmd); cppToolsMenu->addAction(cmd); @@ -304,7 +299,8 @@ bool CppPlugin::initialize(const QStringList & /*arguments*/, QString *errorMess m_actionHandler = new TextEditor::TextEditorActionHandler(CppEditor::Constants::C_CPPEDITOR, TextEditor::TextEditorActionHandler::Format | TextEditor::TextEditorActionHandler::UnCommentSelection - | TextEditor::TextEditorActionHandler::UnCollapseAll); + | TextEditor::TextEditorActionHandler::UnCollapseAll + | TextEditor::TextEditorActionHandler::FollowSymbolUnderCursor); m_actionHandler->initializeActions(); @@ -355,14 +351,6 @@ void CppPlugin::switchDeclarationDefinition() editor->switchDeclarationDefinition(); } -void CppPlugin::jumpToDefinition() -{ - Core::EditorManager *em = Core::EditorManager::instance(); - CPPEditorWidget *editor = qobject_cast<CPPEditorWidget*>(em->currentEditor()->widget()); - if (editor) - editor->jumpToDefinition(); -} - void CppPlugin::renameSymbolUnderCursor() { Core::EditorManager *em = Core::EditorManager::instance(); diff --git a/src/plugins/cppeditor/cppplugin.h b/src/plugins/cppeditor/cppplugin.h index 3b42b0b28b216d8deb0cd3d1e3fca9e767d6a0b8..652c942d767188275bfcba4856196d96c61f13ed 100644 --- a/src/plugins/cppeditor/cppplugin.h +++ b/src/plugins/cppeditor/cppplugin.h @@ -83,7 +83,6 @@ public slots: private slots: void switchDeclarationDefinition(); - void jumpToDefinition(); void renameSymbolUnderCursor(); void onTaskStarted(const QString &type); void onAllTasksFinished(const QString &type); diff --git a/src/plugins/fakevim/fakevimplugin.cpp b/src/plugins/fakevim/fakevimplugin.cpp index 350d9b58a54c1d09d700a135ff10083727f0cfdc..3253d9685beff939263671abf7c8f03913afad79 100644 --- a/src/plugins/fakevim/fakevimplugin.cpp +++ b/src/plugins/fakevim/fakevimplugin.cpp @@ -78,8 +78,6 @@ #include <utils/treewidgetcolumnstretcher.h> #include <utils/stylehelper.h> -#include <cppeditor/cppeditorconstants.h> - #include <cpptools/cpptoolsconstants.h> #include <QAbstractTableModel> @@ -895,7 +893,7 @@ FakeVimPluginPrivate::FakeVimPluginPrivate(FakeVimPlugin *plugin) QRegExp("^(cN(ext)?|cp(revious)?)!?( (.*))?$"); defaultExCommandMap()["Coreplugin.OutputPane.nextitem"] = QRegExp("^cn(ext)?!?( (.*))?$"); - defaultExCommandMap()[CppEditor::Constants::JUMP_TO_DEFINITION] = + defaultExCommandMap()[TextEditor::Constants::FOLLOW_SYMBOL_UNDER_CURSOR] = QRegExp("^tag?$"); defaultExCommandMap()[Core::Constants::GO_BACK] = QRegExp("^pop?$"); diff --git a/src/plugins/qmljseditor/qmljseditor.cpp b/src/plugins/qmljseditor/qmljseditor.cpp index 78ea9cff7ba69f120423a2fd7a2ed8db27f4ed37..b2f303a0e410b3c0a6984d372343a863c46a809b 100644 --- a/src/plugins/qmljseditor/qmljseditor.cpp +++ b/src/plugins/qmljseditor/qmljseditor.cpp @@ -1387,11 +1387,6 @@ TextEditor::BaseTextEditorWidget::Link QmlJSTextEditorWidget::findLinkAt(const Q return Link(); } -void QmlJSTextEditorWidget::followSymbolUnderCursor() -{ - openLink(findLinkAt(textCursor())); -} - void QmlJSTextEditorWidget::findUsages() { m_findReferences->findUsages(editorDocument()->fileName(), textCursor().position()); diff --git a/src/plugins/qmljseditor/qmljseditor.h b/src/plugins/qmljseditor/qmljseditor.h index b97f327083e24e505f4ca47d980d2c754daa9114..566dc0aa60d03e34e46b35f5a1fd36cf6edd5be8 100644 --- a/src/plugins/qmljseditor/qmljseditor.h +++ b/src/plugins/qmljseditor/qmljseditor.h @@ -176,7 +176,6 @@ public slots: void reparseDocumentNow(); void updateSemanticInfo(); void updateSemanticInfoNow(); - void followSymbolUnderCursor(); void findUsages(); void renameUsages(); void showContextPane(); diff --git a/src/plugins/qmljseditor/qmljseditorconstants.h b/src/plugins/qmljseditor/qmljseditorconstants.h index dda05bb967100ebd8c09d31388ac0125a7f47d46..34dccae4f45203281e7af1f10773240a9b7b954f 100644 --- a/src/plugins/qmljseditor/qmljseditorconstants.h +++ b/src/plugins/qmljseditor/qmljseditorconstants.h @@ -51,7 +51,6 @@ const char TASK_SEARCH[] = "QmlJSEditor.TaskSearch"; const char SETTINGS_CATEGORY_QML[] = "J.QtQuick"; const char SETTINGS_TR_CATEGORY_QML[] = QT_TRANSLATE_NOOP("QmlJSEditor", "Qt Quick"); -const char FOLLOW_SYMBOL_UNDER_CURSOR[] = "QmlJSEditor.FollowSymbolUnderCursor"; const char FIND_USAGES[] = "QmlJSEditor.FindUsages"; const char RENAME_USAGES[] = "QmlJSEditor.RenameUsages"; const char RUN_SEMANTIC_SCAN[] = "QmlJSEditor.RunSemanticScan"; diff --git a/src/plugins/qmljseditor/qmljseditorplugin.cpp b/src/plugins/qmljseditor/qmljseditorplugin.cpp index 357f0dd4afdef7523206c7c3fe3be2b296e92423..5faae4381f5092515158651521f32aa67a904e9e 100644 --- a/src/plugins/qmljseditor/qmljseditorplugin.cpp +++ b/src/plugins/qmljseditor/qmljseditorplugin.cpp @@ -174,7 +174,8 @@ bool QmlJSEditorPlugin::initialize(const QStringList & /*arguments*/, QString *e m_actionHandler = new TextEditor::TextEditorActionHandler(QmlJSEditor::Constants::C_QMLJSEDITOR_ID, TextEditor::TextEditorActionHandler::Format | TextEditor::TextEditorActionHandler::UnCommentSelection - | TextEditor::TextEditorActionHandler::UnCollapseAll); + | TextEditor::TextEditorActionHandler::UnCollapseAll + | TextEditor::TextEditorActionHandler::FollowSymbolUnderCursor); m_actionHandler->initializeActions(); Core::ActionManager *am = Core::ICore::actionManager(); @@ -185,10 +186,7 @@ bool QmlJSEditorPlugin::initialize(const QStringList & /*arguments*/, QString *e qmlToolsMenu->addAction(createSeparator(am, this, globalContext, QmlJSEditor::Constants::SEPARATOR3)); Core::Command *cmd; - QAction *followSymbolUnderCursorAction = new QAction(tr("Follow Symbol Under Cursor"), this); - cmd = am->registerAction(followSymbolUnderCursorAction, Constants::FOLLOW_SYMBOL_UNDER_CURSOR, context); - cmd->setDefaultKeySequence(QKeySequence(Qt::Key_F2)); - connect(followSymbolUnderCursorAction, SIGNAL(triggered()), this, SLOT(followSymbolUnderCursor())); + cmd = am->command(TextEditor::Constants::FOLLOW_SYMBOL_UNDER_CURSOR); contextMenu->addAction(cmd); qmlToolsMenu->addAction(cmd); @@ -294,14 +292,6 @@ Utils::JsonSchemaManager *QmlJSEditorPlugin::jsonManager() const return m_jsonManager.data(); } -void QmlJSEditorPlugin::followSymbolUnderCursor() -{ - Core::EditorManager *em = Core::EditorManager::instance(); - - if (QmlJSTextEditorWidget *editor = qobject_cast<QmlJSTextEditorWidget*>(em->currentEditor()->widget())) - editor->followSymbolUnderCursor(); -} - void QmlJSEditorPlugin::findUsages() { Core::EditorManager *em = Core::EditorManager::instance(); diff --git a/src/plugins/qmljseditor/qmljseditorplugin.h b/src/plugins/qmljseditor/qmljseditorplugin.h index daafed94232caad9c23ffb7d7225ba60ab8c13fc..29e22f6b32ea7c7e15538e1a3cbf98d711aed666 100644 --- a/src/plugins/qmljseditor/qmljseditorplugin.h +++ b/src/plugins/qmljseditor/qmljseditorplugin.h @@ -100,7 +100,6 @@ public: Utils::JsonSchemaManager *jsonManager() const; public Q_SLOTS: - void followSymbolUnderCursor(); void findUsages(); void renameUsages(); void reformatFile(); diff --git a/src/plugins/qt4projectmanager/profileeditor.cpp b/src/plugins/qt4projectmanager/profileeditor.cpp index 25dfee554b12000239cf3c4068c959fc3aeecd79..0041fb9ebc0bd69465cc570e2c4e2500b8827f58 100644 --- a/src/plugins/qt4projectmanager/profileeditor.cpp +++ b/src/plugins/qt4projectmanager/profileeditor.cpp @@ -233,11 +233,6 @@ void ProFileEditorWidget::setFontSettings(const TextEditor::FontSettings &fs) highlighter->rehighlight(); } -void ProFileEditorWidget::jumpToFile() -{ - openLink(findLinkAt(textCursor())); -} - // // ProFileDocument // diff --git a/src/plugins/qt4projectmanager/profileeditor.h b/src/plugins/qt4projectmanager/profileeditor.h index e2d153041dae7d355f89dba0d52b7f1014bc9113..1d143eb7d296f1c800889f21d6d45d67d88dad5f 100644 --- a/src/plugins/qt4projectmanager/profileeditor.h +++ b/src/plugins/qt4projectmanager/profileeditor.h @@ -88,7 +88,6 @@ protected: public slots: virtual void setFontSettings(const TextEditor::FontSettings &); - void jumpToFile(); private: ProFileEditorFactory *m_factory; diff --git a/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h b/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h index 3568058a6990d8db1e1008b8fd9b61727dc87cb4..410e0b48eefd3d9cfa0b27c82020dbacb24affa6 100644 --- a/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h +++ b/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h @@ -63,7 +63,6 @@ const char BUILDSUBDIR[] = "Qt4Builder.BuildSubDir"; const char REBUILDSUBDIR[] = "Qt4Builder.RebuildSubDir"; const char CLEANSUBDIR[] = "Qt4Builder.CleanSubDir"; const char ADDLIBRARY[] = "Qt4.AddLibrary"; -const char JUMP_TO_FILE[] = "Qt4.JumpToFile"; const char SEPARATOR[] = "Qt4.Separator"; // Tasks diff --git a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp index 789c069921c3bde28627124fedb037de536ace74..5386769104b5bdd7c88cfa1c174c4490c1494c64 100644 --- a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp +++ b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp @@ -129,7 +129,8 @@ bool Qt4ProjectManagerPlugin::initialize(const QStringList &arguments, QString * TextEditor::TextEditorActionHandler *editorHandler = new TextEditor::TextEditorActionHandler(Constants::C_PROFILEEDITOR, - TextEditor::TextEditorActionHandler::UnCommentSelection); + TextEditor::TextEditorActionHandler::UnCommentSelection + | TextEditor::TextEditorActionHandler::JumpToFileUnderCursor); m_proFileEditorFactory = new ProFileEditorFactory(m_qt4ProjectManager, editorHandler); addObject(m_proFileEditorFactory); @@ -238,12 +239,7 @@ bool Qt4ProjectManagerPlugin::initialize(const QStringList &arguments, QString * Core::Context proFileEditorContext = Core::Context(Qt4ProjectManager::Constants::C_PROFILEEDITOR); - QAction *jumpToFile = new QAction(tr("Jump to File Under Cursor"), this); - command = am->registerAction(jumpToFile, - Constants::JUMP_TO_FILE, proFileEditorContext); - command->setDefaultKeySequence(QKeySequence(Qt::Key_F2)); - connect(jumpToFile, SIGNAL(triggered()), - this, SLOT(jumpToFile())); + command = am->command(TextEditor::Constants::JUMP_TO_FILE_UNDER_CURSOR); contextMenu->addAction(command); m_addLibraryAction = new QAction(tr("Add Library..."), this); @@ -369,12 +365,4 @@ void Qt4ProjectManagerPlugin::buildStateChanged(ProjectExplorer::Project *pro) updateRunQMakeAction(); } -void Qt4ProjectManagerPlugin::jumpToFile() -{ - Core::EditorManager *em = Core::EditorManager::instance(); - ProFileEditorWidget *editor = qobject_cast<ProFileEditorWidget*>(em->currentEditor()->widget()); - if (editor) - editor->jumpToFile(); -} - Q_EXPORT_PLUGIN(Qt4ProjectManagerPlugin) diff --git a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.h b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.h index aa80311bf0cb2720c8742fe82a6e47eda1320280..f7c2d5995d0ca62b18f1379e58b880e168e73787 100644 --- a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.h +++ b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.h @@ -75,7 +75,6 @@ private slots: void updateRunQMakeAction(); void currentNodeChanged(ProjectExplorer::Node *node); void buildStateChanged(ProjectExplorer::Project *pro); - void jumpToFile(); #ifdef WITH_TESTS void testAbldOutputParsers_data(); diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp index f1dbbfbdd0271e22c65ecd29465beac0b52259ea..1e8632df049e17ba01a2e7f3b5627a60f8446415 100644 --- a/src/plugins/texteditor/basetexteditor.cpp +++ b/src/plugins/texteditor/basetexteditor.cpp @@ -1074,6 +1074,11 @@ void BaseTextEditorWidget::unindent() indentOrUnindent(false); } +void BaseTextEditorWidget::openLinkUnderCursor() +{ + openLink(findLinkAt(textCursor())); +} + void BaseTextEditorWidget::moveLineUpDown(bool up) { QTextCursor cursor = textCursor(); diff --git a/src/plugins/texteditor/basetexteditor.h b/src/plugins/texteditor/basetexteditor.h index d61ae1237b71ed9fde7f4d7c0ee05480016323ec..45f2565f2c5e556806fd36b1aae836ed9ed09ccd 100644 --- a/src/plugins/texteditor/basetexteditor.h +++ b/src/plugins/texteditor/basetexteditor.h @@ -326,6 +326,8 @@ public slots: void indent(); void unindent(); + void openLinkUnderCursor(); + signals: void changed(); diff --git a/src/plugins/texteditor/texteditoractionhandler.cpp b/src/plugins/texteditor/texteditoractionhandler.cpp index 319e559a63e5fb33370900dd54970285a5fa2453..84747b767502f5f169c43482541fc9ec67093bfe 100644 --- a/src/plugins/texteditor/texteditoractionhandler.cpp +++ b/src/plugins/texteditor/texteditoractionhandler.cpp @@ -105,6 +105,8 @@ TextEditorActionHandler::TextEditorActionHandler(const char *context, m_lowerCaseSelectionAction(0), m_indentAction(0), m_unindentAction(0), + m_followSymbolAction(0), + m_jumpToFileAction(0), m_optionalActions(optionalActions), m_currentEditor(0), m_contextId(context), @@ -395,6 +397,16 @@ void TextEditorActionHandler::createActions() command = am->registerAction(m_unindentAction, Constants::UNINDENT, m_contextId, true); connect(m_unindentAction, SIGNAL(triggered()), this, SLOT(unindent())); + m_followSymbolAction = new QAction(tr("Follow Symbol Under Cursor"), this); + command = am->registerAction(m_followSymbolAction, Constants::FOLLOW_SYMBOL_UNDER_CURSOR, m_contextId, true); + command->setDefaultKeySequence(QKeySequence(Qt::Key_F2)); + connect(m_followSymbolAction, SIGNAL(triggered()), this, SLOT(openLinkUnderCursor())); + + m_jumpToFileAction = new QAction(tr("Jump To File Under Cursor"), this); + command = am->registerAction(m_jumpToFileAction, Constants::JUMP_TO_FILE_UNDER_CURSOR, m_contextId, true); + command->setDefaultKeySequence(QKeySequence(Qt::Key_F2)); + connect(m_jumpToFileAction, SIGNAL(triggered()), this, SLOT(openLinkUnderCursor())); + QAction *a = 0; a = new QAction(tr("Go to Line Start"), this); command = am->registerAction(a, Constants::GOTO_LINE_START, m_contextId, true); @@ -508,6 +520,8 @@ void TextEditorActionHandler::updateActions(UpdateMode um) a->setEnabled(um != ReadOnlyMode); m_formatAction->setEnabled((m_optionalActions & Format) && um != ReadOnlyMode); m_unCommentSelectionAction->setEnabled((m_optionalActions & UnCommentSelection) && um != ReadOnlyMode); + m_followSymbolAction->setEnabled(m_optionalActions & FollowSymbolUnderCursor); + m_jumpToFileAction->setEnabled(m_optionalActions & JumpToFileUnderCursor); m_unfoldAllAction->setEnabled((m_optionalActions & UnCollapseAll)); m_visualizeWhitespaceAction->setChecked(m_currentEditor->displaySettings().m_visualizeWhitespace); @@ -632,6 +646,7 @@ FUNCTION(insertLineAbove) FUNCTION(insertLineBelow) FUNCTION(indent) FUNCTION(unindent) +FUNCTION(openLinkUnderCursor) FUNCTION(gotoLineStart) FUNCTION(gotoLineStartWithSelection) diff --git a/src/plugins/texteditor/texteditoractionhandler.h b/src/plugins/texteditor/texteditoractionhandler.h index d0a41e0e74a089c48d077f2c9b3ffe628226fd94..27f0d485ca6ddce9b39a97db96801f4f5ce33b2e 100644 --- a/src/plugins/texteditor/texteditoractionhandler.h +++ b/src/plugins/texteditor/texteditoractionhandler.h @@ -63,7 +63,9 @@ public: None = 0, Format = 1, UnCommentSelection = 2, - UnCollapseAll = 4 + UnCollapseAll = 4, + FollowSymbolUnderCursor = 8, + JumpToFileUnderCursor = 16 }; explicit TextEditorActionHandler(const char *context, uint optionalActions = None); @@ -141,6 +143,7 @@ private slots: void updateCurrentEditor(Core::IEditor *editor); void indent(); void unindent(); + void openLinkUnderCursor(); void gotoLineStart(); void gotoLineStartWithSelection(); @@ -212,6 +215,8 @@ private: QAction *m_lowerCaseSelectionAction; QAction *m_indentAction; QAction *m_unindentAction; + QAction *m_followSymbolAction; + QAction *m_jumpToFileAction; QList<QAction *> m_modifyingActions; uint m_optionalActions; diff --git a/src/plugins/texteditor/texteditorconstants.h b/src/plugins/texteditor/texteditorconstants.h index bd90e06631bebdff92145c58ac00c70aacefc3fb..0fc099368be7e69035ee36f9c5276992f03b30f0 100644 --- a/src/plugins/texteditor/texteditorconstants.h +++ b/src/plugins/texteditor/texteditorconstants.h @@ -105,6 +105,8 @@ const char CIRCULAR_PASTE[] = "TextEditor.CircularPaste"; const char SWITCH_UTF8BOM[] = "TextEditor.SwitchUtf8bom"; const char INDENT[] = "TextEditor.Indent"; const char UNINDENT[] = "TextEditor.Unindent"; +const char FOLLOW_SYMBOL_UNDER_CURSOR[] = "TextEditor.FollowSymbolUnderCursor"; +const char JUMP_TO_FILE_UNDER_CURSOR[] = "TextEditor.JumpToFileUnderCursor"; // Text color and style categories const char C_TEXT[] = "Text";