From 7f9b18ce36c69abe022fc4f264cda9e18161b861 Mon Sep 17 00:00:00 2001 From: "A. Wilcox" Date: Fri, 8 Nov 2019 19:09:06 -0600 Subject: Qt UI: Implement most of UI.Global.* and UI standards --- ui/qt5/horizonwizard.cc | 56 +++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 52 insertions(+), 4 deletions(-) (limited to 'ui/qt5/horizonwizard.cc') diff --git a/ui/qt5/horizonwizard.cc b/ui/qt5/horizonwizard.cc index 72b4239..0987e47 100644 --- a/ui/qt5/horizonwizard.cc +++ b/ui/qt5/horizonwizard.cc @@ -46,17 +46,18 @@ HorizonWizard::HorizonWizard(QWidget *parent) : QWizard(parent) { setFixedSize(QSize(650, 450)); - setOption(DisabledBackButtonOnLastPage); setOption(HaveHelpButton); - setOption(NoCancelButton); + /* REQ: UI.Global.Back.Save */ + setOption(IndependentPages); + /* REQ: UI.Language.Buttons, Iface.UI.StandardButtons */ + setOption(NoBackButtonOnStartPage); setSizeGripEnabled(false); setPage(Page_Intro, new IntroPage); setPage(Page_Network, new NetworkingPage); - QObject::connect(this, static_cast(&QWizard::helpRequested), - [=](void) { + QObject::connect(this, &QWizard::helpRequested, [=](void) { if(help_id_map.find(currentId()) == help_id_map.end()) { qDebug() << "no help available for " << currentId(); QMessageBox nohelp(QMessageBox::Warning, @@ -76,4 +77,51 @@ HorizonWizard::HorizonWizard(QWidget *parent) : QWizard(parent) { HorizonHelpWindow help(&helpfile, this); help.exec(); }); + + + /* REQ: UI.Global.Cancel.Confirm */ + QObject::disconnect(button(CancelButton), &QAbstractButton::clicked, + this, &QWizard::reject); + QObject::connect(button(CancelButton), &QAbstractButton::clicked, + [=](bool) { + QMessageBox cancel(QMessageBox::Question, + tr("Cancel Adélie Linux System Installation"), + #ifdef HAS_INSTALL_ENV + tr("Adélie Linux has not yet been set up on your computer. Cancellation will reboot your computer. Do you wish to cancel?"), + #else + tr("You have not yet completed the System Installation wizard. No installfile will be generated. Do you wish to cancel?"), + #endif + QMessageBox::Yes | QMessageBox::No, + this); + cancel.setDefaultButton(QMessageBox::No); + if(cancel.exec() == QMessageBox::Yes) { + reject(); + } + }); + + /* REQ: Iface.UI.ButtonAccel */ + setButtonText(HelpButton, tr("Help (F1)")); + setButtonText(CancelButton, tr("Cancel (F3)")); + setButtonText(BackButton, tr("Back (F5)")); + setButtonText(NextButton, tr("Next (F8)")); + + f1 = new QShortcut(Qt::Key_F1, this); + connect(f1, &QShortcut::activated, + button(HelpButton), &QAbstractButton::click); + f1->setWhatsThis(tr("Activates the Help screen.")); + + f3 = new QShortcut(Qt::Key_F3, this); + connect(f3, &QShortcut::activated, + button(CancelButton), &QAbstractButton::click); + f3->setWhatsThis(tr("Prompts to cancel the installation.")); + + f5 = new QShortcut(Qt::Key_F5, this); + connect(f5, &QShortcut::activated, + button(BackButton), &QAbstractButton::click); + f5->setWhatsThis(tr("Goes back to the previous page.")); + + f8 = new QShortcut(Qt::Key_F8, this); + connect(f8, &QShortcut::activated, + button(NextButton), &QAbstractButton::click); + f5->setWhatsThis(tr("Goes forward to the next page.")); } -- cgit v1.2.3-60-g2f50