The info button on both bars did nothing. The modal is ported from Slint, and the document behind it — title, album, artist, duration, quality, ISRC, label, copyright and the grouped credits — comes from a new track_info_qt module. Credit parsing and its role localization were already frontend-agnostic in qbz-qobuz, so this only fetches and shapes; it does not re-implement them. A local or Plex id is rejected before the request rather than sent to the Qobuz catalog API, which is how a local album path ended up as a 404 in the owner's log. PlayerBar was 708 lines and still carried an inline SongCard, transport cluster and favourite toggle; those are their own files now, so the bar leaves this change smaller than it arrived. The volume controls in both bars are wired to the lock from the previous commit. cc
38 lines
993 B
QML
38 lines
993 B
QML
// InfoMetaCell — one metadata cell of the Track Info modal: an 11px semibold
|
|
// muted label (letter-spacing 0.5) over a value supplied as a child. 1:1 with
|
|
// `MetaCell` in crates/qbz-ui/ui/album/TrackInfoModal.slint, which exports it
|
|
// for the immersive split panel to reuse the same way.
|
|
//
|
|
// The value goes in as a plain child — QML appends use-site children to the
|
|
// Column's default `data`, so they land under the label:
|
|
//
|
|
// InfoMetaCell {
|
|
// cellWidth: 180
|
|
// label: QbzSession.tr("Duration", QbzSession.trRev)
|
|
// Text { text: "3:45" }
|
|
// }
|
|
|
|
import QtQuick
|
|
import "../theme"
|
|
|
|
Column {
|
|
id: mc
|
|
property string label: ""
|
|
property int cellWidth: 0
|
|
|
|
QbzTheme { id: theme }
|
|
|
|
width: cellWidth
|
|
spacing: 6
|
|
|
|
Text {
|
|
width: mc.cellWidth
|
|
text: mc.label
|
|
color: theme.textMuted
|
|
font.pixelSize: 11
|
|
font.weight: theme.weightSemibold
|
|
font.letterSpacing: 0.5
|
|
elide: Text.ElideRight
|
|
}
|
|
}
|