mpris: preload album art at root level, cache survives panel hidden
This commit is contained in:
parent
5d483e6284
commit
7e359fb730
1 changed files with 20 additions and 7 deletions
|
|
@ -13,6 +13,21 @@ M.BarSection {
|
|||
|
||||
readonly property MprisPlayer player: Mpris.players.values[0] ?? null
|
||||
readonly property bool playing: player?.playbackState === MprisPlaybackState.Playing
|
||||
property string _cachedArt: ""
|
||||
property string _artTrack: ""
|
||||
|
||||
// Cache art URL at root level so it's captured even when panel is hidden
|
||||
readonly property string _artUrl: player?.trackArtUrl ?? ""
|
||||
readonly property string _currentTrack: player?.trackTitle ?? ""
|
||||
on_ArtUrlChanged: if (_artUrl) _cachedArt = _artUrl
|
||||
on_CurrentTrackChanged: if (_currentTrack !== _artTrack) { _artTrack = _currentTrack; _cachedArt = _artUrl || "" }
|
||||
|
||||
// Preload art while panel is hidden — ensures QML image cache has the pixels
|
||||
Image {
|
||||
visible: false
|
||||
source: root._cachedArt
|
||||
asynchronous: true
|
||||
}
|
||||
|
||||
required property var bar
|
||||
|
||||
|
|
@ -154,16 +169,14 @@ M.BarSection {
|
|||
fillMode: Image.PreserveAspectCrop
|
||||
visible: _hasArt
|
||||
asynchronous: true
|
||||
source: root._cachedArt
|
||||
|
||||
property bool _hasArt: false
|
||||
property string _lastGoodSource: ""
|
||||
property string _lastTrack: ""
|
||||
readonly property string _artUrl: root.player?.trackArtUrl ?? ""
|
||||
readonly property string _track: root.player?.trackTitle ?? ""
|
||||
on_ArtUrlChanged: if (_artUrl) _lastGoodSource = _artUrl
|
||||
on_TrackChanged: if (_track !== _lastTrack) { _lastTrack = _track; _lastGoodSource = _artUrl || ""; _hasArt = false }
|
||||
onStatusChanged: if (status === Image.Ready) _hasArt = true
|
||||
source: _lastGoodSource
|
||||
Connections {
|
||||
target: root
|
||||
function on_CachedArtChanged() { if (!root._cachedArt) _artImg._hasArt = false }
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue