BaseCheckoutWizard*: Move createCommand from factory into Wizard

Change-Id: I0dcc931f279b59f0d6cf7afb553a2fed30baae7a
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
Tobias Hunger
2014-05-05 17:56:54 +02:00
parent 719d39d372
commit 8e126df545
17 changed files with 173 additions and 199 deletions

View File

@@ -76,7 +76,7 @@ protected:
StatusItem parseStatusLine(const QString &line) const; StatusItem parseStatusLine(const QString &line) const;
private: private:
friend class CloneWizardFactory; friend class CloneWizard;
}; };
} // namespace Internal } // namespace Internal

View File

@@ -56,22 +56,39 @@ VcsBase::BaseCheckoutWizard *CloneWizardFactory::create(const QString &path, QWi
return new CloneWizard(path, parent); return new CloneWizard(path, parent);
} }
VcsBase::Command *CloneWizardFactory::createCommand(const QList<QWizardPage *> &parameterPages, // --------------------------------------------------------------------
QString *checkoutPath) // CloneWizard:
// --------------------------------------------------------------------
CloneWizard::CloneWizard(const QString &path, QWidget *parent) :
VcsBase::BaseCheckoutWizard(path, parent)
{ {
const CloneWizardPage *page = 0; setTitle(tr("Cloning"));
foreach (QWizardPage *p, parameterPages) { setStartedStatus(tr("Cloning started..."));
if ((page = qobject_cast<const CloneWizardPage *>(p)))
const Core::IVersionControl *vc = BazaarPlugin::instance()->versionControl();
if (!vc->isConfigured())
addPage(new VcsBase::VcsConfigurationPage(vc));
CloneWizardPage *page = new CloneWizardPage;
page->setPath(path);
addPage(page);
}
VcsBase::Command *CloneWizard::createCommand(QString *checkoutDir)
{
const CloneWizardPage *cwp = 0;
foreach (int pageId, pageIds()) {
if ((cwp = qobject_cast<const CloneWizardPage *>(page(pageId))))
break; break;
} }
if (!page) if (!cwp)
return 0; return 0;
const BazaarSettings &settings = BazaarPlugin::instance()->settings(); const BazaarSettings &settings = BazaarPlugin::instance()->settings();
*checkoutPath = page->path() + QLatin1Char('/') + page->directory(); *checkoutDir = cwp->path() + QLatin1Char('/') + cwp->directory();
const CloneOptionsPanel *panel = page->cloneOptionsPanel(); const CloneOptionsPanel *panel = cwp->cloneOptionsPanel();
QStringList extraOptions; QStringList extraOptions;
if (panel->isUseExistingDirectoryOptionEnabled()) if (panel->isUseExistingDirectoryOptionEnabled())
extraOptions += QLatin1String("--use-existing-dir"); extraOptions += QLatin1String("--use-existing-dir");
@@ -92,28 +109,10 @@ VcsBase::Command *CloneWizardFactory::createCommand(const QList<QWizardPage *> &
const BazaarClient *client = BazaarPlugin::instance()->client(); const BazaarClient *client = BazaarPlugin::instance()->client();
QStringList args; QStringList args;
args << client->vcsCommandString(BazaarClient::CloneCommand) args << client->vcsCommandString(BazaarClient::CloneCommand)
<< extraOptions << page->repository() << page->directory(); << extraOptions << cwp->repository() << cwp->directory();
VcsBase::Command *command = new VcsBase::Command(settings.binaryPath(), page->path(), VcsBase::Command *command = new VcsBase::Command(settings.binaryPath(), cwp->path(),
client->processEnvironment()); client->processEnvironment());
command->addJob(args, -1); command->addJob(args, -1);
return command; return command;
} }
// --------------------------------------------------------------------
// CloneWizard:
// --------------------------------------------------------------------
CloneWizard::CloneWizard(const QString &path, QWidget *parent) :
VcsBase::BaseCheckoutWizard(path, parent)
{
setTitle(tr("Cloning"));
setStartedStatus(tr("Cloning started..."));
const Core::IVersionControl *vc = BazaarPlugin::instance()->versionControl();
if (!vc->isConfigured())
addPage(new VcsBase::VcsConfigurationPage(vc));
CloneWizardPage *page = new CloneWizardPage;
page->setPath(path);
addPage(page);
}

View File

@@ -46,10 +46,6 @@ public:
CloneWizardFactory(); CloneWizardFactory();
VcsBase::BaseCheckoutWizard *create(const QString &path, QWidget *parent = 0) const; VcsBase::BaseCheckoutWizard *create(const QString &path, QWidget *parent = 0) const;
private:
VcsBase::Command *createCommand(const QList<QWizardPage *> &parameterPages,
QString *checkoutPath);
}; };
class CloneWizard : public VcsBase::BaseCheckoutWizard class CloneWizard : public VcsBase::BaseCheckoutWizard
@@ -58,6 +54,9 @@ class CloneWizard : public VcsBase::BaseCheckoutWizard
public: public:
CloneWizard(const QString &path, QWidget *parent = 0); CloneWizard(const QString &path, QWidget *parent = 0);
protected:
VcsBase::Command *createCommand(QString *checkoutDir);
}; };
} // namespace Internal } // namespace Internal

