diff options
| author | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-05-02 23:20:56 +1000 |
|---|---|---|
| committer | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-05-02 23:20:56 +1000 |
| commit | 6b848b0f56b7c801763c7b5c1f16ad6ec8b2fba4 (patch) | |
| tree | b11e454c9c7aa474ccc5396393ff83b54c1b1077 | |
| parent | feat: launcher empty placeholder (diff) | |
| download | caelestia-shell-6b848b0f56b7c801763c7b5c1f16ad6ec8b2fba4.tar.gz caelestia-shell-6b848b0f56b7c801763c7b5c1f16ad6ec8b2fba4.tar.bz2 caelestia-shell-6b848b0f56b7c801763c7b5c1f16ad6ec8b2fba4.zip | |
refactor: move launcher app list into separate file
| -rw-r--r-- | modules/launcher/AppList.qml | 89 | ||||
| -rw-r--r-- | modules/launcher/Content.qml | 79 |
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 - } } |