toggle dnd shortcut
This commit is contained in:
@@ -42,91 +42,6 @@ Switch {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Shape {
|
|
||||||
id: icon
|
|
||||||
|
|
||||||
property point start1: {
|
|
||||||
if (root.pressed)
|
|
||||||
return Qt.point(width * 0.2, 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 * 0.8, 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 - 10 * 2
|
|
||||||
preferredRendererType: Shape.CurveRenderer
|
|
||||||
asynchronous: true
|
|
||||||
|
|
||||||
ShapePath {
|
|
||||||
strokeWidth: 20 * 0.15
|
|
||||||
strokeColor: root.checked ? DynamicColors.palette.m3primary : DynamicColors.palette.m3surfaceContainerHighest
|
|
||||||
fillColor: "transparent"
|
|
||||||
capStyle: 1 === 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 {
|
Behavior on x {
|
||||||
Anim {}
|
Anim {}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -130,7 +130,7 @@ CustomRect {
|
|||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
textFormat: Text.MarkdownText
|
textFormat: Text.MarkdownText
|
||||||
text: root.modelData.body.replace(/(.)\n(?!\n)/g, "$1\n\n") || qsTr("No body here! :/")
|
text: root.modelData.body.replace(/(.)\n(?!\n)/g, "$1\n\n") || qsTr("No body here! :/")
|
||||||
color: root.modelData.urgency === "critical" ? DynamicColors.palette.m3secondary : DynamicColors.palette.m3outline
|
color: root.modelData.urgency === "critical" ? DynamicColors.palette.m3secondary : DynamicColors.palette.m3onSurface
|
||||||
wrapMode: Text.WordWrap
|
wrapMode: Text.WordWrap
|
||||||
|
|
||||||
onLinkActivated: link => {
|
onLinkActivated: link => {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import qs.Modules
|
|||||||
import qs.Daemons
|
import qs.Daemons
|
||||||
import Quickshell
|
import Quickshell
|
||||||
import Quickshell.Bluetooth
|
import Quickshell.Bluetooth
|
||||||
|
import Quickshell.Hyprland
|
||||||
import QtQuick
|
import QtQuick
|
||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
|
|
||||||
@@ -31,6 +32,7 @@ CustomRect {
|
|||||||
spacing: 7
|
spacing: 7
|
||||||
|
|
||||||
Toggle {
|
Toggle {
|
||||||
|
id: toggle
|
||||||
icon: "notifications_off"
|
icon: "notifications_off"
|
||||||
checked: NotifServer.dnd
|
checked: NotifServer.dnd
|
||||||
onClicked: NotifServer.dnd = !NotifServer.dnd
|
onClicked: NotifServer.dnd = !NotifServer.dnd
|
||||||
@@ -38,6 +40,15 @@ CustomRect {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GlobalShortcut {
|
||||||
|
name: "toggle-dnd"
|
||||||
|
appid: "zshell-nc"
|
||||||
|
|
||||||
|
onPressed: {
|
||||||
|
toggle.clicked();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
component Toggle: IconButton {
|
component Toggle: IconButton {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.preferredWidth: implicitWidth + (stateLayer.pressed ? 18 : internalChecked ? 7 : 0)
|
Layout.preferredWidth: implicitWidth + (stateLayer.pressed ? 18 : internalChecked ? 7 : 0)
|
||||||
|
|||||||
Reference in New Issue
Block a user