View File

@@ -53,31 +53,6 @@ VcsBase::BaseCheckoutWizard *CheckoutWizardFactory::create(const QString &path,
return new CheckoutWizard(path, parent); return new CheckoutWizard(path, parent);
} }
VcsBase::Command *CheckoutWizardFactory::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 = 0;
foreach (QWizardPage *p, parameterPages) {
if ((cwp = qobject_cast<const CheckoutWizardPage *>(p)))
break;
}
QTC_ASSERT(cwp, return 0);
const CvsSettings settings = CvsPlugin::instance()->settings();
const QString binary = settings.binaryPath();
QStringList args;
const QString repository = cwp->repository();
args << QLatin1String("checkout") << repository;
const QString workingDirectory = cwp->path();
*checkoutPath = workingDirectory + QLatin1Char('/') + repository;
VcsBase::Command *command = new VcsBase::Command(binary, workingDirectory,
QProcessEnvironment::systemEnvironment());
command->addJob(settings.addOptions(args), -1);
return command;
}
// -------------------------------------------------------------------- // --------------------------------------------------------------------
// CheckoutWizard: // CheckoutWizard:
// -------------------------------------------------------------------- // --------------------------------------------------------------------
@@ -93,5 +68,31 @@ CheckoutWizard::CheckoutWizard(const QString &path, QWidget *parent) :
addPage(cwp); addPage(cwp);
} }
VcsBase::Command *CheckoutWizard::createCommand(QString *checkoutDir)
{
// Collect parameters for the checkout command.
// CVS does not allow for checking out into a different directory.
const CheckoutWizardPage *cwp = 0;
foreach (int pageId, pageIds()) {
if ((cwp = qobject_cast<const CheckoutWizardPage *>(page(pageId))))
break;
}
QTC_ASSERT(cwp, return 0);
const CvsSettings settings = CvsPlugin::instance()->settings();
const QString binary = settings.binaryPath();
QStringList args;
const QString repository = cwp->repository();
args << QLatin1String("checkout") << repository;
const QString workingDirectory = cwp->path();
*checkoutDir = workingDirectory + QLatin1Char('/') + repository;
VcsBase::Command *command = new VcsBase::Command(binary, workingDirectory,
QProcessEnvironment::systemEnvironment());
command->addJob(settings.addOptions(args), -1);
return command;
}
} // namespace Internal } // namespace Internal
} // namespace Cvs } // namespace Cvs

View File

@@ -44,11 +44,6 @@ public:
CheckoutWizardFactory(); CheckoutWizardFactory();
VcsBase::BaseCheckoutWizard *create(const QString &path, QWidget *parent = 0) const; VcsBase::BaseCheckoutWizard *create(const QString &path, QWidget *parent = 0) const;
private:
// BaseCheckoutWizard
VcsBase::Command *createCommand(const QList<QWizardPage*> &parameterPage,
QString *checkoutPath);
}; };
class CheckoutWizard : public VcsBase::BaseCheckoutWizard class CheckoutWizard : public VcsBase::BaseCheckoutWizard
@@ -57,6 +52,9 @@ class CheckoutWizard : public VcsBase::BaseCheckoutWizard
public: public:
CheckoutWizard(const QString &path, QWidget *parent = 0); CheckoutWizard(const QString &path, QWidget *parent = 0);
protected:
VcsBase::Command *createCommand(QString *checkoutDir);
}; };
} // namespace Internal } // namespace Internal

