IWizardFactory Class

(Core::IWizardFactory)

The IWizardFactory class is the base class for all wizard factories. More...

Header: #include <IWizardFactory>
Inherited By:

Core::BaseFileWizardFactory

Public Types

typedef FactoryCreator
enum WizardFlag { PlatformIndependent, ForceCapitalLetterForFileName }
flags WizardFlags
enum WizardKind { FileWizard, ProjectWizard }

Public Functions

void addRequiredFeature(const Core::Id &feature)
QString category() const
QString description() const
QString descriptionImage() const
QString displayCategory() const
QString displayName() const
Core::IWizardFactory::WizardFlags flags() const
QIcon icon() const
QString iconText() const
Core::Id id() const
virtual bool isAvailable(Core::Id platformId) const
Core::IWizardFactory::WizardKind kind() const
QSet<Core::Id> requiredFeatures() const
QString runPath(const QString &defaultPath)
Utils::Wizard *runWizard(const QString &path, QWidget *parent, Core::Id platform, const QVariantMap &variables)
void setCategory(const QString &category)
void setDescription(const QString &description)
void setDescriptionImage(const QString &descriptionImage)
void setDisplayCategory(const QString &displayCategory)
void setDisplayName(const QString &displayName)
void setFlags(Core::IWizardFactory::WizardFlags flags)
void setIcon(const QIcon &icon)
void setIconText(const QString &iconText)
void setId(const Core::Id id)
void setRequiredFeatures(const QSet<Core::Id> &featureSet)
void setSupportedProjectTypes(const QSet<Core::Id> &projectTypes)
QSet<Core::Id> supportedPlatforms() const
QSet<Core::Id> supportedProjectTypes() const

Static Public Members

QSet<Core::Id> allAvailablePlatforms()
QList<Core::IWizardFactory *> allWizardFactories()
QWidget *currentWizard()
QString displayNameForPlatform(Core::Id i)
bool isWizardRunning()
void registerFactoryCreator(const Core::IWizardFactory::FactoryCreator &creator)
void registerFeatureProvider(Core::IFeatureProvider *provider)
void requestNewItemDialog(const QString &title, const QList<Core::IWizardFactory *> &factories, const QString &defaultLocation, const QVariantMap &extraVariables)

Protected Functions

QSet<Core::Id> availableFeatures(Core::Id platformId) const
QSet<Core::Id> pluginFeatures() const
virtual Utils::Wizard *runWizardImpl(const QString &path, QWidget *parent, Core::Id platform, const QVariantMap &variables) = 0

Detailed Description

The IWizardFactory class is the base class for all wizard factories.

Note: Instead of using this class, we recommend that you create JSON-based wizards, as instructed in Adding New Custom Wizards.

The wizard interface is a very thin abstraction for the wizards in File > New File or Project. Basically, it defines what to show to the user in the wizard selection dialogs, and a hook that is called if the user selects the wizard.

Wizards can then perform any operations they like, including showing dialogs and creating files. Often it is not necessary to create your own wizard from scratch. Use one of the predefined wizards and adapt it to your needs.

To make your wizard known to the system, add your IWizardFactory instance to the plugin manager's object pool in your plugin's initialize function:


  bool MyPlugin::initialize(const QStringList &arguments, QString *errorString)
  {
      // ... do setup
      addAutoReleasedObject(new MyWizardFactory);
      // ... do more setup
  }

See also Core::BaseFileWizardFactory and Core::BaseFileWizard.

Member Type Documentation

typedef IWizardFactory::FactoryCreator

enum IWizardFactory::WizardFlag
flags IWizardFactory::WizardFlags

The WizardFlags type is a typedef for QFlags<WizardFlag>. It stores an OR combination of WizardFlag values.

enum IWizardFactory::WizardKind

Used to specify what kind of objects the wizard creates. This information is used to show e.g. only wizards that create projects when selecting a New Project menu item.

ConstantValueDescription
Core::IWizardFactory::FileWizard0x01The wizard creates one or more files.
Core::IWizardFactory::ProjectWizard0x02The wizard creates a new project.

Member Function Documentation

void IWizardFactory::addRequiredFeature(const Core::Id &feature)

[static] QSet<Core::Id> IWizardFactory::allAvailablePlatforms()

[static] QList<Core::IWizardFactory *> IWizardFactory::allWizardFactories()

[protected] QSet<Core::Id> IWizardFactory::availableFeatures(Core::Id platformId) const

QString IWizardFactory::category() const

See also setCategory().

[static] QWidget *IWizardFactory::currentWizard()

QString IWizardFactory::description() const

See also setDescription().

QString IWizardFactory::descriptionImage() const

See also setDescriptionImage().

QString IWizardFactory::displayCategory() const

See also setDisplayCategory().

QString IWizardFactory::displayName() const

See also setDisplayName().

[static] QString IWizardFactory::displayNameForPlatform(Core::Id i)

Core::IWizardFactory::WizardFlags IWizardFactory::flags() const

See also setFlags().

QIcon IWizardFactory::icon() const

See also setIcon().

QString IWizardFactory::iconText() const

See also setIconText().

Core::Id IWizardFactory::id() const

See also setId().

[virtual] bool IWizardFactory::isAvailable(Core::Id platformId) const

[static] bool IWizardFactory::isWizardRunning()

Core::IWizardFactory::WizardKind IWizardFactory::kind() const

[protected] QSet<Core::Id> IWizardFactory::pluginFeatures() const

[static] void IWizardFactory::registerFactoryCreator(const Core::IWizardFactory::FactoryCreator &creator)

[static] void IWizardFactory::registerFeatureProvider(Core::IFeatureProvider *provider)

[static] void IWizardFactory::requestNewItemDialog(const QString &title, const QList<Core::IWizardFactory *> &factories, const QString &defaultLocation, const QVariantMap &extraVariables)

QSet<Core::Id> IWizardFactory::requiredFeatures() const

See also setRequiredFeatures().

QString IWizardFactory::runPath(const QString &defaultPath)

Utils::Wizard *IWizardFactory::runWizard(const QString &path, QWidget *parent, Core::Id platform, const QVariantMap &variables)

Creates the wizard that the user selected for execution on the operating system platform with variables.

Any dialogs the wizard opens should use the given parent. The path argument is a suggestion for the location where files should be created. The wizard should fill this in its path selection elements as a default path.

[pure virtual protected] Utils::Wizard *IWizardFactory::runWizardImpl(const QString &path, QWidget *parent, Core::Id platform, const QVariantMap &variables)

void IWizardFactory::setCategory(const QString &category)

See also category().

void IWizardFactory::setDescription(const QString &description)

See also description().

void IWizardFactory::setDescriptionImage(const QString &descriptionImage)

See also descriptionImage().

void IWizardFactory::setDisplayCategory(const QString &displayCategory)

See also displayCategory().

void IWizardFactory::setDisplayName(const QString &displayName)

See also displayName().

void IWizardFactory::setFlags(Core::IWizardFactory::WizardFlags flags)

See also flags().

void IWizardFactory::setIcon(const QIcon &icon)

See also icon().

void IWizardFactory::setIconText(const QString &iconText)

See also iconText().

void IWizardFactory::setId(const Core::Id id)

See also id().

void IWizardFactory::setRequiredFeatures(const QSet<Core::Id> &featureSet)

See also requiredFeatures().

void IWizardFactory::setSupportedProjectTypes(const QSet<Core::Id> &projectTypes)

See also supportedProjectTypes().

QSet<Core::Id> IWizardFactory::supportedPlatforms() const

QSet<Core::Id> IWizardFactory::supportedProjectTypes() const

See also setSupportedProjectTypes().