aboutsummaryrefslogtreecommitdiffstats
path: root/appearance/Toggle.qml
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-09-16 12:36:20 +0200
committerDanilo M. <danix@danix.xyz>2026-09-16 12:36:20 +0200
commita33d90b5f662df235da027ec1978b6490894d796 (patch)
tree7aaf6913afc35160fb6831c615024b1787277c28 /appearance/Toggle.qml
parent85a8d57b69cccba0b546e1f436fa4d419db94b8a (diff)
downloadquickshell-a33d90b5f662df235da027ec1978b6490894d796.tar.gz
quickshell-a33d90b5f662df235da027ec1978b6490894d796.zip
feat(appearance): add the Sunset tab
Tab bar and Tab-key cycle become five entries, the Loader picks inline or file tabs, and show() refreshes the model. The tab edits the profiles in place, fetches sun times and previews through the daemon.
Diffstat (limited to 'appearance/Toggle.qml')
-rw-r--r--appearance/Toggle.qml56
1 files changed, 56 insertions, 0 deletions
diff --git a/appearance/Toggle.qml b/appearance/Toggle.qml
new file mode 100644
index 0000000..2bb56a2
--- /dev/null
+++ b/appearance/Toggle.qml
@@ -0,0 +1,56 @@
+// Copyright (C) 2026 Danilo M. <danix@danix.xyz>
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2 as
+// published by the Free Software Foundation.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+import QtQuick
+
+Rectangle {
+ id: toggle
+ property bool checked: false
+ property string label: ""
+ signal toggled
+
+ implicitWidth: row.implicitWidth
+ implicitHeight: 22
+ color: "transparent"
+
+ Row {
+ id: row
+ anchors.verticalCenter: parent.verticalCenter
+ spacing: 6
+ Rectangle {
+ anchors.verticalCenter: parent.verticalCenter
+ width: 16; height: 16; radius: 4
+ color: toggle.checked ? Qt.alpha(Theme.accent, 0.7) : Qt.alpha(Theme.surface, 0.5)
+ border.width: 1
+ border.color: toggle.checked ? Qt.alpha(Theme.accent, 0.9) : Qt.alpha(Theme.text, 0.2)
+ Text {
+ anchors.centerIn: parent
+ visible: toggle.checked
+ text: "✓"
+ font { family: Theme.iconFamily; pixelSize: Theme.fontSize - 6; bold: true }
+ color: Theme.base
+ }
+ }
+ Text {
+ anchors.verticalCenter: parent.verticalCenter
+ visible: toggle.label !== ""
+ text: toggle.label
+ font { family: Theme.fontFamily; pixelSize: Theme.fontSize - 4 }
+ color: Theme.subtext
+ }
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ cursorShape: Qt.PointingHandCursor
+ onClicked: { toggle.checked = !toggle.checked; toggle.toggled(); }
+ }
+}