fix(qbz-qt): covers were never actually resized, plus the adversarial parity round
**The scaled-cover fix from the last round produced nothing.** The seam ran — 462 requests in one offscreen smoke — and wrote zero files, so the owner was right that nothing improved. The artwork cache stores files as `.img`, and `image::open` picks its decoder from the EXTENSION, so every call failed silently. Sniffing the content instead yields 101 derivatives on the same run. The header atmosphere had the identical bug and had therefore never produced an image either, which is why the flat fallback was all anyone ever saw. Reported as fixed last round without checking that it ran. Verified by effect this time, not by reading the diff. The rest came through an analyse / refute / implement / verify pipeline, and the adversarial passes earned their keep: - The sidebar mini rail: icons sat left of centre because their slot kept its fixed 24px width while the rail collapsed, so the hit target was rectangular and off-axis. The rail narrows, rows are square, and the mini state gains the folder flyout and tooltips it never had. The reviewer caught a comment claiming the width change was a one-token revert when it is two — corrected rather than left to mislead the next reader. - Playback context now travels from every producer, not the handful that happened to stamp it. - Collapsible per-tab search in Library, and label artwork. - Every View-all destination Home offers, plus the label page and its releases. - Collapsing the sidebar drops a Large bar back to New, live, without overwriting the user's persisted preference. cc
This commit is contained in:
34 files changed
+6234
-201
No files matched your search
@@ -0,0 +1,74 @@
|
||||
// AlbumListHeader — primitives/AlbumListRow.slint:43-127, the column header
|
||||
// above the LIST arm of an album collection (Discover Browse, Label
|
||||
// Releases). 32px, 11px semibold muted labels with 0.5 letter-spacing and a
|
||||
// bottom hairline.
|
||||
//
|
||||
// COLUMN SET, and why it is shorter than the Slint's: `AlbumListCols` there
|
||||
// is rank · art · ITEM · TYPE · SOURCE · QUALITY · TRACKS · YEAR · overflow.
|
||||
// The Qt transport for these pages is `home_qt::HomeCard`, which carries no
|
||||
// release type and no track count, and SOURCE is hidden on both catalog
|
||||
// pages anyway (`show-source: false`, DiscoverBrowseView.slint:168). Naming
|
||||
// columns with nothing under them is worse than not drawing them, so the
|
||||
// header lists exactly the three the rows fill. Widths are the Slint's.
|
||||
|
||||
import QtQuick
|
||||
import com.blitzfc.qbz
|
||||
import "../theme"
|
||||
|
||||
Rectangle {
|
||||
id: root
|
||||
|
||||
QbzTheme { id: theme }
|
||||
|
||||
// AlbumListCols: art 52, quality 150, year 64, overflow 36, gap 12.
|
||||
readonly property int colArt: 52
|
||||
readonly property int colQuality: 150
|
||||
readonly property int colYear: 64
|
||||
readonly property int colOverflow: 36
|
||||
readonly property int colGap: 12
|
||||
|
||||
width: parent ? parent.width : 0
|
||||
height: 32
|
||||
color: "transparent"
|
||||
|
||||
component ColLabel: Text {
|
||||
color: theme.textMuted
|
||||
font.pixelSize: 11
|
||||
font.weight: theme.weightSemibold
|
||||
font.letterSpacing: 0.5
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
height: 32
|
||||
}
|
||||
|
||||
Row {
|
||||
anchors.fill: parent
|
||||
anchors.leftMargin: 12
|
||||
anchors.rightMargin: 12
|
||||
spacing: root.colGap
|
||||
|
||||
Item { width: root.colArt; height: 1 }
|
||||
ColLabel {
|
||||
width: parent.width - root.colArt - root.colQuality - root.colYear
|
||||
- root.colOverflow - 4 * root.colGap
|
||||
text: QbzSession.tr("ITEM", QbzSession.trRev)
|
||||
elide: Text.ElideRight
|
||||
}
|
||||
ColLabel {
|
||||
width: root.colQuality
|
||||
text: QbzSession.tr("QUALITY", QbzSession.trRev)
|
||||
}
|
||||
ColLabel {
|
||||
width: root.colYear
|
||||
text: QbzSession.tr("YEAR", QbzSession.trRev)
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
}
|
||||
Item { width: root.colOverflow; height: 1 }
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
y: parent.height - 1
|
||||
width: parent.width
|
||||
height: 1
|
||||
color: theme.borderSubtle
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user