View File

@@ -53,20 +53,6 @@ VcsBase::BaseCheckoutWizard *CloneWizardFactory::create(const QString &path, QWi
return new CloneWizard(path, parent); return new CloneWizard(path, parent);
} }
VcsBase::Command *CloneWizardFactory::createCommand(const QList<QWizardPage*> &parameterPages,
QString *checkoutPath)
{
// Collect parameters for the clone command.
const CloneWizardPage *cwp = 0;
foreach (QWizardPage *wp, parameterPages) {
if ((cwp = qobject_cast<const CloneWizardPage *>(wp)))
break;
}
QTC_ASSERT(cwp, return 0);
return cwp->createCheckoutJob(checkoutPath);
}
// -------------------------------------------------------------------- // --------------------------------------------------------------------
// CloneWizard: // CloneWizard:
// -------------------------------------------------------------------- // --------------------------------------------------------------------
@@ -85,5 +71,18 @@ CloneWizard::CloneWizard(const QString &path, QWidget *parent) :
addPage(cwp); addPage(cwp);
} }
VcsBase::Command *CloneWizard::createCommand(QString *checkoutDir)
{
// Collect parameters for the clone command.
const CloneWizardPage *cwp = 0;
foreach (int pageId, pageIds()) {
if ((cwp = qobject_cast<const CloneWizardPage *>(page(pageId))))
break;
}
QTC_ASSERT(cwp, return 0);
return cwp->createCheckoutJob(checkoutDir);
}
} // namespace Internal } // namespace Internal
} // namespace Git } // namespace Git

View File

@@ -44,11 +44,6 @@ public:
CloneWizardFactory(); CloneWizardFactory();
VcsBase::BaseCheckoutWizard *create(const QString &path, QWidget *parent = 0) const; VcsBase::BaseCheckoutWizard *create(const QString &path, QWidget *parent = 0) const;
private:
// BaseCheckoutWizard
VcsBase::Command *createCommand(const QList<QWizardPage*> &parameterPages,
QString *checkoutPath);
}; };
class CloneWizard : public VcsBase::BaseCheckoutWizard class CloneWizard : public VcsBase::BaseCheckoutWizard
@@ -57,6 +52,9 @@ class CloneWizard : public VcsBase::BaseCheckoutWizard
public: public:
CloneWizard(const QString &path, QWidget *parent = 0); CloneWizard(const QString &path, QWidget *parent = 0);
protected:
VcsBase::Command *createCommand(QString *checkoutDir);
}; };
} // namespace Internal } // namespace Internal

View File

@@ -82,18 +82,6 @@ VcsBase::BaseCheckoutWizard *GitoriousCloneWizardFactory::create(const QString &
return new GitoriousCloneWizard(path, parent); return new GitoriousCloneWizard(path, parent);
} }
VcsBase::Command *GitoriousCloneWizardFactory::createCommand(const QList<QWizardPage*> &parameterPages,
QString *checkoutPath)
{
const Git::CloneWizardPage *cwp = 0;
foreach (QWizardPage *p, parameterPages) {
if ((cwp = qobject_cast<const Git::CloneWizardPage *>(p)))
break;
}
QTC_ASSERT(cwp, return 0);
return cwp->createCheckoutJob(checkoutPath);
}
// -------------------------------------------------------------------- // --------------------------------------------------------------------
// GitoriousCloneWizard: // GitoriousCloneWizard:
// -------------------------------------------------------------------- // --------------------------------------------------------------------
@@ -120,5 +108,16 @@ GitoriousCloneWizard::GitoriousCloneWizard(const QString &path, QWidget *parent)
addPage(clonePage); addPage(clonePage);
} }
VcsBase::Command *GitoriousCloneWizard::createCommand(QString *checkoutDir)
{
const Git::CloneWizardPage *cwp = 0;
foreach (int pageId, pageIds()) {
if ((cwp = qobject_cast<const Git::CloneWizardPage *>(page(pageId))))
break;
}
QTC_ASSERT(cwp, return 0);
return cwp->createCheckoutJob(checkoutDir);
}
} // namespace Internal } // namespace Internal
} // namespace Gitorius } // namespace Gitorius

View File

