summaryrefslogtreecommitdiff
path: root/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Settings/Widgets/SettingsToggleCard.qml
diff options
context:
space:
mode:
authornippy <you@example.com>2026-04-18 13:49:56 +0200
committernippy <you@example.com>2026-04-18 13:49:56 +0200
commit5d94c0a7d44a2255b81815a52a7056a94a39842d (patch)
tree759bdea9645c6a62f9e1e4c001f7d81cccd120d2 /raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Settings/Widgets/SettingsToggleCard.qml
parente79cdf210b267f21a186255ce1a4d50029439d54 (diff)
downloadRaveOS-PKGBUILD-5d94c0a7d44a2255b81815a52a7056a94a39842d.tar.gz
RaveOS-PKGBUILD-5d94c0a7d44a2255b81815a52a7056a94a39842d.zip
update Raveos themes
Diffstat (limited to 'raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Settings/Widgets/SettingsToggleCard.qml')
-rw-r--r--raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Settings/Widgets/SettingsToggleCard.qml120
1 files changed, 120 insertions, 0 deletions
diff --git a/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Settings/Widgets/SettingsToggleCard.qml b/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Settings/Widgets/SettingsToggleCard.qml
new file mode 100644
index 0000000..c36fb7c
--- /dev/null
+++ b/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Settings/Widgets/SettingsToggleCard.qml
@@ -0,0 +1,120 @@
+pragma ComponentBehavior: Bound
+
+import QtQuick
+import qs.Common
+import qs.Widgets
+
+StyledRect {
+ id: root
+
+ LayoutMirroring.enabled: I18n.isRtl
+ LayoutMirroring.childrenInherit: true
+
+ property string tab: ""
+ property var tags: []
+
+ property string title: ""
+ property string description: ""
+ property string iconName: ""
+ property bool checked: false
+ property bool enabled: true
+
+ default property alias content: expandedContent.children
+ readonly property bool hasContent: expandedContent.children.length > 0
+
+ signal toggled(bool checked)
+
+ width: parent?.width ?? 0
+ height: Theme.spacingL * 2 + mainColumn.height
+ radius: Theme.cornerRadius
+ color: Theme.surfaceContainerHigh
+
+ Column {
+ id: mainColumn
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.leftMargin: Theme.spacingL
+ anchors.rightMargin: Theme.spacingL
+ spacing: Theme.spacingM
+
+ Item {
+ width: parent.width
+ height: headerColumn.height
+
+ Column {
+ id: headerColumn
+ anchors.left: parent.left
+ anchors.right: toggleSwitch.left
+ anchors.rightMargin: Theme.spacingM
+ spacing: Theme.spacingXS
+
+ Row {
+ spacing: Theme.spacingM
+ width: parent.width
+
+ DankIcon {
+ id: headerIcon
+ name: root.iconName
+ size: Theme.iconSize
+ color: Theme.primary
+ anchors.verticalCenter: parent.verticalCenter
+ visible: root.iconName !== ""
+ }
+
+ StyledText {
+ id: headerText
+ text: root.title
+ font.pixelSize: Theme.fontSizeLarge
+ font.weight: Font.Medium
+ color: Theme.surfaceText
+ anchors.verticalCenter: parent.verticalCenter
+ visible: root.title !== ""
+ width: parent.width - (headerIcon.visible ? headerIcon.width + parent.spacing : 0)
+ horizontalAlignment: Text.AlignLeft
+ }
+ }
+
+ StyledText {
+ id: descriptionText
+ text: root.description
+ font.pixelSize: Theme.fontSizeSmall
+ color: Theme.surfaceVariantText
+ wrapMode: Text.WordWrap
+ width: parent.width
+ horizontalAlignment: Text.AlignLeft
+ visible: root.description !== ""
+ }
+ }
+
+ DankToggle {
+ id: toggleSwitch
+ anchors.right: parent.right
+ anchors.verticalCenter: parent.verticalCenter
+ hideText: true
+ checked: root.checked
+ enabled: root.enabled
+ onToggled: checked => root.toggled(checked)
+ }
+
+ StateLayer {
+ anchors.fill: parent
+ disabled: !root.enabled
+ stateColor: Theme.primary
+ cornerRadius: root.radius
+ onClicked: {
+ if (!root.enabled)
+ return;
+ root.toggled(!root.checked);
+ }
+ }
+ }
+
+ Column {
+ id: expandedContent
+ width: parent.width
+ spacing: Theme.spacingM
+ visible: root.checked && root.hasContent
+ }
+ }
+}