diff --git a/src/plugins/bazaar/bazaarsettings.cpp b/src/plugins/bazaar/bazaarsettings.cpp index c0d650c4ca0..bede461bc5f 100644 --- a/src/plugins/bazaar/bazaarsettings.cpp +++ b/src/plugins/bazaar/bazaarsettings.cpp @@ -54,7 +54,7 @@ BazaarSettings::BazaarSettings() : logFormat(QLatin1String("long")) { setSettingsGroup(QLatin1String(Constants::BAZAAR)); - setBinary(QLatin1String(Constants::BAZAARDEFAULT)); + setDefaultBinary(QLatin1String(Constants::BAZAARDEFAULT)); } BazaarSettings& BazaarSettings::operator=(const BazaarSettings& other) diff --git a/src/plugins/mercurial/mercurialsettings.cpp b/src/plugins/mercurial/mercurialsettings.cpp index 6c52885262d..a0643394c30 100644 --- a/src/plugins/mercurial/mercurialsettings.cpp +++ b/src/plugins/mercurial/mercurialsettings.cpp @@ -46,7 +46,7 @@ namespace Internal { diffIgnoreBlankLines(false) { setSettingsGroup(QLatin1String("Mercurial")); - setBinary(QLatin1String(Constants::MERCURIALDEFAULT)); + setDefaultBinary(QLatin1String(Constants::MERCURIALDEFAULT)); } MercurialSettings& MercurialSettings::operator=(const MercurialSettings& other) diff --git a/src/plugins/vcsbase/vcsbaseclientsettings.cpp b/src/plugins/vcsbase/vcsbaseclientsettings.cpp index 65e85dcf221..df83a1b5903 100644 --- a/src/plugins/vcsbase/vcsbaseclientsettings.cpp +++ b/src/plugins/vcsbase/vcsbaseclientsettings.cpp @@ -47,7 +47,6 @@ enum { timeOutDefaultSeconds = 30 }; */ VCSBaseClientSettings::VCSBaseClientSettings() : - m_binary(), m_logCount(0), m_prompt(true), m_timeoutSeconds(timeOutDefaultSeconds) @@ -59,6 +58,8 @@ VCSBaseClientSettings::~VCSBaseClientSettings() QString VCSBaseClientSettings::binary() const { + if (m_binary.isEmpty()) + return defaultBinary(); // Fallback binary if not specified return m_binary; } @@ -154,7 +155,7 @@ void VCSBaseClientSettings::writeSettings(QSettings *settings) const void VCSBaseClientSettings::readSettings(const QSettings *settings) { const QString keyRoot = settingsGroup() + QLatin1Char('/'); - m_binary = settings->value(keyRoot + QLatin1String("VCS_Path"), QString()).toString(); + m_binary = settings->value(keyRoot + QLatin1String("VCS_Path"), defaultBinary()).toString(); m_user = settings->value(keyRoot + QLatin1String("VCS_Username"), QString()).toString(); m_mail = settings->value(keyRoot + QLatin1String("VCS_Email"), QString()).toString(); m_logCount = settings->value(keyRoot + QLatin1String("VCS_LogCount"), QString()).toInt(); @@ -169,3 +170,13 @@ bool VCSBaseClientSettings::equals(const VCSBaseClientSettings &rhs) const && m_logCount == rhs.m_logCount && m_prompt == rhs.m_prompt && m_timeoutSeconds == rhs.m_timeoutSeconds; } + +QString VCSBaseClientSettings::defaultBinary() const +{ + return m_defaultBinary; +} + +void VCSBaseClientSettings::setDefaultBinary(const QString &bin) +{ + m_defaultBinary = bin; +} diff --git a/src/plugins/vcsbase/vcsbaseclientsettings.h b/src/plugins/vcsbase/vcsbaseclientsettings.h index 38171500b1e..9553b009e3a 100644 --- a/src/plugins/vcsbase/vcsbaseclientsettings.h +++ b/src/plugins/vcsbase/vcsbaseclientsettings.h @@ -79,8 +79,13 @@ public: virtual bool equals(const VCSBaseClientSettings &rhs) const; +protected: + QString defaultBinary() const; + void setDefaultBinary(const QString &bin); + private: QString m_binary; + QString m_defaultBinary; QStringList m_standardArguments; QString m_user; QString m_mail;