From f4b85b113479ec05e39f0d2bb3645b07786ea10d Mon Sep 17 00:00:00 2001 From: dt <qtc-committer@nokia.com> Date: Fri, 26 Mar 2010 17:33:45 +0100 Subject: [PATCH] Replace "set build/run configuration" menus with select target command Which opens the target selector in the bottom left. --- .../projectexplorer/projectexplorer.cpp | 113 ++---------------- 1 file changed, 9 insertions(+), 104 deletions(-) diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index 53bd7355f5f..efa157ccc47 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -158,11 +158,7 @@ struct ProjectExplorerPluginPrivate { QAction *m_removeFileAction; QAction *m_renameFileAction; QAction *m_projectSelectorAction; - - QMenu *m_buildConfigurationMenu; - QActionGroup *m_buildConfigurationActionGroup; - QMenu *m_runConfigurationMenu; - QActionGroup *m_runConfigurationActionGroup; + QAction *m_projectSelectorActionMenu; Internal::ProjectWindow *m_proWindow; SessionManager *m_session; @@ -193,8 +189,6 @@ struct ProjectExplorerPluginPrivate { }; ProjectExplorerPluginPrivate::ProjectExplorerPluginPrivate() : - m_buildConfigurationActionGroup(0), - m_runConfigurationActionGroup(0), m_currentProject(0), m_currentNode(0), m_delayedRunConfiguration(0), @@ -551,14 +545,6 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er connect(mfile->menu(), SIGNAL(aboutToShow()), this, SLOT(updateSessionMenu())); - // build menu - Core::ActionContainer *mbc = - am->createMenu(Constants::BUILDCONFIGURATIONMENU); - d->m_buildConfigurationMenu = mbc->menu(); - d->m_buildConfigurationMenu->setTitle(tr("Set Build Configuration")); - connect(mbuild->menu(), SIGNAL(aboutToShow()), this, SLOT(populateBuildConfigurationMenu())); - connect(d->m_buildConfigurationMenu, SIGNAL(triggered(QAction *)), this, SLOT(buildConfigurationMenuTriggered(QAction *))); - // build session action QIcon buildIcon(Constants::ICON_BUILD); buildIcon.addFile(Constants::ICON_BUILD_SMALL); @@ -647,9 +633,6 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er d->m_cleanProjectOnlyAction = new QAction(tr("Clean Without Dependencies"), this); cmd = am->registerAction(d->m_cleanProjectOnlyAction, Constants::CLEANPROJECTONLY, globalcontext); - // Add Set Build Configuration to menu - mbuild->addMenu(mbc, Constants::G_BUILD_OTHER); - // run action QIcon runIcon(Constants::ICON_RUN); runIcon.addFile(Constants::ICON_RUN_SMALL); @@ -660,14 +643,6 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+R"))); mbuild->addAction(cmd, Constants::G_BUILD_RUN); - Core::ActionContainer *mrc = am->createMenu(Constants::RUNCONFIGURATIONMENU); - d->m_runConfigurationMenu = mrc->menu(); - d->m_runConfigurationMenu->setTitle(tr("Set Run Configuration")); - mbuild->addMenu(mrc, Constants::G_BUILD_RUN); - - connect(mbuild->menu(), SIGNAL(aboutToShow()), this, SLOT(populateRunConfigurationMenu())); - connect(d->m_runConfigurationMenu, SIGNAL(triggered(QAction *)), this, SLOT(runConfigurationMenuTriggered(QAction *))); - modeManager->addAction(cmd, Constants::P_ACTION_RUN); d->m_runActionContextMenu = new QAction(runIcon, tr("Run"), this); @@ -728,11 +703,16 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er QWidget *mainWindow = Core::ICore::instance()->mainWindow(); d->m_targetSelector = new Internal::MiniProjectTargetSelector(d->m_projectSelectorAction, mainWindow); connect(d->m_projectSelectorAction, SIGNAL(triggered()), d->m_targetSelector, SLOT(show())); - modeManager->addProjectSelector(d->m_projectSelectorAction); - cmd = am->registerAction(d->m_projectSelectorAction, ProjectExplorer::Constants::SELECTTARGET, + + d->m_projectSelectorActionMenu = new QAction(this); + d->m_projectSelectorActionMenu->setEnabled(false); + d->m_projectSelectorActionMenu->setText(tr("Open Build/Run Target Selector...")); + connect(d->m_projectSelectorActionMenu, SIGNAL(triggered()), d->m_targetSelector, SLOT(show())); + cmd = am->registerAction(d->m_projectSelectorActionMenu, ProjectExplorer::Constants::SELECTTARGET, globalcontext); cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+T"))); + mbuild->addAction(cmd, Constants::G_BUILD_RUN); connect(d->m_session, SIGNAL(projectAdded(ProjectExplorer::Project*)), d->m_targetSelector, SLOT(addProject(ProjectExplorer::Project*))); @@ -1422,6 +1402,7 @@ void ProjectExplorerPlugin::updateActions() d->m_cancelBuildAction->setEnabled(building); d->m_projectSelectorAction->setEnabled(!session()->projects().isEmpty()); + d->m_projectSelectorActionMenu->setEnabled(!session()->projects().isEmpty()); updateRunActions(); } @@ -2090,82 +2071,6 @@ void ProjectExplorerPlugin::renameFile() } } -void ProjectExplorerPlugin::populateBuildConfigurationMenu() -{ - if (debug) - qDebug() << "ProjectExplorerPlugin::populateBuildConfigurationMenu"; - - // delete the old actiongroup and all actions that are children of it - delete d->m_buildConfigurationActionGroup; - d->m_buildConfigurationActionGroup = new QActionGroup(d->m_buildConfigurationMenu); - d->m_buildConfigurationMenu->clear(); - if (Project *pro = session()->startupProject()) { - const BuildConfiguration *activeBC = pro->activeTarget()->activeBuildConfiguration(); - foreach (BuildConfiguration *bc, pro->activeTarget()->buildConfigurations()) { - QString displayName = bc->displayName(); - QAction *act = new QAction(displayName, d->m_buildConfigurationActionGroup); - if (debug) - qDebug() << "BuildConfiguration " << bc->displayName() << "active: " << activeBC->displayName(); - act->setCheckable(true); - act->setChecked(bc == activeBC); - act->setData(QVariant::fromValue(bc)); - d->m_buildConfigurationMenu->addAction(act); - } - d->m_buildConfigurationMenu->setEnabled(true); - } else { - d->m_buildConfigurationMenu->setEnabled(false); - } -} - -void ProjectExplorerPlugin::buildConfigurationMenuTriggered(QAction *action) -{ - if (debug) - qDebug() << "ProjectExplorerPlugin::buildConfigurationMenuTriggered"; - - session()->startupProject()->activeTarget()->setActiveBuildConfiguration(action->data().value<BuildConfiguration *>()); -} - -void ProjectExplorerPlugin::populateRunConfigurationMenu() -{ - if (debug) - qDebug() << "ProjectExplorerPlugin::populateRunConfigurationMenu"; - - delete d->m_runConfigurationActionGroup; - d->m_runConfigurationActionGroup = new QActionGroup(d->m_runConfigurationMenu); - d->m_runConfigurationMenu->clear(); - - const Project *startupProject = d->m_session->startupProject(); - RunConfiguration *activeRunConfiguration = 0; - if (startupProject) - activeRunConfiguration = startupProject->activeTarget()->activeRunConfiguration(); - - foreach (const Project *pro, d->m_session->projects()) { - foreach (RunConfiguration *runConfiguration, pro->activeTarget()->runConfigurations()) { - const QString title = QString("%1 (%2)").arg(pro->displayName(), runConfiguration->displayName()); - QAction *act = new QAction(title, d->m_runConfigurationActionGroup); - act->setCheckable(true); - act->setData(qVariantFromValue(runConfiguration)); - act->setChecked(runConfiguration == activeRunConfiguration); - d->m_runConfigurationMenu->addAction(act); - if (debug) - qDebug() << "RunConfiguration" << runConfiguration << "project:" << pro->displayName() - << "active:" << (runConfiguration == activeRunConfiguration); - } - } - - d->m_runConfigurationMenu->setDisabled(d->m_runConfigurationMenu->actions().isEmpty()); -} - -void ProjectExplorerPlugin::runConfigurationMenuTriggered(QAction *action) -{ - if (debug) - qDebug() << "ProjectExplorerPlugin::runConfigurationMenuTriggered" << action; - - RunConfiguration *runConfiguration = action->data().value<RunConfiguration *>(); - runConfiguration->target()->project()->activeTarget()->setActiveRunConfiguration(runConfiguration); - setStartupProject(runConfiguration->target()->project()); -} - void ProjectExplorerPlugin::populateOpenWithMenu(QMenu *menu, const QString &fileName) { typedef QList<Core::IEditorFactory*> EditorFactoryList; -- GitLab