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
+12 -11
View File
@@ -2,7 +2,8 @@ import QtQuick
import qs.Modules.Launcher.Services
import qs.Components
import qs.Helpers
import qs.Config
import ZShell.Config
import qs.Services
Item {
id: root
@@ -15,7 +16,7 @@ Item {
implicitHeight: Config.launcher.sizes.itemHeight
StateLayer {
radius: Appearance.rounding.smallest
radius: Tokens.rounding.smallest
onClicked: {
root.modelData?.onClicked(root.list);
@@ -24,21 +25,21 @@ Item {
Item {
anchors.fill: parent
anchors.leftMargin: Appearance.padding.larger
anchors.margins: Appearance.padding.smaller
anchors.rightMargin: Appearance.padding.larger
anchors.leftMargin: Tokens.padding.larger
anchors.margins: Tokens.padding.smaller
anchors.rightMargin: Tokens.padding.larger
MaterialIcon {
id: icon
anchors.verticalCenter: parent.verticalCenter
font.pointSize: Appearance.font.size.extraLarge
font.pointSize: Tokens.font.size.extraLarge
text: root.modelData?.icon ?? ""
}
Item {
anchors.left: icon.right
anchors.leftMargin: Appearance.spacing.normal
anchors.leftMargin: Tokens.spacing.normal
anchors.verticalCenter: icon.verticalCenter
implicitHeight: name.implicitHeight + desc.implicitHeight
implicitWidth: parent.width - icon.width
@@ -46,7 +47,7 @@ Item {
CustomText {
id: name
font.pointSize: Appearance.font.size.normal
font.pointSize: Tokens.font.size.normal
text: root.modelData?.name ?? ""
}
@@ -54,11 +55,11 @@ Item {
id: desc
anchors.top: name.bottom
color: DynamicColors.palette.m3outline
color: Colors.palette.m3outline
elide: Text.ElideRight
font.pointSize: Appearance.font.size.small
font.pointSize: Tokens.font.size.small
text: root.modelData?.desc ?? ""
width: root.width - icon.width - Appearance.rounding.normal * 2
width: root.width - icon.width - Tokens.rounding.normal * 2
}
}
}
+12 -11
View File
@@ -4,8 +4,9 @@ import QtQuick
import qs.Modules.Launcher.Services
import qs.Components
import qs.Helpers
import qs.Config
import ZShell.Config
import qs.Modules
import qs.Services
Item {
id: root
@@ -18,7 +19,7 @@ Item {
implicitHeight: Config.launcher.sizes.itemHeight
StateLayer {
radius: Appearance.rounding.smallest
radius: Tokens.rounding.smallest
onClicked: {
Apps.launch(root.modelData);
@@ -28,9 +29,9 @@ Item {
Item {
anchors.fill: parent
anchors.leftMargin: Appearance.padding.larger
anchors.margins: Appearance.padding.smaller
anchors.rightMargin: Appearance.padding.larger
anchors.leftMargin: Tokens.padding.larger
anchors.margins: Tokens.padding.smaller
anchors.rightMargin: Tokens.padding.larger
IconImage {
id: icon
@@ -42,7 +43,7 @@ Item {
Item {
anchors.left: icon.right
anchors.leftMargin: Appearance.spacing.normal
anchors.leftMargin: Tokens.spacing.normal
anchors.verticalCenter: icon.verticalCenter
implicitHeight: name.implicitHeight + comment.implicitHeight
implicitWidth: parent.width - icon.width
@@ -50,7 +51,7 @@ Item {
CustomText {
id: name
font.pointSize: Appearance.font.size.normal
font.pointSize: Tokens.font.size.normal
text: root.modelData?.name ?? ""
}
@@ -58,11 +59,11 @@ Item {
id: comment
anchors.top: name.bottom
color: DynamicColors.palette.m3outline
color: Colors.palette.m3outline
elide: Text.ElideRight
font.pointSize: Appearance.font.size.small
font.pointSize: Tokens.font.size.small
text: (root.modelData?.comment || root.modelData?.genericName || root.modelData?.name) ?? ""
width: root.width - icon.width - Appearance.rounding.normal * 2
width: root.width - icon.width - Tokens.rounding.normal * 2
}
}
@@ -75,7 +76,7 @@ Item {
asynchronous: true
sourceComponent: MaterialIcon {
color: DynamicColors.palette.m3primary
color: Colors.palette.m3primary
fill: 1
text: "favorite"
}
+21 -20
View File
@@ -5,7 +5,8 @@ import QtQuick.Layouts
import qs.Components
import qs.Modules
import qs.Helpers
import qs.Config
import ZShell.Config
import qs.Services
Item {
id: root
@@ -23,7 +24,7 @@ Item {
implicitHeight: Config.launcher.sizes.itemHeight
StateLayer {
radius: Appearance.rounding.smallest
radius: Tokens.rounding.smallest
onClicked: {
root.onClicked();
@@ -32,14 +33,14 @@ Item {
RowLayout {
anchors.left: parent.left
anchors.margins: Appearance.padding.larger
anchors.margins: Tokens.padding.larger
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
spacing: Appearance.spacing.normal
spacing: Tokens.spacing.normal
MaterialIcon {
Layout.alignment: Qt.AlignVCenter
font.pointSize: Appearance.font.size.extraLarge
font.pointSize: Tokens.font.size.extraLarge
text: "function"
}
@@ -50,10 +51,10 @@ Item {
Layout.fillWidth: true
color: {
if (text.includes("error: ") || text.includes("warning: "))
return DynamicColors.palette.m3error;
return Colors.palette.m3error;
if (!root.math)
return DynamicColors.palette.m3onSurfaceVariant;
return DynamicColors.palette.m3onSurface;
return Colors.palette.m3onSurfaceVariant;
return Colors.palette.m3onSurface;
}
elide: Text.ElideLeft
text: root.math.length > 0 ? Qalculator.eval(root.math) : qsTr("Type an expression to calculate")
@@ -62,21 +63,21 @@ Item {
CustomRect {
Layout.alignment: Qt.AlignVCenter
clip: true
color: DynamicColors.palette.m3tertiary
implicitHeight: Math.max(label.implicitHeight, icon.implicitHeight) + Appearance.padding.small * 2
implicitWidth: (stateLayer.containsMouse ? label.implicitWidth + label.anchors.rightMargin : 0) + icon.implicitWidth + Appearance.padding.normal * 2
radius: Appearance.rounding.normal
color: Colors.palette.m3tertiary
implicitHeight: Math.max(label.implicitHeight, icon.implicitHeight) + Tokens.padding.small * 2
implicitWidth: (stateLayer.containsMouse ? label.implicitWidth + label.anchors.rightMargin : 0) + icon.implicitWidth + Tokens.padding.normal * 2
radius: Tokens.rounding.normal
Behavior on implicitWidth {
Anim {
easing.bezierCurve: Appearance.anim.curves.expressiveEffects
easing.bezierCurve: Tokens.anim.curves.expressiveEffects
}
}
StateLayer {
id: stateLayer
color: DynamicColors.palette.m3onTertiary
color: Colors.palette.m3onTertiary
onClicked: {
Quickshell.execDetached(["app2unit", "--", ...Config.general.apps.terminal, "fish", "-C", `exec qalc -i '${root.math}'`]);
@@ -88,10 +89,10 @@ Item {
id: label
anchors.right: icon.left
anchors.rightMargin: Appearance.spacing.small
anchors.rightMargin: Tokens.spacing.small
anchors.verticalCenter: parent.verticalCenter
color: DynamicColors.palette.m3onTertiary
font.pointSize: Appearance.font.size.normal
color: Colors.palette.m3onTertiary
font.pointSize: Tokens.font.size.normal
opacity: stateLayer.containsMouse ? 1 : 0
text: qsTr("Open in calculator")
@@ -105,10 +106,10 @@ Item {
id: icon
anchors.right: parent.right
anchors.rightMargin: Appearance.padding.normal
anchors.rightMargin: Tokens.padding.normal
anchors.verticalCenter: parent.verticalCenter
color: DynamicColors.palette.m3onTertiary
font.pointSize: Appearance.font.size.large
color: Colors.palette.m3onTertiary
font.pointSize: Tokens.font.size.large
text: "open_in_new"
}
}
+14 -13
View File
@@ -1,7 +1,8 @@
import QtQuick
import qs.Components
import qs.Modules.Launcher.Services
import qs.Config
import ZShell.Config
import qs.Services
Item {
id: root
@@ -14,7 +15,7 @@ Item {
implicitHeight: Config.launcher.sizes.itemHeight
StateLayer {
radius: Appearance.rounding.smallest
radius: Tokens.rounding.smallest
onClicked: {
root.modelData?.onClicked(root.list);
@@ -23,36 +24,36 @@ Item {
Item {
anchors.fill: parent
anchors.leftMargin: Appearance.padding.larger
anchors.margins: Appearance.padding.smaller
anchors.rightMargin: Appearance.padding.larger
anchors.leftMargin: Tokens.padding.larger
anchors.margins: Tokens.padding.smaller
anchors.rightMargin: Tokens.padding.larger
MaterialIcon {
id: icon
anchors.verticalCenter: parent.verticalCenter
font.pointSize: Appearance.font.size.extraLarge
font.pointSize: Tokens.font.size.extraLarge
text: root.modelData?.icon ?? ""
}
Column {
anchors.left: icon.right
anchors.leftMargin: Appearance.spacing.larger
anchors.leftMargin: Tokens.spacing.larger
anchors.verticalCenter: icon.verticalCenter
spacing: 0
width: parent.width - icon.width - anchors.leftMargin - (current.active ? current.width + Appearance.spacing.normal : 0)
width: parent.width - icon.width - anchors.leftMargin - (current.active ? current.width + Tokens.spacing.normal : 0)
CustomText {
font.pointSize: Appearance.font.size.normal
font.pointSize: Tokens.font.size.normal
text: root.modelData?.name ?? ""
}
CustomText {
anchors.left: parent.left
anchors.right: parent.right
color: DynamicColors.palette.m3outline
color: Colors.palette.m3outline
elide: Text.ElideRight
font.pointSize: Appearance.font.size.small
font.pointSize: Tokens.font.size.small
text: root.modelData?.description ?? ""
}
}
@@ -65,8 +66,8 @@ Item {
anchors.verticalCenter: parent.verticalCenter
sourceComponent: MaterialIcon {
color: DynamicColors.palette.m3onSurfaceVariant
font.pointSize: Appearance.font.size.large
color: Colors.palette.m3onSurfaceVariant
font.pointSize: Tokens.font.size.large
text: "check"
}
}
+13 -12
View File
@@ -3,8 +3,9 @@ import Quickshell
import QtQuick
import qs.Components
import qs.Helpers
import qs.Config
import ZShell.Config
import qs.Modules
import qs.Services
Item {
id: root
@@ -12,8 +13,8 @@ Item {
required property FileSystemEntry modelData
required property PersistentProperties visibilities
implicitHeight: image.height + label.height + Appearance.spacing.small / 2 + Appearance.padding.large + Appearance.padding.normal
implicitWidth: image.width + Appearance.padding.larger * 2
implicitHeight: image.height + label.height + Tokens.spacing.small / 2 + Tokens.padding.large + Tokens.padding.normal
implicitWidth: image.width + Tokens.padding.larger * 2
opacity: 0
scale: 0.5
z: PathView.z ?? 0
@@ -33,7 +34,7 @@ Item {
}
StateLayer {
radius: Appearance.rounding.normal
radius: Tokens.rounding.normal
onClicked: {
Wallpapers.setWallpaper(root.modelData.path);
@@ -57,16 +58,16 @@ Item {
id: image
anchors.horizontalCenter: parent.horizontalCenter
color: DynamicColors.tPalette.m3surfaceContainer
color: Colors.tPalette.m3surfaceContainer
implicitHeight: implicitWidth / 16 * 9
implicitWidth: Config.launcher.sizes.wallpaperWidth
radius: Appearance.rounding.small
y: Appearance.padding.large
radius: Tokens.rounding.small
y: Tokens.padding.large
MaterialIcon {
anchors.centerIn: parent
color: DynamicColors.tPalette.m3outline
font.pointSize: Appearance.font.size.extraLarge * 2
color: Colors.tPalette.m3outline
font.pointSize: Tokens.font.size.extraLarge * 2
font.weight: 600
text: "image"
}
@@ -84,12 +85,12 @@ Item {
anchors.horizontalCenter: parent.horizontalCenter
anchors.top: image.bottom
anchors.topMargin: Appearance.spacing.small / 2
anchors.topMargin: Tokens.spacing.small / 2
elide: Text.ElideRight
font.pointSize: Appearance.font.size.normal
font.pointSize: Tokens.font.size.normal
horizontalAlignment: Text.AlignHCenter
renderType: Text.QtRendering
text: root.modelData.relativePath
width: image.width - Appearance.padding.normal * 2
width: image.width - Tokens.padding.normal * 2
}
}