IWizardFactory Class
class Core::IWizardFactoryThe IWizardFactory class is the base class for all wizard factories. More...
Header: | #include <coreplugin/iwizardfactory.h> |
Inherits: | QObject |
Inherited By: |
Public Types
enum | WizardFlag { PlatformIndependent, ForceCapitalLetterForFileName } |
flags | WizardFlags |
enum | WizardKind { FileWizard, ProjectWizard } |
Public Functions
QString | category() const |
QString | description() const |
QString | displayCategory() const |
QString | displayName() const |
QIcon | icon() const |
Utils::Id | id() const |
Core::IWizardFactory::WizardKind | kind() const |
Utils::Wizard * | runWizard(const Utils::FilePath &path, QWidget *parent, Utils::Id platform, const QVariantMap &variables, bool showWizard = true) |
Detailed Description
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 and New 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:
void MyPlugin::initialize() { // ... do setup addAutoReleasedObject(new MyWizardFactory); // ... do more setup }
See also Core::BaseFileWizardFactory and Core::BaseFileWizard.
Member Type Documentation
enum IWizardFactory::WizardFlag
flags IWizardFactory::WizardFlags
Holds information about the created projects and files.
Constant | Value | Description |
---|---|---|
Core::IWizardFactory::PlatformIndependent | 0x01 | The wizard creates projects that run on all platforms. |
Core::IWizardFactory::ForceCapitalLetterForFileName | 0x02 | The wizard uses an initial capital letter for the names of new files. |
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.
Constant | Value | Description |
---|---|---|
Core::IWizardFactory::FileWizard | 0x01 | The wizard creates one or more files. |
Core::IWizardFactory::ProjectWizard | 0x02 | The wizard creates a new project. |
Member Function Documentation
QString IWizardFactory::category() const
Returns a category ID to add the wizard to.
QString IWizardFactory::description() const
Returns a translated description to show when this wizard is selected in the dialog.
QString IWizardFactory::displayCategory() const
Returns the translated string of the category, how it should appear in the dialog.
QString IWizardFactory::displayName() const
Returns the translated name of the wizard, how it should appear in the dialog.
QIcon IWizardFactory::icon() const
Returns an icon to show in the wizard selection dialog.
Utils::Id IWizardFactory::id() const
Returns an arbitrary id that is used for sorting within the category.
Core::IWizardFactory::WizardKind IWizardFactory::kind() const
Returns what kind of objects are created by the wizard.
Utils::Wizard *IWizardFactory::runWizard(const Utils::FilePath &path, QWidget *parent, Utils::Id platform, const QVariantMap &variables, bool showWizard = true)
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.
When showWizard is false
, the wizard instance is created and set up but not actually shown.
© 2024 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.