summaryrefslogtreecommitdiff
path: root/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp
diff options
context:
space:
mode:
authorKonstantin Tokarev <annulen@yandex.ru>2012-04-12 15:56:02 +0400
committerDaniel Teske <daniel.teske@nokia.com>2012-04-12 14:28:22 +0200
commit866cc421542e4ea746526e7a04f3795784db8b43 (patch)
treebf0b660567d8c8985843072398815635d7318bc3 /src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp
parent225938aab7baa93f67b501e693d0c058e0e08552 (diff)
downloadqt-creator-866cc421542e4ea746526e7a04f3795784db8b43.tar.gz
Added menu item for (re)building and cleaning of current subproject.
Change-Id: If1990cd6c4a8a6179ff93f535b5c9a7c116d69ec Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Diffstat (limited to 'src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp')
-rw-r--r--src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp53
1 files changed, 48 insertions, 5 deletions
diff --git a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp
index 5386769104..9dd32c05f2 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp
+++ b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp
@@ -82,6 +82,7 @@
#include <texteditor/texteditoractionhandler.h>
#include <texteditor/texteditorconstants.h>
#include <texteditor/texteditorsettings.h>
+#include <utils/parameteraction.h>
#ifdef WITH_TESTS
# include <QTest>
@@ -203,7 +204,7 @@ bool Qt4ProjectManagerPlugin::initialize(const QStringList &arguments, QString *
QIcon buildIcon = QIcon(QLatin1String(ProjectExplorer::Constants::ICON_BUILD));
buildIcon.addFile(QLatin1String(ProjectExplorer::Constants::ICON_BUILD_SMALL));
m_buildSubProjectContextMenu = new QAction(buildIcon, tr("Build"), this);
- command = am->registerAction(m_buildSubProjectContextMenu, Constants::BUILDSUBDIR, projectContext);
+ command = am->registerAction(m_buildSubProjectContextMenu, Constants::BUILDSUBDIRCONTEXTMENU, projectContext);
command->setAttribute(Core::Command::CA_Hide);
msubproject->addAction(command, ProjectExplorer::Constants::G_PROJECT_BUILD);
connect(m_buildSubProjectContextMenu, SIGNAL(triggered()), m_qt4ProjectManager, SLOT(buildSubDirContextMenu()));
@@ -211,7 +212,7 @@ bool Qt4ProjectManagerPlugin::initialize(const QStringList &arguments, QString *
QIcon rebuildIcon = QIcon(QLatin1String(ProjectExplorer::Constants::ICON_REBUILD));
rebuildIcon.addFile(QLatin1String(ProjectExplorer::Constants::ICON_REBUILD_SMALL));
m_rebuildSubProjectContextMenu = new QAction(rebuildIcon, tr("Rebuild"), this);
- command = am->registerAction(m_rebuildSubProjectContextMenu, Constants::REBUILDSUBDIR, projectContext);
+ command = am->registerAction(m_rebuildSubProjectContextMenu, Constants::REBUILDSUBDIRCONTEXTMENU, projectContext);
command->setAttribute(Core::Command::CA_Hide);
msubproject->addAction(command, ProjectExplorer::Constants::G_PROJECT_BUILD);
connect(m_rebuildSubProjectContextMenu, SIGNAL(triggered()), m_qt4ProjectManager, SLOT(rebuildSubDirContextMenu()));
@@ -219,11 +220,35 @@ bool Qt4ProjectManagerPlugin::initialize(const QStringList &arguments, QString *
QIcon cleanIcon = QIcon(QLatin1String(ProjectExplorer::Constants::ICON_CLEAN));
cleanIcon.addFile(QLatin1String(ProjectExplorer::Constants::ICON_CLEAN_SMALL));
m_cleanSubProjectContextMenu = new QAction(cleanIcon, tr("Clean"), this);
- command = am->registerAction(m_cleanSubProjectContextMenu, Constants::CLEANSUBDIR, projectContext);
+ command = am->registerAction(m_cleanSubProjectContextMenu, Constants::CLEANSUBDIRCONTEXTMENU, projectContext);
command->setAttribute(Core::Command::CA_Hide);
msubproject->addAction(command, ProjectExplorer::Constants::G_PROJECT_BUILD);
connect(m_cleanSubProjectContextMenu, SIGNAL(triggered()), m_qt4ProjectManager, SLOT(cleanSubDirContextMenu()));
+ m_buildSubProjectAction = new Utils::ParameterAction(tr("Build Subproject"), tr("Build Subproject \"%1\""),
+ Utils::ParameterAction::EnabledWithParameter, this);
+ command = am->registerAction(m_buildSubProjectAction, Constants::BUILDSUBDIR, projectContext);
+ command->setAttribute(Core::Command::CA_UpdateText);
+ command->setDescription(m_buildSubProjectAction->text());
+ mbuild->addAction(command, ProjectExplorer::Constants::G_BUILD_PROJECT);
+ connect(m_buildSubProjectAction, SIGNAL(triggered()), m_qt4ProjectManager, SLOT(buildSubDirContextMenu()));
+
+ m_rebuildSubProjectAction = new Utils::ParameterAction(tr("Rebuild Subproject"), tr("Rebuild Subproject \"%1\""),
+ Utils::ParameterAction::EnabledWithParameter, this);
+ command = am->registerAction(m_rebuildSubProjectAction, Constants::REBUILDSUBDIR, projectContext);
+ command->setAttribute(Core::Command::CA_UpdateText);
+ command->setDescription(m_rebuildSubProjectAction->text());
+ mbuild->addAction(command, ProjectExplorer::Constants::G_BUILD_PROJECT);
+ connect(m_rebuildSubProjectAction, SIGNAL(triggered()), m_qt4ProjectManager, SLOT(rebuildSubDirContextMenu()));
+
+ m_cleanSubProjectAction = new Utils::ParameterAction(tr("Clean Subproject"), tr("Clean Subproject \"%1\""),
+ Utils::ParameterAction::EnabledWithParameter, this);
+ command = am->registerAction(m_cleanSubProjectAction, Constants::CLEANSUBDIR, projectContext);
+ command->setAttribute(Core::Command::CA_UpdateText);
+ command->setDescription(m_cleanSubProjectAction->text());
+ mbuild->addAction(command, ProjectExplorer::Constants::G_BUILD_PROJECT);
+ connect(m_cleanSubProjectAction, SIGNAL(triggered()), m_qt4ProjectManager, SLOT(cleanSubDirContextMenu()));
+
connect(m_projectExplorer,
SIGNAL(aboutToShowContextMenu(ProjectExplorer::Project*,ProjectExplorer::Node*)),
this, SLOT(updateContextMenu(ProjectExplorer::Project*,ProjectExplorer::Node*)));
@@ -233,7 +258,7 @@ bool Qt4ProjectManagerPlugin::initialize(const QStringList &arguments, QString *
connect(m_projectExplorer->session(), SIGNAL(startupProjectChanged(ProjectExplorer::Project*)),
this, SLOT(startupProjectChanged()));
connect(m_projectExplorer, SIGNAL(currentNodeChanged(ProjectExplorer::Node*,ProjectExplorer::Project*)),
- this, SLOT(currentNodeChanged(ProjectExplorer::Node*)));
+ this, SLOT(currentNodeChanged(ProjectExplorer::Node*,ProjectExplorer::Project*)));
Core::ActionContainer *contextMenu = am->createMenu(Qt4ProjectManager::Constants::M_CONTEXT);
@@ -353,9 +378,27 @@ void Qt4ProjectManagerPlugin::updateRunQMakeAction()
m_runQMakeAction->setEnabled(enable);
}
-void Qt4ProjectManagerPlugin::currentNodeChanged(ProjectExplorer::Node *node)
+void Qt4ProjectManagerPlugin::currentNodeChanged(ProjectExplorer::Node *node, ProjectExplorer::Project *project)
{
m_addLibraryActionContextMenu->setEnabled(qobject_cast<Qt4ProFileNode *>(node));
+
+ m_qt4ProjectManager->setContextNode(node ? node->projectNode() : 0);
+ m_qt4ProjectManager->setContextProject(project);
+
+ bool subProjectActionsVisible = node && (node->projectNode() != project->rootProjectNode());
+
+ QString subProjectName;
+ if (subProjectActionsVisible)
+ subProjectName = node->projectNode()->displayName();
+
+ m_buildSubProjectAction->setParameter(subProjectName);
+ m_rebuildSubProjectAction->setParameter(subProjectName);
+ m_cleanSubProjectAction->setParameter(subProjectName);
+
+ m_buildSubProjectAction->setVisible(subProjectActionsVisible);
+ m_rebuildSubProjectAction->setVisible(subProjectActionsVisible);
+ m_cleanSubProjectAction->setVisible(subProjectActionsVisible);
+
}
void Qt4ProjectManagerPlugin::buildStateChanged(ProjectExplorer::Project *pro)