aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/projectexplorer/targetsetupwidget.cpp
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2019-08-22 13:52:10 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2019-08-26 16:02:26 +0000
commitdcea77f2dd18c5679f955612384aecac28822e58 (patch)
treef862afa3f15f5f6a81216b68d306f6f3ea8763fe /src/plugins/projectexplorer/targetsetupwidget.cpp
parent5ba05d9f790525635d781d1820a50d218db8ee15 (diff)
ProjectExplorer: Update build directories in target setup page
... on a kit update. Our default build directory template references the kit name, so changes to the name should update the default value. Fixes: QTCREATORBUG-19453 Change-Id: Iffbdd95043be5137696e5af021d4735f494d47d7 Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/plugins/projectexplorer/targetsetupwidget.cpp')
-rw-r--r--src/plugins/projectexplorer/targetsetupwidget.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/plugins/projectexplorer/targetsetupwidget.cpp b/src/plugins/projectexplorer/targetsetupwidget.cpp
index db738a105d..e6cbff1460 100644
--- a/src/plugins/projectexplorer/targetsetupwidget.cpp
+++ b/src/plugins/projectexplorer/targetsetupwidget.cpp
@@ -238,6 +238,7 @@ void TargetSetupWidget::update(const Kit::Predicate &predicate)
setEnabled(true);
m_detailsWidget->setIcon(kit()->isValid() ? kit()->icon() : Icons::CRITICAL.icon());
m_detailsWidget->setToolTip(m_kit->toHtml());
+ updateDefaultBuildDirectories();
}
const QList<BuildInfo> TargetSetupWidget::buildInfoList(const Kit *k, const FilePath &projectPath)
@@ -270,6 +271,24 @@ void TargetSetupWidget::clear()
emit selectedToggled();
}
+void TargetSetupWidget::updateDefaultBuildDirectories()
+{
+ for (const BuildInfo &buildInfo : buildInfoList(m_kit, m_projectPath)) {
+ if (!buildInfo.factory())
+ continue;
+ for (BuildInfoStore &buildInfoStore : m_infoStore) {
+ if (buildInfoStore.buildInfo.buildType == buildInfo.buildType) {
+ if (!buildInfoStore.customBuildDir) {
+ m_ignoreChange = true;
+ buildInfoStore.pathChooser->setFileName(buildInfo.buildDirectory);
+ m_ignoreChange = false;
+ }
+ break;
+ }
+ }
+ }
+}
+
void TargetSetupWidget::checkBoxToggled(bool b)
{
auto box = qobject_cast<QCheckBox *>(sender());
@@ -301,6 +320,7 @@ void TargetSetupWidget::pathChanged()
});
QTC_ASSERT(it != m_infoStore.end(), return);
it->buildInfo.buildDirectory = pathChooser->fileName();
+ it->customBuildDir = true;
reportIssues(static_cast<int>(std::distance(m_infoStore.begin(), it)));
}