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();