diff options
author | Tobias Hunger <tobias.hunger@theqtcompany.com> | 2015-04-29 16:46:45 +0200 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@theqtcompany.com> | 2015-05-11 13:22:49 +0000 |
commit | 94dc35694a3374ef785a6765730dfc1d9401075f (patch) | |
tree | b768a67347f96f6eb3972da56e885e95bd7c8ea6 /src/plugins/vcsbase/basecheckoutwizard.cpp | |
parent | f21d2023e86e8ba9c0725852a79394ec80baaf16 (diff) | |
download | qt-creator-94dc35694a3374ef785a6765730dfc1d9401075f.tar.gz |
CheckoutWizards: Use IVersionControl::createInitialCheckoutCommand
Change-Id: I09dd38f66b9cad46d561493c2e27a833595d8728
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Diffstat (limited to 'src/plugins/vcsbase/basecheckoutwizard.cpp')
-rw-r--r-- | src/plugins/vcsbase/basecheckoutwizard.cpp | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/src/plugins/vcsbase/basecheckoutwizard.cpp b/src/plugins/vcsbase/basecheckoutwizard.cpp index d24e10a940..6717a2d71d 100644 --- a/src/plugins/vcsbase/basecheckoutwizard.cpp +++ b/src/plugins/vcsbase/basecheckoutwizard.cpp @@ -31,6 +31,10 @@ #include "basecheckoutwizard.h" #include "basecheckoutwizardfactory.h" #include "vcscommand.h" +#include "wizard/vcsconfigurationpage.h" + +#include <coreplugin/iversioncontrol.h> +#include <coreplugin/vcsmanager.h> #include <utils/qtcassert.h> #include <utils/shellcommandpage.h> @@ -46,16 +50,25 @@ namespace VcsBase { -BaseCheckoutWizard::BaseCheckoutWizard(const Utils::FileName &path, QWidget *parent) : +BaseCheckoutWizard::BaseCheckoutWizard(Core::Id vcsId, QWidget *parent) : Utils::Wizard(parent), m_progressPage(new Utils::ShellCommandPage), - m_progressPageId(-1) + m_progressPageId(-1), + m_vcsId(vcsId) { - Q_UNUSED(path); connect(this, &QWizard::currentIdChanged, this, &BaseCheckoutWizard::slotPageChanged); connect(m_progressPage, &Utils::ShellCommandPage::finished, this, &BaseCheckoutWizard::slotTerminated); setOption(QWizard::NoBackButtonOnLastPage); + + const Core::IVersionControl *vc = Core::VcsManager::versionControl(vcsId); + QTC_ASSERT(vc, return); + + if (!vc->isConfigured()) { + auto configPage = new VcsConfigurationPage; + configPage->setVersionControl(vc); + addPage(configPage); + } } void BaseCheckoutWizard::setTitle(const QString &title) @@ -97,6 +110,20 @@ Utils::FileName BaseCheckoutWizard::run() return Utils::FileName(); } +VcsCommand *BaseCheckoutWizard::createCommandImpl(const QString &url, + const Utils::FileName &baseDirectory, + const QString &localName, + const QStringList &extraArgs) +{ + Core::IVersionControl *vc = Core::VcsManager::versionControl(m_vcsId); + QTC_ASSERT(vc, return 0); + QTC_ASSERT(vc->isConfigured(), return 0); + QTC_ASSERT(vc->supportsOperation(Core::IVersionControl::InitialCheckoutOperation), return 0); + + return static_cast<VcsCommand *>(vc->createInitialCheckoutCommand(url, baseDirectory, + localName, extraArgs)); +} + void BaseCheckoutWizard::reject() { // First click kills, 2nd closes |