summaryrefslogtreecommitdiff
path: root/ui/qt5/horizonwizard.cc
diff options
context:
space:
mode:
Diffstat (limited to 'ui/qt5/horizonwizard.cc')
-rw-r--r--ui/qt5/horizonwizard.cc79
1 files changed, 79 insertions, 0 deletions
diff --git a/ui/qt5/horizonwizard.cc b/ui/qt5/horizonwizard.cc
new file mode 100644
index 0000000..72b4239
--- /dev/null
+++ b/ui/qt5/horizonwizard.cc
@@ -0,0 +1,79 @@
+#include "horizonwizard.hh"
+#include "horizonhelpwindow.hh"
+
+#include <QDebug>
+#include <QFile>
+#include <QMessageBox>
+#include <map>
+#include <string>
+
+#include "intropage.hh"
+#include "networkingpage.hh"
+#include "netsimplewifipage.hh"
+
+using std::map;
+using std::string;
+
+static map<int, string> help_id_map = {
+ {HorizonWizard::Page_Intro, "intro"},
+ {HorizonWizard::Page_Input, "input"},
+ {HorizonWizard::Page_Partition, "partition"},
+#ifdef NON_LIBRE_FIRMWARE
+ {HorizonWizard::Page_Firmware, "firmware"},
+#endif /* NON_LIBRE_FIRMWARE */
+ {HorizonWizard::Page_Network, "network-start"},
+ {HorizonWizard::Page_Network_Iface, "network-iface"},
+ {HorizonWizard::Page_Network_Wireless, "network-wifi"},
+ {HorizonWizard::Page_Network_DHCP, "none"},
+ {HorizonWizard::Page_Network_Portal, "network-portal"},
+ {HorizonWizard::Page_Network_Manual, "network-manual"},
+ {HorizonWizard::Page_DateTime, "datetime"},
+ {HorizonWizard::Page_Hostname, "hostname"},
+ {HorizonWizard::Page_PkgSimple, "packages-simple"},
+ {HorizonWizard::Page_PkgCustom, "packages-custom"},
+ {HorizonWizard::Page_Boot, "startup"},
+ {HorizonWizard::Page_Root, "rootpw"},
+ {HorizonWizard::Page_Accounts, "accounts"},
+#ifndef HAS_INSTALL_ENV
+ {HorizonWizard::Page_Write, "writeout"},
+#else /* HAS_INSTALL_ENV */
+ {HorizonWizard::Page_Commit, "commit"}
+#endif /* !HAS_INSTALL_ENV */
+};
+
+HorizonWizard::HorizonWizard(QWidget *parent) : QWizard(parent) {
+ setWindowTitle(tr("Adélie Linux System Installation"));
+
+ setFixedSize(QSize(650, 450));
+
+ setOption(DisabledBackButtonOnLastPage);
+ setOption(HaveHelpButton);
+ setOption(NoCancelButton);
+
+ setSizeGripEnabled(false);
+
+ setPage(Page_Intro, new IntroPage);
+ setPage(Page_Network, new NetworkingPage);
+
+ QObject::connect(this, static_cast<void (QWizard:: *)(void)>(&QWizard::helpRequested),
+ [=](void) {
+ if(help_id_map.find(currentId()) == help_id_map.end()) {
+ qDebug() << "no help available for " << currentId();
+ QMessageBox nohelp(QMessageBox::Warning,
+ tr("No Help Available"),
+ tr("Help is not available for the current page."
+ " Consult the Installation Guide for more "
+ "information."),
+ QMessageBox::Ok,
+ this);
+ nohelp.exec();
+ return;
+ }
+ string helppath = ":/wizard_help/resources/" +
+ help_id_map.at(currentId()) + "-help.txt";
+ QFile helpfile(helppath.c_str());
+ helpfile.open(QFile::ReadOnly);
+ HorizonHelpWindow help(&helpfile, this);
+ help.exec();
+ });
+}