aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/vcsbase/vcsbaseclientsettings.cpp
diff options
context:
space:
mode:
authorcerf <[email protected]>2011-08-16 08:29:37 +0000
committerTobias Hunger <[email protected]>2011-08-16 11:39:47 +0200
commit8c7e8966b80b2c21578218dc94164dfbb574bde6 (patch)
tree85c82acaa18371e6ba1e27ab6b4b2240c6dbd45d /src/plugins/vcsbase/vcsbaseclientsettings.cpp
parent97178a91fe834cfb1422c0715c7187dece34c905 (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.cpp15
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;
+}