config moved to c++ plugin, removed old qml + fileview implementation

This commit is contained in:
2026-08-13 02:25:26 +02:00
parent c29b91cd26
commit 3cd3209b28
341 changed files with 4851 additions and 3502 deletions
@@ -4,8 +4,9 @@ import Quickshell
import QtQuick
import QtQuick.Layouts
import qs.Components
import qs.Config
import ZShell.Config
import qs.Helpers
import qs.Services
CustomRect {
id: root
@@ -14,29 +15,29 @@ CustomRect {
required property PersistentProperties visibilities
Layout.fillWidth: true
color: DynamicColors.tPalette.m3surfaceContainer
color: Colors.tPalette.m3surfaceContainer
implicitHeight: layout.implicitHeight + layout.anchors.margins * 2
radius: Appearance.rounding.smallest
radius: Tokens.rounding.smallest
ColumnLayout {
id: layout
anchors.fill: parent
anchors.margins: Appearance.padding.large
spacing: Appearance.spacing.normal
anchors.margins: Tokens.padding.large
spacing: Tokens.spacing.normal
RowLayout {
spacing: Appearance.spacing.normal
spacing: Tokens.spacing.normal
z: 1
CustomRect {
color: Recorder.running ? DynamicColors.palette.m3secondary : DynamicColors.palette.m3secondaryContainer
color: Recorder.running ? Colors.palette.m3secondary : Colors.palette.m3secondaryContainer
implicitHeight: {
const h = icon.implicitHeight + Appearance.padding.smaller * 2;
const h = icon.implicitHeight + Tokens.padding.smaller * 2;
return h - (h % 2);
}
implicitWidth: implicitHeight
radius: Appearance.rounding.full
radius: Tokens.rounding.full
MaterialIcon {
id: icon
@@ -44,8 +45,8 @@ CustomRect {
anchors.centerIn: parent
anchors.horizontalCenterOffset: -0.5
anchors.verticalCenterOffset: 1.5
color: Recorder.running ? DynamicColors.palette.m3onSecondary : DynamicColors.palette.m3onSecondaryContainer
font.pointSize: Appearance.font.size.large
color: Recorder.running ? Colors.palette.m3onSecondary : Colors.palette.m3onSecondaryContainer
font.pointSize: Tokens.font.size.large
text: "screen_record"
}
}
@@ -57,15 +58,15 @@ CustomRect {
CustomText {
Layout.fillWidth: true
elide: Text.ElideRight
font.pointSize: Appearance.font.size.normal
font.pointSize: Tokens.font.size.normal
text: qsTr("Screen Recorder")
}
CustomText {
Layout.fillWidth: true
color: DynamicColors.palette.m3onSurfaceVariant
color: Colors.palette.m3onSurfaceVariant
elide: Text.ElideRight
font.pointSize: Appearance.font.size.small
font.pointSize: Tokens.font.size.small
text: Recorder.paused ? qsTr("Recording paused") : Recorder.running ? qsTr("Recording running") : qsTr("Recording off")
}
}
@@ -132,16 +133,16 @@ CustomRect {
SequentialAnimation {
ParallelAnimation {
Anim {
duration: Appearance.anim.durations.small
easing.bezierCurve: Appearance.anim.curves.standardAccel
duration: Tokens.anim.durations.small
easing.bezierCurve: Tokens.anim.curves.standardAccel
property: "scale"
target: listOrControls
to: 0.7
}
Anim {
duration: Appearance.anim.durations.small
easing.bezierCurve: Appearance.anim.curves.standardAccel
duration: Tokens.anim.durations.small
easing.bezierCurve: Tokens.anim.curves.standardAccel
property: "opacity"
target: listOrControls
to: 0
@@ -165,16 +166,16 @@ CustomRect {
ParallelAnimation {
Anim {
duration: Appearance.anim.durations.small
easing.bezierCurve: Appearance.anim.curves.standardDecel
duration: Tokens.anim.durations.small
easing.bezierCurve: Tokens.anim.curves.standardDecel
property: "scale"
target: listOrControls
to: 1
}
Anim {
duration: Appearance.anim.durations.small
easing.bezierCurve: Appearance.anim.curves.standardDecel
duration: Tokens.anim.durations.small
easing.bezierCurve: Tokens.anim.curves.standardDecel
property: "opacity"
target: listOrControls
to: 1
@@ -198,13 +199,13 @@ CustomRect {
id: recordingControls
RowLayout {
spacing: Appearance.spacing.normal
spacing: Tokens.spacing.normal
CustomRect {
color: Recorder.paused ? DynamicColors.palette.m3tertiary : DynamicColors.palette.m3error
implicitHeight: recText.implicitHeight + Appearance.padding.smaller * 2
implicitWidth: recText.implicitWidth + Appearance.padding.normal * 2
radius: Appearance.rounding.full
color: Recorder.paused ? Colors.palette.m3tertiary : Colors.palette.m3error
implicitHeight: recText.implicitHeight + Tokens.padding.smaller * 2
implicitWidth: recText.implicitWidth + Tokens.padding.normal * 2
radius: Tokens.rounding.full
Behavior on implicitWidth {
Anim {
@@ -216,15 +217,15 @@ CustomRect {
running: !Recorder.paused
Anim {
duration: Appearance.anim.durations.large
easing.bezierCurve: Appearance.anim.curves.emphasizedAccel
duration: Tokens.anim.durations.large
easing.bezierCurve: Tokens.anim.curves.emphasizedAccel
from: 1
to: 0
}
Anim {
duration: Appearance.anim.durations.extraLarge
easing.bezierCurve: Appearance.anim.curves.emphasizedDecel
duration: Tokens.anim.durations.extraLarge
easing.bezierCurve: Tokens.anim.curves.emphasizedDecel
from: 0
to: 1
}
@@ -235,14 +236,14 @@ CustomRect {
anchors.centerIn: parent
animate: true
color: Recorder.paused ? DynamicColors.palette.m3onTertiary : DynamicColors.palette.m3onError
color: Recorder.paused ? Colors.palette.m3onTertiary : Colors.palette.m3onError
font.family: Appearance.font.family.mono
text: Recorder.paused ? "PAUSED" : "REC"
}
}
CustomText {
font.pointSize: Appearance.font.size.normal
font.pointSize: Tokens.font.size.normal
text: {
const elapsed = Recorder.elapsed;
@@ -266,7 +267,7 @@ CustomRect {
IconButton {
checked: Recorder.paused
font.pointSize: Appearance.font.size.large
font.pointSize: Tokens.font.size.large
icon: Recorder.paused ? "play_arrow" : "pause"
isToggle: true
label.animate: true
@@ -279,10 +280,10 @@ CustomRect {
}
IconButton {
font.pointSize: Appearance.font.size.large
font.pointSize: Tokens.font.size.large
icon: "stop"
inactiveColor: DynamicColors.palette.m3error
inactiveOnColor: DynamicColors.palette.m3onError
inactiveColor: Colors.palette.m3error
inactiveOnColor: Colors.palette.m3onError
onClicked: Recorder.stop()
}
@@ -8,7 +8,8 @@ import ZShell.Models
import qs.Components
import qs.Helpers
import qs.Paths
import qs.Config
import ZShell.Config
import qs.Services
ColumnLayout {
id: root
@@ -25,18 +26,18 @@ ColumnLayout {
onClicked: root.props.recordingListExpanded = !root.props.recordingListExpanded
RowLayout {
spacing: Appearance.spacing.smaller
spacing: Tokens.spacing.smaller
MaterialIcon {
Layout.alignment: Qt.AlignVCenter
font.pointSize: Appearance.font.size.large
font.pointSize: Tokens.font.size.large
text: "list"
}
CustomText {
Layout.alignment: Qt.AlignVCenter
Layout.fillWidth: true
font.pointSize: Appearance.font.size.normal
font.pointSize: Tokens.font.size.normal
text: qsTr("Recordings")
}
@@ -54,9 +55,9 @@ ColumnLayout {
id: list
Layout.fillWidth: true
Layout.rightMargin: -Appearance.spacing.small
Layout.rightMargin: -Tokens.spacing.small
clip: true
implicitHeight: (Appearance.font.size.larger + Appearance.padding.small) * (root.props.recordingListExpanded ? 10 : 3)
implicitHeight: (Tokens.font.size.larger + Tokens.padding.small) * (root.props.recordingListExpanded ? 10 : 3)
CustomScrollBar.vertical: CustomScrollBar {
flickable: list
@@ -82,15 +83,15 @@ ColumnLayout {
anchors.left: list.contentItem.left
anchors.right: list.contentItem.right
anchors.rightMargin: Appearance.spacing.small
spacing: Appearance.spacing.small / 2
anchors.rightMargin: Tokens.spacing.small
spacing: Tokens.spacing.small / 2
Component.onCompleted: baseName = modelData.baseName
CustomText {
Layout.fillWidth: true
Layout.rightMargin: Appearance.spacing.small / 2
color: DynamicColors.palette.m3onSurfaceVariant
Layout.rightMargin: Tokens.spacing.small / 2
color: Colors.palette.m3onSurfaceVariant
elide: Text.ElideRight
text: {
const time = recording.baseName;
@@ -165,13 +166,13 @@ ColumnLayout {
}
}
sourceComponent: ColumnLayout {
spacing: Appearance.spacing.small
spacing: Tokens.spacing.small
MaterialIcon {
Layout.alignment: Qt.AlignHCenter
Layout.preferredHeight: root.props.recordingListExpanded ? implicitHeight : 0
color: DynamicColors.palette.m3outline
font.pointSize: Appearance.font.size.extraLarge
color: Colors.palette.m3outline
font.pointSize: Tokens.font.size.extraLarge
opacity: root.props.recordingListExpanded ? 1 : 0
scale: root.props.recordingListExpanded ? 1 : 0
text: "scan_delete"
@@ -191,12 +192,12 @@ ColumnLayout {
}
RowLayout {
spacing: Appearance.spacing.smaller
spacing: Tokens.spacing.smaller
MaterialIcon {
Layout.alignment: Qt.AlignHCenter
Layout.preferredWidth: !root.props.recordingListExpanded ? implicitWidth : 0
color: DynamicColors.palette.m3outline
color: Colors.palette.m3outline
opacity: !root.props.recordingListExpanded ? 1 : 0
scale: !root.props.recordingListExpanded ? 1 : 0
text: "scan_delete"
@@ -216,7 +217,7 @@ ColumnLayout {
}
CustomText {
color: DynamicColors.palette.m3outline
color: Colors.palette.m3outline
text: qsTr("No recordings found")
}
}
@@ -4,9 +4,10 @@ import QtQuick
import QtQuick.Layouts
import ZShell.Components
import qs.Components
import qs.Config
import ZShell.Config
import qs.Helpers
import qs.Daemons
import qs.Services
CustomRect {
id: root
@@ -15,16 +16,16 @@ CustomRect {
required property var visibilities
Layout.fillWidth: true
color: DynamicColors.tPalette.m3surfaceContainer
color: Colors.tPalette.m3surfaceContainer
implicitHeight: layout.implicitHeight + 18 * 2
radius: Appearance.rounding.smallest
radius: Tokens.rounding.smallest
ButtonRow {
id: layout
anchors.fill: parent
anchors.margins: 18
spacing: Appearance.spacing.extraSmall
spacing: Tokens.spacing.extraSmall
Toggle {
checked: Network.wifiEnabled