Files
qbz/crates/qbz-qt/qml/shell/InfoMetaCell.qml
T
vicrodh 3f3c4ad548 feat(qt): Track info and Album info are selectable and copy basic or full text
Every field of both modals is a QbzSelectableText — artist, label and
musician names stay links. A copy button beside the close cross opens a
flyout: "Copy basic data" puts "{Track} - {Album} - {Artist}" (or
"{Album} - {Artist}") on the clipboard; "Copy full" formats the whole sheet
as plain text — the track's metadata, credits and copyright, or the album's
header plus the ACTIVE tab: credits per track with performers, or the
review. Album credit row heads stay plain because their click expands the
row. The two new strings ship in all eight catalogs.

cc
2026-09-13 20:03:36 -06:00

42 lines
1.2 KiB
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 "../controls"
import "../theme"
Column {
id: mc
property string label: ""
property int cellWidth: 0
/// Immersive-panel legibility mode (see TrackInfoBody.qml): fixed light
/// label + native shadow instead of the theme token.
property bool overAmbient: false
QbzTheme { id: theme }
width: cellWidth
spacing: 6
QbzSelectableText {
width: mc.cellWidth
text: mc.label
color: mc.overAmbient ? "#b3ffffff" : theme.textMuted
raised: mc.overAmbient
pixelSize: 11
weight: theme.weightSemibold
letterSpacing: 0.5
}
}