aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@theqtcompany.com>2015-03-25 12:30:07 +0100
committerTobias Hunger <tobias.hunger@theqtcompany.com>2015-03-26 14:20:54 +0000
commitf44161bb9ac960ee8b0a804fbf6b3ca167138a9a (patch)
treedf8d314f94dd1e14771b5823cd87549bf4ffdc23
parent65cd5381d96812546cb4b775785aa63483b4aa8c (diff)
Vcs: Add vcsBinary and vcsTimeout methods to VcsBaseClient
Change-Id: I966a76ee4c1e5c45ac7332613e90cf511afc584c Reviewed-by: Orgad Shaneh <orgads@gmail.com>
-rw-r--r--src/plugins/git/changeselectiondialog.cpp2
-rw-r--r--src/plugins/git/clonewizardpage.cpp2
-rw-r--r--src/plugins/git/gerrit/gerritplugin.cpp2
-rw-r--r--src/plugins/git/gitclient.cpp39
-rw-r--r--src/plugins/git/gitclient.h3
-rw-r--r--src/plugins/git/gitversioncontrol.cpp2
-rw-r--r--src/plugins/git/mergetool.cpp2
-rw-r--r--src/plugins/mercurial/mercurialclient.cpp4
-rw-r--r--src/plugins/subversion/subversionclient.cpp18
-rw-r--r--src/plugins/subversion/subversionplugin.cpp62
-rw-r--r--src/plugins/subversion/subversionsettings.cpp5
-rw-r--r--src/plugins/subversion/subversionsettings.h2
-rw-r--r--src/plugins/vcsbase/vcsbaseclient.cpp42
-rw-r--r--src/plugins/vcsbase/vcsbaseclient.h12
14 files changed, 93 insertions, 104 deletions
diff --git a/src/plugins/git/changeselectiondialog.cpp b/src/plugins/git/changeselectiondialog.cpp
index 662e443f19..e1492e0951 100644
--- a/src/plugins/git/changeselectiondialog.cpp
+++ b/src/plugins/git/changeselectiondialog.cpp
@@ -59,7 +59,7 @@ ChangeSelectionDialog::ChangeSelectionDialog(const QString &workingDirectory, Co
, m_command(NoCommand)
{
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
- m_gitExecutable = GitPlugin::instance()->gitClient()->gitExecutable();
+ m_gitExecutable = GitPlugin::instance()->gitClient()->vcsBinary();
m_ui->setupUi(this);
m_ui->workingDirectoryEdit->setText(workingDirectory);
m_gitEnvironment = GitPlugin::instance()->gitClient()->processEnvironment();
diff --git a/src/plugins/git/clonewizardpage.cpp b/src/plugins/git/clonewizardpage.cpp
index 5ba51b19a6..2a33213776 100644
--- a/src/plugins/git/clonewizardpage.cpp
+++ b/src/plugins/git/clonewizardpage.cpp
@@ -123,7 +123,7 @@ VcsCommand *CloneWizardPage::createCheckoutJob(Utils::FileName *checkoutPath) co
if (d->recursiveCheckBox->isChecked())
args << QLatin1String("--recursive");
args << QLatin1String("--progress") << repository() << checkoutDir;
- auto command = new VcsCommand(client->gitExecutable(), workingDirectory,
+ auto command = new VcsCommand(client->vcsBinary(), workingDirectory,
client->processEnvironment());
command->addFlags(VcsBasePlugin::MergeOutputChannels);
command->addJob(args, -1);
diff --git a/src/plugins/git/gerrit/gerritplugin.cpp b/src/plugins/git/gerrit/gerritplugin.cpp
index 9baaddedff..7baa7da90f 100644
--- a/src/plugins/git/gerrit/gerritplugin.cpp
+++ b/src/plugins/git/gerrit/gerritplugin.cpp
@@ -405,7 +405,7 @@ void GerritPlugin::push()
Utils::FileName GerritPlugin::gitBinary()
{
bool ok;
- const Utils::FileName git = gitClient()->gitExecutable(&ok);
+ const Utils::FileName git = gitClient()->vcsBinary(&ok);
if (!ok) {
VcsBase::VcsOutputWindow::appendError(tr("Git is not available."));
return Utils::FileName();
diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index b73d1d3129..2146451b7d 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -148,7 +148,7 @@ void BaseController::runCommand(const QList<QStringList> &args, QTextCodec *code
m_command->cancel();
}
- m_command = new VcsCommand(gitClient()->gitExecutable(), m_directory, gitClient()->processEnvironment());
+ m_command = new VcsCommand(gitClient()->vcsBinary(), m_directory, gitClient()->processEnvironment());
m_command->setCodec(codec ? codec : EditorManager::defaultTextCodec());
connect(m_command, &VcsCommand::output, this, &BaseController::processOutput);
connect(m_command, &VcsCommand::finished, this, &BaseController::reloadFinished);
@@ -157,7 +157,7 @@ void BaseController::runCommand(const QList<QStringList> &args, QTextCodec *code
foreach (const QStringList &arg, args) {
QTC_ASSERT(!arg.isEmpty(), continue);
- m_command->addJob(arg, GitPlugin::instance()->settings().intValue(GitSettings::timeoutKey));
+ m_command->addJob(arg, gitClient()->vcsTimeout());
}
m_command->execute();
@@ -1582,7 +1582,7 @@ void GitClient::branchesForCommit(const QString &revision)
auto controller = qobject_cast<DiffEditorController *>(sender());
QString workingDirectory = controller->baseDirectory();
- auto command = new VcsCommand(gitExecutable(), workingDirectory, processEnvironment());
+ auto command = new VcsCommand(vcsBinary(), workingDirectory, processEnvironment());
command->setCodec(getSourceCodec(currentDocumentPath()));
connect(command, &VcsCommand::output, controller,
@@ -1990,7 +1990,7 @@ VcsCommand *GitClient::createCommand(const QString &workingDirectory,
int editorLineNumber)
{
GitEditorWidget *gitEditor = qobject_cast<GitEditorWidget *>(editor);
- auto command = new VcsCommand(gitExecutable(), workingDirectory, processEnvironment());
+ auto command = new VcsCommand(vcsBinary(), workingDirectory, processEnvironment());
command->setCodec(getSourceCodec(currentDocumentPath()));
command->setCookie(QVariant(editorLineNumber));
if (gitEditor) {
@@ -2018,11 +2018,9 @@ VcsCommand *GitClient::executeGit(const QString &workingDirectory,
unsigned additionalFlags,
int editorLineNumber)
{
- VcsOutputWindow::appendCommand(workingDirectory,
- FileName::fromUserInput(settings()->stringValue(GitSettings::binaryPathKey)),
- arguments);
+ VcsOutputWindow::appendCommand(workingDirectory, vcsBinary(), arguments);
VcsCommand *command = createCommand(workingDirectory, editor, useOutputToWindow, editorLineNumber);
- command->addJob(arguments, settings()->intValue(GitSettings::timeoutKey));
+ command->addJob(arguments, vcsTimeout() * 1000);
command->addFlags(additionalFlags);
command->execute();
return command;
@@ -2088,8 +2086,7 @@ SynchronousProcessResponse GitClient::synchronousGit(const QString &workingDirec
unsigned flags,
QTextCodec *outputCodec) const
{
- return VcsBasePlugin::runVcs(workingDirectory, gitExecutable(), gitArguments,
- settings()->intValue(GitSettings::timeoutKey) * 1000,
+ return VcsBasePlugin::runVcs(workingDirectory, vcsBinary(), gitArguments, vcsTimeout() * 1000,
flags, outputCodec, processEnvironment());
}
@@ -2099,10 +2096,9 @@ bool GitClient::fullySynchronousGit(const QString &workingDirectory,
QByteArray* errorText,
unsigned flags) const
{
- VcsCommand command(gitExecutable(), workingDirectory, processEnvironment());
+ VcsCommand command(vcsBinary(), workingDirectory, processEnvironment());
command.addFlags(flags);
- return command.runFullySynchronous(gitArguments,
- settings()->intValue(GitSettings::timeoutKey) * 1000,
+ return command.runFullySynchronous(gitArguments, vcsTimeout() * 1000,
outputText, errorText);
}
@@ -2387,7 +2383,7 @@ QStringList GitClient::synchronousRepositoryBranches(const QString &repositoryUR
void GitClient::launchGitK(const QString &workingDirectory, const QString &fileName)
{
- const QFileInfo binaryInfo = gitExecutable().toFileInfo();
+ const QFileInfo binaryInfo = vcsBinary().toFileInfo();
QDir foundBinDir(binaryInfo.dir());
const bool foundBinDirIsCmdDir = foundBinDir.dirName() == QLatin1String("cmd");
QProcessEnvironment env = processEnvironment();
@@ -2469,7 +2465,7 @@ bool GitClient::tryLauchingGitK(const QProcessEnvironment &env,
bool GitClient::launchGitGui(const QString &workingDirectory) {
bool success;
- FileName gitBinary = gitExecutable(&success);
+ FileName gitBinary = vcsBinary(&success);
if (success) {
success = QProcess::startDetached(gitBinary.toString(), QStringList(QLatin1String("gui")),
workingDirectory);
@@ -2483,7 +2479,7 @@ bool GitClient::launchGitGui(const QString &workingDirectory) {
FileName GitClient::gitBinDirectory()
{
- const QString git = gitExecutable().toString();
+ const QString git = vcsBinary().toString();
if (git.isEmpty())
return FileName();
@@ -2499,11 +2495,16 @@ FileName GitClient::gitBinDirectory()
return FileName::fromString(path);
}
-FileName GitClient::gitExecutable(bool *ok, QString *errorMessage) const
+FileName GitClient::vcsBinary(bool *ok, QString *errorMessage) const
{
return settings()->gitExecutable(ok, errorMessage);
}
+int GitClient::vcsTimeout() const
+{
+ return settings()->intValue(GitSettings::timeoutKey);
+}
+
QTextCodec *GitClient::encoding(const QString &workingDirectory, const QByteArray &configVar) const
{
QString codecName = readConfigValue(workingDirectory, QLatin1String(configVar)).trimmed();
@@ -3343,7 +3344,7 @@ GitSettings *GitClient::settings() const
// determine version as '(major << 16) + (minor << 8) + patch' or 0.
unsigned GitClient::gitVersion(QString *errorMessage) const
{
- const FileName newGitBinary = gitExecutable();
+ const FileName newGitBinary = vcsBinary();
if (m_gitVersionForBinary != newGitBinary && !newGitBinary.isEmpty()) {
// Do not execute repeatedly if that fails (due to git
// not being installed) until settings are changed.
@@ -3356,7 +3357,7 @@ unsigned GitClient::gitVersion(QString *errorMessage) const
// determine version as '(major << 16) + (minor << 8) + patch' or 0.
unsigned GitClient::synchronousGitVersion(QString *errorMessage) const
{
- if (gitExecutable().isEmpty())
+ if (vcsBinary().isEmpty())
return 0;
// run git --version
diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h
index a41a424cc6..1359b72de5 100644
--- a/src/plugins/git/gitclient.h
+++ b/src/plugins/git/gitclient.h
@@ -136,7 +136,8 @@ public:
explicit GitClient(GitSettings *settings);
- Utils::FileName gitExecutable(bool *ok = 0, QString *errorMessage = 0) const;
+ Utils::FileName vcsBinary(bool *ok = 0, QString *errorMessage = 0) const;
+ int vcsTimeout() 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 f33409abf0..3b62907601 100644
--- a/src/plugins/git/gitversioncontrol.cpp
+++ b/src/plugins/git/gitversioncontrol.cpp
@@ -82,7 +82,7 @@ Core::Id GitVersionControl::id() const
bool GitVersionControl::isConfigured() const
{
bool ok = false;
- m_client->gitExecutable(&ok);
+ m_client->vcsBinary(&ok);
return ok;
}
diff --git a/src/plugins/git/mergetool.cpp b/src/plugins/git/mergetool.cpp
index 2cbace20b2..bd0e1f610d 100644
--- a/src/plugins/git/mergetool.cpp
+++ b/src/plugins/git/mergetool.cpp
@@ -102,7 +102,7 @@ bool MergeTool::start(const QString &workingDirectory, const QStringList &files)
}
m_process = new MergeToolProcess(this);
m_process->setWorkingDirectory(workingDirectory);
- const Utils::FileName binary = m_gitClient->gitExecutable();
+ const Utils::FileName binary = m_gitClient->vcsBinary();
VcsOutputWindow::appendCommand(workingDirectory, binary, arguments);
m_process->start(binary.toString(), arguments);
if (m_process->waitForStarted()) {
diff --git a/src/plugins/mercurial/mercurialclient.cpp b/src/plugins/mercurial/mercurialclient.cpp
index 1f51137eed..11d82b4ec0 100644
--- a/src/plugins/mercurial/mercurialclient.cpp
+++ b/src/plugins/mercurial/mercurialclient.cpp
@@ -160,14 +160,12 @@ bool MercurialClient::synchronousPull(const QString &workingDir, const QString &
VcsBasePlugin::SshPasswordPrompt
| VcsBasePlugin::ShowStdOutInLogWindow
| VcsBasePlugin::ShowSuccessMessage;
- const FileName binary = settings()->binaryPath();
- const int timeoutSec = settings()->value(settings()->timeoutKey).toInt();
// cause mercurial doesn`t understand LANG
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
env.insert(QLatin1String("LANGUAGE"), QLatin1String("C"));
const SynchronousProcessResponse resp = VcsBasePlugin::runVcs(
- workingDir, binary, args, timeoutSec * 1000, flags, 0, env);
+ workingDir, vcsBinary(), args, vcsTimeout() * 1000, flags, 0, env);
const bool ok = resp.result == SynchronousProcessResponse::Finished;
parsePullOutput(resp.stdOut.trimmed());
diff --git a/src/plugins/subversion/subversionclient.cpp b/src/plugins/subversion/subversionclient.cpp
index bce6f4016b..58045aa281 100644
--- a/src/plugins/subversion/subversionclient.cpp
+++ b/src/plugins/subversion/subversionclient.cpp
@@ -182,8 +182,6 @@ private slots:
private:
QString getDescription() const;
void postCollectTextualDiffOutput();
- int timeout() const;
- FileName subversionPath() const;
QProcessEnvironment processEnvironment() const;
const SubversionClient *m_client;
@@ -201,16 +199,6 @@ DiffController::DiffController(IDocument *document, const SubversionClient *clie
forceContextLineCount(3); // SVN can not change that when using internal diff
}
-int DiffController::timeout() const
-{
- return m_client->settings()->intValue(VcsBaseClientSettings::timeoutKey);
-}
-
-FileName DiffController::subversionPath() const
-{
- return m_client->settings()->binaryPath();
-}
-
QProcessEnvironment DiffController::processEnvironment() const
{
return m_client->processEnvironment();
@@ -240,7 +228,7 @@ QString DiffController::getDescription() const
args << QString::number(m_changeNumber);
const SubversionResponse logResponse =
SubversionPlugin::instance()->runSvn(m_workingDirectory, args,
- m_client->settings()->timeOutMs(),
+ m_client->vcsTimeout() * 1000,
VcsBasePlugin::SshPasswordPrompt);
if (logResponse.error)
@@ -251,7 +239,7 @@ QString DiffController::getDescription() const
void DiffController::postCollectTextualDiffOutput()
{
- auto command = new VcsCommand(subversionPath(), m_workingDirectory, processEnvironment());
+ auto command = new VcsCommand(m_client->vcsBinary(), m_workingDirectory, processEnvironment());
command->setCodec(EditorManager::defaultTextCodec());
connect(command, SIGNAL(output(QString)),
this, SLOT(slotTextualDiffOutputReceived(QString)));
@@ -270,7 +258,7 @@ void DiffController::postCollectTextualDiffOutput()
args << m_filesList;
}
- command->addJob(args, timeout());
+ command->addJob(args, m_client->vcsTimeout());
command->execute();
}
diff --git a/src/plugins/subversion/subversionplugin.cpp b/src/plugins/subversion/subversionplugin.cpp
index d34593ce50..036edbfdf9 100644
--- a/src/plugins/subversion/subversionplugin.cpp
+++ b/src/plugins/subversion/subversionplugin.cpp
@@ -580,9 +580,9 @@ void SubversionPlugin::revertAll()
args << QLatin1String("revert");
args << SubversionClient::addAuthenticationOptions(settings());
args << QLatin1String("--recursive") << state.topLevel();
- const SubversionResponse revertResponse =
- runSvn(state.topLevel(), args, m_settings.timeOutMs(),
- SshPasswordPrompt|ShowStdOutInLogWindow);
+ const SubversionResponse revertResponse
+ = runSvn(state.topLevel(), args, m_client->vcsTimeout() * 1000,
+ SshPasswordPrompt|ShowStdOutInLogWindow);
if (revertResponse.error)
QMessageBox::warning(ICore::dialogParent(), title,
tr("Revert failed: %1").arg(revertResponse.message), QMessageBox::Ok);
@@ -599,8 +599,8 @@ void SubversionPlugin::revertCurrentFile()
args << SubversionClient::addAuthenticationOptions(settings());
args.push_back(state.relativeCurrentFile());
- const SubversionResponse diffResponse =
- runSvn(state.currentFileTopLevel(), args, m_settings.timeOutMs(), 0);
+ const SubversionResponse diffResponse
+ = runSvn(state.currentFileTopLevel(), args, m_client->vcsTimeout() * 1000, 0);
if (diffResponse.error)
return;
@@ -620,9 +620,9 @@ void SubversionPlugin::revertCurrentFile()
args << SubversionClient::addAuthenticationOptions(settings());
args << state.relativeCurrentFile();
- const SubversionResponse revertResponse =
- runSvn(state.currentFileTopLevel(), args, m_settings.timeOutMs(),
- SshPasswordPrompt|ShowStdOutInLogWindow);
+ const SubversionResponse revertResponse
+ = runSvn(state.currentFileTopLevel(), args, m_client->vcsTimeout() * 1000,
+ SshPasswordPrompt|ShowStdOutInLogWindow);
if (!revertResponse.error)
subVersionControl()->emitFilesChanged(QStringList(state.currentFile()));
@@ -683,8 +683,8 @@ void SubversionPlugin::startCommit(const QString &workingDir, const QStringList
args << SubversionClient::addAuthenticationOptions(settings());
args += files;
- const SubversionResponse response =
- runSvn(workingDir, args, m_settings.timeOutMs(), 0);
+ const SubversionResponse response
+ = runSvn(workingDir, args, m_client->vcsTimeout() * 1000, 0);
if (response.error)
return;
@@ -764,7 +764,7 @@ void SubversionPlugin::svnStatus(const QString &workingDir, const QString &relat
if (!relativePath.isEmpty())
args.append(relativePath);
VcsOutputWindow::setRepository(workingDir);
- runSvn(workingDir, args, m_settings.timeOutMs(),
+ runSvn(workingDir, args, m_client->vcsTimeout() * 1000,
ShowStdOutInLogWindow|ShowSuccessMessage);
VcsOutputWindow::clearRepository();
}
@@ -790,9 +790,9 @@ void SubversionPlugin::svnUpdate(const QString &workingDir, const QString &relat
args.push_back(QLatin1String(Constants::NON_INTERACTIVE_OPTION));
if (!relativePath.isEmpty())
args.append(relativePath);
- const SubversionResponse response =
- runSvn(workingDir, args, 10 * m_settings.timeOutMs(),
- SshPasswordPrompt|ShowStdOutInLogWindow);
+ const SubversionResponse response
+ = runSvn(workingDir, args, 10 * m_client->vcsTimeout() * 1000,
+ SshPasswordPrompt|ShowStdOutInLogWindow);
if (!response.error)
subVersionControl()->emitRepositoryChanged(workingDir);
}
@@ -828,9 +828,9 @@ void SubversionPlugin::vcsAnnotate(const QString &workingDir, const QString &fil
args.push_back(QLatin1String("-v"));
args.append(QDir::toNativeSeparators(file));
- const SubversionResponse response =
- runSvn(workingDir, args, m_settings.timeOutMs(),
- SshPasswordPrompt|ForceCLocale, codec);
+ const SubversionResponse response
+ = runSvn(workingDir, args, m_client->vcsTimeout() * 1000,
+ SshPasswordPrompt|ForceCLocale, codec);
if (response.error)
return;
@@ -1006,9 +1006,9 @@ bool SubversionPlugin::vcsAdd(const QString &workingDir, const QString &rawFileN
args << QLatin1String("add")
<< SubversionClient::addAuthenticationOptions(settings())
<< QLatin1String("--parents") << file;
- const SubversionResponse response =
- runSvn(workingDir, args, m_settings.timeOutMs(),
- SshPasswordPrompt|ShowStdOutInLogWindow);
+ const SubversionResponse response
+ = runSvn(workingDir, args, m_client->vcsTimeout() * 1000,
+ SshPasswordPrompt|ShowStdOutInLogWindow);
return !response.error;
}
@@ -1020,9 +1020,9 @@ bool SubversionPlugin::vcsDelete(const QString &workingDir, const QString &rawFi
args << QLatin1String("delete");
args << SubversionClient::addAuthenticationOptions(settings()) << QLatin1String("--force") << file;
- const SubversionResponse response =
- runSvn(workingDir, args, m_settings.timeOutMs(),
- SshPasswordPrompt|ShowStdOutInLogWindow);
+ const SubversionResponse response
+ = runSvn(workingDir, args, m_client->vcsTimeout() * 1000,
+ SshPasswordPrompt|ShowStdOutInLogWindow);
return !response.error;
}
@@ -1031,9 +1031,9 @@ bool SubversionPlugin::vcsMove(const QString &workingDir, const QString &from, c
QStringList args(QLatin1String("move"));
args << SubversionClient::addAuthenticationOptions(settings());
args << QDir::toNativeSeparators(from) << QDir::toNativeSeparators(to);
- const SubversionResponse response =
- runSvn(workingDir, args, m_settings.timeOutMs(),
- SshPasswordPrompt|ShowStdOutInLogWindow|FullySynchronously);
+ const SubversionResponse response
+ = runSvn(workingDir, args, m_client->vcsTimeout() * 1000,
+ SshPasswordPrompt|ShowStdOutInLogWindow|FullySynchronously);
return !response.error;
}
@@ -1059,9 +1059,9 @@ bool SubversionPlugin::vcsCheckout(const QString &directory, const QByteArray &u
args << QLatin1String(tempUrl.toEncoded()) << directory;
- const SubversionResponse response = runSvn(directory, args,
- 10 * m_settings.timeOutMs(),
- VcsBasePlugin::SshPasswordPrompt);
+ const SubversionResponse response
+ = runSvn(directory, args, 10 * m_client->vcsTimeout() * 1000,
+ VcsBasePlugin::SshPasswordPrompt);
return !response.error;
}
@@ -1094,8 +1094,8 @@ bool SubversionPlugin::managesFile(const QString &workingDirectory, const QStrin
QStringList args;
args << QLatin1String("status");
args << SubversionClient::addAuthenticationOptions(settings()) << fileName;
- SubversionResponse response =
- runSvn(workingDirectory, args, m_settings.timeOutMs(), 0);
+ SubversionResponse response
+ = runSvn(workingDirectory, args, m_client->vcsTimeout() * 1000, 0);
return response.stdOut.isEmpty() || response.stdOut.at(0) != QLatin1Char('?');
}
diff --git a/src/plugins/subversion/subversionsettings.cpp b/src/plugins/subversion/subversionsettings.cpp
index 89247465e4..1dd5b20e9d 100644
--- a/src/plugins/subversion/subversionsettings.cpp
+++ b/src/plugins/subversion/subversionsettings.cpp
@@ -63,11 +63,6 @@ bool SubversionSettings::hasAuthentication() const
return boolValue(useAuthenticationKey) && !stringValue(userKey).isEmpty();
}
-int SubversionSettings::timeOutMs() const
-{
- return 1000 * intValue(timeoutKey);
-}
-
void SubversionSettings::readLegacySettings(const QSettings *settings)
{
const QString keyRoot = settingsGroup() + QLatin1Char('/');
diff --git a/src/plugins/subversion/subversionsettings.h b/src/plugins/subversion/subversionsettings.h
index 3c00a12664..015b5f2b67 100644
--- a/src/plugins/subversion/subversionsettings.h
+++ b/src/plugins/subversion/subversionsettings.h
@@ -49,8 +49,6 @@ public:
SubversionSettings();
bool hasAuthentication() const;
- int timeOutMs() const;
-
protected:
void readLegacySettings(const QSettings *settings);
};
diff --git a/src/plugins/vcsbase/vcsbaseclient.cpp b/src/plugins/vcsbase/vcsbaseclient.cpp
index 31509def76..6792b5afd1 100644
--- a/src/plugins/vcsbase/vcsbaseclient.cpp
+++ b/src/plugins/vcsbase/vcsbaseclient.cpp
@@ -238,10 +238,9 @@ bool VcsBaseClient::vcsFullySynchronousExec(const QString &workingDir,
vcsProcess.setWorkingDirectory(workingDir);
vcsProcess.setProcessEnvironment(processEnvironment());
- const Utils::FileName binary = settings()->binaryPath();
-
- VcsOutputWindow::appendCommand(workingDir, binary, args);
+ VcsOutputWindow::appendCommand(workingDir, vcsBinary(), args);
+ const Utils::FileName binary = vcsBinary();
vcsProcess.start(binary.toString(), args);
if (!vcsProcess.waitForStarted()) {
@@ -253,12 +252,11 @@ bool VcsBaseClient::vcsFullySynchronousExec(const QString &workingDir,
vcsProcess.closeWriteChannel();
QByteArray stdErr;
- const int timeoutSec = settings()->intValue(VcsBaseClientSettings::timeoutKey);
- if (!Utils::SynchronousProcess::readDataFromProcess(vcsProcess, timeoutSec * 1000,
+ if (!Utils::SynchronousProcess::readDataFromProcess(vcsProcess, vcsTimeout() * 1000,
output, &stdErr, true)) {
Utils::SynchronousProcess::stopProcess(vcsProcess);
VcsOutputWindow::appendError(tr("Timed out after %1s waiting for the process %2 to finish.")
- .arg(timeoutSec).arg(binary.toUserOutput()));
+ .arg(vcsTimeout()).arg(binary.toUserOutput()));
return false;
}
if (!stdErr.isEmpty())
@@ -267,16 +265,13 @@ bool VcsBaseClient::vcsFullySynchronousExec(const QString &workingDir,
return vcsProcess.exitStatus() == QProcess::NormalExit && vcsProcess.exitCode() == 0;
}
-Utils::SynchronousProcessResponse VcsBaseClient::vcsSynchronousExec(
- const QString &workingDirectory,
- const QStringList &args,
- unsigned flags,
- QTextCodec *outputCodec) const
+Utils::SynchronousProcessResponse VcsBaseClient::vcsSynchronousExec(const QString &workingDirectory,
+ const QStringList &args,
+ unsigned flags,
+ QTextCodec *outputCodec) const
{
- const Utils::FileName binary = settings()->binaryPath();
- const int timeoutSec = settings()->intValue(VcsBaseClientSettings::timeoutKey);
- return VcsBasePlugin::runVcs(workingDirectory, binary, args,
- timeoutSec * 1000, flags, outputCodec);
+ return VcsBasePlugin::runVcs(workingDirectory, vcsBinary(), args, vcsTimeout() * 1000,
+ flags, outputCodec);
}
void VcsBaseClient::annotate(const QString &workingDir, const QString &file,
@@ -507,8 +502,7 @@ VcsBaseClientSettings *VcsBaseClient::settings() const
QString VcsBaseClient::vcsEditorTitle(const QString &vcsCmd, const QString &sourceId) const
{
- const Utils::FileName binary = settings()->binaryPath();
- return binary.toFileInfo().baseName() +
+ return vcsBinary().toFileInfo().baseName() +
QLatin1Char(' ') + vcsCmd + QLatin1Char(' ') +
Utils::FileName::fromString(sourceId).fileName();
}
@@ -554,9 +548,9 @@ VcsCommand *VcsBaseClient::createCommand(const QString &workingDirectory,
VcsBaseEditorWidget *editor,
JobOutputBindMode mode) const
{
- auto cmd = new VcsCommand(d->m_clientSettings->binaryPath(), workingDirectory,
+ auto cmd = new VcsCommand(vcsBinary(), workingDirectory,
processEnvironment());
- cmd->setDefaultTimeout(d->m_clientSettings->intValue(VcsBaseClientSettings::timeoutKey));
+ cmd->setDefaultTimeout(vcsTimeout());
if (editor)
d->bindCommandToEditor(cmd, editor);
if (mode == VcsWindowOutputBind) {
@@ -581,6 +575,16 @@ void VcsBaseClient::resetCachedVcsInfo(const QString &workingDir)
Core::VcsManager::resetVersionControlForDirectory(workingDir);
}
+Utils::FileName VcsBaseClient::vcsBinary() const
+{
+ return d->m_clientSettings->binaryPath();
+}
+
+int VcsBaseClient::vcsTimeout() const
+{
+ return d->m_clientSettings->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 37f355e2ae..2cac2e5321 100644
--- a/src/plugins/vcsbase/vcsbaseclient.h
+++ b/src/plugins/vcsbase/vcsbaseclient.h
@@ -33,6 +33,8 @@
#include "vcsbase_global.h"
+#include <utils/fileutils.h>
+
#include <QObject>
#include <QStringList>
@@ -125,6 +127,9 @@ public:
virtual VcsBaseClientSettings *settings() const;
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
@@ -167,8 +172,7 @@ protected:
QString vcsEditorTitle(const QString &vcsCmd, const QString &sourceId) const;
// Fully synchronous VCS execution (QProcess-based)
- bool vcsFullySynchronousExec(const QString &workingDir,
- const QStringList &args,
+ bool vcsFullySynchronousExec(const QString &workingDir, const QStringList &args,
QByteArray *output) const;
// Synchronous VCS execution using Utils::SynchronousProcess, with
// log windows updating (using VcsBasePlugin::runVcs with flags)
@@ -187,8 +191,8 @@ protected:
};
VcsCommand *createCommand(const QString &workingDirectory,
- VcsBaseEditorWidget *editor = 0,
- JobOutputBindMode mode = NoOutputBind) const;
+ VcsBaseEditorWidget *editor = 0,
+ JobOutputBindMode mode = NoOutputBind) const;
void enqueueJob(VcsCommand *cmd, const QStringList &args, Utils::ExitCodeInterpreter *interpreter = 0);
void resetCachedVcsInfo(const QString &workingDir);