@@ -46,11 +46,6 @@ public:
GitoriousCloneWizardFactory(); GitoriousCloneWizardFactory();
VcsBase::BaseCheckoutWizard *create(const QString &path, QWidget *parent = 0) const; VcsBase::BaseCheckoutWizard *create(const QString &path, QWidget *parent = 0) const;
private:
// BaseCheckoutWizard
VcsBase::Command *createCommand(const QList<QWizardPage*> &parameterPages,
QString *checkoutPath);
}; };
class GitoriousCloneWizard : public VcsBase::BaseCheckoutWizard class GitoriousCloneWizard : public VcsBase::BaseCheckoutWizard
@@ -59,6 +54,9 @@ class GitoriousCloneWizard : public VcsBase::BaseCheckoutWizard
public: public:
GitoriousCloneWizard(const QString &path, QWidget *parent = 0); GitoriousCloneWizard(const QString &path, QWidget *parent = 0);
protected:
VcsBase::Command *createCommand(QString *checkoutDir);
}; };

View File

@@ -53,32 +53,6 @@ BaseCheckoutWizard *CloneWizardFactory::create(const QString &path, QWidget *par
return new CloneWizard(path, parent); return new CloneWizard(path, parent);
} }
Command *CloneWizardFactory::createCommand(const QList<QWizardPage *> &parameterPages,
QString *checkoutPath)
{
const CloneWizardPage *page = 0;
foreach (QWizardPage *p, parameterPages) {
if ((page = qobject_cast<const CloneWizardPage *>(p)))
break;
}
if (!page)
return 0;
const MercurialSettings &settings = MercurialPlugin::settings();
QString path = page->path();
QString directory = page->directory();
QStringList args;
args << QLatin1String("clone") << page->repository() << directory;
*checkoutPath = path + QLatin1Char('/') + directory;
VcsBase::Command *command = new VcsBase::Command(settings.binaryPath(), path,
QProcessEnvironment::systemEnvironment());
command->addJob(args, -1);
return command;
}
// -------------------------------------------------------------------- // --------------------------------------------------------------------
// CloneWizard: // CloneWizard:
// -------------------------------------------------------------------- // --------------------------------------------------------------------
@@ -96,3 +70,28 @@ CloneWizard::CloneWizard(const QString &path, QWidget *parent) :
page->setPath(path); page->setPath(path);
addPage(page); addPage(page);
} }
Command *CloneWizard::createCommand(QString *checkoutDir)
{
const CloneWizardPage *cwp = 0;
foreach (int pageId, pageIds()) {
if ((cwp = qobject_cast<const CloneWizardPage *>(page(pageId))))
break;
}
if (!cwp)
return 0;
const MercurialSettings &settings = MercurialPlugin::settings();
QString path = cwp->path();
QString directory = cwp->directory();
QStringList args;
args << QLatin1String("clone") << cwp->repository() << directory;
*checkoutDir = path + QLatin1Char('/') + directory;
VcsBase::Command *command = new VcsBase::Command(settings.binaryPath(), path,
QProcessEnvironment::systemEnvironment());
command->addJob(args, -1);
return command;
}

View File

@@ -47,10 +47,6 @@ public:
VcsBase::BaseCheckoutWizard *create(const QString &path, QWidget *parent = 0) const; VcsBase::BaseCheckoutWizard *create(const QString &path, QWidget *parent = 0) const;
protected:
VcsBase::Command *createCommand(const QList<QWizardPage *> &parameterPages,
QString *checkoutPath);
private: private:
const QIcon m_icon; const QIcon m_icon;
}; };
@@ -61,6 +57,9 @@ class CloneWizard : public VcsBase::BaseCheckoutWizard
public: public:
CloneWizard(const QString &path, QWidget *parent = 0); CloneWizard(const QString &path, QWidget *parent = 0);
protected:
VcsBase::Command *createCommand(QString *checkoutDir);
}; };
} //namespace Internal } //namespace Internal

View File

