summaryrefslogtreecommitdiff
path: root/src/plugins/vcsbase/basecheckoutwizard.cpp
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@theqtcompany.com>2015-04-29 16:46:45 +0200
committerTobias Hunger <tobias.hunger@theqtcompany.com>2015-05-11 13:22:49 +0000
commit94dc35694a3374ef785a6765730dfc1d9401075f (patch)
treeb768a67347f96f6eb3972da56e885e95bd7c8ea6 /src/plugins/vcsbase/basecheckoutwizard.cpp
parentf21d2023e86e8ba9c0725852a79394ec80baaf16 (diff)
downloadqt-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.cpp33
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