From 79169238b1016f417ca4287ec4ce123ecf3bc2cd Mon Sep 17 00:00:00 2001 From: Roberto Raggi <roberto.raggi@nokia.com> Date: Thu, 12 Mar 2009 17:53:25 +0100 Subject: [PATCH] Fun with Core::IWizard. --- .../genericprojectmanager.pro | 2 + .../genericprojectplugin.cpp | 6 +- .../genericprojectwizard.cpp | 62 +++++++++++++++++++ .../genericprojectwizard.h | 31 ++++++++++ 4 files changed, 99 insertions(+), 2 deletions(-) create mode 100644 src/plugins/genericprojectmanager/genericprojectwizard.cpp create mode 100644 src/plugins/genericprojectmanager/genericprojectwizard.h diff --git a/src/plugins/genericprojectmanager/genericprojectmanager.pro b/src/plugins/genericprojectmanager/genericprojectmanager.pro index 79ee17ce63a..57a849d161b 100644 --- a/src/plugins/genericprojectmanager/genericprojectmanager.pro +++ b/src/plugins/genericprojectmanager/genericprojectmanager.pro @@ -7,12 +7,14 @@ HEADERS = genericproject.h \ genericprojectmanager.h \ genericprojectconstants.h \ genericprojectnodes.h \ + genericprojectwizard.h \ pkgconfigtool.h \ makestep.h SOURCES = genericproject.cpp \ genericprojectplugin.cpp \ genericprojectmanager.cpp \ genericprojectnodes.cpp \ + genericprojectwizard.cpp \ pkgconfigtool.cpp \ makestep.cpp RESOURCES += genericproject.qrc diff --git a/src/plugins/genericprojectmanager/genericprojectplugin.cpp b/src/plugins/genericprojectmanager/genericprojectplugin.cpp index cd6c10ff5d9..75d70955a6e 100644 --- a/src/plugins/genericprojectmanager/genericprojectplugin.cpp +++ b/src/plugins/genericprojectmanager/genericprojectplugin.cpp @@ -29,6 +29,7 @@ #include "genericprojectplugin.h" #include "genericprojectmanager.h" +#include "genericprojectwizard.h" #include "makestep.h" #include <coreplugin/icore.h> @@ -57,8 +58,9 @@ bool GenericProjectPlugin::initialize(const QStringList &, QString *errorMessage if (! mimeDB->addMimeTypes(mimetypesXml, errorMessage)) return false; - addAutoReleasedObject(new Manager()); - addAutoReleasedObject(new MakeBuildStepFactory()); + addAutoReleasedObject(new Manager); + addAutoReleasedObject(new MakeBuildStepFactory); + addAutoReleasedObject(new GenericProjectWizard); return true; } diff --git a/src/plugins/genericprojectmanager/genericprojectwizard.cpp b/src/plugins/genericprojectmanager/genericprojectwizard.cpp new file mode 100644 index 00000000000..f4c0653e6d1 --- /dev/null +++ b/src/plugins/genericprojectmanager/genericprojectwizard.cpp @@ -0,0 +1,62 @@ +#include "genericprojectwizard.h" +#include <utils/pathchooser.h> + +#include <QtGui/QWizard> +#include <QtGui/QFormLayout> +#include <QtCore/QtDebug> + +using namespace GenericProjectManager::Internal; +using namespace Core::Utils; + +GenericProjectWizard::GenericProjectWizard() + : Core::BaseFileWizard(parameters()) +{ +} + +GenericProjectWizard::~GenericProjectWizard() +{ +} + +Core::BaseFileWizardParameters GenericProjectWizard::parameters() +{ + static Core::BaseFileWizardParameters parameters(ProjectWizard); + parameters.setName(tr("Existing Project")); + parameters.setDescription(tr("Import Existing Project")); + parameters.setCategory(QLatin1String("Import")); + parameters.setTrCategory(tr("Import")); + return parameters; +} + +QWizard *GenericProjectWizard::createWizardDialog(QWidget *parent, + const QString &defaultPath, + const WizardPageList &extensionPages) const +{ + QWizard *wizard = new QWizard(parent); + wizard->setWindowTitle(tr("Import Existing Project")); + setupWizard(wizard); + + QWizardPage *firstPage = new QWizardPage; + firstPage->setTitle(tr("")); + + QFormLayout *layout = new QFormLayout(firstPage); + + PathChooser *pathChooser = new PathChooser; + pathChooser->setObjectName("pathChooser"); + layout->addRow(tr("Source Directory:"), pathChooser); + + wizard->addPage(firstPage); + + foreach (QWizardPage *p, extensionPages) + wizard->addPage(p); + + return wizard; +} + +Core::GeneratedFiles GenericProjectWizard::generateFiles(const QWizard *w, + QString *errorMessage) const +{ + PathChooser *pathChooser = w->findChild<PathChooser *>("pathChooser"); + + return Core::GeneratedFiles(); +} + diff --git a/src/plugins/genericprojectmanager/genericprojectwizard.h b/src/plugins/genericprojectmanager/genericprojectwizard.h new file mode 100644 index 00000000000..3c49bdff4cd --- /dev/null +++ b/src/plugins/genericprojectmanager/genericprojectwizard.h @@ -0,0 +1,31 @@ +#ifndef GENERICPROJECTWIZARD_H +#define GENERICPROJECTWIZARD_H + +#include <coreplugin/basefilewizard.h> + +namespace GenericProjectManager { +namespace Internal { + +class GenericProjectWizard : public Core::BaseFileWizard +{ + Q_OBJECT + +public: + GenericProjectWizard(); + virtual ~GenericProjectWizard(); + + static Core::BaseFileWizardParameters parameters(); + +protected: + virtual QWizard *createWizardDialog(QWidget *parent, + const QString &defaultPath, + const WizardPageList &extensionPages) const; + + virtual Core::GeneratedFiles generateFiles(const QWizard *w, + QString *errorMessage) const; +}; + +} // end of namespace Internal +} // end of namespace GenericProjectManager + +#endif // GENERICPROJECTWIZARD_H -- GitLab