@@ -56,34 +56,6 @@ VcsBase::BaseCheckoutWizard *CheckoutWizardFactory::create(const QString &path,
return new CheckoutWizard(path, parent); return new CheckoutWizard(path, parent);
} }
VcsBase::Command *CheckoutWizardFactory::createCommand(const QList<QWizardPage*> &parameterPages,
QString *checkoutPath)
{
// Collect parameters for the checkout command.
const CheckoutWizardPage *cwp = 0;
foreach (const QWizardPage *p, parameterPages) {
if ((cwp = qobject_cast<const CheckoutWizardPage *>(p)))
break;
}
QTC_ASSERT(cwp, return 0);
const SubversionSettings settings = SubversionPlugin::instance()->settings();
const QString binary = settings.binaryPath();
const QString directory = cwp->directory();
QStringList args;
args << QLatin1String("checkout") << cwp->repository() << directory;
const QString workingDirectory = cwp->path();
*checkoutPath = workingDirectory + QLatin1Char('/') + directory;
if (settings.hasAuthentication()) {
const QString user = settings.stringValue(SubversionSettings::userKey);
const QString pwd = settings.stringValue(SubversionSettings::passwordKey);
args = SubversionClient::addAuthenticationOptions(args, user, pwd);
}
VcsBase::Command *command = new VcsBase::Command(binary, workingDirectory,
QProcessEnvironment::systemEnvironment());
command->addJob(args, -1);
return command;
}
// -------------------------------------------------------------------- // --------------------------------------------------------------------
// CheckoutWizard: // CheckoutWizard:
// -------------------------------------------------------------------- // --------------------------------------------------------------------
@@ -99,5 +71,35 @@ CheckoutWizard::CheckoutWizard(const QString &path, QWidget *parent) :
addPage(cwp); addPage(cwp);
} }
VcsBase::Command *CheckoutWizard::createCommand(QString *checkoutDir)
{
// Collect parameters for the checkout command.
const CheckoutWizardPage *cwp = 0;
foreach (int pageId, pageIds()) {
if ((cwp = qobject_cast<const CheckoutWizardPage *>(page(pageId))))
break;
}
QTC_ASSERT(cwp, return 0);
const SubversionSettings settings = SubversionPlugin::instance()->settings();
const QString binary = settings.binaryPath();
const QString directory = cwp->directory();
QStringList args;
args << QLatin1String("checkout") << cwp->repository() << directory;
const QString workingDirectory = cwp->path();
*checkoutDir = workingDirectory + QLatin1Char('/') + directory;
if (settings.hasAuthentication()) {
const QString user = settings.stringValue(SubversionSettings::userKey);
const QString pwd = settings.stringValue(SubversionSettings::passwordKey);
args = SubversionClient::addAuthenticationOptions(args, user, pwd);
}
VcsBase::Command *command = new VcsBase::Command(binary, workingDirectory,
QProcessEnvironment::systemEnvironment());
command->addJob(args, -1);
return command;
}
} // namespace Internal } // namespace Internal
} // namespace Subversion } // namespace Subversion

View File

@@ -44,11 +44,6 @@ public:
CheckoutWizardFactory(); CheckoutWizardFactory();
VcsBase::BaseCheckoutWizard *create(const QString &path, QWidget *parent = 0) const; VcsBase::BaseCheckoutWizard *create(const QString &path, QWidget *parent = 0) const;
private:
// BaseCheckoutWizard
VcsBase::Command *createCommand(const QList<QWizardPage*> &parameterPage,
QString *checkoutPath);
}; };
class CheckoutWizard : public VcsBase::BaseCheckoutWizard class CheckoutWizard : public VcsBase::BaseCheckoutWizard
@@ -57,6 +52,9 @@ class CheckoutWizard : public VcsBase::BaseCheckoutWizard
public: public:
CheckoutWizard(const QString &path, QWidget *parent = 0); CheckoutWizard(const QString &path, QWidget *parent = 0);
protected:
VcsBase::Command *createCommand(QString *checkoutDir);
}; };
} // namespace Internal } // namespace Internal

View File

