ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/s10k/Vago/wizardfactory.h
Revision: 1093
Committed: Sat Dec 30 13:57:32 2017 UTC (7 years, 9 months ago) by s10k
Content type: text/x-chdr
File size: 1516 byte(s)
Log Message:
Vago 1.4

File Contents

# Content
1 #ifndef WIZARDFACTORY_H
2 #define WIZARDFACTORY_H
3
4 #include "soundwizard.h"
5
6 // This template class allows us to create wizards in the heap which auto-delete themselves once finished
7 template<typename T>
8 class WizardFactory : public T
9 {
10 public:
11 static void startInstance(const QString &appDir, const QString &workspaceWizardLocation, QSettings *vagoSettings){
12 (new WizardFactory<T>(appDir, workspaceWizardLocation, vagoSettings))->exec();
13 }
14 private:
15 // We need to have a constructor to be able to acess "exec" protected function
16 WizardFactory
17 (
18 const QString &appDir,
19 const QString &workspaceWizardLocation,
20 QSettings *vagoSettings
21 ):T(appDir, workspaceWizardLocation, vagoSettings){}
22 };
23
24 // Specialization for SoundWizard (it receives extra variables)
25 template<>
26 class WizardFactory<SoundWizard> : public SoundWizard
27 {
28 public:
29 static void startInstance(const QString &appDir, const QString &workspaceWizardLocation, QSettings *vagoSettings, QHash<QString, QString> *commandMap){
30 (new WizardFactory(appDir, workspaceWizardLocation, vagoSettings, commandMap))->exec();
31 }
32 private:
33 WizardFactory
34 (
35 const QString &appDir,
36 const QString &workspaceWizardLocation,
37 QSettings *vagoSettings,
38 QHash<QString, QString> *commandMap
39 ):SoundWizard(appDir, workspaceWizardLocation, vagoSettings, commandMap){}
40 };
41
42
43
44
45
46 #endif // WIZARDFACTORY_H