diff options
author | Daniel Teske <daniel.teske@theqtcompany.com> | 2015-07-28 18:29:52 +0200 |
---|---|---|
committer | Daniel Teske <daniel.teske@theqtcompany.com> | 2015-09-15 10:45:53 +0000 |
commit | 83951574268318969afea7c7ff00eaf8b089d121 (patch) | |
tree | f3a630aaa98455f9ce48b43fdb4fce9848340c82 /src/plugins/projectexplorer/targetsettingspanel.cpp | |
parent | d5707e0e32b6dc0bfd3b07d43dba3e398c11dc5b (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.cpp | 22 |
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); } |