summaryrefslogtreecommitdiff
path: root/modules/sidebar/NotifGroupList.qml
diff options
context:
space:
mode:
author2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-09-20 19:14:47 +1000
committer2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-09-20 19:14:47 +1000
commit3b492d7faefadb2e3bb77a2cdee8ae954f9b8688 (patch)
tree147d64ba079e5d7e7de5421cda4735d93df45ab2 /modules/sidebar/NotifGroupList.qml
parentnotifs: persist images (diff)
downloadcaelestia-shell-3b492d7faefadb2e3bb77a2cdee8ae954f9b8688.tar.gz
caelestia-shell-3b492d7faefadb2e3bb77a2cdee8ae954f9b8688.tar.bz2
caelestia-shell-3b492d7faefadb2e3bb77a2cdee8ae954f9b8688.zip
sidebar/notifs: better preview anim
Diffstat (limited to 'modules/sidebar/NotifGroupList.qml')
-rw-r--r--modules/sidebar/NotifGroupList.qml31
1 files changed, 27 insertions, 4 deletions
diff --git a/modules/sidebar/NotifGroupList.qml b/modules/sidebar/NotifGroupList.qml
index 6a1a4b8..93aca8c 100644
--- a/modules/sidebar/NotifGroupList.qml
+++ b/modules/sidebar/NotifGroupList.qml
@@ -19,7 +19,7 @@ Item {
let h = -root.spacing;
for (let i = 0; i < repeater.count; i++) {
const item = repeater.itemAt(i);
- if (!item.modelData.closed)
+ if (!item.modelData.closed && !item.previewHidden)
h += item.nonAnimHeight + root.spacing;
}
return h;
@@ -37,7 +37,7 @@ Item {
id: repeater
model: ScriptModel {
- values: root.expanded ? root.notifs : root.notifs.slice(0, Config.notifs.groupPreviewNum)
+ values: root.expanded ? root.notifs : root.notifs.slice(0, Config.notifs.groupPreviewNum + 1)
onValuesChanged: root.flagChanged()
}
@@ -48,6 +48,17 @@ Item {
required property Notifs.Notif modelData
readonly property alias nonAnimHeight: notifInner.nonAnimHeight
+ readonly property bool previewHidden: {
+ if (root.expanded)
+ return false;
+
+ let extraHidden = 0;
+ for (let i = 0; i < index; i++)
+ if (root.notifs[i].closed)
+ extraHidden++;
+
+ return index >= Config.notifs.groupPreviewNum + extraHidden;
+ }
property int startY
y: {
@@ -55,7 +66,7 @@ Item {
let y = 0;
for (let i = 0; i < index; i++) {
const item = repeater.itemAt(i);
- if (!item.modelData.closed)
+ if (!item.modelData.closed && !item.previewHidden)
y += item.nonAnimHeight + root.spacing;
}
return y;
@@ -69,6 +80,9 @@ Item {
}
}
+ opacity: previewHidden ? 0 : 1
+ scale: previewHidden ? 0.7 : 1
+
implicitWidth: root.width
implicitHeight: notifInner.implicitHeight
@@ -76,6 +90,7 @@ Item {
cursorShape: pressed ? Qt.ClosedHandCursor : undefined
acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton
preventStealing: !root.expanded
+ enabled: !modelData.closed
drag.target: this
drag.axis: Drag.XAxis
@@ -105,7 +120,7 @@ Item {
Component.onDestruction: modelData.unlock(this)
ParallelAnimation {
- running: true
+ running: !notif.previewHidden
Anim {
target: notif
@@ -146,6 +161,14 @@ Item {
expanded: root.expanded
}
+ Behavior on opacity {
+ Anim {}
+ }
+
+ Behavior on scale {
+ Anim {}
+ }
+
Behavior on x {
Anim {
duration: Appearance.anim.durations.expressiveDefaultSpatial