diff --git a/src/plugins/coreplugin/coreconstants.h b/src/plugins/coreplugin/coreconstants.h index af71a99cd2e..cdfc0c06b06 100644 --- a/src/plugins/coreplugin/coreconstants.h +++ b/src/plugins/coreplugin/coreconstants.h @@ -253,6 +253,7 @@ const char * const SETTINGS_CATEGORY_CORE = "A.Core"; const char * const SETTINGS_CATEGORY_CORE_ICON = ":/core/images/category_core.png"; const char * const SETTINGS_TR_CATEGORY_CORE = QT_TRANSLATE_NOOP("Core", "Environment"); const char * const SETTINGS_ID_ENVIRONMENT = "A.General"; +const char * const SETTINGS_ID_TOOLS = "G.ExternalTools"; const char * const SETTINGS_DEFAULTTEXTENCODING = "General/DefaultFileEncoding"; diff --git a/src/plugins/coreplugin/externaltool.cpp b/src/plugins/coreplugin/externaltool.cpp index 463ef810c6e..9b2b2ea3491 100644 --- a/src/plugins/coreplugin/externaltool.cpp +++ b/src/plugins/coreplugin/externaltool.cpp @@ -47,7 +47,6 @@ #include #include #include -#include #include #include @@ -677,6 +676,11 @@ ExternalToolManager::~ExternalToolManager() void ExternalToolManager::initialize() { + m_configureSeparator = new QAction(this); + m_configureSeparator->setSeparator(true); + m_configureAction = new QAction(tr("Configure..."), this); + connect(m_configureAction, SIGNAL(triggered()), this, SLOT(openPreferences())); + // add the external tools menu ActionManager *am = m_core->actionManager(); ActionContainer *mexternaltools = am->createMenu(Id(Constants::M_TOOLS_EXTERNAL)); @@ -844,6 +848,10 @@ void ExternalToolManager::setToolsByCategory(const QMapmenu()->addAction(m_configureSeparator); + mexternaltools->menu()->addAction(m_configureAction); } void ExternalToolManager::readSettings(const QMap &tools, @@ -901,3 +909,9 @@ void ExternalToolManager::writeSettings() settings->endGroup(); } + +void ExternalToolManager::openPreferences() +{ + ICore::instance()->showOptionsDialog(QLatin1String(Core::Constants::SETTINGS_CATEGORY_CORE), + QLatin1String(Core::Constants::SETTINGS_ID_TOOLS)); +} diff --git a/src/plugins/coreplugin/externaltool.h b/src/plugins/coreplugin/externaltool.h index 4c39c9628f1..92b0074e575 100644 --- a/src/plugins/coreplugin/externaltool.h +++ b/src/plugins/coreplugin/externaltool.h @@ -43,6 +43,7 @@ #include #include #include +#include namespace Core { namespace Internal { @@ -176,6 +177,7 @@ signals: private slots: void menuActivated(); + void openPreferences(); private: void initialize(); @@ -193,6 +195,8 @@ private: QMap > m_categoryMap; QMap m_actions; QMap m_containers; + QAction *m_configureSeparator; + QAction *m_configureAction; // for sending the replaceSelectionRequested signal friend class Core::Internal::ExternalToolRunner; diff --git a/src/plugins/coreplugin/toolsettings.cpp b/src/plugins/coreplugin/toolsettings.cpp index 8aed27469fa..3ad24f04eb7 100644 --- a/src/plugins/coreplugin/toolsettings.cpp +++ b/src/plugins/coreplugin/toolsettings.cpp @@ -49,7 +49,7 @@ ToolSettings::ToolSettings(QObject *parent) : QString ToolSettings::id() const { - return QLatin1String("G.ExternalTools"); + return QLatin1String(Core::Constants::SETTINGS_ID_TOOLS); }