fix(qt): restore window lifecycle and improve grid artwork

Restore tray-aware close and quit confirmation, circular label covers, and missing label artist portraits. Publish artwork progressively, preload two grid rows, and skip redundant motion reports while preserving data refreshes.

Include regression tests and isolated artwork benchmarks. Verified Linux build, QML checks, and scrolling smoke tests.

cx
This commit is contained in:
vicrodh committed 2026-09-09 21:58:25 -06:00
1 parent 5fab503eb7
commit 2fc03d325d
61 files changed
+1591 -151

No files matched your search

+7
View File
@@ -57,6 +57,10 @@ import "../theme"
Rectangle {
id: root
readonly property bool artworkReady: root.artSource !== "" && artworkLoader.item
? artworkLoader.item.ready : false
readonly property bool artworkImmediate: root.artSource !== "" && artworkLoader.item
? artworkLoader.item.immediateGridArtwork : false
property var item: ({})
// Host-resolved artwork path (the AlbumCard artSource pattern).
@@ -194,12 +198,14 @@ Rectangle {
// those surfaces pad too, and a genuinely square cover
// (`image.covers[0]`, the fallback that map picks) still crops.
Loader {
id: artworkLoader
anchors.fill: parent
sourceComponent: root.artSource !== "" ? singleArtwork : collageArtwork
}
Component {
id: singleArtwork
RoundedImage {
gridArtwork: true
source: root.artSource
radius: theme.radiusSm
fit: root.ownImage ? "pad" : "auto"
@@ -211,6 +217,7 @@ Rectangle {
Component {
id: collageArtwork
PlaylistCollage {
gridArtwork: true
urls: root.ownImage ? [] : root.collageUrls
radius: theme.radiusSm
}