summaryrefslogtreecommitdiff
path: root/ui/qt5/pkgsimple.cc
diff options
context:
space:
mode:
authorA. Wilcox <AWilcox@Wilcox-Tech.com>2019-11-19 18:57:47 -0600
committerA. Wilcox <AWilcox@Wilcox-Tech.com>2019-11-19 18:57:47 -0600
commit9e5872dffe8e91bc4b67a689c36a629a0b128963 (patch)
treee6729ebaad9af085088f9f8befc8e94d6928f904 /ui/qt5/pkgsimple.cc
parentfb69772f29f8376fde3f35fa4cc26fefe2996c3c (diff)
downloadhorizon-9e5872dffe8e91bc4b67a689c36a629a0b128963.tar.gz
horizon-9e5872dffe8e91bc4b67a689c36a629a0b128963.tar.bz2
horizon-9e5872dffe8e91bc4b67a689c36a629a0b128963.tar.xz
horizon-9e5872dffe8e91bc4b67a689c36a629a0b128963.zip
Qt UI: Implement UI.Packages.SimpleSel
Diffstat (limited to 'ui/qt5/pkgsimple.cc')
-rw-r--r--ui/qt5/pkgsimple.cc103
1 files changed, 103 insertions, 0 deletions
diff --git a/ui/qt5/pkgsimple.cc b/ui/qt5/pkgsimple.cc
new file mode 100644
index 0000000..b3e7d79
--- /dev/null
+++ b/ui/qt5/pkgsimple.cc
@@ -0,0 +1,103 @@
+/*
+ * pkgsimple.cc - Implementation of the UI.Packages.SimpleSel page
+ * horizon-qt5, the Qt 5 user interface for
+ * Project Horizon
+ *
+ * Copyright (c) 2019 Adélie Linux and contributors. All rights reserved.
+ * This code is licensed under the AGPL 3.0 license, as noted in the
+ * LICENSE-code file in the root directory of this repository.
+ *
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+#include "pkgsimple.hh"
+
+#include <QButtonGroup>
+#include <QGridLayout>
+#include <QLabel>
+#include <QRadioButton>
+#include <QVBoxLayout>
+
+PkgSimplePage::PkgSimplePage(QWidget *parent) : HorizonWizardPage(parent) {
+ setTitle(tr("Software Selection"));
+ loadWatermark("software");
+
+ QLabel *descLabel = new QLabel(tr(
+ "Select the software you want to install on this computer.\n\n"
+ "You can install and uninstall more software at any time using the Package Manager. For more information, see the User's Handbook in Online Help."));
+ descLabel->setWordWrap(true);
+
+ QRadioButton *standardButton, *mobileButton, *compactButton, *textButton,
+ *customButton;
+ QLabel *standardLabel, *mobileLabel, *compactLabel, *textLabel, *customLabel;
+ standardButton = new QRadioButton(tr("&Standard"));
+ standardButton->setIcon(QIcon::fromTheme("preferences-desktop-theme"));
+ standardButton->setIconSize(QSize(32, 32));
+ standardLabel = new QLabel(tr("Includes a full KDE desktop environment, including Web browser, email client, media player, and office suite."));
+ standardLabel->setBuddy(standardButton);
+ standardLabel->setWordWrap(true);
+
+ mobileButton = new QRadioButton(tr("&Mobile"));
+ mobileButton->setIcon(QIcon::fromTheme("battery"));
+ mobileButton->setIconSize(QSize(32, 32));
+ mobileLabel = new QLabel(tr("Includes the Standard software and additional utilities for notebook and tablet computers."));
+ mobileLabel->setBuddy(mobileButton);
+ mobileLabel->setWordWrap(true);
+
+ compactButton = new QRadioButton(tr("&Compact"));
+ compactButton->setIcon(QIcon::fromTheme("preferences-ubuntu-panel"));
+ compactButton->setIconSize(QSize(32, 32));
+ compactLabel = new QLabel(tr("Includes a lightweight LXQt desktop environment and a text editor."));
+ compactLabel->setBuddy(compactButton);
+ compactLabel->setWordWrap(true);
+
+ textButton = new QRadioButton(tr("&Text-Only"));
+ textButton->setIcon(QIcon::fromTheme("utilities-terminal"));
+ textButton->setIconSize(QSize(32, 32));
+ textLabel = new QLabel(tr("Includes support for text-mode only. Select this option on servers, or computers with very limited resources."));
+ textLabel->setBuddy(textButton);
+ textLabel->setWordWrap(true);
+
+ customButton = new QRadioButton(tr("C&ustom"));
+ customButton->setIcon(QIcon::fromTheme("preferences-activities"));
+ customButton->setIconSize(QSize(32, 32));
+ customLabel = new QLabel(tr("Customise the packages installed on your computer."));
+ customLabel->setBuddy(customButton);
+ customLabel->setWordWrap(true);
+
+ QButtonGroup *group = new QButtonGroup(this);
+ group->addButton(standardButton, HorizonWizard::Standard);
+ group->addButton(mobileButton, HorizonWizard::Mobile);
+ group->addButton(compactButton, HorizonWizard::Compact);
+ group->addButton(textButton, HorizonWizard::TextOnly);
+ group->addButton(customButton, HorizonWizard::Custom);
+ connect(group, static_cast<void (QButtonGroup:: *)(int)>(&QButtonGroup::buttonClicked),
+ [=](int id) {
+ horizonWizard()->pkgtype = static_cast<HorizonWizard::PackageType>(id);
+ });
+
+ QGridLayout *buttonLayout = new QGridLayout;
+ buttonLayout->addWidget(standardButton, 0, 0);
+ buttonLayout->addWidget(standardLabel, 0, 1);
+ buttonLayout->addWidget(mobileButton, 1, 0);
+ buttonLayout->addWidget(mobileLabel, 1, 1);
+ buttonLayout->addWidget(compactButton, 2, 0);
+ buttonLayout->addWidget(compactLabel, 2, 1);
+ buttonLayout->addWidget(textButton, 3, 0);
+ buttonLayout->addWidget(textLabel, 3, 1);
+ buttonLayout->addWidget(customButton, 4, 0);
+ buttonLayout->addWidget(customLabel, 4, 1);
+
+ QVBoxLayout *mainLayout = new QVBoxLayout;
+ mainLayout->addWidget(descLabel);
+ mainLayout->addStretch();
+ mainLayout->addLayout(buttonLayout);
+ setLayout(mainLayout);
+}
+
+int PkgSimplePage::nextId() const {
+ if(horizonWizard()->pkgtype == HorizonWizard::Custom)
+ return HorizonWizard::Page_PkgCustom;
+
+ return HorizonWizard::Page_Boot;
+}