summaryrefslogtreecommitdiff
path: root/modules/launcher
diff options
context:
space:
mode:
author2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-05-02 23:20:56 +1000
committer2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-05-02 23:20:56 +1000
commit6b848b0f56b7c801763c7b5c1f16ad6ec8b2fba4 (patch)
treeb11e454c9c7aa474ccc5396393ff83b54c1b1077 /modules/launcher
parentfeat: launcher empty placeholder (diff)
downloadcaelestia-shell-6b848b0f56b7c801763c7b5c1f16ad6ec8b2fba4.tar.gz
caelestia-shell-6b848b0f56b7c801763c7b5c1f16ad6ec8b2fba4.tar.bz2
caelestia-shell-6b848b0f56b7c801763c7b5c1f16ad6ec8b2fba4.zip
refactor: move launcher app list into separate file
Diffstat (limited to 'modules/launcher')
-rw-r--r--modules/launcher/AppList.qml89
-rw-r--r--modules/launcher/Content.qml79
2 files changed, 92 insertions, 76 deletions
diff --git a/modules/launcher/AppList.qml b/modules/launcher/AppList.qml
new file mode 100644
index 0000000..d5724f8
--- /dev/null
+++ b/modules/launcher/AppList.qml
@@ -0,0 +1,89 @@
+import "root:/widgets"
+import "root:/services"
+import "root:/config"
+import Quickshell
+import QtQuick
+import QtQuick.Controls
+
+ListView {
+ id: root
+
+ required property int padding
+ required property string search
+
+ model: ScriptModel {
+ values: Apps.fuzzyQuery(root.search)
+ onValuesChanged: root.currentIndex = 0
+ }
+
+ clip: true
+ spacing: Appearance.spacing.small
+ orientation: Qt.Vertical
+ implicitHeight: ((currentItem?.height ?? 1) + spacing) * Math.min(LauncherConfig.maxShown, count) - spacing
+
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+ anchors.margins: root.padding
+
+ delegate: AppItem {
+ launcher: root.launcher
+ }
+ // TODO highlight
+
+ ScrollBar.vertical: StyledScrollBar {
+ // Move half out
+ parent: root.parent
+ anchors.top: root.top
+ anchors.bottom: root.bottom
+ anchors.right: root.right
+ anchors.topMargin: root.padding / 2
+ anchors.bottomMargin: root.padding / 2
+ anchors.rightMargin: -root.padding / 2
+ }
+
+ add: Transition {
+ Anim {
+ properties: "opacity,scale"
+ from: 0
+ to: 1
+ }
+ }
+
+ remove: Transition {
+ Anim {
+ properties: "opacity,scale"
+ from: 1
+ to: 0
+ }
+ }
+
+ move: Transition {
+ Anim {
+ property: "y"
+ }
+ }
+
+ addDisplaced: Transition {
+ Anim {
+ property: "y"
+ duration: Appearance.anim.durations.small
+ }
+ }
+
+ displaced: Transition {
+ Anim {
+ property: "y"
+ }
+ }
+
+ Behavior on implicitHeight {
+ Anim {}
+ }
+
+ component Anim: NumberAnimation {
+ duration: Appearance.anim.durations.normal
+ easing.type: Easing.BezierSpline
+ easing.bezierCurve: Appearance.anim.curves.standard
+ }
+}
diff --git a/modules/launcher/Content.qml b/modules/launcher/Content.qml
index d994ee6..81222b7 100644
--- a/modules/launcher/Content.qml
+++ b/modules/launcher/Content.qml
@@ -32,78 +32,11 @@ Item {
anchors.bottomMargin: root.spacing
anchors.margins: root.padding
- ListView {
+ AppList {
id: list
- model: ScriptModel {
- values: Apps.fuzzyQuery(search.text)
- onValuesChanged: list.currentIndex = 0
- }
-
- clip: true
- spacing: Appearance.spacing.small
- orientation: Qt.Vertical
- implicitHeight: ((currentItem?.height ?? 1) + spacing) * Math.min(LauncherConfig.maxShown, count) - spacing
-
- anchors.left: parent.left
- anchors.right: parent.right
- anchors.bottom: parent.bottom
- anchors.margins: root.padding
-
- delegate: AppItem {
- launcher: root.launcher
- }
- // TODO highlight
-
- ScrollBar.vertical: StyledScrollBar {
- // Move half out
- parent: list.parent
- anchors.top: list.top
- anchors.bottom: list.bottom
- anchors.right: list.right
- anchors.topMargin: root.padding / 2
- anchors.bottomMargin: root.padding / 2
- anchors.rightMargin: -root.padding / 2
- }
-
- add: Transition {
- Anim {
- properties: "opacity,scale"
- from: 0
- to: 1
- }
- }
-
- remove: Transition {
- Anim {
- properties: "opacity,scale"
- from: 1
- to: 0
- }
- }
-
- move: Transition {
- Anim {
- property: "y"
- }
- }
-
- addDisplaced: Transition {
- Anim {
- property: "y"
- duration: Appearance.anim.durations.small
- }
- }
-
- displaced: Transition {
- Anim {
- property: "y"
- }
- }
-
- Behavior on implicitHeight {
- Anim {}
- }
+ padding: root.padding
+ search: search.text
}
EmptyIndicator {
@@ -153,10 +86,4 @@ Item {
}
}
}
-
- component Anim: NumberAnimation {
- duration: Appearance.anim.durations.normal
- easing.type: Easing.BezierSpline
- easing.bezierCurve: Appearance.anim.curves.standard
- }
}