aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/projectexplorer/targetsettingspanel.cpp
diff options
context:
space:
mode:
authorDaniel Teske <daniel.teske@theqtcompany.com>2015-07-28 18:29:52 +0200
committerDaniel Teske <daniel.teske@theqtcompany.com>2015-09-15 10:45:53 +0000
commit83951574268318969afea7c7ff00eaf8b089d121 (patch)
treef3a630aaa98455f9ce48b43fdb4fce9848340c82 /src/plugins/projectexplorer/targetsettingspanel.cpp
parentd5707e0e32b6dc0bfd3b07d43dba3e398c11dc5b (diff)
Project: Add a option to synchronize kits and build/deploy across projects
This is far from perfect but seems to work. Further work could add more fine grained control over which projects are affected by the automatic synchronize. Also there might be a few cases where the switching is over zealous or missing. Change-Id: I26ad3d59431251564917e4b408c66695dc454823 Task-number: QTCREATORBUG-5823 Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
Diffstat (limited to 'src/plugins/projectexplorer/targetsettingspanel.cpp')
-rw-r--r--src/plugins/projectexplorer/targetsettingspanel.cpp22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/plugins/projectexplorer/targetsettingspanel.cpp b/src/plugins/projectexplorer/targetsettingspanel.cpp
index c32f79d712..447ed76a9e 100644
--- a/src/plugins/projectexplorer/targetsettingspanel.cpp
+++ b/src/plugins/projectexplorer/targetsettingspanel.cpp
@@ -40,6 +40,7 @@
#include "projectwindow.h"
#include "propertiespanel.h"
#include "runsettingspropertiespage.h"
+#include "session.h"
#include "target.h"
#include "targetsettingswidget.h"
@@ -290,8 +291,7 @@ void TargetSettingsPanelWidget::currentTargetChanged(int targetIndex, int subInd
delete m_panelWidgets[1];
m_panelWidgets[1] = runPanel;
-
- m_project->setActiveTarget(target);
+ SessionManager::setActiveTarget(m_project, target, SetActive::Cascade);
}
void TargetSettingsPanelWidget::menuShown(int targetIndex)
@@ -307,7 +307,7 @@ void TargetSettingsPanelWidget::changeActionTriggered(QAction *action)
if (newTarget) {
m_project->addTarget(newTarget);
- m_project->setActiveTarget(newTarget);
+ SessionManager::setActiveTarget(m_project, newTarget, SetActive::Cascade);
m_project->removeTarget(sourceTarget);
}
}
@@ -319,7 +319,7 @@ void TargetSettingsPanelWidget::duplicateActionTriggered(QAction *action)
if (newTarget) {
m_project->addTarget(newTarget);
- m_project->setActiveTarget(newTarget);
+ SessionManager::setActiveTarget(m_project, newTarget, SetActive::Cascade);
}
}
@@ -363,12 +363,12 @@ Target *TargetSettingsPanelWidget::cloneTarget(Target *sourceTarget, Kit *k)
newBc->setDisplayName(sourceBc->displayName());
newTarget->addBuildConfiguration(newBc);
if (sourceTarget->activeBuildConfiguration() == sourceBc)
- newTarget->setActiveBuildConfiguration(newBc);
+ SessionManager::setActiveBuildConfiguration(newTarget, newBc, SetActive::NoCascade);
}
if (!newTarget->activeBuildConfiguration()) {
QList<BuildConfiguration *> bcs = newTarget->buildConfigurations();
if (!bcs.isEmpty())
- newTarget->setActiveBuildConfiguration(bcs.first());
+ SessionManager::setActiveBuildConfiguration(newTarget, bcs.first(), SetActive::NoCascade);
}
foreach (DeployConfiguration *sourceDc, sourceTarget->deployConfigurations()) {
@@ -385,12 +385,12 @@ Target *TargetSettingsPanelWidget::cloneTarget(Target *sourceTarget, Kit *k)
newDc->setDisplayName(sourceDc->displayName());
newTarget->addDeployConfiguration(newDc);
if (sourceTarget->activeDeployConfiguration() == sourceDc)
- newTarget->setActiveDeployConfiguration(newDc);
+ SessionManager::setActiveDeployConfiguration(newTarget, newDc, SetActive::NoCascade);
}
if (!newTarget->activeBuildConfiguration()) {
QList<DeployConfiguration *> dcs = newTarget->deployConfigurations();
if (!dcs.isEmpty())
- newTarget->setActiveDeployConfiguration(dcs.first());
+ SessionManager::setActiveDeployConfiguration(newTarget, dcs.first(), SetActive::NoCascade);
}
foreach (RunConfiguration *sourceRc, sourceTarget->runConfigurations()) {
@@ -671,9 +671,11 @@ void TargetSettingsPanelWidget::importTarget(const Utils::FileName &path)
QTC_ASSERT(bc, continue);
target->addBuildConfiguration(bc);
}
- m_project->setActiveTarget(target);
+
+ SessionManager::setActiveTarget(m_project, target, SetActive::Cascade);
+
if (target && bc)
- target->setActiveBuildConfiguration(bc);
+ SessionManager::setActiveBuildConfiguration(target, bc, SetActive::Cascade);
qDeleteAll(toImport);
}