VCS: Replace AbstractCheckoutJob with Command

Command now provides the same functionality. Deduplicate code.

Change-Id: I789f021050471281870b6ef6a81a94e66fbdf0c7
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This commit is contained in:
Orgad Shaneh
2013-08-28 21:27:47 +03:00
committed by Orgad Shaneh
parent 27e53f746f
commit aefd61478a
29 changed files with 158 additions and 435 deletions

View File

@@ -32,7 +32,7 @@
#include "cvsplugin.h"
#include <coreplugin/iversioncontrol.h>
#include <vcsbase/checkoutjobs.h>
#include <vcsbase/command.h>
#include <vcsbase/vcsbaseconstants.h>
#include <vcsbase/vcsconfigurationpage.h>
#include <utils/qtcassert.h>
@@ -75,13 +75,13 @@ QList<QWizardPage*> CheckoutWizard::createParameterPages(const QString &path)
return rc;
}
QSharedPointer<VcsBase::AbstractCheckoutJob> CheckoutWizard::createJob(const QList<QWizardPage*> &parameterPages,
QString *checkoutPath)
VcsBase::Command *CheckoutWizard::createCommand(const QList<QWizardPage*> &parameterPages,
QString *checkoutPath)
{
// Collect parameters for the checkout command.
// CVS does not allow for checking out into a different directory.
const CheckoutWizardPage *cwp = qobject_cast<const CheckoutWizardPage *>(parameterPages.front());
QTC_ASSERT(cwp, return QSharedPointer<VcsBase::AbstractCheckoutJob>());
QTC_ASSERT(cwp, return 0);
const CvsSettings settings = CvsPlugin::instance()->settings();
const QString binary = settings.cvsBinaryPath;
QStringList args;
@@ -90,9 +90,10 @@ QSharedPointer<VcsBase::AbstractCheckoutJob> CheckoutWizard::createJob(const QLi
const QString workingDirectory = cwp->path();
*checkoutPath = workingDirectory + QLatin1Char('/') + repository;
VcsBase::ProcessCheckoutJob *job = new VcsBase::ProcessCheckoutJob;
job->addStep(binary, settings.addOptions(args), workingDirectory);
return QSharedPointer<VcsBase::AbstractCheckoutJob>(job);
VcsBase::Command *command = new VcsBase::Command(binary, workingDirectory,
QProcessEnvironment::systemEnvironment());
command->addJob(settings.addOptions(args), -1);
return command;
}
} // namespace Internal