custom switch

This commit is contained in:
Zacharias-Brohn
2026-02-23 21:38:20 +01:00
parent fa63746dfd
commit 22015bf61d
24 changed files with 88 additions and 33 deletions
-1
View File
@@ -1,5 +1,4 @@
import QtQuick
import qs.Modules
import qs.Config
NumberAnimation {
-1
View File
@@ -1,5 +1,4 @@
import QtQuick
import qs.Modules
import qs.Config
ColorAnimation {
-2
View File
@@ -1,6 +1,4 @@
import qs.Helpers
import qs.Config
import qs.Modules
import ZShell.Internal
import QtQuick
import QtQuick.Templates
-2
View File
@@ -1,8 +1,6 @@
import QtQuick
import QtQuick.Shapes
import qs.Helpers
import qs.Config
import qs.Modules
Shape {
id: root
-1
View File
@@ -1,6 +1,5 @@
import QtQuick
import QtQuick.Effects
import qs.Modules
MultiEffect {
property color sourceColor: "black"
-1
View File
@@ -1,7 +1,6 @@
import QtQuick
import QtQuick.Templates
import qs.Config
import qs.Modules
Slider {
id: root
-1
View File
@@ -1,6 +1,5 @@
import Quickshell.Widgets
import QtQuick
import qs.Modules
ClippingRectangle {
id: root
-1
View File
@@ -1,5 +1,4 @@
import QtQuick
import qs.Modules
Flickable {
id: root
-2
View File
@@ -1,6 +1,4 @@
import QtQuick
import qs.Config
import qs.Modules
ListView {
id: root
-1
View File
@@ -1,7 +1,6 @@
import QtQuick
import QtQuick.Templates
import qs.Config
import qs.Modules
RadioButton {
id: root
-1
View File
@@ -1,5 +1,4 @@
import QtQuick
import qs.Modules
Rectangle {
id: root
-1
View File
@@ -1,5 +1,4 @@
import qs.Config
import qs.Modules
import QtQuick
import QtQuick.Templates
-1
View File
@@ -1,7 +1,6 @@
import QtQuick
import QtQuick.Templates
import qs.Config
import qs.Modules
Slider {
id: root
+86 -2
View File
@@ -1,8 +1,7 @@
import qs.Config
import qs.Modules
import QtQuick
import QtQuick.Templates
import QtQuick.Shapes
import qs.Config
Switch {
id: root
@@ -42,6 +41,91 @@ Switch {
}
}
Shape {
id: icon
property point start1: {
if (root.pressed)
return Qt.point(width * 0.1, height / 2);
if (root.checked)
return Qt.point(width * 0.15, height / 2);
return Qt.point(width * 0.15, height * 0.15);
}
property point end1: {
if (root.pressed) {
if (root.checked)
return Qt.point(width * 0.4, height / 2);
return Qt.point(width * 0.8, height / 2);
}
if (root.checked)
return Qt.point(width * 0.4, height * 0.7);
return Qt.point(width * 0.85, height * 0.85);
}
property point start2: {
if (root.pressed) {
if (root.checked)
return Qt.point(width * 0.4, height / 2);
return Qt.point(width * 0.2, height / 2);
}
if (root.checked)
return Qt.point(width * 0.4, height * 0.7);
return Qt.point(width * 0.15, height * 0.85);
}
property point end2: {
if (root.pressed)
return Qt.point(width, height / 2);
if (root.checked)
return Qt.point(width * 0.85, height * 0.2);
return Qt.point(width * 0.85, height * 0.15);
}
anchors.centerIn: parent
width: height
height: parent.implicitHeight - Appearance.padding.small * 2
preferredRendererType: Shape.CurveRenderer
asynchronous: true
ShapePath {
strokeWidth: Appearance.font.size.larger * 0.15
strokeColor: root.checked ? DynamicColors.palette.m3primary : DynamicColors.palette.m3surfaceContainerHighest
fillColor: "transparent"
capStyle: Appearance.rounding.scale === 0 ? ShapePath.SquareCap : ShapePath.RoundCap
startX: icon.start1.x
startY: icon.start1.y
PathLine {
x: icon.end1.x
y: icon.end1.y
}
PathMove {
x: icon.start2.x
y: icon.start2.y
}
PathLine {
x: icon.end2.x
y: icon.end2.y
}
Behavior on strokeColor {
CAnim {}
}
}
Behavior on start1 {
PropAnim {}
}
Behavior on end1 {
PropAnim {}
}
Behavior on start2 {
PropAnim {}
}
Behavior on end2 {
PropAnim {}
}
}
Behavior on x {
Anim {}
}
-1
View File
@@ -2,7 +2,6 @@ pragma ComponentBehavior: Bound
import QtQuick
import qs.Config
import qs.Modules
Text {
id: root
-2
View File
@@ -2,9 +2,7 @@ pragma ComponentBehavior: Bound
import QtQuick
import QtQuick.Controls
import qs.Helpers
import qs.Config
import qs.Modules
TextField {
id: root
-1
View File
@@ -1,6 +1,5 @@
import QtQuick
import qs.Components
import qs.Modules
import qs.Config
Item {
-1
View File
@@ -1,5 +1,4 @@
import qs.Config
import qs.Modules
import QtQuick
import QtQuick.Effects
-1
View File
@@ -1,5 +1,4 @@
import qs.Config
import qs.Modules
import QtQuick
CustomRect {
-2
View File
@@ -1,8 +1,6 @@
import QtQuick
import QtQuick.Templates
import qs.Helpers
import qs.Config
import qs.Modules
Slider {
id: root
-1
View File
@@ -1,5 +1,4 @@
import qs.Config
import qs.Modules
import QtQuick
CustomRect {
-1
View File
@@ -1,5 +1,4 @@
import qs.Config
import qs.Modules
import QtQuick
MouseArea {
-2
View File
@@ -1,9 +1,7 @@
import ZShell
import QtQuick
import QtQuick.Layouts
import qs.Modules
import qs.Components
import qs.Helpers
import qs.Config
CustomRect {
+2 -3
View File
@@ -1,11 +1,10 @@
pragma ComponentBehavior: Bound
import qs.Components
import qs.Config
import qs.Modules
import ZShell
import Quickshell
import QtQuick
import qs.Components
import qs.Config
Item {
id: root