diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2019-08-22 13:52:10 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2019-08-26 16:02:26 +0000 |
commit | dcea77f2dd18c5679f955612384aecac28822e58 (patch) | |
tree | f862afa3f15f5f6a81216b68d306f6f3ea8763fe /src/plugins/projectexplorer/targetsetupwidget.cpp | |
parent | 5ba05d9f790525635d781d1820a50d218db8ee15 (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.cpp | 20 |
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))); } |