diff options
author | cerf <[email protected]> | 2011-08-16 08:29:37 +0000 |
---|---|---|
committer | Tobias Hunger <[email protected]> | 2011-08-16 11:39:47 +0200 |
commit | 8c7e8966b80b2c21578218dc94164dfbb574bde6 (patch) | |
tree | 85c82acaa18371e6ba1e27ab6b4b2240c6dbd45d /src/plugins/vcsbase/vcsbaseclientsettings.cpp | |
parent | 97178a91fe834cfb1422c0715c7187dece34c905 (diff) |
vcsbase: fix confusing error when no binary specified
A special case is now supported when no VCS binary is specified (left
blank in options) then a default (fallback) binary is used instead.
Class VCSBaseClientSettings is now equipped with defaultBinary() and
setDefaultBinary(). Descendant classes can define the default binary
to be used when needed (see BazaarClientSettings for example).
Task-number: QTCREATORBUG-5666
Change-Id: I74c79df03f820996b31a1cd05201bd88ba5dd081
Merge-request: 364
Reviewed-by: Tobias Hunger <[email protected]>
Reviewed-on: http://codereview.qt.nokia.com/2996
Diffstat (limited to 'src/plugins/vcsbase/vcsbaseclientsettings.cpp')
-rw-r--r-- | src/plugins/vcsbase/vcsbaseclientsettings.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
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; +} |