Files
qbz/crates/qbz-qt/qml/shell/InfoMetaCell.qml
T
vicrodh c63889b487 feat(qbz-qt): Track Info in the now-playing bars, and PlayerBar split up
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
2026-07-28 16:23:08 -06:00

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
}
}