Early Progress of SettingsWindow

This commit is contained in:
Ly-sec 2025-08-11 15:49:48 +02:00
parent 5543b58c3c
commit dc621647d7
14 changed files with 499 additions and 4 deletions

View file

@ -0,0 +1,18 @@
import QtQuick
import QtQuick.Layouts
import qs.Services
import qs.Widgets
Item {
property real scaling: 1
anchors.fill: parent
ColumnLayout {
anchors.fill: parent
spacing: Style.marginMedium * scaling
NText { text: "About"; font.weight: Style.fontWeightBold; color: Colors.accentSecondary }
NText { text: "Coming soon"; color: Colors.textSecondary }
Item { Layout.fillHeight: true }
}
}

View file

@ -0,0 +1,19 @@
import QtQuick
import QtQuick.Layouts
import qs.Services
import qs.Widgets
Item {
// Optional scaling prop to match other tabs
property real scaling: 1
anchors.fill: parent
ColumnLayout {
anchors.fill: parent
spacing: Style.marginMedium * scaling
NText { text: "Bar"; font.weight: Style.fontWeightBold; color: Colors.accentSecondary }
NText { text: "Coming soon"; color: Colors.textSecondary }
Item { Layout.fillHeight: true }
}
}

View file

@ -0,0 +1,18 @@
import QtQuick
import QtQuick.Layouts
import qs.Services
import qs.Widgets
Item {
property real scaling: 1
anchors.fill: parent
ColumnLayout {
anchors.fill: parent
spacing: Style.marginMedium * scaling
NText { text: "Display"; font.weight: Style.fontWeightBold; color: Colors.accentSecondary }
NText { text: "Coming soon"; color: Colors.textSecondary }
Item { Layout.fillHeight: true }
}
}

View file

@ -0,0 +1,89 @@
import QtQuick
import QtQuick.Layouts
import qs.Services
import qs.Widgets
Item {
id: generalPage
// Public API
// Scaling factor provided by the parent settings window
property real scaling: 1
anchors.fill: parent
implicitWidth: parent ? parent.width : 0
implicitHeight: parent ? parent.height : 0
ColumnLayout {
anchors.fill: parent
anchors.margins: 0
spacing: Style.marginMedium * scaling
// Profile section
NText { text: "Profile"; font.weight: Style.fontWeightBold; color: Colors.accentSecondary }
RowLayout {
Layout.fillWidth: true
spacing: Style.marginMedium * scaling
// Avatar preview
Rectangle {
width: 40 * scaling
height: 40 * scaling
radius: 20 * scaling
color: Colors.surfaceVariant
border.color: Colors.outline
border.width: Math.max(1, Style.borderThin * scaling)
Image {
anchors.fill: parent
anchors.margins: 2 * scaling
source: Settings.data.general.avatarImage
fillMode: Image.PreserveAspectCrop
asynchronous: true
}
}
ColumnLayout {
Layout.fillWidth: true
spacing: 2 * scaling
NText { text: "Profile Image"; color: Colors.textPrimary; font.weight: Style.fontWeightBold }
NText { text: "Your profile picture displayed in various places throughout the shell"; color: Colors.textSecondary }
NTextBox {
text: Settings.data.general.avatarImage
placeholderText: "/home/user/.face"
Layout.fillWidth: true
onEditingFinished: Settings.data.general.avatarImage = text
}
}
}
NDivider { Layout.fillWidth: true; Layout.topMargin: Style.marginSmall * scaling; Layout.bottomMargin: Style.marginSmall * scaling }
// UI section
NText { text: "User Interface"; font.weight: Style.fontWeightBold; color: Colors.accentSecondary }
NToggle {
label: "Show Corners"
description: "Display rounded corners on the edge of the screen"
value: Settings.data.general.showScreenCorners
onToggled: function (v) { Settings.data.general.showScreenCorners = v }
}
NToggle {
label: "Show Dock"
description: "Display a dock at the bottom of the screen for quick access to applications"
value: Settings.data.general.showDock
onToggled: function (v) { Settings.data.general.showDock = v }
}
NToggle {
label: "Dim Desktop"
description: "Dim the desktop when panels or menus are open"
value: Settings.data.general.dimDesktop
onToggled: function (v) { Settings.data.general.dimDesktop = v }
}
Item { Layout.fillHeight: true }
}
}

View file

@ -0,0 +1,18 @@
import QtQuick
import QtQuick.Layouts
import qs.Services
import qs.Widgets
Item {
property real scaling: 1
anchors.fill: parent
ColumnLayout {
anchors.fill: parent
spacing: Style.marginMedium * scaling
NText { text: "Misc"; font.weight: Style.fontWeightBold; color: Colors.accentSecondary }
NText { text: "Coming soon"; color: Colors.textSecondary }
Item { Layout.fillHeight: true }
}
}

View file

@ -0,0 +1,18 @@
import QtQuick
import QtQuick.Layouts
import qs.Services
import qs.Widgets
Item {
property real scaling: 1
anchors.fill: parent
ColumnLayout {
anchors.fill: parent
spacing: Style.marginMedium * scaling
NText { text: "Network"; font.weight: Style.fontWeightBold; color: Colors.accentSecondary }
NText { text: "Coming soon"; color: Colors.textSecondary }
Item { Layout.fillHeight: true }
}
}

View file

@ -0,0 +1,18 @@
import QtQuick
import QtQuick.Layouts
import qs.Services
import qs.Widgets
Item {
property real scaling: 1
anchors.fill: parent
ColumnLayout {
anchors.fill: parent
spacing: Style.marginMedium * scaling
NText { text: "Screen Recorder"; font.weight: Style.fontWeightBold; color: Colors.accentSecondary }
NText { text: "Coming soon"; color: Colors.textSecondary }
Item { Layout.fillHeight: true }
}
}

View file

@ -0,0 +1,18 @@
import QtQuick
import QtQuick.Layouts
import qs.Services
import qs.Widgets
Item {
property real scaling: 1
anchors.fill: parent
ColumnLayout {
anchors.fill: parent
spacing: Style.marginMedium * scaling
NText { text: "Time & Weather"; font.weight: Style.fontWeightBold; color: Colors.accentSecondary }
NText { text: "Coming soon"; color: Colors.textSecondary }
Item { Layout.fillHeight: true }
}
}

View file

@ -0,0 +1,18 @@
import QtQuick
import QtQuick.Layouts
import qs.Services
import qs.Widgets
Item {
property real scaling: 1
anchors.fill: parent
ColumnLayout {
anchors.fill: parent
spacing: Style.marginMedium * scaling
NText { text: "Wallpaper"; font.weight: Style.fontWeightBold; color: Colors.accentSecondary }
NText { text: "Coming soon"; color: Colors.textSecondary }
Item { Layout.fillHeight: true }
}
}