diff --git a/src/plugins/bazaar/clonewizard.cpp b/src/plugins/bazaar/clonewizard.cpp index ee9f4e42fa6..d6226e00969 100644 --- a/src/plugins/bazaar/clonewizard.cpp +++ b/src/plugins/bazaar/clonewizard.cpp @@ -51,21 +51,9 @@ CloneWizardFactory::CloneWizardFactory() setDisplayName(tr("Bazaar Clone (Or Branch)")); } -VcsBase::BaseCheckoutWizard *CloneWizardFactory::create(const QList ¶meterPages, QWidget *parent) const +VcsBase::BaseCheckoutWizard *CloneWizardFactory::create(const QString &path, QWidget *parent) const { - return new CloneWizard(parameterPages, parent); -} - -QList CloneWizardFactory::createParameterPages(const QString &path) -{ - QList wizardPageList; - const Core::IVersionControl *vc = BazaarPlugin::instance()->versionControl(); - if (!vc->isConfigured()) - wizardPageList.append(new VcsBase::VcsConfigurationPage(vc)); - CloneWizardPage *page = new CloneWizardPage; - page->setPath(path); - wizardPageList.append(page); - return wizardPageList; + return new CloneWizard(path, parent); } VcsBase::Command *CloneWizardFactory::createCommand(const QList ¶meterPages, @@ -116,9 +104,16 @@ VcsBase::Command *CloneWizardFactory::createCommand(const QList & // CloneWizard: // -------------------------------------------------------------------- -CloneWizard::CloneWizard(const QList ¶meterPages, QWidget *parent) : - VcsBase::BaseCheckoutWizard(parameterPages, parent) +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); } diff --git a/src/plugins/bazaar/clonewizard.h b/src/plugins/bazaar/clonewizard.h index 6f7e1f4dd6f..e374646863d 100644 --- a/src/plugins/bazaar/clonewizard.h +++ b/src/plugins/bazaar/clonewizard.h @@ -45,10 +45,9 @@ class CloneWizardFactory : public VcsBase::BaseCheckoutWizardFactory public: CloneWizardFactory(); - VcsBase::BaseCheckoutWizard *create(const QList ¶meterPages, QWidget *parent = 0) const; + VcsBase::BaseCheckoutWizard *create(const QString &path, QWidget *parent = 0) const; private: - QList createParameterPages(const QString &path); VcsBase::Command *createCommand(const QList ¶meterPages, QString *checkoutPath); }; @@ -58,7 +57,7 @@ class CloneWizard : public VcsBase::BaseCheckoutWizard Q_OBJECT public: - CloneWizard(const QList ¶meterPages, QWidget *parent = 0); + CloneWizard(const QString &path, QWidget *parent = 0); }; } // namespace Internal diff --git a/src/plugins/cvs/checkoutwizard.cpp b/src/plugins/cvs/checkoutwizard.cpp index ffff5d2b4ea..0a53683647e 100644 --- a/src/plugins/cvs/checkoutwizard.cpp +++ b/src/plugins/cvs/checkoutwizard.cpp @@ -48,21 +48,9 @@ CheckoutWizardFactory::CheckoutWizardFactory() setDisplayName(tr("CVS Checkout")); } -VcsBase::BaseCheckoutWizard *CheckoutWizardFactory::create(const QList ¶meterPages, QWidget *parent) const +VcsBase::BaseCheckoutWizard *CheckoutWizardFactory::create(const QString &path, QWidget *parent) const { - return new CheckoutWizard(parameterPages, parent); -} - -QList CheckoutWizardFactory::createParameterPages(const QString &path) -{ - QList rc; - const Core::IVersionControl *vc = CvsPlugin::instance()->versionControl(); - if (!vc->isConfigured()) - rc.append(new VcsBase::VcsConfigurationPage(vc)); - CheckoutWizardPage *cwp = new CheckoutWizardPage; - cwp->setPath(path); - rc.push_back(cwp); - return rc; + return new CheckoutWizard(path, parent); } VcsBase::Command *CheckoutWizardFactory::createCommand(const QList ¶meterPages, @@ -94,9 +82,16 @@ VcsBase::Command *CheckoutWizardFactory::createCommand(const QList // CheckoutWizard: // -------------------------------------------------------------------- -CheckoutWizard::CheckoutWizard(const QList ¶meterPages, QWidget *parent) : - VcsBase::BaseCheckoutWizard(parameterPages, parent) -{ } +CheckoutWizard::CheckoutWizard(const QString &path, QWidget *parent) : + VcsBase::BaseCheckoutWizard(path, parent) +{ + const Core::IVersionControl *vc = CvsPlugin::instance()->versionControl(); + if (!vc->isConfigured()) + addPage(new VcsBase::VcsConfigurationPage(vc)); + CheckoutWizardPage *cwp = new CheckoutWizardPage; + cwp->setPath(path); + addPage(cwp); +} } // namespace Internal } // namespace Cvs diff --git a/src/plugins/cvs/checkoutwizard.h b/src/plugins/cvs/checkoutwizard.h index 0115ed5673f..14c36730cc5 100644 --- a/src/plugins/cvs/checkoutwizard.h +++ b/src/plugins/cvs/checkoutwizard.h @@ -43,11 +43,10 @@ class CheckoutWizardFactory : public VcsBase::BaseCheckoutWizardFactory public: CheckoutWizardFactory(); - VcsBase::BaseCheckoutWizard *create(const QList ¶meterPages, QWidget *parent = 0) const; + VcsBase::BaseCheckoutWizard *create(const QString &path, QWidget *parent = 0) const; private: // BaseCheckoutWizard - QList createParameterPages(const QString &path); VcsBase::Command *createCommand(const QList ¶meterPage, QString *checkoutPath); }; @@ -57,7 +56,7 @@ class CheckoutWizard : public VcsBase::BaseCheckoutWizard Q_OBJECT public: - CheckoutWizard(const QList ¶meterPages, QWidget *parent = 0); + CheckoutWizard(const QString &path, QWidget *parent = 0); }; } // namespace Internal diff --git a/src/plugins/git/clonewizard.cpp b/src/plugins/git/clonewizard.cpp index 89317d48239..fd99944563a 100644 --- a/src/plugins/git/clonewizard.cpp +++ b/src/plugins/git/clonewizard.cpp @@ -48,21 +48,9 @@ CloneWizardFactory::CloneWizardFactory() setDisplayName(tr("Git Repository Clone")); } -VcsBase::BaseCheckoutWizard *CloneWizardFactory::create(const QList ¶meterPages, QWidget *parent) const +VcsBase::BaseCheckoutWizard *CloneWizardFactory::create(const QString &path, QWidget *parent) const { - return new CloneWizard(parameterPages, parent); -} - -QList CloneWizardFactory::createParameterPages(const QString &path) -{ - QList rc; - const Internal::GitVersionControl *vc = Internal::GitPlugin::instance()->gitVersionControl(); - if (!vc->isConfigured()) - rc.append(new VcsBase::VcsConfigurationPage(vc)); - CloneWizardPage *cwp = new CloneWizardPage; - cwp->setPath(path); - rc.push_back(cwp); - return rc; + return new CloneWizard(path, parent); } VcsBase::Command *CloneWizardFactory::createCommand(const QList ¶meterPages, @@ -83,11 +71,18 @@ VcsBase::Command *CloneWizardFactory::createCommand(const QList &p // CloneWizard: // -------------------------------------------------------------------- -CloneWizard::CloneWizard(const QList ¶meterPages, QWidget *parent) : - VcsBase::BaseCheckoutWizard(parameterPages, parent) +CloneWizard::CloneWizard(const QString &path, QWidget *parent) : + VcsBase::BaseCheckoutWizard(path, parent) { setTitle(tr("Cloning")); setStartedStatus(tr("Cloning started...")); + + const Internal::GitVersionControl *vc = Internal::GitPlugin::instance()->gitVersionControl(); + if (!vc->isConfigured()) + addPage(new VcsBase::VcsConfigurationPage(vc)); + CloneWizardPage *cwp = new CloneWizardPage; + cwp->setPath(path); + addPage(cwp); } } // namespace Internal diff --git a/src/plugins/git/clonewizard.h b/src/plugins/git/clonewizard.h index 743b095d21d..dffce65b106 100644 --- a/src/plugins/git/clonewizard.h +++ b/src/plugins/git/clonewizard.h @@ -43,11 +43,10 @@ class CloneWizardFactory : public VcsBase::BaseCheckoutWizardFactory public: CloneWizardFactory(); - VcsBase::BaseCheckoutWizard *create(const QList ¶meterPages, QWidget *parent = 0) const; + VcsBase::BaseCheckoutWizard *create(const QString &path, QWidget *parent = 0) const; private: // BaseCheckoutWizard - QList createParameterPages(const QString &path); VcsBase::Command *createCommand(const QList ¶meterPages, QString *checkoutPath); }; @@ -57,7 +56,7 @@ class CloneWizard : public VcsBase::BaseCheckoutWizard Q_OBJECT public: - CloneWizard(const QList ¶meterPages, QWidget *parent = 0); + CloneWizard(const QString &path, QWidget *parent = 0); }; } // namespace Internal diff --git a/src/plugins/git/gitorious/gitoriousclonewizard.cpp b/src/plugins/git/gitorious/gitoriousclonewizard.cpp index e66cdd6a0d3..4224a0e4d49 100644 --- a/src/plugins/git/gitorious/gitoriousclonewizard.cpp +++ b/src/plugins/git/gitorious/gitoriousclonewizard.cpp @@ -77,26 +77,9 @@ GitoriousCloneWizardFactory::GitoriousCloneWizardFactory() setDisplayName(tr("Gitorious Repository Clone")); } -VcsBase::BaseCheckoutWizard *GitoriousCloneWizardFactory::create(const QList ¶meterPages, QWidget *parent) const +VcsBase::BaseCheckoutWizard *GitoriousCloneWizardFactory::create(const QString &path, QWidget *parent) const { - return new GitoriousCloneWizard(parameterPages, parent); -} - -QList GitoriousCloneWizardFactory::createParameterPages(const QString &path) -{ - QList rc; - const Core::IVersionControl *vc = Git::Internal::GitPlugin::instance()->versionControl(); - if (!vc->isConfigured()) - rc.append(new VcsBase::VcsConfigurationPage(vc)); - - GitoriousHostWizardPage *hostPage = new GitoriousHostWizardPage; - GitoriousProjectWizardPage *projectPage = new GitoriousProjectWizardPage(hostPage); - GitoriousRepositoryWizardPage *repoPage = new GitoriousRepositoryWizardPage(projectPage); - GitoriousCloneWizardPage *clonePage = new GitoriousCloneWizardPage(repoPage); - clonePage->setPath(path); - - rc << hostPage << projectPage << repoPage << clonePage; - return rc; + return new GitoriousCloneWizard(path, parent); } VcsBase::Command *GitoriousCloneWizardFactory::createCommand(const QList ¶meterPages, @@ -115,9 +98,27 @@ VcsBase::Command *GitoriousCloneWizardFactory::createCommand(const QList ¶meterPages, QWidget *parent) : - VcsBase::BaseCheckoutWizard(parameterPages, parent) -{ } +GitoriousCloneWizard::GitoriousCloneWizard(const QString &path, QWidget *parent) : + VcsBase::BaseCheckoutWizard(path, parent) +{ + setTitle(tr("Cloning")); + setStartedStatus(tr("Cloning started...")); + + const Core::IVersionControl *vc = Git::Internal::GitPlugin::instance()->versionControl(); + if (!vc->isConfigured()) + addPage(new VcsBase::VcsConfigurationPage(vc)); + + GitoriousHostWizardPage *hostPage = new GitoriousHostWizardPage; + GitoriousProjectWizardPage *projectPage = new GitoriousProjectWizardPage(hostPage); + GitoriousRepositoryWizardPage *repoPage = new GitoriousRepositoryWizardPage(projectPage); + GitoriousCloneWizardPage *clonePage = new GitoriousCloneWizardPage(repoPage); + clonePage->setPath(path); + + addPage(hostPage); + addPage(projectPage); + addPage(repoPage); + addPage(clonePage); +} } // namespace Internal } // namespace Gitorius diff --git a/src/plugins/git/gitorious/gitoriousclonewizard.h b/src/plugins/git/gitorious/gitoriousclonewizard.h index d4070504941..7f35f18fb24 100644 --- a/src/plugins/git/gitorious/gitoriousclonewizard.h +++ b/src/plugins/git/gitorious/gitoriousclonewizard.h @@ -45,11 +45,10 @@ class GitoriousCloneWizardFactory : public VcsBase::BaseCheckoutWizardFactory public: GitoriousCloneWizardFactory(); - VcsBase::BaseCheckoutWizard *create(const QList ¶meterPages, QWidget *parent = 0) const; + VcsBase::BaseCheckoutWizard *create(const QString &path, QWidget *parent = 0) const; private: // BaseCheckoutWizard - QList createParameterPages(const QString &path); VcsBase::Command *createCommand(const QList ¶meterPages, QString *checkoutPath); }; @@ -59,7 +58,7 @@ class GitoriousCloneWizard : public VcsBase::BaseCheckoutWizard Q_OBJECT public: - GitoriousCloneWizard(const QList ¶meterPages, QWidget *parent = 0); + GitoriousCloneWizard(const QString &path, QWidget *parent = 0); }; diff --git a/src/plugins/mercurial/clonewizard.cpp b/src/plugins/mercurial/clonewizard.cpp index f045c795698..d6586b23aa3 100644 --- a/src/plugins/mercurial/clonewizard.cpp +++ b/src/plugins/mercurial/clonewizard.cpp @@ -48,21 +48,9 @@ CloneWizardFactory::CloneWizardFactory() setDisplayName(tr("Mercurial Clone")); } -BaseCheckoutWizard *CloneWizardFactory::create(const QList ¶meterPages, QWidget *parent) const +BaseCheckoutWizard *CloneWizardFactory::create(const QString &path, QWidget *parent) const { - return new CloneWizard(parameterPages, parent); -} - -QList CloneWizardFactory::createParameterPages(const QString &path) -{ - QList wizardPageList; - const Core::IVersionControl *vc = MercurialPlugin::instance()->versionControl(); - if (!vc->isConfigured()) - wizardPageList.append(new VcsConfigurationPage(vc)); - CloneWizardPage *page = new CloneWizardPage; - page->setPath(path); - wizardPageList.append(page); - return wizardPageList; + return new CloneWizard(path, parent); } Command *CloneWizardFactory::createCommand(const QList ¶meterPages, @@ -95,9 +83,16 @@ Command *CloneWizardFactory::createCommand(const QList ¶meter // CloneWizard: // -------------------------------------------------------------------- -CloneWizard::CloneWizard(const QList ¶meterPages, QWidget *parent) : - VcsBase::BaseCheckoutWizard(parameterPages, parent) +CloneWizard::CloneWizard(const QString &path, QWidget *parent) : + VcsBase::BaseCheckoutWizard(path, parent) { setTitle(tr("Cloning")); setStartedStatus(tr("Cloning started...")); + + const Core::IVersionControl *vc = MercurialPlugin::instance()->versionControl(); + if (!vc->isConfigured()) + addPage(new VcsConfigurationPage(vc)); + CloneWizardPage *page = new CloneWizardPage; + page->setPath(path); + addPage(page); } diff --git a/src/plugins/mercurial/clonewizard.h b/src/plugins/mercurial/clonewizard.h index 42bbd10f9a3..3de79df3049 100644 --- a/src/plugins/mercurial/clonewizard.h +++ b/src/plugins/mercurial/clonewizard.h @@ -45,10 +45,9 @@ class CloneWizardFactory : public VcsBase::BaseCheckoutWizardFactory public: CloneWizardFactory(); - VcsBase::BaseCheckoutWizard *create(const QList ¶meterPages, QWidget *parent = 0) const; + VcsBase::BaseCheckoutWizard *create(const QString &path, QWidget *parent = 0) const; protected: - QList createParameterPages(const QString &path); VcsBase::Command *createCommand(const QList ¶meterPages, QString *checkoutPath); @@ -61,7 +60,7 @@ class CloneWizard : public VcsBase::BaseCheckoutWizard Q_OBJECT public: - CloneWizard(const QList ¶meterPages, QWidget *parent = 0); + CloneWizard(const QString &path, QWidget *parent = 0); }; } //namespace Internal diff --git a/src/plugins/subversion/checkoutwizard.cpp b/src/plugins/subversion/checkoutwizard.cpp index 9069103b094..7802adbeeeb 100644 --- a/src/plugins/subversion/checkoutwizard.cpp +++ b/src/plugins/subversion/checkoutwizard.cpp @@ -51,16 +51,9 @@ CheckoutWizardFactory::CheckoutWizardFactory() setDisplayName(tr("Subversion Checkout")); } -QList CheckoutWizardFactory::createParameterPages(const QString &path) +VcsBase::BaseCheckoutWizard *CheckoutWizardFactory::create(const QString &path, QWidget *parent) const { - QList rc; - const Core::IVersionControl *vc = SubversionPlugin::instance()->versionControl(); - if (!vc->isConfigured()) - rc.append(new VcsBase::VcsConfigurationPage(vc)); - CheckoutWizardPage *cwp = new CheckoutWizardPage; - cwp->setPath(path); - rc.append(cwp); - return rc; + return new CheckoutWizard(path, parent); } VcsBase::Command *CheckoutWizardFactory::createCommand(const QList ¶meterPages, @@ -95,9 +88,16 @@ VcsBase::Command *CheckoutWizardFactory::createCommand(const QList // CheckoutWizard: // -------------------------------------------------------------------- -CheckoutWizard::CheckoutWizard(const QList ¶meterPages, QWidget *parent) : - VcsBase::BaseCheckoutWizard(parameterPages, parent) -{ } +CheckoutWizard::CheckoutWizard(const QString &path, QWidget *parent) : + VcsBase::BaseCheckoutWizard(path, parent) +{ + const Core::IVersionControl *vc = SubversionPlugin::instance()->versionControl(); + if (!vc->isConfigured()) + addPage(new VcsBase::VcsConfigurationPage(vc)); + CheckoutWizardPage *cwp = new CheckoutWizardPage; + cwp->setPath(path); + addPage(cwp); +} } // namespace Internal } // namespace Subversion diff --git a/src/plugins/subversion/checkoutwizard.h b/src/plugins/subversion/checkoutwizard.h index e14082a2017..26c99c72363 100644 --- a/src/plugins/subversion/checkoutwizard.h +++ b/src/plugins/subversion/checkoutwizard.h @@ -43,11 +43,10 @@ class CheckoutWizardFactory : public VcsBase::BaseCheckoutWizardFactory public: CheckoutWizardFactory(); - VcsBase::BaseCheckoutWizard *create(const QList ¶meterPages, QWidget *parent = 0) const; + VcsBase::BaseCheckoutWizard *create(const QString &path, QWidget *parent = 0) const; private: // BaseCheckoutWizard - QList createParameterPages(const QString &path); VcsBase::Command *createCommand(const QList ¶meterPage, QString *checkoutPath); }; @@ -57,7 +56,7 @@ class CheckoutWizard : public VcsBase::BaseCheckoutWizard Q_OBJECT public: - CheckoutWizard(const QList ¶meterPages, QWidget *parent = 0); + CheckoutWizard(const QString &path, QWidget *parent = 0); }; } // namespace Internal diff --git a/src/plugins/vcsbase/basecheckoutwizard.cpp b/src/plugins/vcsbase/basecheckoutwizard.cpp index 118d1b9bd1d..67a432a9119 100644 --- a/src/plugins/vcsbase/basecheckoutwizard.cpp +++ b/src/plugins/vcsbase/basecheckoutwizard.cpp @@ -44,16 +44,12 @@ namespace VcsBase { -BaseCheckoutWizard::BaseCheckoutWizard(const QList ¶meterPages, - QWidget *parent) : +BaseCheckoutWizard::BaseCheckoutWizard(const QString &path, QWidget *parent) : Utils::Wizard(parent), m_progressPage(new Internal::CheckoutProgressWizardPage), m_progressPageId(-1) { - foreach (QWizardPage *wp, parameterPages) - addPage(wp); - m_progressPageId = parameterPages.size(); - setPage(m_progressPageId, m_progressPage); + Q_UNUSED(path); connect(this, SIGNAL(currentIdChanged(int)), this, SLOT(slotPageChanged(int))); connect(m_progressPage, SIGNAL(terminated(bool)), this, SLOT(slotTerminated(bool))); } @@ -88,6 +84,12 @@ void BaseCheckoutWizard::start(Command *command) m_progressPage->start(command); } +int BaseCheckoutWizard::exec() +{ + m_progressPageId = addPage(m_progressPage); + return Utils::Wizard::exec(); +} + void BaseCheckoutWizard::reject() { // First click kills, 2nd closes diff --git a/src/plugins/vcsbase/basecheckoutwizard.h b/src/plugins/vcsbase/basecheckoutwizard.h index a9f3bd57a9c..d0269b99167 100644 --- a/src/plugins/vcsbase/basecheckoutwizard.h +++ b/src/plugins/vcsbase/basecheckoutwizard.h @@ -45,12 +45,15 @@ class VCSBASE_EXPORT BaseCheckoutWizard : public Utils::Wizard Q_OBJECT public: - explicit BaseCheckoutWizard(const QList ¶meterPages, QWidget *parent = 0); + explicit BaseCheckoutWizard(const QString &path, QWidget *parent = 0); void setTitle(const QString &title); void setStartedStatus(const QString &title); void start(VcsBase::Command *command); +public slots: + int exec(); + signals: void progressPageShown(); diff --git a/src/plugins/vcsbase/basecheckoutwizardfactory.cpp b/src/plugins/vcsbase/basecheckoutwizardfactory.cpp index 463502189a1..8151f746097 100644 --- a/src/plugins/vcsbase/basecheckoutwizardfactory.cpp +++ b/src/plugins/vcsbase/basecheckoutwizardfactory.cpp @@ -71,13 +71,11 @@ public: void clear(); BaseCheckoutWizard *wizard; - QList parameterPages; QString checkoutPath; }; void BaseCheckoutWizardFactoryPrivate::clear() { - parameterPages.clear(); delete wizard; wizard = 0; checkoutPath.clear(); @@ -108,8 +106,7 @@ void BaseCheckoutWizardFactory::runWizard(const QString &path, QWidget *parent, QTC_ASSERT(!d->wizard, return); // Create dialog and launch - d->parameterPages = createParameterPages(path); - d->wizard = create(d->parameterPages, parent); + d->wizard = create(path, parent); connect(d->wizard, SIGNAL(progressPageShown()), this, SLOT(slotProgressPageShown())); d->wizard->setWindowTitle(displayName()); if (d->wizard->exec() != QDialog::Accepted) { @@ -180,7 +177,10 @@ QString BaseCheckoutWizardFactory::openProject(const QString &path, QString *err void BaseCheckoutWizardFactory::slotProgressPageShown() { - Command *command = createCommand(d->parameterPages, &(d->checkoutPath)); + QList pages; + foreach (int id, d->wizard->pageIds()) + pages << d->wizard->page(id); + Command *command = createCommand(pages, &(d->checkoutPath)); d->wizard->start(command); } diff --git a/src/plugins/vcsbase/basecheckoutwizardfactory.h b/src/plugins/vcsbase/basecheckoutwizardfactory.h index 333ad9557db..7c6e5682c8e 100644 --- a/src/plugins/vcsbase/basecheckoutwizardfactory.h +++ b/src/plugins/vcsbase/basecheckoutwizardfactory.h @@ -58,10 +58,9 @@ public: static QString openProject(const QString &path, QString *errorMessage); - virtual BaseCheckoutWizard *create(const QList ¶meterPages, QWidget *parent = 0) const = 0; + virtual BaseCheckoutWizard *create(const QString &path, QWidget *parent = 0) const = 0; protected: - virtual QList createParameterPages(const QString &path) = 0; virtual Command *createCommand(const QList ¶meterPages, QString *checkoutPath) = 0;