summaryrefslogtreecommitdiff
path: root/ui/qt5/accountpage.cc
diff options
context:
space:
mode:
Diffstat (limited to 'ui/qt5/accountpage.cc')
-rw-r--r--ui/qt5/accountpage.cc53
1 files changed, 53 insertions, 0 deletions
diff --git a/ui/qt5/accountpage.cc b/ui/qt5/accountpage.cc
new file mode 100644
index 0000000..0541b60
--- /dev/null
+++ b/ui/qt5/accountpage.cc
@@ -0,0 +1,53 @@
+/*
+ * accountpage.cc - Implementation of the UI.Accounts.UserAcct 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 "accountpage.hh"
+
+#include <algorithm>
+#include <QLabel>
+#include <QVBoxLayout>
+
+AccountPage::AccountPage(QWidget *parent) : HorizonWizardPage(parent) {
+ setTitle(tr("User Accounts"));
+ loadWatermark("acct");
+ QLabel *descLabel = new QLabel(tr(
+ "Enter the details of up to four people who will use this computer. "
+ "You can add more later with the User Manager. "
+ "For more information, consult the User's Handbook."));
+ descLabel->setWordWrap(true);
+
+ QVBoxLayout *layout = new QVBoxLayout;
+ layout->addWidget(descLabel);
+
+ accountWidgets[0] = new UserAccountWidget;
+ accountWidgets[0]->setAdmin(true);
+ accountWidgets[1] = new UserAccountWidget;
+ accountWidgets[2] = new UserAccountWidget;
+ accountWidgets[3] = new UserAccountWidget;
+
+ for(auto &widget : accountWidgets) {
+ connect(widget, &UserAccountWidget::validityChanged,
+ this, &AccountPage::completeChanged);
+ layout->addStretch();
+ layout->addWidget(widget);
+ }
+
+ setLayout(layout);
+}
+
+bool AccountPage::isComplete() const {
+ return std::all_of(accountWidgets.begin(), accountWidgets.end(),
+ [](UserAccountWidget *widget) {
+ if(widget == nullptr) return true;
+ return widget->isValid();
+ });
+}