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 <hjk@qt.io>
This commit is contained in:
Christian Kandeler
2020-02-18 17:08:36 +01:00
parent fee9bf9cb8
commit faf7e8f49a
2 changed files with 8 additions and 2 deletions

View File

@@ -103,6 +103,11 @@ void QbsSettings::setSettingsData(const QbsSettingsData &settings)
} }
} }
QbsSettingsData QbsSettings::rawSettingsData()
{
return instance().m_settings;
}
QbsSettings::QbsSettings() QbsSettings::QbsSettings()
{ {
loadSettings(); loadSettings();
@@ -148,8 +153,8 @@ public:
void apply() void apply()
{ {
QbsSettingsData settings; QbsSettingsData settings = QbsSettings::rawSettingsData();
if (m_qbsExePathChooser.isValid()) if (m_qbsExePathChooser.fileName() != QbsSettings::qbsExecutableFilePath())
settings.qbsExecutableFilePath = m_qbsExePathChooser.fileName(); settings.qbsExecutableFilePath = m_qbsExePathChooser.fileName();
settings.defaultInstallDirTemplate = m_defaultInstallDirLineEdit.text(); settings.defaultInstallDirTemplate = m_defaultInstallDirLineEdit.text();
settings.useCreatorSettings = m_settingsDirCheckBox.isChecked(); settings.useCreatorSettings = m_settingsDirCheckBox.isChecked();

View File

@@ -54,6 +54,7 @@ public:
static QString qbsSettingsBaseDir(); static QString qbsSettingsBaseDir();
static void setSettingsData(const QbsSettingsData &settings); static void setSettingsData(const QbsSettingsData &settings);
static QbsSettingsData rawSettingsData();
signals: signals:
void settingsChanged(); void settingsChanged();