From cb7de585fc83ac327d2b33d2a88ea81221f0c96f Mon Sep 17 00:00:00 2001 From: "A. Wilcox" Date: Sat, 7 Dec 2019 05:41:58 -0600 Subject: Qt UI: Implement UI.Finish requirements --- assets/README | 4 ++++ ui/qt5/horizon.qrc | 2 ++ ui/qt5/resources/finish-high.png | Bin 0 -> 437322 bytes ui/qt5/resources/finish-low.png | Bin 0 -> 114486 bytes ui/qt5/runner/finishedpage.cc | 42 ++++++++++++++++++++++++++++++++++++++- ui/qt5/runner/finishedpage.hh | 4 ++-- 6 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 ui/qt5/resources/finish-high.png create mode 100644 ui/qt5/resources/finish-low.png diff --git a/assets/README b/assets/README index 4104288..89cb925 100644 --- a/assets/README +++ b/assets/README @@ -5,3 +5,7 @@ on the World Wide Web at: https://gitlab.com/cybernix/Newaita. The status icons are from the Papirus icon theme, licensed GPL-3.0-only and available on the World Wide Web at: https://github.com/PapirusDevelopmentTeam/papirus-icon-theme. + +The Balloon image used for the Qt UI's "Finish" watermark is from Crystal on +Flickr, licensed CC-BY-2.0 and available on the World Wide Web at: +https://www.flickr.com/photos/crystalflickr/190713106 diff --git a/ui/qt5/horizon.qrc b/ui/qt5/horizon.qrc index 46dbccd..58272c1 100644 --- a/ui/qt5/horizon.qrc +++ b/ui/qt5/horizon.qrc @@ -8,6 +8,8 @@ resources/software-low.png resources/acct-high.png resources/acct-low.png + resources/finish-high.png + resources/finish-low.png ../../assets/status-current-high.svg ../../assets/status-current-low.svg ../../assets/status-issue-high.svg diff --git a/ui/qt5/resources/finish-high.png b/ui/qt5/resources/finish-high.png new file mode 100644 index 0000000..729d6bf Binary files /dev/null and b/ui/qt5/resources/finish-high.png differ diff --git a/ui/qt5/resources/finish-low.png b/ui/qt5/resources/finish-low.png new file mode 100644 index 0000000..46c18c8 Binary files /dev/null and b/ui/qt5/resources/finish-low.png differ diff --git a/ui/qt5/runner/finishedpage.cc b/ui/qt5/runner/finishedpage.cc index 153f703..933a372 100644 --- a/ui/qt5/runner/finishedpage.cc +++ b/ui/qt5/runner/finishedpage.cc @@ -12,6 +12,46 @@ #include "finishedpage.hh" -FinishedPage::FinishedPage(QWidget *parent) : QWizardPage(parent) { +#include +#include +#include +#include +#include + +FinishedPage::FinishedPage(QWidget *parent) : HorizonWizardPage(parent) { setTitle(tr("Adélie Linux Successfully Installed")); + loadWatermark("finish"); + + QLabel *descLabel = new QLabel(tr( + "Congratulations!\n\n" + "Adélie Linux has been successfully installed on this computer. " + "Be sure to read our Handbooks to learn how to get the most out of your new operating environment.\n\n" + "Remember to eject your installation media (CD, DVD, USB drive).\n\n" + "We hope you enjoy using Adélie.\n\nChoose \"Finish\" to restart your computer.")); + descLabel->setWordWrap(true); + + QPushButton *owo = new QPushButton(tr("&Save Installation Data")); + owo->setWhatsThis(tr("Saves the HorizonScript and log files associated with this installation.")); + owo->setAutoDefault(false); + owo->setDefault(false); + connect(owo, &QPushButton::clicked, [=]{ + bool success = true; + + QString dir = QFileDialog::getExistingDirectory(this, tr("Choose Directory"), "/target/root"); + if(dir.size() > 0) { + success = QFile::copy("/etc/horizon/installfile", dir + QDir::separator() + "installfile"); + if(success) success = QFile::copy("/var/log/horizon/executor.log", dir + QDir::separator() + "install.log"); + } + + if(!success) { + QMessageBox::critical(this, tr("Could Not Save Installation Data"), tr("Unable to save installation data to %1.").arg(dir)); + } + }); + + QVBoxLayout *layout = new QVBoxLayout; + layout->addWidget(descLabel); + layout->addStretch(); + layout->addWidget(owo, 0, Qt::AlignCenter); + + setLayout(layout); } diff --git a/ui/qt5/runner/finishedpage.hh b/ui/qt5/runner/finishedpage.hh index 4a97b28..3cdb236 100644 --- a/ui/qt5/runner/finishedpage.hh +++ b/ui/qt5/runner/finishedpage.hh @@ -13,9 +13,9 @@ #ifndef FINISHEDPAGE_HH #define FINISHEDPAGE_HH -#include +#include "../horizonwizardpage.hh" -class FinishedPage : public QWizardPage { +class FinishedPage : public HorizonWizardPage { public: FinishedPage(QWidget *parent = nullptr); }; -- cgit v1.2.3-60-g2f50