#include "softwarepage.hh" #include "horizonwizard.hh" #include #include #include SoftwarePage::SoftwarePage(QWidget *parent) : HorizonWizardPage(parent) { QLabel *descLabel; QVBoxLayout *layout, *desktopLayout; QHBoxLayout *nudgeOver; loadWatermark("software"); setTitle(tr("Select Software")); descLabel = new QLabel(tr( "Select the software you want to install on your" "computer. You can add more later.")); descLabel->setWordWrap(true); desktop = new QCheckBox(tr( "&Desktop Software - browser, email client, media " "player, and more")); kde = new QCheckBox(tr( "Use the &KDE Plasma 5 desktop\nIdeal for newer computers, " "KDE Plasma 5 provides a clean,\nmodern experience.")); xfce = new QCheckBox(tr( "Use the &XFCE 4 desktop\nXFCE provides a classic desktop " "experience well suited to\nsmaller screens.")); lxqt = new QCheckBox(tr( "Use the &LXQt desktop\nLXQt provides a modern experience " "similar to KDE Plasma 5,\noptimised for older hardware.")); openbox = new QCheckBox(tr( "Use the &OpenBox desktop\nOpenBox is for people who are " "familiar with other Linux/Unix\ndesktop experiences.")); server = new QCheckBox(tr( "&Server Software - Web server, print server, and more")); advanced = new QCheckBox(tr( "&Advanced - select which software to install")); QObject::connect(desktop, (void (QCheckBox:: *)(bool))&QCheckBox::clicked, [=](bool checked) { this->toggleDesktops(checked); }); desktop->setChecked(true); typeGroup = new QButtonGroup(this); typeGroup->addButton(kde); typeGroup->addButton(xfce); typeGroup->addButton(lxqt); typeGroup->addButton(openbox); desktopLayout = new QVBoxLayout; desktopLayout->addWidget(kde); desktopLayout->addWidget(xfce); desktopLayout->addWidget(lxqt); desktopLayout->addWidget(openbox); nudgeOver = new QHBoxLayout; nudgeOver->addSpacing(20); nudgeOver->addLayout(desktopLayout); layout = new QVBoxLayout; layout->addWidget(descLabel); layout->addSpacing(50); layout->addWidget(desktop); layout->addLayout(nudgeOver); layout->addWidget(server); layout->addWidget(advanced); setLayout(layout); } void SoftwarePage::toggleDesktops(bool show) { kde->setVisible(show); xfce->setVisible(show); lxqt->setVisible(show); openbox->setVisible(show); } int SoftwarePage::nextId() const { if(advanced->isChecked()) { return HorizonWizard::Page_AdvancedSoftware; } else { return HorizonWizard::Page_Startup; } }