diff options
Diffstat (limited to 'src/plugins/cppeditor/cppplugin.cpp')
-rw-r--r-- | src/plugins/cppeditor/cppplugin.cpp | 44 |
1 files changed, 35 insertions, 9 deletions
diff --git a/src/plugins/cppeditor/cppplugin.cpp b/src/plugins/cppeditor/cppplugin.cpp index f98fb68087..a4476d6d90 100644 --- a/src/plugins/cppeditor/cppplugin.cpp +++ b/src/plugins/cppeditor/cppplugin.cpp @@ -52,6 +52,7 @@ #include <texteditor/texteditorsettings.h> #include <texteditor/texteditorconstants.h> #include <cpptools/cpptoolsconstants.h> +#include <cpptools/cppmodelmanagerinterface.h> #include <QtCore/QFileInfo> #include <QtCore/QSettings> @@ -108,11 +109,26 @@ QStringList CppEditorFactory::mimeTypes() const ///////////////////////////////// CppPlugin ////////////////////////////////// +static inline + Core::Command *createSeparator(Core::ActionManager *am, + QObject *parent, + const QList<int> &context, + const char *id) +{ + QAction *separator = new QAction(parent); + separator->setSeparator(true); + return am->registerAction(separator, QLatin1String(id), context); +} + CppPlugin *CppPlugin::m_instance = 0; CppPlugin::CppPlugin() : m_actionHandler(0), - m_sortedMethodOverview(false) + m_sortedMethodOverview(false), + m_renameSymbolUnderCursorAction(0), + m_findUsagesAction(0), + m_updateCodeModelAction(0) + { m_instance = this; } @@ -192,6 +208,7 @@ bool CppPlugin::initialize(const QStringList & /*arguments*/, QString *errorMess Core::ActionContainer *contextMenu= am->createMenu(CppEditor::Constants::M_CONTEXT); Core::Command *cmd; + Core::ActionContainer *cppToolsMenu = am->actionContainer(QLatin1String(CppTools::Constants::M_TOOLS_CPP)); QAction *jumpToDefinition = new QAction(tr("Follow Symbol under Cursor"), this); cmd = am->registerAction(jumpToDefinition, @@ -200,7 +217,7 @@ bool CppPlugin::initialize(const QStringList & /*arguments*/, QString *errorMess connect(jumpToDefinition, SIGNAL(triggered()), this, SLOT(jumpToDefinition())); contextMenu->addAction(cmd); - am->actionContainer(CppTools::Constants::M_TOOLS_CPP)->addAction(cmd); + cppToolsMenu->addAction(cmd); QAction *switchDeclarationDefinition = new QAction(tr("Switch between Method Declaration/Definition"), this); cmd = am->registerAction(switchDeclarationDefinition, @@ -209,14 +226,14 @@ bool CppPlugin::initialize(const QStringList & /*arguments*/, QString *errorMess connect(switchDeclarationDefinition, SIGNAL(triggered()), this, SLOT(switchDeclarationDefinition())); contextMenu->addAction(cmd); - am->actionContainer(CppTools::Constants::M_TOOLS_CPP)->addAction(cmd); + cppToolsMenu->addAction(cmd); m_findUsagesAction = new QAction(tr("Find Usages"), this); cmd = am->registerAction(m_findUsagesAction, Constants::FIND_USAGES, context); cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+Shift+U"))); connect(m_findUsagesAction, SIGNAL(triggered()), this, SLOT(findUsages())); contextMenu->addAction(cmd); - am->actionContainer(CppTools::Constants::M_TOOLS_CPP)->addAction(cmd); + cppToolsMenu->addAction(cmd); m_renameSymbolUnderCursorAction = new QAction(tr("Rename Symbol under Cursor"), this); cmd = am->registerAction(m_renameSymbolUnderCursorAction, @@ -224,7 +241,17 @@ bool CppPlugin::initialize(const QStringList & /*arguments*/, QString *errorMess cmd->setDefaultKeySequence(QKeySequence("CTRL+SHIFT+R")); connect(m_renameSymbolUnderCursorAction, SIGNAL(triggered()), this, SLOT(renameSymbolUnderCursor())); contextMenu->addAction(cmd); - am->actionContainer(CppTools::Constants::M_TOOLS_CPP)->addAction(cmd); + cppToolsMenu->addAction(cmd); + + // Update context in global context + QList<int> globalContext; + globalContext.append(Core::Constants::C_GLOBAL_ID); + cppToolsMenu->addAction(createSeparator(am, this, globalContext, CppEditor::Constants::SEPARATOR2)); + m_updateCodeModelAction = new QAction(tr("Update code model"), this); + cmd = am->registerAction(m_updateCodeModelAction, QLatin1String(Constants::UPDATE_CODEMODEL), globalContext); + CppTools::CppModelManagerInterface *cppModelManager = CppTools::CppModelManagerInterface::instance(); + connect(m_updateCodeModelAction, SIGNAL(triggered()), cppModelManager, SLOT(updateModifiedSourceFiles())); + cppToolsMenu->addAction(cmd); m_actionHandler = new TextEditor::TextEditorActionHandler(CppEditor::Constants::C_CPPEDITOR, TextEditor::TextEditorActionHandler::Format @@ -233,10 +260,7 @@ bool CppPlugin::initialize(const QStringList & /*arguments*/, QString *errorMess m_actionHandler->initializeActions(); - QAction *separator = new QAction(this); - separator->setSeparator(true); - cmd = am->registerAction(separator, CppEditor::Constants::SEPARATOR, context); - contextMenu->addAction(cmd); + contextMenu->addAction(createSeparator(am, this, context, CppEditor::Constants::SEPARATOR)); cmd = am->command(TextEditor::Constants::AUTO_INDENT_SELECTION); contextMenu->addAction(cmd); @@ -308,6 +332,7 @@ void CppPlugin::onTaskStarted(const QString &type) if (type == CppTools::Constants::TASK_INDEX) { m_renameSymbolUnderCursorAction->setEnabled(false); m_findUsagesAction->setEnabled(false); + m_updateCodeModelAction->setEnabled(false); } } @@ -316,6 +341,7 @@ void CppPlugin::onAllTasksFinished(const QString &type) if (type == CppTools::Constants::TASK_INDEX) { m_renameSymbolUnderCursorAction->setEnabled(true); m_findUsagesAction->setEnabled(true); + m_updateCodeModelAction->setEnabled(true); } } |