diff --git a/src/plugins/git/gerrit/gerritplugin.cpp b/src/plugins/git/gerrit/gerritplugin.cpp index e6c7a6ad2fd879f9acdc4219917d3f31708c29b0..be359a69580bc541d75146b4fe3b48bd75b8c97b 100644 --- a/src/plugins/git/gerrit/gerritplugin.cpp +++ b/src/plugins/git/gerrit/gerritplugin.cpp @@ -404,12 +404,9 @@ void GerritPlugin::push() Utils::FileName GerritPlugin::gitBinary() { - bool ok; - const Utils::FileName git = gitClient()->vcsBinary(&ok); - if (!ok) { + const Utils::FileName git = gitClient()->vcsBinary(); + if (git.isEmpty()) VcsBase::VcsOutputWindow::appendError(tr("Git is not available.")); - return Utils::FileName(); - } return git; } diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index 395aa92ad4d05aa3f17af8b0da03906f9cebc00a..927baf8e113cae66e8a34a5d7a185b6df1a45740 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -2452,9 +2452,11 @@ bool GitClient::tryLauchingGitK(const QProcessEnvironment &env, } bool GitClient::launchGitGui(const QString &workingDirectory) { - bool success; - FileName gitBinary = vcsBinary(&success); - if (success) { + bool success = true; + FileName gitBinary = vcsBinary(); + if (gitBinary.isEmpty()) { + success = false; + } else { success = QProcess::startDetached(gitBinary.toString(), QStringList(QLatin1String("gui")), workingDirectory); } @@ -2483,14 +2485,13 @@ FileName GitClient::gitBinDirectory() return FileName::fromString(path); } -FileName GitClient::vcsBinary(bool *ok, QString *errorMessage) const +FileName GitClient::vcsBinary() const { - return static_cast<GitSettings &>(settings()).gitExecutable(ok, errorMessage); -} - -int GitClient::vcsTimeout() const -{ - return settings().intValue(GitSettings::timeoutKey); + bool ok; + Utils::FileName binary = static_cast<GitSettings &>(settings()).gitExecutable(&ok); + if (!ok) + return Utils::FileName(); + return binary; } QTextCodec *GitClient::encoding(const QString &workingDirectory, const QByteArray &configVar) const diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h index ff1854fecca1c4c3a454176e20832b5fc471dd4f..4222db9526a70755707dedc4b80a1981360ef51c 100644 --- a/src/plugins/git/gitclient.h +++ b/src/plugins/git/gitclient.h @@ -140,8 +140,7 @@ public: explicit GitClient(); - Utils::FileName vcsBinary(bool *ok = 0, QString *errorMessage = 0) const; - int vcsTimeout() const; + Utils::FileName vcsBinary() const; unsigned gitVersion(QString *errorMessage = 0) const; QString findRepositoryForDirectory(const QString &dir) const; diff --git a/src/plugins/git/gitversioncontrol.cpp b/src/plugins/git/gitversioncontrol.cpp index 562501b7c042dd98aa25b68630861b6ecc77f667..ca7f4e2543f388d63abcb6c0994814733a9beede 100644 --- a/src/plugins/git/gitversioncontrol.cpp +++ b/src/plugins/git/gitversioncontrol.cpp @@ -81,9 +81,7 @@ Core::Id GitVersionControl::id() const bool GitVersionControl::isConfigured() const { - bool ok = false; - m_client->vcsBinary(&ok); - return ok; + return !m_client->vcsBinary().isEmpty(); } bool GitVersionControl::supportsOperation(Operation operation) const diff --git a/src/plugins/vcsbase/vcsbaseclient.cpp b/src/plugins/vcsbase/vcsbaseclient.cpp index 3b4079f36a96cface6d49da949926f80bc086338..00a493ead877708dd75a16c46d83460201ee6e2b 100644 --- a/src/plugins/vcsbase/vcsbaseclient.cpp +++ b/src/plugins/vcsbase/vcsbaseclient.cpp @@ -117,6 +117,16 @@ VcsBaseClientSettings &VcsBaseClientImpl::settings() const return *d->m_clientSettings; } +Utils::FileName VcsBaseClientImpl::vcsBinary() const +{ + return settings().binaryPath(); +} + +int VcsBaseClientImpl::vcsTimeout() const +{ + return settings().intValue(VcsBaseClientSettings::timeoutKey); +} + void VcsBaseClientImpl::saveSettings() { settings().writeSettings(Core::ICore::settings()); @@ -610,16 +620,6 @@ void VcsBaseClient::resetCachedVcsInfo(const QString &workingDir) Core::VcsManager::resetVersionControlForDirectory(workingDir); } -Utils::FileName VcsBaseClient::vcsBinary() const -{ - return settings().binaryPath(); -} - -int VcsBaseClient::vcsTimeout() const -{ - return settings().intValue(VcsBaseClientSettings::timeoutKey); -} - void VcsBaseClient::statusParser(const QString &text) { QList<VcsBaseClient::StatusItem> lineInfoList; diff --git a/src/plugins/vcsbase/vcsbaseclient.h b/src/plugins/vcsbase/vcsbaseclient.h index 58375cf2a3a9b121465b1791926a23c6cb5c51c0..1c69dd4c8273bfec13d8c8aa9e30709a43fa56bb 100644 --- a/src/plugins/vcsbase/vcsbaseclient.h +++ b/src/plugins/vcsbase/vcsbaseclient.h @@ -73,6 +73,9 @@ public: VcsBaseClientSettings &settings() const; + virtual Utils::FileName vcsBinary() const; + int vcsTimeout() const; + private: void saveSettings(); @@ -143,9 +146,6 @@ public: virtual QProcessEnvironment processEnvironment() const; - Utils::FileName vcsBinary() const; - int vcsTimeout() const; - signals: void parsedStatus(const QList<VcsBase::VcsBaseClient::StatusItem> &statusList); // Passes on changed signals from VcsJob to Control