ColorScheme: empty settings for now

This commit is contained in:
quadbyte 2025-08-14 22:50:13 -04:00
parent 2748e02988
commit a79d4b916e
2 changed files with 91 additions and 168 deletions

View file

@ -10,11 +10,12 @@ import qs.Widgets
NLoader {
id: root
// Enumerate all the tabs, ordering is NOT relevant
// Tabs enumeration, order is NOT relevant
enum Tab {
About,
Audio,
Bar,
ColorScheme,
Display,
General,
Network,
@ -33,61 +34,6 @@ NLoader {
readonly property real scaling: Scaling.scale(screen)
property int currentTabIndex: 0
// List of all the tabs, ordering is relevant.
property var tabsModel: [{
"id": SettingsPanel.Tab.General,
"label": "General",
"icon": "tune",
"source": "Tabs/General.qml"
}, {
"id": SettingsPanel.Tab.Bar,
"label": "Bar",
"icon": "web_asset",
"source": "Tabs/Bar.qml"
}, {
"id": SettingsPanel.Tab.Display,
"label": "Display",
"icon": "monitor",
"source": "Tabs/Display.qml"
}, {
"id": SettingsPanel.Tab.Audio,
"label": "Audio",
"icon": "volume_up",
"source": "Tabs/Audio.qml"
}, {
"id": SettingsPanel.Tab.Network,
"label": "Network",
"icon": "lan",
"source": "Tabs/Network.qml"
}, {
"id": SettingsPanel.Tab.TimeWeather,
"label": "Time & Weather",
"icon": "schedule",
"source": "Tabs/TimeWeather.qml"
}, {
"id": SettingsPanel.Tab.Wallpaper,
"label": "Wallpaper",
"icon": "image",
"source": "Tabs/Wallpaper.qml"
}, {
"id": SettingsPanel.Tab.WallpaperSelector,
"label": "Wallpaper Selector",
"icon": "wallpaper_slideshow",
"source": "Tabs/WallpaperSelector.qml"
}, {
"id": SettingsPanel.Tab.ScreenRecorder,
"label": "Screen Recorder",
"icon": "videocam",
"source": "Tabs/ScreenRecorder.qml"
}, {
"id": SettingsPanel.Tab.About,
"label": "About",
"icon": "info",
"source": "Tabs/About.qml"
}]
WlrLayershell.keyboardFocus: WlrKeyboardFocus.OnDemand
// Override hide function to animate first
function hide() {
// Start hide animation
@ -98,69 +44,6 @@ NLoader {
hideTimer.start()
}
function getTab(tabId) {
switch (tabId) {
case SettingsPanel.Tab.About:
return tabAbount
case SettingsPanel.Tab.Audio:
return tabAudio
case SettingsPanel.Tab.Bar:
return tabBar
case SettingsPanel.Tab.General:
return tabGeneral
case SettingsPanel.Tab.Network:
return tabNetwork
case SettingsPanel.Tab.ScreenRecorder:
return tabScreenRecorder
case SettingsPanel.Tab.TimeWeather:
return tabTimeWeather
case SettingsPanel.Tab.Wallpaper:
return tabWallpaper
case SettingsPanel.Tab.WallpaperSelector:
return tabWallpaperSelector
default:
return tabGeneral
}
}
// Wrap each tab in a Component so we can spawn them with flexibility
Component {
id: tabAbount
Tabs.About {}
}
Component {
id: tabAudio
Tabs.Audio {}
}
Component {
id: tabBar
Tabs.Bar {}
}
Component {
id: tabGeneral
Tabs.General {}
}
Component {
id: tabNetwork
Tabs.Network {}
}
Component {
id: tabScreenRecorder
Tabs.ScreenRecorder {}
}
Component {
id: tabTimeWeather
Tabs.TimeWeather {}
}
Component {
id: tabWallpaper
Tabs.Wallpaper {}
}
Component {
id: tabWallpaperSelector
Tabs.WallpaperSelector {}
}
// Connect to NPanel's dismissed signal to handle external close events
Connections {
target: panel
@ -185,6 +68,55 @@ NLoader {
}
}
WlrLayershell.keyboardFocus: WlrKeyboardFocus.OnDemand
// Order is NOT relevant, and should match the Tabs.xxxx {} in the StackLayout
property var tabsModel: [{
"id": SettingsPanel.Tab.General,
"label": "General",
"icon": "tune"
}, {
"id": SettingsPanel.Tab.Bar,
"label": "Bar",
"icon": "web_asset"
}, {
"id": SettingsPanel.Tab.Audio,
"label": "Audio",
"icon": "volume_up"
}, {
"id": SettingsPanel.Tab.Display,
"label": "Display",
"icon": "monitor"
}, {
"id": SettingsPanel.Tab.Network,
"label": "Network",
"icon": "lan"
}, {
"id": SettingsPanel.Tab.TimeWeather,
"label": "Time & Weather",
"icon": "schedule"
}, {
"id": SettingsPanel.Tab.ColorScheme,
"label": "Color Scheme",
"icon": "palette"
}, {
"id": SettingsPanel.Tab.Wallpaper,
"label": "Wallpaper",
"icon": "image"
}, {
"id": SettingsPanel.Tab.WallpaperSelector,
"label": "Wallpaper Selector",
"icon": "wallpaper_slideshow"
}, {
"id": SettingsPanel.Tab.ScreenRecorder,
"label": "Screen Recorder",
"icon": "videocam"
}, {
"id": SettingsPanel.Tab.About,
"label": "About",
"icon": "info"
}]
Component.onCompleted: {
show()
}
@ -278,6 +210,7 @@ NLoader {
spacing: Style.marginTiny * 1.5 * scaling // Minimal spacing between tabs
Repeater {
id: sections
model: panel.tabsModel
delegate: Rectangle {
@ -385,12 +318,17 @@ NLoader {
Layout.fillHeight: true
currentIndex: currentTabIndex
Repeater {
model: panel.tabsModel
delegate: Loader {
sourceComponent: getTab(modelData.id)
}
}
Tabs.General {}
Tabs.Bar {}
Tabs.Audio {}
Tabs.Display {}
Tabs.Network {}
Tabs.TimeWeather {}
Tabs.ColorScheme {}
Tabs.Wallpaper {}
Tabs.WallpaperSelector {}
Tabs.ScreenRecorder {}
Tabs.About {}
}
}
}