diff options
author | Tobias Hunger <tobias.hunger@qt.io> | 2017-09-29 23:34:52 +0200 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@qt.io> | 2017-10-24 11:10:30 +0000 |
commit | 3f73f3a4f408c855666f55889584df26948e0749 (patch) | |
tree | 473c87e146e191dfd6a14633ff50210dcd2f042b /src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp | |
parent | f4cd9cdb6af19a1338a79f7c1f16964de14399de (diff) |
CMake: Fix "CMake settings have changed on disk"
* Improve the UI by showing settings in CMake and the project
* Fix setting CMake configuration to project
Change-Id: I6e127344551fa00f3f7e6170465cb3dda2e4a634
Task-number: QTCREATORBUG-17555
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Diffstat (limited to 'src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp')
-rw-r--r-- | src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp b/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp index 0abe72fd7d..6813b234a4 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp @@ -286,7 +286,7 @@ CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildConfiguration *bc) connect(m_resetButton, &QPushButton::clicked, m_configModel, &ConfigModel::resetAllChanges); connect(m_reconfigureButton, &QPushButton::clicked, this, [this]() { - m_buildConfiguration->setConfigurationForCMake(m_configModel->configurationChanges()); + m_buildConfiguration->setConfigurationForCMake(m_configModel->configurationForCMake()); }); connect(m_unsetButton, &QPushButton::clicked, this, [this]() { m_configModel->toggleUnsetFlag(mapToSource(m_configView, m_configView->currentIndex())); @@ -320,7 +320,12 @@ CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildConfiguration *bc) connect(m_buildConfiguration->target(), &ProjectExplorer::Target::kitChanged, this, &CMakeBuildSettingsWidget::updateFromKit); connect(m_buildConfiguration, &CMakeBuildConfiguration::enabledChanged, - this, [this]() { setError(m_buildConfiguration->disabledReason()); }); + this, [this]() { + setError(m_buildConfiguration->disabledReason()); + setConfigurationForCMake(); + }); + connect(m_buildConfiguration, &CMakeBuildConfiguration::configurationForCMakeChanged, + this, [this]() { setConfigurationForCMake(); }); updateSelection(QModelIndex(), QModelIndex()); } @@ -381,7 +386,19 @@ void CMakeBuildSettingsWidget::updateFromKit() for (const CMakeConfigItem &i : config) configHash.insert(QString::fromUtf8(i.key), i.expandedValue(k)); - m_configModel->setKitConfiguration(configHash); + m_configModel->setConfigurationFromKit(configHash); +} + +void CMakeBuildSettingsWidget::setConfigurationForCMake() +{ + QHash<QString, QString> config; + const CMakeConfig configList = m_buildConfiguration->configurationForCMake(); + for (const CMakeConfigItem &i : configList) { + config.insert(QString::fromUtf8(i.key), + CMakeConfigItem::expandedValueOf(m_buildConfiguration->target()->kit(), + i.key, configList)); + } + m_configModel->setConfigurationForCMake(config); } void CMakeBuildSettingsWidget::updateSelection(const QModelIndex ¤t, const QModelIndex &previous) |