@@ -18,6 +18,7 @@
1818#define WIZARD_SYSTEM_H
1919
2020#include <QFileSystemWatcher>
21+#include <QVersionNumber>
2122#include <QObject>
2223#include <QString>
2324
@@ -30,7 +31,48 @@ public:
3031 System();
3132 ~System() = default;
3233
34+ /**
35+ * Checks whether the wizard is enabled for first-run or otherwise
36+ */
3337 bool wizardEnabled() const;
38+
39+ /**
40+ * Returns the update version(s) that the wizard has not yet run for.
41+ * Will be empty if the current wizard version is the same version that has
42+ * already run or if the OOBE (first-time) wizard is set to run.
43+ * The special value [QVersionNumber(0)] denotes that the first-time setup
44+ * should run.
45+ * The special value [] denotes that the wizard should not be run.
46+ */
47+ std::vector<QVersionNumber> versionsToShow() const;
48+
49+ /**
50+ * Returns the possible update versions
51+ */
52+ std::vector<QVersionNumber> wizardUpdates() const
53+ {
54+ // Add a new QVersionNumber to this array for every new set of pages you
55+ // would like to add to the wizard. The wizard will check for every
56+ // version between its last run and its current version (::currentVersion())
57+ return {
58+ QVersionNumber(1, 0, 0)
59+ };
60+ }
61+
62+ /**
63+ * The update version for the Wizard in this version of Unity8. Bump this
64+ * version and add your new value to ::wizardUpdates(), then set the
65+ * showOnVersions property for the pages you would like to run on the current
66+ * update to the new value.
67+ */
68+ QVersionNumber currentVersion() const
69+ {
70+ return QVersionNumber(1, 0, 0);
71+ }
72+
73+ /**
74+ * Set that the OOBE (first-run) wizard should be run
75+ */
3476 void setWizardEnabled(bool enabled);
3577
3678public Q_SLOTS: