forked from qt-creator/qt-creator
AnalyzerManager: Make menu extendible
Use Commands everywhere, so that other plugins can extend it.
This commit is contained in:
@@ -58,9 +58,14 @@ const char * const C_ANALYZEMODE = "Analyzer.AnalyzeMode";
|
|||||||
// menu
|
// menu
|
||||||
const char * const M_DEBUG_ANALYZER = "Analyzer.Menu.StartAnalyzer";
|
const char * const M_DEBUG_ANALYZER = "Analyzer.Menu.StartAnalyzer";
|
||||||
|
|
||||||
|
const char * const G_ANALYZER_STARTSTOP = "Menu.Group.Analyzer.StartStop";
|
||||||
|
const char * const G_ANALYZER_TOOLS = "Menu.Group.Analyzer.Tools";
|
||||||
|
|
||||||
const char * const START = "Analyzer.Start";
|
const char * const START = "Analyzer.Start";
|
||||||
const char * const STARTREMOTE = "Analyzer.StartRemote";
|
const char * const STARTREMOTE = "Analyzer.StartRemote";
|
||||||
const char * const STOP = "Analyzer.Stop";
|
const char * const STOP = "Analyzer.Stop";
|
||||||
|
const char * const ANALYZER_TOOLS = "Menu.Action.Analyzer.Tools.";
|
||||||
|
const char * const ANALYZER_TOOLS_SEPARATOR = "Menu.Action.Analyzer.Tools.Separator";
|
||||||
|
|
||||||
// options dialog
|
// options dialog
|
||||||
const char * const ANALYZER_SETTINGS_CATEGORY = "T.Analyzer";
|
const char * const ANALYZER_SETTINGS_CATEGORY = "T.Analyzer";
|
||||||
|
|||||||
@@ -214,7 +214,7 @@ public:
|
|||||||
QAction *m_startAction;
|
QAction *m_startAction;
|
||||||
QAction *m_startRemoteAction;
|
QAction *m_startRemoteAction;
|
||||||
QAction *m_stopAction;
|
QAction *m_stopAction;
|
||||||
QMenu *m_menu;
|
ActionContainer *m_menu;
|
||||||
QComboBox *m_toolBox;
|
QComboBox *m_toolBox;
|
||||||
QStackedWidget *m_controlsWidget;
|
QStackedWidget *m_controlsWidget;
|
||||||
ActionContainer *m_viewsMenu;
|
ActionContainer *m_viewsMenu;
|
||||||
@@ -280,7 +280,7 @@ void AnalyzerManager::AnalyzerManagerPrivate::setupActions()
|
|||||||
Core::ICore *core = Core::ICore::instance();
|
Core::ICore *core = Core::ICore::instance();
|
||||||
Core::ActionManager *am = core->actionManager();
|
Core::ActionManager *am = core->actionManager();
|
||||||
Core::ActionContainer *mtools = am->actionContainer(ProjectExplorer::Constants::M_DEBUG);
|
Core::ActionContainer *mtools = am->actionContainer(ProjectExplorer::Constants::M_DEBUG);
|
||||||
Core::ActionContainer *mAnalyzermenu = am->createMenu(Constants::M_DEBUG_ANALYZER);
|
m_menu = am->createMenu(Constants::M_DEBUG_ANALYZER);
|
||||||
|
|
||||||
const Core::Context globalcontext(Core::Constants::C_GLOBAL);
|
const Core::Context globalcontext(Core::Constants::C_GLOBAL);
|
||||||
Core::Command *command = 0;
|
Core::Command *command = 0;
|
||||||
@@ -292,10 +292,13 @@ void AnalyzerManager::AnalyzerManagerPrivate::setupActions()
|
|||||||
mtools->addAction(command);
|
mtools->addAction(command);
|
||||||
|
|
||||||
// Menus
|
// Menus
|
||||||
m_menu = mAnalyzermenu->menu();
|
m_menu->menu()->setTitle(tr("Start &Analyzer"));
|
||||||
m_menu->setTitle(tr("Start &Analyzer"));
|
m_menu->menu()->setEnabled(true);
|
||||||
m_menu->setEnabled(true);
|
|
||||||
mtools->addMenu(mAnalyzermenu);
|
m_menu->appendGroup(Constants::G_ANALYZER_STARTSTOP);
|
||||||
|
m_menu->appendGroup(Constants::G_ANALYZER_TOOLS);
|
||||||
|
|
||||||
|
mtools->addMenu(m_menu);
|
||||||
|
|
||||||
m_toolGroup = new QActionGroup(m_menu);
|
m_toolGroup = new QActionGroup(m_menu);
|
||||||
connect(m_toolGroup, SIGNAL(triggered(QAction*)),
|
connect(m_toolGroup, SIGNAL(triggered(QAction*)),
|
||||||
@@ -305,7 +308,7 @@ void AnalyzerManager::AnalyzerManagerPrivate::setupActions()
|
|||||||
m_startAction->setIcon(QIcon(Constants::ANALYZER_CONTROL_START_ICON));
|
m_startAction->setIcon(QIcon(Constants::ANALYZER_CONTROL_START_ICON));
|
||||||
command = am->registerAction(m_startAction,
|
command = am->registerAction(m_startAction,
|
||||||
Constants::START, globalcontext);
|
Constants::START, globalcontext);
|
||||||
mAnalyzermenu->addAction(command);
|
m_menu->addAction(command, Constants::G_ANALYZER_STARTSTOP);
|
||||||
connect(m_startAction, SIGNAL(triggered()), q, SLOT(startTool()));
|
connect(m_startAction, SIGNAL(triggered()), q, SLOT(startTool()));
|
||||||
|
|
||||||
m_startRemoteAction = new QAction(tr("Start Remote"), m_menu);
|
m_startRemoteAction = new QAction(tr("Start Remote"), m_menu);
|
||||||
@@ -313,17 +316,21 @@ void AnalyzerManager::AnalyzerManagerPrivate::setupActions()
|
|||||||
// m_startRemoteAction->setIcon(QIcon(QLatin1String(":/images/analyzer_start_remote_small.png")));
|
// m_startRemoteAction->setIcon(QIcon(QLatin1String(":/images/analyzer_start_remote_small.png")));
|
||||||
command = am->registerAction(m_startRemoteAction,
|
command = am->registerAction(m_startRemoteAction,
|
||||||
Constants::STARTREMOTE, globalcontext);
|
Constants::STARTREMOTE, globalcontext);
|
||||||
mAnalyzermenu->addAction(command);
|
m_menu->addAction(command, Constants::G_ANALYZER_STARTSTOP);
|
||||||
connect(m_startRemoteAction, SIGNAL(triggered()), q, SLOT(startToolRemote()));
|
connect(m_startRemoteAction, SIGNAL(triggered()), q, SLOT(startToolRemote()));
|
||||||
|
|
||||||
m_stopAction = new QAction(tr("Stop"), m_menu);
|
m_stopAction = new QAction(tr("Stop"), m_menu);
|
||||||
m_stopAction->setEnabled(false);
|
m_stopAction->setEnabled(false);
|
||||||
m_stopAction->setIcon(QIcon(Constants::ANALYZER_CONTROL_STOP_ICON));
|
m_stopAction->setIcon(QIcon(Constants::ANALYZER_CONTROL_STOP_ICON));
|
||||||
command = am->registerAction(m_stopAction, Constants::STOP, globalcontext);
|
command = am->registerAction(m_stopAction, Constants::STOP, globalcontext);
|
||||||
mAnalyzermenu->addAction(command);
|
m_menu->addAction(command, Constants::G_ANALYZER_STARTSTOP);
|
||||||
connect(m_stopAction, SIGNAL(triggered()), q, SLOT(stopTool()));
|
connect(m_stopAction, SIGNAL(triggered()), q, SLOT(stopTool()));
|
||||||
|
|
||||||
m_menu->addSeparator();
|
|
||||||
|
QAction *separatorAction = new QAction(m_menu);
|
||||||
|
separatorAction->setSeparator(true);
|
||||||
|
command = am->registerAction(separatorAction, Constants::ANALYZER_TOOLS_SEPARATOR, globalcontext);
|
||||||
|
m_menu->addAction(command, Constants::G_ANALYZER_TOOLS);
|
||||||
|
|
||||||
m_viewsMenu = am->actionContainer(Core::Id(Core::Constants::M_WINDOW_VIEWS));
|
m_viewsMenu = am->actionContainer(Core::Id(Core::Constants::M_WINDOW_VIEWS));
|
||||||
}
|
}
|
||||||
@@ -688,7 +695,12 @@ void AnalyzerManager::addTool(IAnalyzerTool *tool)
|
|||||||
action->setData(d->m_tools.count());
|
action->setData(d->m_tools.count());
|
||||||
action->setCheckable(true);
|
action->setCheckable(true);
|
||||||
|
|
||||||
d->m_menu->addAction(action);
|
ActionManager *am = Core::ICore::instance()->actionManager();
|
||||||
|
|
||||||
|
QString actionId = QString(Constants::ANALYZER_TOOLS) + QString::number(d->m_toolGroup->actions().count());
|
||||||
|
Core::Command *command = am->registerAction(action, actionId, Core::Context(Core::Constants::C_GLOBAL));
|
||||||
|
d->m_menu->addAction(command, Constants::G_ANALYZER_TOOLS);
|
||||||
|
|
||||||
d->m_toolGroup->setVisible(d->m_toolGroup->actions().count() > 1);
|
d->m_toolGroup->setVisible(d->m_toolGroup->actions().count() > 1);
|
||||||
d->m_tools.append(tool);
|
d->m_tools.append(tool);
|
||||||
d->m_toolBox->addItem(tool->displayName());
|
d->m_toolBox->addItem(tool->displayName());
|
||||||
|
|||||||
Reference in New Issue
Block a user