1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-01-28 15:32:50 -05:00

clipboard: fix duplicate clear dialog

This commit is contained in:
bbedward
2026-01-27 22:40:45 -05:00
parent 60c6872aec
commit d19e81ffac
3 changed files with 47 additions and 34 deletions

View File

@@ -93,31 +93,41 @@ Item {
}
}
Timer {
id: visibilityTimer
interval: 100
onTriggered: thumbnailImage.checkVisibility()
}
function checkVisibility() {
if (entryType !== "image" || listView.height <= 0 || isVisible) {
return;
}
const itemY = itemIndex * (ClipboardConstants.itemHeight + listView.spacing);
const viewTop = listView.contentY - ClipboardConstants.viewportBuffer;
const viewBottom = viewTop + listView.height + ClipboardConstants.extendedBuffer;
const nowVisible = (itemY + ClipboardConstants.itemHeight >= viewTop && itemY <= viewBottom);
if (nowVisible) {
isVisible = true;
tryLoadImage();
}
}
Connections {
target: listView
function checkVisibility() {
if (entryType !== "image" || listView.height <= 0) {
function onContentYChanged() {
if (thumbnailImage.isVisible || entryType !== "image") {
return;
}
const itemY = itemIndex * (ClipboardConstants.itemHeight + listView.spacing);
const viewTop = listView.contentY - ClipboardConstants.viewportBuffer;
const viewBottom = viewTop + listView.height + ClipboardConstants.extendedBuffer;
const nowVisible = (itemY + ClipboardConstants.itemHeight >= viewTop && itemY <= viewBottom);
if (nowVisible && !thumbnailImage.isVisible) {
thumbnailImage.isVisible = true;
thumbnailImage.tryLoadImage();
}
}
function onContentYChanged() {
checkVisibility();
visibilityTimer.restart();
}
function onHeightChanged() {
checkVisibility();
if (thumbnailImage.isVisible || entryType !== "image") {
return;
}
visibilityTimer.restart();
}
}
}