From d17faaad90149d90af5caaa89cf566b8558de2e6 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Mon, 16 Dec 2024 16:28:09 -0500 Subject: [PATCH] Add settings page --- build.rs | 3 ++- ui/Main.qml | 9 ++++++++- ui/SettingsPage.qml | 20 ++++++++++++++++++++ 3 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 ui/SettingsPage.qml diff --git a/build.rs b/build.rs index 744fd6e..83e6d14 100644 --- a/build.rs +++ b/build.rs @@ -31,7 +31,8 @@ fn main() { "ui/ThreadPage.qml", "ui/WelcomePage.qml", "ui/LoginPage.qml", - "ui/Sidebar.qml" + "ui/Sidebar.qml", + "ui/SettingsPage.qml", ], ..Default::default() }) diff --git a/ui/Main.qml b/ui/Main.qml index e309639..ad87732 100644 --- a/ui/Main.qml +++ b/ui/Main.qml @@ -32,7 +32,7 @@ Kirigami.ApplicationWindow { enabled: AccountManager.hasAccounts && AccountManager.isReady actions: [homeAction] - bottomActions: [] + bottomActions: [settingsAction] } property Kirigami.Action homeAction: Kirigami.Action { @@ -46,6 +46,13 @@ Kirigami.ApplicationWindow { } } + property Kirigami.Action settingsAction: Kirigami.Action { + icon.name: "configure-symbolic" + text: i18nc("@action:button", "Settings") + checkable: true + onTriggered: Qt.createComponent("qrc:/qt/qml/com/redstrate/sukai/ui/SettingsPage.qml").createObject(root).open(); + } + Component.onCompleted: { if (AccountManager.isReady) { startupAccountCheck(); diff --git a/ui/SettingsPage.qml b/ui/SettingsPage.qml new file mode 100644 index 0000000..482fcf4 --- /dev/null +++ b/ui/SettingsPage.qml @@ -0,0 +1,20 @@ +// SPDX-FileCopyrightText: 2024 Joshua Goins +// SPDX-License-Identifier: GPL-3.0-or-later + +import QtQuick + +import org.kde.kirigamiaddons.settings as KirigamiSettings + +KirigamiSettings.ConfigurationView { + id: root + + modules: [ + KirigamiSettings.ConfigurationModule { + moduleId: "about" + text: i18n("About Sukai") + icon.name: "help-about-symbolic" + page: () => Qt.createComponent("org.kde.kirigamiaddons.formcard", "AboutPage") + category: i18nc("@title:group", "About") + } + ] +}