1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-04-07 14:22:07 -04:00

Update more m3 baselines & spacing

This commit is contained in:
purian23
2026-02-13 20:09:59 -05:00
committed by bbedward
parent b1735bb701
commit ebe38322a0
6 changed files with 352 additions and 145 deletions

View File

@@ -14,6 +14,8 @@ DankListView {
property real stableContentHeight: 0
property bool cardAnimateExpansion: true
property bool listInitialized: false
property real __pendingStableHeight: 0
property real __heightUpdateThreshold: 20
Component.onCompleted: {
Qt.callLater(() => {
@@ -24,22 +26,43 @@ DankListView {
});
}
Timer {
id: heightUpdateDebounce
interval: Theme.mediumDuration + 20
repeat: false
onTriggered: {
if (!listView.isAnimatingExpansion && Math.abs(listView.__pendingStableHeight - listView.stableContentHeight) > listView.__heightUpdateThreshold) {
listView.stableContentHeight = listView.__pendingStableHeight;
}
}
}
onContentHeightChanged: {
if (!isAnimatingExpansion)
stableContentHeight = contentHeight;
if (!isAnimatingExpansion) {
__pendingStableHeight = contentHeight;
if (Math.abs(contentHeight - stableContentHeight) > __heightUpdateThreshold) {
heightUpdateDebounce.restart();
} else {
stableContentHeight = contentHeight;
}
}
}
onIsAnimatingExpansionChanged: {
if (isAnimatingExpansion) {
heightUpdateDebounce.stop();
let delta = 0;
for (let i = 0; i < count; i++) {
const item = itemAtIndex(i);
if (item && item.children[0] && item.children[0].isAnimating)
delta += item.children[0].targetHeight - item.height;
}
stableContentHeight = contentHeight + delta;
const targetHeight = contentHeight + delta;
// During expansion, always update immediately without threshold check
stableContentHeight = targetHeight;
} else {
stableContentHeight = contentHeight;
__pendingStableHeight = contentHeight;
heightUpdateDebounce.restart();
}
}