v0.1.2: Preferences page, About page, full icon set, redesigned edit form
- Rework the add/edit form onto a generic, catalog-driven field model (JobFieldCatalog + JobEditModel), replacing the old hand-written ApplicationEditDialog with ApplicationEditPage - Add a Preferences page (reachable from the hamburger menu) with a KColorSchemeManager-backed color scheme switcher - Add an About page reading from KAboutData - Ship a full hicolor icon set (16-128px + scalable) via ecm_install_icons instead of a single flat SVG - Restyle the edit form after KDE System Settings' Audio page: Kirigami.ListSectionHeader per category, flat separated rows, no card borders - Explicitly declare Kirigami/KirigamiAddons/ColorScheme as CMake dependencies instead of relying on the QML import scanner alone - Add KDEClangFormat/KDEGitCommitHooks, a CMakePresets.json, and a REUSE + clang-format lint CI workflow - Reformat SPDX headers to include copyright, remove debug screenshot scaffolding
This commit is contained in:
+74
-8
@@ -1,8 +1,14 @@
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
/*
|
||||
SPDX-FileCopyrightText: 2026 ToServeTheKing <[email protected]>
|
||||
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
|
||||
pragma ComponentBehavior: Bound
|
||||
|
||||
import QtQuick
|
||||
import org.kde.kirigami as Kirigami
|
||||
import org.kde.kirigamiaddons.formcard as FormCard
|
||||
import io.github.toservetheking.Kareer
|
||||
|
||||
Kirigami.ApplicationWindow {
|
||||
@@ -19,22 +25,73 @@ Kirigami.ApplicationWindow {
|
||||
id: jobsModel
|
||||
}
|
||||
|
||||
ApplicationEditDialog {
|
||||
id: editDialog
|
||||
jobsModel: jobsModel
|
||||
}
|
||||
// The job currently open in the edit form, so the sidebar can keep it highlighted.
|
||||
property int currentJobId: -1
|
||||
|
||||
pageStack.defaultColumnWidth: Kirigami.Units.gridUnit * 22
|
||||
pageStack.defaultColumnWidth: Kirigami.Units.gridUnit * 16
|
||||
pageStack.globalToolBar.style: Kirigami.ApplicationHeaderStyle.ToolBar
|
||||
|
||||
// Two static columns (applications + dashboard) - no dynamic page pushing.
|
||||
globalDrawer: Kirigami.GlobalDrawer {
|
||||
isMenu: true
|
||||
actions: [
|
||||
Kirigami.Action {
|
||||
text: i18nc("@action:inmenu", "Preferences…")
|
||||
icon.name: "configure"
|
||||
onTriggered: root.pageStack.pushDialogLayer(settingsPageComponent, {
|
||||
width: root.width
|
||||
}, {
|
||||
width: Kirigami.Units.gridUnit * 24,
|
||||
height: Kirigami.Units.gridUnit * 20,
|
||||
modality: Qt.NonModal
|
||||
})
|
||||
},
|
||||
Kirigami.Action {
|
||||
text: i18nc("@action:inmenu", "About %1", root.title)
|
||||
icon.name: "help-about"
|
||||
onTriggered: root.pageStack.pushDialogLayer(aboutPageComponent, {
|
||||
width: root.width
|
||||
}, {
|
||||
width: Kirigami.Units.gridUnit * 30,
|
||||
height: Kirigami.Units.gridUnit * 30,
|
||||
modality: Qt.NonModal
|
||||
})
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Component {
|
||||
id: aboutPageComponent
|
||||
FormCard.AboutPage {}
|
||||
}
|
||||
|
||||
Component {
|
||||
id: settingsPageComponent
|
||||
SettingsPage {}
|
||||
}
|
||||
|
||||
// Two static columns: the applications list (sidebar) and the dashboard.
|
||||
// "Add Application" (and clicking a row) replaces just the dashboard
|
||||
// column with the edit form - the sidebar and its list are untouched.
|
||||
pageStack.initialPage: [applicationsComponent, dashboardComponent]
|
||||
|
||||
function showDashboard(): void {
|
||||
root.currentJobId = -1;
|
||||
root.pageStack.currentIndex = 1;
|
||||
root.pageStack.replace(dashboardComponent);
|
||||
}
|
||||
|
||||
function showEditPage(jobId: int): void {
|
||||
root.currentJobId = jobId;
|
||||
root.pageStack.currentIndex = 1;
|
||||
root.pageStack.replace(editPageComponent, {editingJobId: jobId});
|
||||
}
|
||||
|
||||
Component {
|
||||
id: applicationsComponent
|
||||
ApplicationsPage {
|
||||
jobsModel: jobsModel
|
||||
editDialog: editDialog
|
||||
currentJobId: root.currentJobId
|
||||
onEditRequested: jobId => root.showEditPage(jobId)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,6 +99,15 @@ Kirigami.ApplicationWindow {
|
||||
id: dashboardComponent
|
||||
DashboardPage {
|
||||
jobsModel: jobsModel
|
||||
onAddRequested: root.showEditPage(-1)
|
||||
}
|
||||
}
|
||||
|
||||
Component {
|
||||
id: editPageComponent
|
||||
ApplicationEditPage {
|
||||
jobsModel: jobsModel
|
||||
onDone: root.showDashboard()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user