nix fmt
This commit is contained in:
parent
21f96dc68e
commit
b06e3582ff
23 changed files with 597 additions and 197 deletions
|
|
@ -19,8 +19,12 @@ M.BarSection {
|
|||
// 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 || "" }
|
||||
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 {
|
||||
|
|
@ -89,10 +93,7 @@ M.BarSection {
|
|||
anchors.left: true
|
||||
|
||||
margins.top: 0
|
||||
margins.left: Math.max(0, Math.min(
|
||||
Math.round(root.mapToGlobal(root.width / 2, 0).x - (QsWindow.window?.screen?.x ?? 0) - implicitWidth / 2),
|
||||
(panel.screen?.width ?? 1920) - implicitWidth
|
||||
))
|
||||
margins.left: Math.max(0, Math.min(Math.round(root.mapToGlobal(root.width / 2, 0).x - (QsWindow.window?.screen?.x ?? 0) - implicitWidth / 2), (panel.screen?.width ?? 1920) - implicitWidth))
|
||||
|
||||
implicitWidth: panelContent.width
|
||||
implicitHeight: panelContent.height
|
||||
|
|
@ -113,14 +114,38 @@ M.BarSection {
|
|||
|
||||
ParallelAnimation {
|
||||
id: showAnim
|
||||
NumberAnimation { target: panelContent; property: "opacity"; to: 1; duration: 120; easing.type: Easing.OutCubic }
|
||||
NumberAnimation { target: panelContent; property: "y"; to: 0; duration: 150; easing.type: Easing.OutCubic }
|
||||
NumberAnimation {
|
||||
target: panelContent
|
||||
property: "opacity"
|
||||
to: 1
|
||||
duration: 120
|
||||
easing.type: Easing.OutCubic
|
||||
}
|
||||
NumberAnimation {
|
||||
target: panelContent
|
||||
property: "y"
|
||||
to: 0
|
||||
duration: 150
|
||||
easing.type: Easing.OutCubic
|
||||
}
|
||||
}
|
||||
|
||||
ParallelAnimation {
|
||||
id: hideAnim
|
||||
NumberAnimation { target: panelContent; property: "opacity"; to: 0; duration: 150; easing.type: Easing.InCubic }
|
||||
NumberAnimation { target: panelContent; property: "y"; to: -panelContent.height; duration: 150; easing.type: Easing.InCubic }
|
||||
NumberAnimation {
|
||||
target: panelContent
|
||||
property: "opacity"
|
||||
to: 0
|
||||
duration: 150
|
||||
easing.type: Easing.InCubic
|
||||
}
|
||||
NumberAnimation {
|
||||
target: panelContent
|
||||
property: "y"
|
||||
to: -panelContent.height
|
||||
duration: 150
|
||||
easing.type: Easing.InCubic
|
||||
}
|
||||
onFinished: panel._winVisible = false
|
||||
}
|
||||
|
||||
|
|
@ -172,10 +197,14 @@ M.BarSection {
|
|||
source: root._cachedArt
|
||||
|
||||
property bool _hasArt: false
|
||||
onStatusChanged: if (status === Image.Ready) _hasArt = true
|
||||
onStatusChanged: if (status === Image.Ready)
|
||||
_hasArt = true
|
||||
Connections {
|
||||
target: root
|
||||
function on_CachedArtChanged() { if (!root._cachedArt) _artImg._hasArt = false }
|
||||
function on_CachedArtChanged() {
|
||||
if (!root._cachedArt)
|
||||
_artImg._hasArt = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -186,8 +215,14 @@ M.BarSection {
|
|||
height: 40
|
||||
visible: _artImg.visible
|
||||
gradient: Gradient {
|
||||
GradientStop { position: 0; color: "transparent" }
|
||||
GradientStop { position: 1; color: M.Theme.base01 }
|
||||
GradientStop {
|
||||
position: 0
|
||||
color: "transparent"
|
||||
}
|
||||
GradientStop {
|
||||
position: 1
|
||||
color: M.Theme.base01
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -229,7 +264,8 @@ M.BarSection {
|
|||
width: parent.width
|
||||
text: {
|
||||
const p = root.player;
|
||||
if (!p) return "";
|
||||
if (!p)
|
||||
return "";
|
||||
const artist = Array.isArray(p.trackArtists) ? p.trackArtists.join(", ") : (p.trackArtists || "");
|
||||
return [artist, p.trackAlbum].filter(s => s).join(" \u2014 ");
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue