Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
224 commits
Select commit Hold shift + click to select a range
5d7151e
controlcenter: network and audio panels
atdma Nov 9, 2025
8783a3a
config: settings in bar
atdma Nov 9, 2025
f1234bc
fix: window title while keeping new panels
atdma Nov 10, 2025
81a8157
fix: panels (i'm debugging)
atdma Nov 10, 2025
d8de7c7
controlcenter: wifi passphrase input
atdma Nov 10, 2025
8d7bb82
controlcenter: appearance pane
atdma Nov 10, 2025
d20a509
fix: color schemes and variants in appearance pane
atdma Nov 10, 2025
615d1d9
controlcenter: cleaning up ui to match
atdma Nov 10, 2025
4897b37
osicon: toggle launcher on click
atdma Nov 10, 2025
47dfcf4
launcher: python execution like calculator functionality
atdma Nov 10, 2025
1debf48
controlcenter: ethernet panel (debug)
atdma Nov 10, 2025
817156a
controlcenter: polished ethernet panel
atdma Nov 10, 2025
f5ca27c
controlcenter: polishing appearance panel
atdma Nov 10, 2025
bd61cba
statusicons: added ethernet when active and popout
atdma Nov 10, 2025
16ab93f
statusicons: sound input/output now opens controlcenter instead of pa…
atdma Nov 10, 2025
a48bb8a
statusicons: made panel open in detach to match the bluetooth icon
atdma Nov 10, 2025
7ad940e
controlcenter: taskbar object toggles
atdma Nov 10, 2025
97d4618
controlcenter: launcher panel, can hide/show applications
atdma Nov 11, 2025
d2c5065
controlcenter: added debug toggle to taskbar objects
atdma Nov 11, 2025
5a0c217
controlcenter: taskbar panel now configures all aspects of shell.json…
atdma Nov 11, 2025
058a289
controlcenter: appearance panel, more shell.json settings available
atdma Nov 11, 2025
c9d13d5
controlcenter: apperance panel, mostly finished
atdma Nov 11, 2025
4188d32
controlcenter: appearance panel, now does all shell.json options
atdma Nov 11, 2025
e613ab8
controlcenter: appearance panel, added border options
atdma Nov 11, 2025
bcb2bd4
controlcenter: truncating interface names if too long
atdma Nov 11, 2025
5af1e92
controlcenter: added connection information to wireless to match ethe…
atdma Nov 11, 2025
cb6eaaa
controlcenter: desktop selector in appearance panel font styling
atdma Nov 11, 2025
b9ee123
popout: audio and blueooth changed button to say "Open Settings"
atdma Nov 11, 2025
90bb8b1
controlcenter: removed debug info toggles
atdma Nov 11, 2025
3e977f2
tray: if background enabled and empty, background is hidden
atdma Nov 11, 2025
c1510b5
notifs/toasts: reworked notifications and toasts and how they display…
atdma Nov 12, 2025
e921872
controlcenter: refactoring into components
atdma Nov 12, 2025
e21a151
controlcenter: refactoring into components
atdma Nov 12, 2025
893a91a
controlcenter: refactored wifi/ethernet panels
atdma Nov 12, 2025
223159f
notifs/toasts: refactoring
atdma Nov 12, 2025
84e839c
notif/toasts: refactoring colors
atdma Nov 12, 2025
7e6f327
conrolcenter: debug/rewrite of wireless panel
atdma Nov 13, 2025
ffe1474
notifs/toasts: reverted all changes to notifications to c0ea060f
atdma Nov 13, 2025
fc22323
controlcenter: wireless panel rewrite
atdma Nov 13, 2025
b62a22b
controlcenter: wireless panel refactoring
atdma Nov 13, 2025
6ae1313
controlcenter: wireless panel refactoring
atdma Nov 13, 2025
0a33ecf
tray: minor button updates to match
atdma Nov 13, 2025
81203ba
tray: changed settings icon in button
atdma Nov 13, 2025
b88b602
fix: background not loading on config reload
atdma Nov 13, 2025
2ebdba6
launcher: reverted python launcher item to not exist, changes back to…
atdma Nov 13, 2025
e9113a1
cleanup: trailing whitespace
atdma Nov 13, 2025
1da9c68
cleanup: trailing whitespace removeal (entire project)
atdma Nov 13, 2025
468cf3d
readme: added showEthernet bool
atdma Nov 13, 2025
a13f695
drawers: reverted changes to c0ea060f
atdma Nov 13, 2025
02d4feb
drawers: reverted changes to c0ea060
atdma Nov 13, 2025
38c613a
controlcenter: wireless debug removal (preparing for rewrite)
atdma Nov 13, 2025
baa10d6
controlcenter: created dev panel for wireless testing
atdma Nov 13, 2025
617e686
service: Nmcli.qml
atdma Nov 13, 2025
36a9121
network: migrated to nmcli.qml
atdma Nov 14, 2025
7799ec6
nmcli: migrated all of wireless controlcenter
atdma Nov 14, 2025
2bb9cd0
nmcli: migrated all of ethernet controlcenter
atdma Nov 14, 2025
f0ea26a
controlcenter: removed dev panels
atdma Nov 14, 2025
6eebd15
tray: consolidating ethernet into network
atdma Nov 14, 2025
8d8afba
tray: removed ethernet config options (network covers it)
atdma Nov 14, 2025
7dcfed3
tray: wireless, ethernet, bluetooth cleanup
atdma Nov 14, 2025
78d032e
controlcenter: collapsiblegroups animation and styling tweaked
atdma Nov 14, 2025
97e1bde
controlcenter: appearance pane tweaks
atdma Nov 14, 2025
144d04b
controlcenter: password dialog matches lockscreen
atdma Nov 14, 2025
a004902
controlcenter: correcting cancel/connect sizing issues
atdma Nov 14, 2025
d9313ca
controlcenter: correcting forget network button sizing issues
atdma Nov 14, 2025
ba5dfbd
network: removed all execs from Network.qml, now relies only on Nmcli…
atdma Nov 14, 2025
3f58823
nmcli: refactor to be readable/extensible
atdma Nov 14, 2025
540cebd
controlcenter: merging wireless/ethernet panes (wip/stash)
atdma Nov 14, 2025
6043adf
controlcenter: merged wireless/ethernet panes
atdma Nov 14, 2025
28ebba0
controlcenter: fixed default pane
atdma Nov 14, 2025
ebc2772
controlcenter: corrected index of panes
atdma Nov 14, 2025
c30022b
controlcenter: fix bug, couldn't select wifi network while ethernet i…
atdma Nov 14, 2025
f39c4b6
controlcenter: fix bug, connection information update event
atdma Nov 14, 2025
9cdc300
controlcenter: font size adjustments on headings
atdma Nov 14, 2025
5994c77
controlcenter: minor adjustments of accordion menu
atdma Nov 14, 2025
c3f05b7
controlcenter: minor adjustments of accordion menu
atdma Nov 14, 2025
7c2d492
controlcenter: changed labels for networking to network to match code…
atdma Nov 14, 2025
f472be1
controlcenter: fade-out animation on password input dialog close
atdma Nov 14, 2025
9de5e79
controlcenter: minor tidying (capitalization and filename)
atdma Nov 14, 2025
45ef919
tray: wireless password input popout
atdma Nov 14, 2025
b40b797
controlcenter: connected wireless network at top of list
atdma Nov 14, 2025
9a08d66
controlcenter: auto-focus reliably for wireless password input
atdma Nov 14, 2025
bd6122e
controlcenter connected network top of list fix
atdma Nov 15, 2025
d123dc0
controlcenter: search applications in launcher pane
atdma Nov 15, 2025
9825ad4
nmcli: fix errors + disable most logs
soramanew Nov 15, 2025
f617c15
tray: wireless password ripple effect fix / focus
atdma Nov 15, 2025
1e4e00d
tray: wireless password displays errors and resets
atdma Nov 15, 2025
a10c224
tray: wireless password popout, no more full-rounding buttons
atdma Nov 15, 2025
b1e5660
tray: open settings button matches other popouts
atdma Nov 15, 2025
7d1c89a
controlcenter: undo accordion collapse on network and audio pane sect…
atdma Nov 15, 2025
90e920b
controlcenter: fixed anchors vs parent logs
atdma Nov 15, 2025
20e07b2
controlcenter: clip to all styledflickable
atdma Nov 15, 2025
e339439
controlcenter: network pane added scrollbar
atdma Nov 15, 2025
23c1c02
controlpanel: maintain proper size
atdma Nov 15, 2025
a406248
controlcenter: selectables now match bluetooth pane
atdma Nov 15, 2025
f204e86
controlcenter: launcher pane only shows hide when app selected
atdma Nov 15, 2025
6cc779d
controlcenter: wireless networks display icons of signal strength
atdma Nov 15, 2025
a86fde6
controlcenter: audio pane refresh
atdma Nov 15, 2025
19fb58d
controlcenter: removed signal strength percentage from network list
atdma Nov 15, 2025
6a92f98
internal: use existing button controls
soramanew Nov 15, 2025
05b0660
controlcenter: password input errors/wrong pass
atdma Nov 15, 2025
f29f0a3
controlcenter: removed FileView and now all use singleton Config
atdma Nov 15, 2025
56ed76e
controlcenter: changed mute button icons
atdma Nov 15, 2025
266cffe
controlcenter: fix wallpaper gradient overlay
soramanew Nov 15, 2025
f79fd93
controlcenter: fix edge to edge in panels
atdma Nov 15, 2025
bfe0905
controlcenter: correcting margins (networking details pane)
atdma Nov 15, 2025
f3a0fcc
controlcenter: correcting margin inconsistencies between panels
atdma Nov 15, 2025
546eaa7
controlcenter: appearance transparency values now use sliders
atdma Nov 15, 2025
442b49e
controlcenter: appearance pane corrections to fp/int values such as s…
atdma Nov 15, 2025
b0006f2
controlcenter: corrected all panels edge-to-edge containers
atdma Nov 15, 2025
7023a72
controlcenter: corrected wallpaper flicker issue
atdma Nov 15, 2025
41b1551
deleted: shell
atdma Nov 15, 2025
4ada7ea
controlcenter: corrected certain containers not respecting transparen…
atdma Nov 15, 2025
ec8da25
controlcenter: revamped and added more sliders
atdma Nov 16, 2025
fc2640c
controlcenter: minor warning fix
atdma Nov 16, 2025
b5a31fb
controlcenter: launcher pane now fades in applications
atdma Nov 16, 2025
7db0348
controlcenter: forget network button color
atdma Nov 16, 2025
5be8d68
controlcenter: increased animation on fade-in (wallpaper and applicat…
atdma Nov 16, 2025
041be54
controlcenter: animation disappearing glitch fix
atdma Nov 16, 2025
cc74308
config: added save to singleton, updated relevant settings panes
atdma Nov 16, 2025
f2e9f60
controlcenter: max padding now 2
atdma Nov 16, 2025
28be7e8
controlcenter: slider component color fix for transparency layers
atdma Nov 16, 2025
90bda07
controlcenter: animation bug fix on flickables
atdma Nov 16, 2025
699d7ef
controlcenter: padding and spacing scale min-max
atdma Nov 16, 2025
420a19b
controlcenter: gradient rectangle around wallpapers fix
atdma Nov 16, 2025
7d839be
controlcenter: fonts performance fix (virtual listview)
atdma Nov 16, 2025
483a6fe
controlcenter: collapsible section sub heading animation correction
atdma Nov 16, 2025
c3d9fb8
controlcenter: wallpaper gradient/outline 1px fix
atdma Nov 16, 2025
ce3902d
controlcenter: wallpaper selector
atdma Nov 16, 2025
63d6804
controlcenter: font slider min-max
atdma Nov 16, 2025
0d57edc
config: 0ms bug on save corrected
atdma Nov 16, 2025
c9edb4d
controlcenter: animation subtext in collapsiblesection correction
atdma Nov 16, 2025
95615e6
controlcenter: wallpaper selector now spacing scale aware
atdma Nov 16, 2025
d3124c3
controlcenter: slider input focus on pane change or click outside of …
atdma Nov 16, 2025
21e7154
controlcenter: changed to popout vs floating to match the other setti…
atdma Nov 16, 2025
d184f8d
controlcenter: re-corrected bind loop
atdma Nov 16, 2025
1ce7422
controlcenter: 1px issue and radii uniform issues fixed
atdma Nov 16, 2025
b05650b
controlcenter: lock icon + security type
atdma Nov 16, 2025
76029cd
controlcenter: font subsections collapsiblesections
atdma Nov 16, 2025
59c906d
controlcenter: appearance pane async loader
atdma Nov 16, 2025
d751b68
controlcenter: corrected missing config.save() on panes
atdma Nov 16, 2025
0e1be81
controlcenter: delay heavy operations until animation completes
atdma Nov 16, 2025
f77323b
controlcenter: lazyloading wallpaper
atdma Nov 16, 2025
d9034ed
controlcenter: lazyloading applicatoins in launcher pane
atdma Nov 16, 2025
007e94a
controlcenter: caching and no destoying of panes
atdma Nov 16, 2025
522bc40
revert to 007e94a: restore caching and lazy loading features
atdma Nov 16, 2025
8a33ad9
controlcenter: restored floating window toggle
atdma Nov 16, 2025
18d1175
controlcenter: clip/fade issue on certain collapsiblesections
atdma Nov 16, 2025
b3d54fa
controlcenter: animation correction on certain collapsiblesections
atdma Nov 16, 2025
d2373e0
controlcenter: FIXED animation bug with sub-text
atdma Nov 17, 2025
d0c51d4
hierarchy: moved ethernet to network
atdma Nov 17, 2025
07637da
controlcenter: removed accordion auto-close on sections
atdma Nov 17, 2025
8981ab8
controlcenter: added collapse/expand all to apperaance and taskbar
atdma Nov 17, 2025
cdd522d
controlcenter: deferred pane loading and limited simultaneous pane lo…
atdma Nov 17, 2025
84638bf
hierarchy: renamed for consistency
atdma Nov 17, 2025
1f71914
tray: wireless password popout respect transparency
atdma Nov 17, 2025
57bb5ce
controlcenter: lazyloading wallpapers FIXED
atdma Nov 17, 2025
9f8f8ac
controlcenter: correcting containers (network details)
atdma Nov 17, 2025
ff03760
controlcenter: correcting containers (bluetooth pane)
atdma Nov 17, 2025
9bd3d57
controlcenter: lazyload cleanup confirmed
atdma Nov 17, 2025
c2c04b8
controlcenter: corrections on scrolling in panes and missing scrollbars
atdma Nov 17, 2025
29f7c7a
controlcenter: corrected scrolling in bluetooth details while selected
atdma Nov 17, 2025
8c84f67
controlcenter: corrected null anchor warn
atdma Nov 17, 2025
4a7c2db
controlcenter: moved connection status/security type in networking
atdma Nov 17, 2025
eb0286a
controlcenter: lock badge on signal strength for secure networks
atdma Nov 17, 2025
338b636
controlcenter: corrected typeerror null checks
atdma Nov 17, 2025
f248051
controlcenter: taskbar clock settings bg correction
atdma Nov 17, 2025
2c91bde
controlcenter: converted taskbar panel to single pane view
atdma Nov 17, 2025
3f3f3a7
controlcenter: connected button group component
atdma Nov 17, 2025
388cb0e
controlcenter: refined connected button groups
atdma Nov 17, 2025
1850a84
controlcenter: relabled buttons in connected group
atdma Nov 17, 2025
821ee43
controlcenter: taskbar panel layout reorg
atdma Nov 17, 2025
7a0a9d6
controlcenter: correcting padding/margins on containers
atdma Nov 17, 2025
b1cc641
controlcenter: correcting padding/margins on containers
atdma Nov 17, 2025
80b3255
controlcenter: corrected tray settings heading
atdma Nov 17, 2025
e3f0190
controlcenter: removed expand/collapse all on taskbar panel
atdma Nov 17, 2025
70c1e5f
controlcenter: updated lock badge colors on networking
atdma Nov 17, 2025
8262d34
controlcenter: disable resize on floating window
atdma Nov 17, 2025
ba09496
controlcenter: added slight background to expanded collapsiblesection…
atdma Nov 17, 2025
678f7e3
controlcenter: inner scrollbar for larger sections such as fonts
atdma Nov 17, 2025
d92911b
controlcenter: changed button groups to match other elements
atdma Nov 17, 2025
58e657d
controlcenter: changed button label for audio to speakers
atdma Nov 17, 2025
23e5d7d
controlcenter: renamed panel titles from settings to panel name
atdma Nov 17, 2025
34abc91
controlcenter: prevented changing panes before opening animation comp…
atdma Nov 18, 2025
b54ce46
controlcenter: corrected spacing between collapsiblesection headers a…
atdma Nov 18, 2025
ee33f8f
controlcenter: corrected timing of network panel animations
atdma Nov 18, 2025
52b1b79
controlcenter: added elevation effect to networking pane for improved…
atdma Nov 18, 2025
3f4d07b
controlcenter: padding/margins on taskbar panel
atdma Nov 18, 2025
c30e39f
Merge branch 'caelestia-dots:main' into main
atdma Nov 18, 2025
4de4a78
controlcenter: launcher pane refreshment
atdma Nov 18, 2025
e72fe3f
controlcenter: corrected launcher animation on data update
atdma Nov 18, 2025
7ac403d
controlcenter: added more missing options to taskbar panel
atdma Nov 18, 2025
dedff0b
controlcenter: minor moving around elements in taskbar panel
atdma Nov 18, 2025
50e29f8
controlcenter: corrected nesting of bg when transparency off
atdma Nov 19, 2025
ad4213d
refactor: SplitPaneLayout now component
atdma Nov 19, 2025
aff01f0
refactor: PaneTransition now component
atdma Nov 19, 2025
d3ecbc1
controlcenter: correcting margins/padding after refactor
atdma Nov 19, 2025
1c52324
refactor: added state module
atdma Nov 19, 2025
50dd4e1
refactor: created pane registry
atdma Nov 19, 2025
e8fc136
refactor: SettingsHeader on all panels
atdma Nov 19, 2025
70ec8ce
refactor: NetworkConnection util created, migrated all functions
atdma Nov 20, 2025
2d26626
refactor: SplitPaneWithDetails integrated
atdma Nov 20, 2025
ff4e9bb
refactor: Updated Bluetooth, Ethernet, and Wireless lists to use Devi…
atdma Nov 20, 2025
ef46a02
refactor: ToggleButton Tooltips and DeviceList
atdma Nov 20, 2025
978a3f4
cleanup: removed comments
atdma Nov 20, 2025
147410e
cleanup: removed unnecessary comments
atdma Nov 20, 2025
a243b61
refactor: replaced input fields with SliderInput components
atdma Nov 20, 2025
bf3a178
refactor: reorganized AppearancePane sections into dedicated components
atdma Nov 20, 2025
ecc1226
refactor: replaced CollapsibleSection with FontsSection
atdma Nov 20, 2025
324b32c
refactor: update ConnectedButtonGroup
atdma Nov 20, 2025
e781326
refactor: replaced wallpaper logic with WallpaperGrid component
atdma Nov 20, 2025
a15554f
refactor: EthernetList and WirelessList components removed border pro…
atdma Nov 20, 2025
ea9ab75
refactor: EthernetList correction on selected style
atdma Nov 20, 2025
ae74eab
refactor: EthernetList styling
atdma Nov 20, 2025
5a36970
controlcenter: updated wireless icons
atdma Nov 20, 2025
645159d
controlcenter: wallpaper title overlay to black
atdma Nov 20, 2025
a204fb6
controlcenter: WallpaperGrid color updates to style
atdma Nov 20, 2025
b8a3af1
background: enable asynchronous loading for background component
atdma Nov 20, 2025
0029f2d
controlcenter: wallpaper now uses gridview, removed custom lazy loading
atdma Nov 20, 2025
a2b00d4
controlcenter: corrected background transparency on tooltips
atdma Nov 20, 2025
284e7b4
controlcenter: corrected taskbar panel container margins/padding
atdma Nov 21, 2025
7779de5
controlcenter: refactor SliderInput and StyledInputFields to use qt c…
atdma Nov 21, 2025
8e9be71
controlcenter: cleaned up wallpapergrid
atdma Nov 21, 2025
70496b4
Merge branch 'caelestia-dots:main' into main
atdma Nov 24, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions components/ConnectionHeader.qml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import qs.components
import qs.services
import qs.config
import QtQuick
import QtQuick.Layouts

ColumnLayout {
id: root

required property string icon
required property string title

spacing: Appearance.spacing.normal
Layout.alignment: Qt.AlignHCenter

MaterialIcon {
Layout.alignment: Qt.AlignHCenter
animate: true
text: root.icon
font.pointSize: Appearance.font.size.extraLarge * 3
font.bold: true
}

StyledText {
Layout.alignment: Qt.AlignHCenter
animate: true
text: root.title
font.pointSize: Appearance.font.size.large
font.bold: true
}
}

60 changes: 60 additions & 0 deletions components/ConnectionInfoSection.qml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
import qs.components
import qs.components.effects
import qs.services
import qs.config
import QtQuick
import QtQuick.Layouts

ColumnLayout {
id: root

required property var deviceDetails

spacing: Appearance.spacing.small / 2

StyledText {
text: qsTr("IP Address")
}

StyledText {
text: root.deviceDetails?.ipAddress || qsTr("Not available")
color: Colours.palette.m3outline
font.pointSize: Appearance.font.size.small
}

StyledText {
Layout.topMargin: Appearance.spacing.normal
text: qsTr("Subnet Mask")
}

StyledText {
text: root.deviceDetails?.subnet || qsTr("Not available")
color: Colours.palette.m3outline
font.pointSize: Appearance.font.size.small
}

StyledText {
Layout.topMargin: Appearance.spacing.normal
text: qsTr("Gateway")
}

StyledText {
text: root.deviceDetails?.gateway || qsTr("Not available")
color: Colours.palette.m3outline
font.pointSize: Appearance.font.size.small
}

StyledText {
Layout.topMargin: Appearance.spacing.normal
text: qsTr("DNS Servers")
}

StyledText {
text: (root.deviceDetails && root.deviceDetails.dns && root.deviceDetails.dns.length > 0) ? root.deviceDetails.dns.join(", ") : qsTr("Not available")
color: Colours.palette.m3outline
font.pointSize: Appearance.font.size.small
wrapMode: Text.Wrap
Layout.maximumWidth: parent.width
}
}

27 changes: 27 additions & 0 deletions components/PropertyRow.qml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import qs.components
import qs.services
import qs.config
import QtQuick
import QtQuick.Layouts

ColumnLayout {
id: root

required property string label
required property string value
property bool showTopMargin: false

spacing: Appearance.spacing.small / 2

StyledText {
Layout.topMargin: root.showTopMargin ? Appearance.spacing.normal : 0
text: root.label
}

StyledText {
text: root.value
color: Colours.palette.m3outline
font.pointSize: Appearance.font.size.small
}
}

35 changes: 35 additions & 0 deletions components/SectionContainer.qml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import qs.components
import qs.components.effects
import qs.services
import qs.config
import QtQuick
import QtQuick.Layouts

StyledRect {
id: root

default property alias content: contentColumn.data
property real contentSpacing: Appearance.spacing.larger
property bool alignTop: false

Layout.fillWidth: true
implicitHeight: contentColumn.implicitHeight + Appearance.padding.large * 2

radius: Appearance.rounding.normal
color: Colours.transparency.enabled
? Colours.layer(Colours.palette.m3surfaceContainer, 2)
: Colours.palette.m3surfaceContainerHigh

ColumnLayout {
id: contentColumn

anchors.left: parent.left
anchors.right: parent.right
anchors.top: root.alignTop ? parent.top : undefined
anchors.verticalCenter: root.alignTop ? undefined : parent.verticalCenter
anchors.margins: Appearance.padding.large

spacing: root.contentSpacing
}
}

28 changes: 28 additions & 0 deletions components/SectionHeader.qml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import qs.components
import qs.services
import qs.config
import QtQuick
import QtQuick.Layouts

ColumnLayout {
id: root

required property string title
property string description: ""

spacing: 0

StyledText {
Layout.topMargin: Appearance.spacing.large
text: root.title
font.pointSize: Appearance.font.size.larger
font.weight: 500
}

StyledText {
visible: root.description !== ""
text: root.description
color: Colours.palette.m3outline
}
}

3 changes: 2 additions & 1 deletion components/StateLayer.qml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ MouseArea {
id: root

property bool disabled
property bool showHoverBackground: true
property color color: Colours.palette.m3onSurface
property real radius: parent?.radius ?? 0
property alias rect: hoverLayer
Expand Down Expand Up @@ -75,7 +76,7 @@ MouseArea {

anchors.fill: parent

color: Qt.alpha(root.color, root.disabled ? 0 : root.pressed ? 0.1 : root.containsMouse ? 0.08 : 0)
color: Qt.alpha(root.color, root.disabled ? 0 : root.pressed ? 0.12 : (root.showHoverBackground && root.containsMouse) ? 0.08 : 0)
radius: root.radius

StyledRect {
Expand Down
135 changes: 135 additions & 0 deletions components/controls/CollapsibleSection.qml
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
import ".."
import qs.components
import qs.components.effects
import qs.services
import qs.config
import QtQuick
import QtQuick.Layouts

ColumnLayout {
id: root

required property string title
property string description: ""
property bool expanded: false
property bool showBackground: false
property bool nested: false

signal toggleRequested

spacing: Appearance.spacing.small
Layout.fillWidth: true

Item {
id: sectionHeaderItem
Layout.fillWidth: true
Layout.preferredHeight: Math.max(titleRow.implicitHeight + Appearance.padding.normal * 2, 48)

RowLayout {
id: titleRow
anchors.left: parent.left
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
anchors.leftMargin: Appearance.padding.normal
anchors.rightMargin: Appearance.padding.normal
spacing: Appearance.spacing.normal

StyledText {
text: root.title
font.pointSize: Appearance.font.size.larger
font.weight: 500
}

Item {
Layout.fillWidth: true
}

MaterialIcon {
text: "expand_more"
rotation: root.expanded ? 180 : 0
color: Colours.palette.m3onSurfaceVariant
font.pointSize: Appearance.font.size.normal
Behavior on rotation {
Anim {
duration: Appearance.anim.durations.small
easing.bezierCurve: Appearance.anim.curves.standard
}
}
}
}

StateLayer {
anchors.fill: parent
color: Colours.palette.m3onSurface
radius: Appearance.rounding.normal
showHoverBackground: false
function onClicked(): void {
root.toggleRequested();
root.expanded = !root.expanded;
}
}
}

default property alias content: contentColumn.data

Item {
id: contentWrapper
Layout.fillWidth: true
Layout.preferredHeight: root.expanded ? (contentColumn.implicitHeight + Appearance.spacing.small * 2) : 0
clip: true

Behavior on Layout.preferredHeight {
Anim {
easing.bezierCurve: Appearance.anim.curves.standard
}
}

StyledRect {
id: backgroundRect
anchors.fill: parent
radius: Appearance.rounding.normal
color: Colours.transparency.enabled
? Colours.layer(Colours.palette.m3surfaceContainer, root.nested ? 3 : 2)
: (root.nested ? Colours.palette.m3surfaceContainerHigh : Colours.palette.m3surfaceContainer)
opacity: root.showBackground && root.expanded ? 1.0 : 0.0
visible: root.showBackground

Behavior on opacity {
Anim {
easing.bezierCurve: Appearance.anim.curves.standard
}
}
}

ColumnLayout {
id: contentColumn
anchors.left: parent.left
anchors.right: parent.right
y: Appearance.spacing.small
anchors.leftMargin: Appearance.padding.normal
anchors.rightMargin: Appearance.padding.normal
anchors.bottomMargin: Appearance.spacing.small
spacing: Appearance.spacing.small
opacity: root.expanded ? 1.0 : 0.0

Behavior on opacity {
Anim {
easing.bezierCurve: Appearance.anim.curves.standard
}
}

StyledText {
id: descriptionText
Layout.fillWidth: true
Layout.topMargin: root.description !== "" ? Appearance.spacing.smaller : 0
Layout.bottomMargin: root.description !== "" ? Appearance.spacing.small : 0
visible: root.description !== ""
text: root.description
color: Colours.palette.m3onSurfaceVariant
font.pointSize: Appearance.font.size.small
wrapMode: Text.Wrap
}
}
}
}

Loading