Settings formatting (qmlfmt)

This commit is contained in:
quadbyte 2025-08-11 11:44:06 -04:00
parent bbffe39fe0
commit 41d93128b8
10 changed files with 192 additions and 62 deletions

View file

@ -20,21 +20,48 @@ NLoader {
// Active tab index unified for sidebar, header, and content stack
property int currentTabIndex: 0
// Single source of truth for tabs (explicit icon/label here)
property var tabsModel: [
{ icon: "tune", label: "General", source: "Tabs/General.qml" },
{ icon: "web_asset", label: "Bar", source: "Tabs/Bar.qml" },
{ icon: "schedule", label: "Time & Weather", source: "Tabs/TimeWeather.qml" },
{ icon: "videocam", label: "Screen Recorder", source: "Tabs/ScreenRecorder.qml" },
{ icon: "wifi", label: "Network", source: "Tabs/Network.qml" },
{ icon: "monitor", label: "Display", source: "Tabs/Display.qml" },
{ icon: "image", label: "Wallpaper", source: "Tabs/Wallpaper.qml" },
{ icon: "more_horiz", label: "Misc", source: "Tabs/Misc.qml" },
{ icon: "info", label: "About", source: "Tabs/About.qml" }
]
property var tabsModel: [{
"icon": "tune",
"label": "General",
"source": "Tabs/General.qml"
}, {
"icon": "web_asset",
"label": "Bar",
"source": "Tabs/Bar.qml"
}, {
"icon": "schedule",
"label": "Time & Weather",
"source": "Tabs/TimeWeather.qml"
}, {
"icon": "videocam",
"label": "Screen Recorder",
"source": "Tabs/ScreenRecorder.qml"
}, {
"icon": "wifi",
"label": "Network",
"source": "Tabs/Network.qml"
}, {
"icon": "monitor",
"label": "Display",
"source": "Tabs/Display.qml"
}, {
"icon": "image",
"label": "Wallpaper",
"source": "Tabs/Wallpaper.qml"
}, {
"icon": "more_horiz",
"label": "Misc",
"source": "Tabs/Misc.qml"
}, {
"icon": "info",
"label": "About",
"source": "Tabs/About.qml"
}]
// Always default to the first tab (General) when the panel becomes visible
onVisibleChanged: function () {
if (visible) currentTabIndex = 0
if (visible)
currentTabIndex = 0
}
// Ensure panel shows itself once created
@ -52,8 +79,9 @@ NLoader {
anchors.centerIn: parent
// Prevent closing when clicking in the panel bg
MouseArea { anchors.fill: parent }
MouseArea {
anchors.fill: parent
}
// Main two-pane layout
RowLayout {
@ -97,12 +125,21 @@ NLoader {
NText {
text: modelData.icon
font.family: "Material Symbols Outlined"
font.variableAxes: { "wght": (Font.Normal + Font.Bold) / 2.0 }
font.variableAxes: {
"wght": (Font.Normal + Font.Bold) / 2.0
}
color: selected ? Colors.onAccent : Colors.textSecondary
}
NText { text: modelData.label; color: selected ? Colors.onAccent : Colors.textPrimary; Layout.fillWidth: true }
NText {
text: modelData.label
color: selected ? Colors.onAccent : Colors.textPrimary
Layout.fillWidth: true
}
}
MouseArea {
anchors.fill: parent
onClicked: settingsPanel.currentTabIndex = index
}
MouseArea { anchors.fill: parent; onClicked: settingsPanel.currentTabIndex = index }
}
}
}
@ -142,11 +179,15 @@ NLoader {
icon: "close"
tooltipText: "Close settings panel"
Layout.alignment: Qt.AlignVCenter
onClicked: function () { settingsWindow.isLoaded = !settingsWindow.isLoaded }
onClicked: function () {
settingsWindow.isLoaded = !settingsWindow.isLoaded
}
}
}
NDivider { Layout.fillWidth: true }
NDivider {
Layout.fillWidth: true
}
// Stacked pages
StackLayout {
@ -172,4 +213,3 @@ NLoader {
}
}
}

View file

@ -13,9 +13,17 @@ Item {
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 }
NText {
text: "About"
font.weight: Style.fontWeightBold
color: Colors.accentSecondary
}
NText {
text: "Coming soon"
color: Colors.textSecondary
}
Item {
Layout.fillHeight: true
}
}
}

View file

@ -15,9 +15,17 @@ Item {
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 }
NText {
text: "Bar"
font.weight: Style.fontWeightBold
color: Colors.accentSecondary
}
NText {
text: "Coming soon"
color: Colors.textSecondary
}
Item {
Layout.fillHeight: true
}
}
}

View file

@ -13,9 +13,17 @@ Item {
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 }
NText {
text: "Display"
font.weight: Style.fontWeightBold
color: Colors.accentSecondary
}
NText {
text: "Coming soon"
color: Colors.textSecondary
}
Item {
Layout.fillHeight: true
}
}
}

View file

@ -24,7 +24,11 @@ Item {
spacing: Style.marginMedium * scaling
// Profile section
NText { text: "Profile"; font.weight: Style.fontWeightBold; color: Colors.accentSecondary }
NText {
text: "Profile"
font.weight: Style.fontWeightBold
color: Colors.accentSecondary
}
RowLayout {
Layout.fillWidth: true
@ -50,8 +54,15 @@ Item {
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 }
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"
@ -61,33 +72,48 @@ Item {
}
}
NDivider { Layout.fillWidth: true; Layout.topMargin: Style.marginSmall * scaling; Layout.bottomMargin: Style.marginSmall * scaling }
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 }
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 }
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 }
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 }
onToggled: function (v) {
Settings.data.general.dimDesktop = v
}
}
Item { Layout.fillHeight: true }
Item {
Layout.fillHeight: true
}
}
}

View file

@ -13,9 +13,17 @@ Item {
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 }
NText {
text: "Misc"
font.weight: Style.fontWeightBold
color: Colors.accentSecondary
}
NText {
text: "Coming soon"
color: Colors.textSecondary
}
Item {
Layout.fillHeight: true
}
}
}

View file

@ -13,9 +13,17 @@ Item {
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 }
NText {
text: "Network"
font.weight: Style.fontWeightBold
color: Colors.accentSecondary
}
NText {
text: "Coming soon"
color: Colors.textSecondary
}
Item {
Layout.fillHeight: true
}
}
}

View file

@ -13,9 +13,17 @@ Item {
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 }
NText {
text: "Screen Recorder"
font.weight: Style.fontWeightBold
color: Colors.accentSecondary
}
NText {
text: "Coming soon"
color: Colors.textSecondary
}
Item {
Layout.fillHeight: true
}
}
}

View file

@ -13,9 +13,17 @@ Item {
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 }
NText {
text: "Time & Weather"
font.weight: Style.fontWeightBold
color: Colors.accentSecondary
}
NText {
text: "Coming soon"
color: Colors.textSecondary
}
Item {
Layout.fillHeight: true
}
}
}

View file

@ -13,9 +13,17 @@ Item {
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 }
NText {
text: "Wallpaper"
font.weight: Style.fontWeightBold
color: Colors.accentSecondary
}
NText {
text: "Coming soon"
color: Colors.textSecondary
}
Item {
Layout.fillHeight: true
}
}
}