Files
qbz/crates/qbz-qt/qml/views/purchases/PurchaseListHeader.qml
T
vicrodh db1d36537b feat(purchases): genre filter, zebra rows, and a list that no longer overlaps
The list view's quality column was 110 px for a badge that is 136 px
wide, so the badge ran into the release-date column; it is 150 now, the
album list's width. Both list rows and track rows draw the odd-row
zebra every other list in the app draws. The filter panel gains a Genre
section built from the catalog genre on each purchased album (albums
tab only, transient like group and sort), counted and summarised with
the other filters.

cc
2026-09-02 07:11:03 -06:00

50 lines
1.5 KiB
QML

// PurchaseListHeader — the column labels above the purchases list rows.
// Widths mirror PurchaseListRow (art 48 · stretch · quality · released ·
// purchased, 12px gaps, 8/12 margins) so each label sits on its column, the
// way views/AlbumListHeader.qml does for the album list.
import QtQuick
import com.blitzfc.qbz
import "../../theme"
Item {
id: root
QbzTheme { id: theme }
function t(s) { return QbzSession.tr(s, QbzSession.trRev) }
readonly property int colQuality: 150
readonly property int colReleased: 120
readonly property int colPurchased: 130
width: parent ? parent.width : 0
height: 28
component ColLabel: Text {
color: theme.textMuted
font.pixelSize: 11
font.weight: theme.weightSemibold
font.letterSpacing: 0.5
verticalAlignment: Text.AlignVCenter
elide: Text.ElideRight
height: parent.height
}
Row {
anchors.fill: parent
anchors.leftMargin: 8
anchors.rightMargin: 12
spacing: 12
Item { width: 48; height: 1 }
ColLabel {
width: Math.max(0, parent.width - 48
- root.colQuality - root.colReleased - root.colPurchased - 4 * 12)
text: root.t("Title").toUpperCase()
}
ColLabel { width: root.colQuality; text: root.t("Quality").toUpperCase() }
ColLabel { width: root.colReleased; text: root.t("Release date").toUpperCase() }
ColLabel { width: root.colPurchased; text: root.t("Purchased").toUpperCase() }
}
}