From faf7e8f49ac33e1d65d2ec70cf8ccf6a371dce38 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Tue, 18 Feb 2020 17:08:36 +0100 Subject: [PATCH] QbsProjectManager: Do not store expanded qbs executable path ... unless it was explicitly set by the user. Otherwise, e.g. the derived Creator-internal path will end up verbatim in the settings, and this value will be wrong when switching the build dir etc. Change-Id: I89818e683f403e28855934e42b56f59892f260cc Reviewed-by: hjk --- src/plugins/qbsprojectmanager/qbssettings.cpp | 9 +++++++-- src/plugins/qbsprojectmanager/qbssettings.h | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/plugins/qbsprojectmanager/qbssettings.cpp b/src/plugins/qbsprojectmanager/qbssettings.cpp index 22d5059f4b3..34831b6cbe1 100644 --- a/src/plugins/qbsprojectmanager/qbssettings.cpp +++ b/src/plugins/qbsprojectmanager/qbssettings.cpp @@ -103,6 +103,11 @@ void QbsSettings::setSettingsData(const QbsSettingsData &settings) } } +QbsSettingsData QbsSettings::rawSettingsData() +{ + return instance().m_settings; +} + QbsSettings::QbsSettings() { loadSettings(); @@ -148,8 +153,8 @@ public: void apply() { - QbsSettingsData settings; - if (m_qbsExePathChooser.isValid()) + QbsSettingsData settings = QbsSettings::rawSettingsData(); + if (m_qbsExePathChooser.fileName() != QbsSettings::qbsExecutableFilePath()) settings.qbsExecutableFilePath = m_qbsExePathChooser.fileName(); settings.defaultInstallDirTemplate = m_defaultInstallDirLineEdit.text(); settings.useCreatorSettings = m_settingsDirCheckBox.isChecked(); diff --git a/src/plugins/qbsprojectmanager/qbssettings.h b/src/plugins/qbsprojectmanager/qbssettings.h index f5e2bd343c3..490c9c57433 100644 --- a/src/plugins/qbsprojectmanager/qbssettings.h +++ b/src/plugins/qbsprojectmanager/qbssettings.h @@ -54,6 +54,7 @@ public: static QString qbsSettingsBaseDir(); static void setSettingsData(const QbsSettingsData &settings); + static QbsSettingsData rawSettingsData(); signals: void settingsChanged();