diff --git a/src/plugins/projectexplorer/buildmanager.cpp b/src/plugins/projectexplorer/buildmanager.cpp index dc58861cab0a54abcde86ef43b4ab02d5f6ff145..ad2742dac79fc45ac7abe350f1d5e4726a69dd22 100644 --- a/src/plugins/projectexplorer/buildmanager.cpp +++ b/src/plugins/projectexplorer/buildmanager.cpp @@ -414,12 +414,26 @@ bool BuildManager::buildQueueAppend(QList<BuildStep *> steps) void BuildManager::buildProjects(const QList<BuildConfiguration *> &configurations) { QList<BuildStep *> steps; - foreach(BuildConfiguration *bc, configurations) { + foreach(BuildConfiguration *bc, configurations) steps.append(bc->steps(BuildStep::Build)); - // TODO: Verify that this is indeed what we want. - steps.append(bc->steps(BuildStep::Deploy)); + + bool success = buildQueueAppend(steps); + if (!success) { + m_outputWindow->popup(false); + return; } + if (ProjectExplorerPlugin::instance()->projectExplorerSettings().showCompilerOutput) + m_outputWindow->popup(false); + startBuildQueue(); +} + +void BuildManager::deployProjects(const QList<BuildConfiguration *> &configurations) +{ + QList<BuildStep *> steps; + foreach(BuildConfiguration *bc, configurations) + steps.append(bc->steps(BuildStep::Deploy)); + bool success = buildQueueAppend(steps); if (!success) { m_outputWindow->popup(false); @@ -453,6 +467,11 @@ void BuildManager::buildProject(BuildConfiguration *configuration) buildProjects(QList<BuildConfiguration *>() << configuration); } +void BuildManager::deployProject(BuildConfiguration *configuration) +{ + deployProjects(QList<BuildConfiguration *>() << configuration); +} + void BuildManager::cleanProject(BuildConfiguration *configuration) { cleanProjects(QList<BuildConfiguration *>() << configuration); diff --git a/src/plugins/projectexplorer/buildmanager.h b/src/plugins/projectexplorer/buildmanager.h index 45b2218d4c592e0123251791d82bfa9dd96d814e..9d60ebff212c495e937dbeb29c6ce691dbeb5b6e 100644 --- a/src/plugins/projectexplorer/buildmanager.h +++ b/src/plugins/projectexplorer/buildmanager.h @@ -74,6 +74,8 @@ public: void buildProject(BuildConfiguration *bc); void buildProjects(const QList<BuildConfiguration *> &configurations); + void deployProject(BuildConfiguration *bc); + void deployProjects(const QList<BuildConfiguration *> &configurations); void cleanProject(BuildConfiguration *configuration); void cleanProjects(const QList<BuildConfiguration *> &configurations); bool isBuilding(Project *p); diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index ad0cebcde447729bd967170eacc852a3f3b520c7..f9142768820b7f836ffbbf518d19dfb805e12001 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -146,6 +146,10 @@ struct ProjectExplorerPluginPrivate { Utils::ParameterAction *m_rebuildActionContextMenu; QAction *m_rebuildSessionAction; QAction *m_cleanProjectOnlyAction; + QAction *m_deployProjectOnlyAction; + Utils::ParameterAction *m_deployAction; + Utils::ParameterAction *m_deployActionContextMenu; + QAction *m_deploySessionAction; Utils::ParameterAction *m_cleanAction; Utils::ParameterAction *m_cleanActionContextMenu; QAction *m_cleanSessionAction; @@ -569,6 +573,12 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er mbuild->addAction(cmd, Constants::G_BUILD_SESSION); msessionContextMenu->addAction(cmd, Constants::G_SESSION_BUILD); + // deploy session + d->m_deploySessionAction = new QAction(tr("Deploy All"), this); + cmd = am->registerAction(d->m_deploySessionAction, Constants::DEPLOYSESSION, globalcontext); + mbuild->addAction(cmd, Constants::G_BUILD_SESSION); + msessionContextMenu->addAction(cmd, Constants::G_SESSION_BUILD); + // clean session QIcon cleanIcon(Constants::ICON_CLEAN); cleanIcon.addFile(Constants::ICON_CLEAN_SMALL); @@ -594,6 +604,14 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er cmd->setDefaultText(d->m_rebuildAction->text()); mbuild->addAction(cmd, Constants::G_BUILD_PROJECT); + // deploy action + d->m_deployAction = new Utils::ParameterAction(tr("Deploy Project"), tr("Deploy Project \"%1\""), + Utils::ParameterAction::AlwaysEnabled, this); + cmd = am->registerAction(d->m_deployAction, Constants::DEPLOY, globalcontext); + cmd->setAttribute(Core::Command::CA_UpdateText); + cmd->setDefaultText(d->m_deployAction->text()); + mbuild->addAction(cmd, Constants::G_BUILD_PROJECT); + // clean action d->m_cleanAction = new Utils::ParameterAction(tr("Clean Project"), tr("Clean Project \"%1\""), Utils::ParameterAction::AlwaysEnabled, this); @@ -618,6 +636,14 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er cmd->setDefaultText(d->m_rebuildActionContextMenu->text()); mproject->addAction(cmd, Constants::G_PROJECT_BUILD); + // deploy action (context menu) + d->m_deployActionContextMenu = new Utils::ParameterAction(tr("Deploy Project"), tr("Deploy Project \"%1\""), + Utils::ParameterAction::AlwaysEnabled, this); + cmd = am->registerAction(d->m_rebuildActionContextMenu, Constants::DEPLOYCM, globalcontext); + cmd->setAttribute(Core::Command::CA_UpdateText); + cmd->setDefaultText(d->m_deployActionContextMenu->text()); + mproject->addAction(cmd, Constants::G_PROJECT_BUILD); + // clean action (context menu) d->m_cleanActionContextMenu = new Utils::ParameterAction(tr("Clean Project"), tr("Clean Project \"%1\""), Utils::ParameterAction::AlwaysEnabled, this); @@ -634,6 +660,10 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er d->m_rebuildProjectOnlyAction = new QAction(tr("Rebuild Without Dependencies"), this); cmd = am->registerAction(d->m_rebuildProjectOnlyAction, Constants::REBUILDPROJECTONLY, globalcontext); + // deploy without dependencies action + d->m_deployProjectOnlyAction = new QAction(tr("Deploy Without Dependencies"), this); + cmd = am->registerAction(d->m_deployProjectOnlyAction, Constants::DEPLOYPROJECTONLY, globalcontext); + // clean without dependencies action d->m_cleanProjectOnlyAction = new QAction(tr("Clean Without Dependencies"), this); cmd = am->registerAction(d->m_cleanProjectOnlyAction, Constants::CLEANPROJECTONLY, globalcontext); @@ -748,7 +778,8 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er } if (QSettings *s = core->settings()) { - d->m_projectExplorerSettings.buildBeforeRun = s->value("ProjectExplorer/Settings/BuildBeforeRun", true).toBool(); + d->m_projectExplorerSettings.buildBeforeDeploy = s->value("ProjectExplorer/Settings/BuildBeforeDeploy", true).toBool(); + d->m_projectExplorerSettings.deployBeforeRun = s->value("ProjectExplorer/Settings/DeployBeforeRun", true).toBool(); d->m_projectExplorerSettings.saveBeforeBuild = s->value("ProjectExplorer/Settings/SaveBeforeBuild", false).toBool(); d->m_projectExplorerSettings.showCompilerOutput = s->value("ProjectExplorer/Settings/ShowCompilerOutput", false).toBool(); d->m_projectExplorerSettings.cleanOldAppOutput = s->value("ProjectExplorer/Settings/CleanOldAppOutput", false).toBool(); @@ -771,6 +802,10 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er connect(d->m_rebuildAction, SIGNAL(triggered()), this, SLOT(rebuildProject())); connect(d->m_rebuildActionContextMenu, SIGNAL(triggered()), this, SLOT(rebuildProjectContextMenu())); connect(d->m_rebuildSessionAction, SIGNAL(triggered()), this, SLOT(rebuildSession())); + connect(d->m_deployProjectOnlyAction, SIGNAL(triggered()), this, SLOT(deployProjectOnly())); + connect(d->m_deployAction, SIGNAL(triggered()), this, SLOT(deployProject())); + connect(d->m_deployActionContextMenu, SIGNAL(triggered()), this, SLOT(deployProjectContextMenu())); + connect(d->m_deploySessionAction, SIGNAL(triggered()), this, SLOT(deploySession())); connect(d->m_cleanProjectOnlyAction, SIGNAL(triggered()), this, SLOT(cleanProjectOnly())); connect(d->m_cleanAction, SIGNAL(triggered()), this, SLOT(cleanProject())); connect(d->m_cleanActionContextMenu, SIGNAL(triggered()), this, SLOT(cleanProjectContextMenu())); @@ -998,7 +1033,8 @@ void ProjectExplorerPlugin::savePersistentSettings() s->setValue("ProjectExplorer/RecentProjects/FileNames", fileNames); s->setValue("ProjectExplorer/RecentProjects/DisplayNames", displayNames); - s->setValue("ProjectExplorer/Settings/BuildBeforeRun", d->m_projectExplorerSettings.buildBeforeRun); + s->setValue("ProjectExplorer/Settings/BuildBeforeDeploy", d->m_projectExplorerSettings.buildBeforeDeploy); + s->setValue("ProjectExplorer/Settings/DeployBeforeRun", d->m_projectExplorerSettings.deployBeforeRun); s->setValue("ProjectExplorer/Settings/SaveBeforeBuild", d->m_projectExplorerSettings.saveBeforeBuild); s->setValue("ProjectExplorer/Settings/ShowCompilerOutput", d->m_projectExplorerSettings.showCompilerOutput); s->setValue("ProjectExplorer/Settings/CleanOldAppOutput", d->m_projectExplorerSettings.cleanOldAppOutput); @@ -1261,7 +1297,6 @@ void ProjectExplorerPlugin::executeRunConfiguration(RunConfiguration *runConfigu RunControl *control = runControlFactory->create(runConfiguration, runMode); startRunControl(control, runMode); } - } void ProjectExplorerPlugin::startRunControl(RunControl *runControl, const QString &runMode) @@ -1362,19 +1397,18 @@ void ProjectExplorerPlugin::updateActions() if (debug) qDebug() << "ProjectExplorerPlugin::updateActions"; - Project *startupProject = session()->startupProject(); - bool enableBuildActions = startupProject - && ! (d->m_buildManager->isBuilding(startupProject)) - && hasBuildSettings(startupProject); + Project *project = startupProject(); + bool enableBuildActions = project + && ! (d->m_buildManager->isBuilding(project)) + && hasBuildSettings(project); bool enableBuildActionsContextMenu = d->m_currentProject && ! (d->m_buildManager->isBuilding(d->m_currentProject)) && hasBuildSettings(d->m_currentProject); - bool hasProjects = !d->m_session->projects().isEmpty(); bool building = d->m_buildManager->isBuilding(); - QString projectName = startupProject ? startupProject->displayName() : QString(); + QString projectName = project ? project->displayName() : QString(); QString projectNameContextMenu = d->m_currentProject ? d->m_currentProject->displayName() : QString(); if (debug) @@ -1411,7 +1445,7 @@ void ProjectExplorerPlugin::updateActions() d->m_projectSelectorAction->setEnabled(!session()->projects().isEmpty()); d->m_projectSelectorActionMenu->setEnabled(!session()->projects().isEmpty()); - updateRunActions(); + updateDeployActions(); } // NBS TODO check projectOrder() @@ -1575,6 +1609,54 @@ void ProjectExplorerPlugin::rebuildSession() } } +void ProjectExplorerPlugin::deployProjectOnly() +{ + if (!saveModifiedFiles()) + return; + d->m_buildManager->deployProject(session()->startupProject()->activeTarget()->activeBuildConfiguration()); +} + +void ProjectExplorerPlugin::deployProject() +{ + if (!saveModifiedFiles()) + return; + + const QList<Project *> &projects = d->m_session->projectOrder(session()->startupProject()); + QList<BuildConfiguration *> configurations; + foreach (Project *pro, projects) + if (pro->activeTarget()->activeBuildConfiguration()) + configurations << pro->activeTarget()->activeBuildConfiguration(); + + d->m_buildManager->deployProjects(configurations); +} + +void ProjectExplorerPlugin::deployProjectContextMenu() +{ + if (!saveModifiedFiles()) + return; + + QList<BuildConfiguration *> configurations; + foreach (Project *pro, d->m_session->projectOrder(d->m_currentProject)) + if (pro->activeTarget()->activeBuildConfiguration()) + configurations << pro->activeTarget()->activeBuildConfiguration(); + + d->m_buildManager->deployProjects(configurations); +} + +void ProjectExplorerPlugin::deploySession() +{ + if (!saveModifiedFiles()) + return; + + const QList<Project *> & projects = d->m_session->projectOrder(); + QList<BuildConfiguration *> configurations; + foreach (Project *pro, projects) + if (pro->activeTarget()->activeBuildConfiguration()) + configurations << pro->activeTarget()->activeBuildConfiguration(); + + d->m_buildManager->deployProjects(configurations); +} + void ProjectExplorerPlugin::cleanProjectOnly() { if (debug) @@ -1648,34 +1730,58 @@ bool ProjectExplorerPlugin::hasBuildSettings(Project *pro) return false; } +bool ProjectExplorerPlugin::hasDeploySettings(Project *pro) +{ + const QList<Project *> & projects = d->m_session->projectOrder(pro); + foreach(Project *project, projects) + if (project->activeTarget()->activeBuildConfiguration() && + !project->activeTarget()->activeBuildConfiguration()->steps(BuildStep::Deploy).isEmpty()) + return true; + return false; +} + void ProjectExplorerPlugin::runProjectImpl(Project *pro, QString mode) { if (!pro) return; - if (d->m_projectExplorerSettings.buildBeforeRun && hasBuildSettings(pro)) { - if (!pro->activeTarget()->activeRunConfiguration()->isEnabled()) { - if (!showBuildConfigDialog()) + if (!pro->activeTarget()->activeRunConfiguration()->isEnabled()) { + if (!showBuildConfigDialog()) + return; + } + + if (!saveModifiedFiles()) + return; + + bool delayRun = false; + // Deploy/build first? + if (d->m_projectExplorerSettings.deployBeforeRun) { + const QList<Project *> & projects = d->m_session->projectOrder(pro); + QList<BuildConfiguration *> configurations; + foreach(Project *project, projects) + if (project->activeTarget()->activeBuildConfiguration()) + configurations << project->activeTarget()->activeBuildConfiguration(); + + if (d->m_projectExplorerSettings.buildBeforeDeploy && hasBuildSettings(pro)) { + if (!d->m_buildManager->buildProjects(configurations)) return; + delayRun = true; } - if (saveModifiedFiles()) { - d->m_runMode = mode; - d->m_delayedRunConfiguration = pro->activeTarget()->activeRunConfiguration(); - - const QList<Project *> & projects = d->m_session->projectOrder(pro); - QList<BuildConfiguration *> configurations; - foreach(Project *project, projects) - if (project->activeTarget()->activeBuildConfiguration()) - configurations << project->activeTarget()->activeBuildConfiguration(); - d->m_buildManager->buildProjects(configurations); - - updateRunActions(); + if (hasDeploySettings(pro)) { + if (!d->m_buildManager->deployProjects(configurations)) + return; + delayRun = true; } + } + + // Actually run (delayed) + if (delayRun) { + d->m_runMode = mode; + d->m_delayedRunConfiguration = pro->activeTarget()->activeRunConfiguration(); } else { - // TODO this ignores RunConfiguration::isEnabled() - if (saveModifiedFiles()) - executeRunConfiguration(pro->activeTarget()->activeRunConfiguration(), mode); + executeRunConfiguration(pro->activeTarget()->activeRunConfiguration(), mode); } + updateRunActions(); } void ProjectExplorerPlugin::debugProject() @@ -1735,7 +1841,7 @@ void ProjectExplorerPlugin::startupProjectChanged() this, SLOT(updateRunActions())); disconnect(previousStartupProject, SIGNAL(activeTargetChanged(ProjectExplorer::Target*)), - this, SLOT(updateRunActions())); + this, SLOT(updateDeployActions())); disconnect(previousStartupProject->activeTarget()->activeRunConfiguration(), SIGNAL(isEnabledChanged(bool)), this, SLOT(updateRunActions())); @@ -1748,7 +1854,7 @@ void ProjectExplorerPlugin::startupProjectChanged() if (project) { connect(project, SIGNAL(activeTargetChanged(ProjectExplorer::Target*)), - this, SLOT(updateRunActions())); + this, SLOT(updateDeployActions())); connect(project->activeTarget(), SIGNAL(activeRunConfigurationChanged(ProjectExplorer::RunConfiguration*)), this, SLOT(updateRunActions())); @@ -1776,6 +1882,35 @@ IRunControlFactory *ProjectExplorerPlugin::findRunControlFactory(RunConfiguratio return 0; } +void ProjectExplorerPlugin::updateDeployActions() +{ + Project *project = startupProject(); + + bool enableDeployActions = project + && ! (d->m_buildManager->isBuilding(project)) + && hasDeploySettings(project); + bool enableDeployActionsContextMenu = d->m_currentProject + && ! (d->m_buildManager->isBuilding(d->m_currentProject)) + && hasDeploySettings(d->m_currentProject); + + const QString projectName = project ? project->displayName() : QString(); + const QString projectNameContextMenu = d->m_currentProject ? d->m_currentProject->displayName() : QString(); + bool hasProjects = !d->m_session->projects().isEmpty(); + bool building = d->m_buildManager->isBuilding(); + + d->m_deployAction->setParameter(projectName); + d->m_deployAction->setEnabled(enableDeployActions); + + d->m_deployActionContextMenu->setParameter(projectNameContextMenu); + d->m_deployActionContextMenu->setEnabled(enableDeployActionsContextMenu); + + d->m_deployProjectOnlyAction->setEnabled(enableDeployActions); + + d->m_deploySessionAction->setEnabled(hasProjects && !building); + + updateRunActions(); +} + void ProjectExplorerPlugin::updateRunActions() { const Project *project = startupProject(); diff --git a/src/plugins/projectexplorer/projectexplorer.h b/src/plugins/projectexplorer/projectexplorer.h index 13491c336488de2209ef0baffc98c1a34168bf96..2b767b3d3f90936185eb352cec2d918c601f5012 100644 --- a/src/plugins/projectexplorer/projectexplorer.h +++ b/src/plugins/projectexplorer/projectexplorer.h @@ -140,6 +140,10 @@ private slots: void rebuildProject(); void rebuildProjectContextMenu(); void rebuildSession(); + void deployProjectOnly(); + void deployProject(); + void deployProjectContextMenu(); + void deploySession(); void cleanProjectOnly(); void cleanProject(); void cleanProjectContextMenu(); @@ -182,6 +186,7 @@ private slots: void runControlFinished(); void startupProjectChanged(); // Calls updateRunAction + void updateDeployActions(); void updateRunActions(); void loadProject(const QString &project) { openProject(project); } @@ -207,6 +212,8 @@ private: void runProjectImpl(Project *pro, QString mode); void executeRunConfiguration(RunConfiguration *, const QString &mode); bool hasBuildSettings(Project *pro); + bool hasDeploySettings(Project *pro); + bool showBuildConfigDialog(); void setCurrent(Project *project, QString filePath, Node *node); diff --git a/src/plugins/projectexplorer/projectexplorerconstants.h b/src/plugins/projectexplorer/projectexplorerconstants.h index 5a09c20c614f25a8966a6534ee4f6449613709bd..e25693ca974ffdef2d7a4b21e749ee580df49a7b 100644 --- a/src/plugins/projectexplorer/projectexplorerconstants.h +++ b/src/plugins/projectexplorer/projectexplorerconstants.h @@ -53,6 +53,10 @@ const char * const REBUILDPROJECTONLY = "ProjectExplorer.RebuildProjectOnly"; const char * const REBUILD = "ProjectExplorer.Rebuild"; const char * const REBUILDCM = "ProjectExplorer.RebuildCM"; const char * const REBUILDSESSION = "ProjectExplorer.RebuildSession"; +const char * const DEPLOYPROJECTONLY = "ProjectExplorer.DeployProjectOnly"; +const char * const DEPLOY = "ProjectExplorer.Deploy"; +const char * const DEPLOYCM = "ProjectExplorer.DeployCM"; +const char * const DEPLOYSESSION = "ProjectExplorer.DeploySession"; const char * const CLEANPROJECTONLY = "ProjectExplorer.CleanProjectOnly"; const char * const CLEAN = "ProjectExplorer.Clean"; const char * const CLEANCM = "ProjectExplorer.CleanCM"; diff --git a/src/plugins/projectexplorer/projectexplorersettings.h b/src/plugins/projectexplorer/projectexplorersettings.h index 74b6f1c3637ba07866e1e566465552704e553cde..256f4ef263923119889ec4d1256e235f4e59a24c 100644 --- a/src/plugins/projectexplorer/projectexplorersettings.h +++ b/src/plugins/projectexplorer/projectexplorersettings.h @@ -37,11 +37,11 @@ namespace Internal { struct ProjectExplorerSettings { - ProjectExplorerSettings() : buildBeforeRun(true), saveBeforeBuild(false), - showCompilerOutput(false), - cleanOldAppOutput(false), useJom(true) {} + ProjectExplorerSettings() : buildBeforeDeploy(true), deployBeforeRun(true), saveBeforeBuild(false), + showCompilerOutput(false), cleanOldAppOutput(false), useJom(true) {} - bool buildBeforeRun; + bool buildBeforeDeploy; + bool deployBeforeRun; bool saveBeforeBuild; bool showCompilerOutput; bool cleanOldAppOutput; @@ -54,7 +54,8 @@ struct ProjectExplorerSettings inline bool operator==(const ProjectExplorerSettings &p1, const ProjectExplorerSettings &p2) { - return p1.buildBeforeRun == p2.buildBeforeRun + return p1.buildBeforeDeploy == p2.buildBeforeDeploy + && p1.deployBeforeRun == p2.deployBeforeRun && p1.saveBeforeBuild == p2.saveBeforeBuild && p1.showCompilerOutput == p2.showCompilerOutput && p1.cleanOldAppOutput == p2.cleanOldAppOutput diff --git a/src/plugins/projectexplorer/projectexplorersettingspage.cpp b/src/plugins/projectexplorer/projectexplorersettingspage.cpp index 806b9b4570c7c2968e2d9b8f757183bb6c2742d7..71f6ed60d9e21a67c7d405d3dec02d0fb3a743b2 100644 --- a/src/plugins/projectexplorer/projectexplorersettingspage.cpp +++ b/src/plugins/projectexplorer/projectexplorersettingspage.cpp @@ -65,7 +65,8 @@ void ProjectExplorerSettingsWidget::setJomVisible(bool v) ProjectExplorerSettings ProjectExplorerSettingsWidget::settings() const { ProjectExplorerSettings pes; - pes.buildBeforeRun = m_ui.buildProjectBeforeRunCheckBox->isChecked(); + pes.buildBeforeDeploy = m_ui.buildProjectBeforeDeployCheckBox->isChecked(); + pes.deployBeforeRun = m_ui.deployProjectBeforeRunCheckBox->isChecked(); pes.saveBeforeBuild = m_ui.saveAllFilesCheckBox->isChecked(); pes.showCompilerOutput = m_ui.showCompileOutputCheckBox->isChecked(); pes.cleanOldAppOutput = m_ui.cleanOldAppOutputCheckBox->isChecked(); @@ -75,7 +76,8 @@ ProjectExplorerSettings ProjectExplorerSettingsWidget::settings() const void ProjectExplorerSettingsWidget::setSettings(const ProjectExplorerSettings &pes) const { - m_ui.buildProjectBeforeRunCheckBox->setChecked(pes.buildBeforeRun); + m_ui.buildProjectBeforeDeployCheckBox->setChecked(pes.buildBeforeDeploy); + m_ui.deployProjectBeforeRunCheckBox->setChecked(pes.deployBeforeRun); m_ui.saveAllFilesCheckBox->setChecked(pes.saveBeforeBuild); m_ui.showCompileOutputCheckBox->setChecked(pes.showCompilerOutput); m_ui.cleanOldAppOutputCheckBox->setChecked(pes.cleanOldAppOutput); diff --git a/src/plugins/projectexplorer/projectexplorersettingspage.ui b/src/plugins/projectexplorer/projectexplorersettingspage.ui index a08005b5f3ab3bf3bcc449a6ab500fb9f553ffce..dc0c30526d12399945b2c1656aa3b8c57f5f4dcf 100644 --- a/src/plugins/projectexplorer/projectexplorersettingspage.ui +++ b/src/plugins/projectexplorer/projectexplorersettingspage.ui @@ -63,9 +63,16 @@ </widget> </item> <item> - <widget class="QCheckBox" name="buildProjectBeforeRunCheckBox"> + <widget class="QCheckBox" name="buildProjectBeforeDeployCheckBox"> <property name="text"> - <string>Always build project before running</string> + <string>Always build project before deploying it</string> + </property> + </widget> + </item> + <item> + <widget class="QCheckBox" name="deployProjectBeforeRunCheckBox"> + <property name="text"> + <string>Always deploy project before running it</string> </property> </widget> </item>