@@ -33,6 +33,8 @@
#include <coreplugin/basefilewizard.h> #include <coreplugin/basefilewizard.h>
#include <utils/qtcassert.h>
#include <QPushButton> #include <QPushButton>
/*! /*!
@@ -66,8 +68,15 @@ void BaseCheckoutWizard::setStartedStatus(const QString &title)
void BaseCheckoutWizard::slotPageChanged(int id) void BaseCheckoutWizard::slotPageChanged(int id)
{ {
if (id == m_progressPageId) if (id != m_progressPageId)
emit progressPageShown(); return;
VcsBase::Command *cmd = createCommand(&m_checkoutDir);
QTC_ASSERT(cmd, done(QDialog::Rejected));
// No "back" available while running.
button(QWizard::BackButton)->setEnabled(false);
m_progressPage->start(cmd);
} }
void BaseCheckoutWizard::slotTerminated(bool success) void BaseCheckoutWizard::slotTerminated(bool success)
@@ -77,17 +86,13 @@ void BaseCheckoutWizard::slotTerminated(bool success)
button(QWizard::BackButton)->setEnabled(true); button(QWizard::BackButton)->setEnabled(true);
} }
void BaseCheckoutWizard::start(Command *command) QString BaseCheckoutWizard::run()
{
// No "back" available while running.
button(QWizard::BackButton)->setEnabled(false);
m_progressPage->start(command);
}
int BaseCheckoutWizard::exec()
{ {
m_progressPageId = addPage(m_progressPage); m_progressPageId = addPage(m_progressPage);
return Utils::Wizard::exec(); if (Utils::Wizard::exec() == QDialog::Accepted)
return m_checkoutDir;
else
return QString();
} }
void BaseCheckoutWizard::reject() void BaseCheckoutWizard::reject()

View File

@@ -49,13 +49,11 @@ public:
void setTitle(const QString &title); void setTitle(const QString &title);
void setStartedStatus(const QString &title); void setStartedStatus(const QString &title);
void start(VcsBase::Command *command);
public slots: QString run();
int exec();
signals: protected:
void progressPageShown(); virtual VcsBase::Command *createCommand(QString *checkoutDir) = 0;
private slots: private slots:
void slotPageChanged(int id); void slotPageChanged(int id);
@@ -65,6 +63,7 @@ private slots:
private: private:
Internal::CheckoutProgressWizardPage *m_progressPage; Internal::CheckoutProgressWizardPage *m_progressPage;
int m_progressPageId; int m_progressPageId;
QString m_checkoutDir;
}; };
} // namespace VcsBase } // namespace VcsBase

View File

@@ -71,14 +71,12 @@ public:
void clear(); void clear();
BaseCheckoutWizard *wizard; BaseCheckoutWizard *wizard;
QString checkoutPath;
}; };
void BaseCheckoutWizardFactoryPrivate::clear() void BaseCheckoutWizardFactoryPrivate::clear()
{ {
delete wizard; delete wizard;
wizard = 0; wizard = 0;
checkoutPath.clear();
} }
} // namespace Internal } // namespace Internal
@@ -107,14 +105,13 @@ void BaseCheckoutWizardFactory::runWizard(const QString &path, QWidget *parent,
// Create dialog and launch // Create dialog and launch
d->wizard = create(path, parent); d->wizard = create(path, parent);
connect(d->wizard, SIGNAL(progressPageShown()), this, SLOT(slotProgressPageShown()));
d->wizard->setWindowTitle(displayName()); d->wizard->setWindowTitle(displayName());
if (d->wizard->exec() != QDialog::Accepted) { const QString checkoutPath = d->wizard->run();
if (checkoutPath.isEmpty()) {
d->clear(); d->clear();
return; return;
} }
// Now try to find the project file and open // Now try to find the project file and open
const QString checkoutPath = d->checkoutPath;
d->clear(); d->clear();
QString errorMessage; QString errorMessage;
const QString projectFile = openProject(checkoutPath, &errorMessage); const QString projectFile = openProject(checkoutPath, &errorMessage);
@@ -175,13 +172,4 @@ QString BaseCheckoutWizardFactory::openProject(const QString &path, QString *err
return projectFile; return projectFile;
} }
void BaseCheckoutWizardFactory::slotProgressPageShown()
{
QList<QWizardPage *> pages;
foreach (int id, d->wizard->pageIds())
pages << d->wizard->page(id);
Command *command = createCommand(pages, &(d->checkoutPath));
d->wizard->start(command);
}
} // namespace VcsBase } // namespace VcsBase

View File

@@ -60,13 +60,6 @@ public:
virtual BaseCheckoutWizard *create(const QString &path, QWidget *parent = 0) const = 0; virtual BaseCheckoutWizard *create(const QString &path, QWidget *parent = 0) const = 0;
protected:
virtual Command *createCommand(const QList<QWizardPage *> &parameterPages,
QString *checkoutPath) = 0;
private slots:
void slotProgressPageShown();
private: private:
Internal::BaseCheckoutWizardFactoryPrivate *const d; Internal::BaseCheckoutWizardFactoryPrivate *const d;
}; };