diff --git a/crates/qbz-qt/qml/assets/icons/primary/crown.svg b/crates/qbz-qt/qml/assets/icons/primary/crown.svg new file mode 100644 index 000000000..c0b05f20a --- /dev/null +++ b/crates/qbz-qt/qml/assets/icons/primary/crown.svg @@ -0,0 +1 @@ + diff --git a/crates/qbz-qt/qml/assets/icons/warning/crown.svg b/crates/qbz-qt/qml/assets/icons/warning/crown.svg new file mode 100644 index 000000000..bc4d96a52 --- /dev/null +++ b/crates/qbz-qt/qml/assets/icons/warning/crown.svg @@ -0,0 +1 @@ + diff --git a/crates/qbz-qt/qml/views/SearchView.qml b/crates/qbz-qt/qml/views/SearchView.qml index d183c955a..c80f5df61 100644 --- a/crates/qbz-qt/qml/views/SearchView.qml +++ b/crates/qbz-qt/qml/views/SearchView.qml @@ -247,9 +247,17 @@ Rectangle { property var card: ({}) property string qualityLabel: "" color: "transparent" + // EXPLICIT size, and load-bearing: a bare Rectangle's implicit size + // is 0x0 (Item does NOT size from children), and the hero slot centers + // it — so the whole card painted from the slot's CENTER, ~100px into + // the Artists carousel, whenever the top result was a track (the + // artist/album arms carry their own 200px and never shifted). + width: 200 + height: heroCol.implicitHeight readonly property bool overlayOn: heroArtArea.containsMouse Column { + id: heroCol spacing: 0 Rectangle { width: 200 @@ -508,7 +516,10 @@ Rectangle { spacing: 12 Row { spacing: 8 - QbzIcon { name: "award"; width: 18; height: 18; tintName: "warning" } + // The crown, 1:1 with the reference + // (SearchResultsView.slint:584) — the POC's + // "award" read as a mic. + QbzIcon { name: "crown"; width: 18; height: 18; tintName: "warning" } Text { text: QbzSession.tr("Most popular", QbzSession.trRev) color: theme.textPrimary diff --git a/crates/qbz-qt/src/icon_tint_qt.rs b/crates/qbz-qt/src/icon_tint_qt.rs index 104f18004..439eae20c 100644 --- a/crates/qbz-qt/src/icon_tint_qt.rs +++ b/crates/qbz-qt/src/icon_tint_qt.rs @@ -184,6 +184,7 @@ const MASTERS: &[(&str, &str)] = &[ ("disc", include_str!("../qml/assets/icons/primary/disc.svg")), ("element-connect", include_str!("../qml/assets/icons/primary/element-connect.svg")), ("ellipsis", include_str!("../qml/assets/icons/primary/ellipsis.svg")), + ("crown", include_str!("../qml/assets/icons/primary/crown.svg")), ("external-link", include_str!("../qml/assets/icons/primary/external-link.svg")), ("eye-off", include_str!("../qml/assets/icons/primary/eye-off.svg")), ("eye", include_str!("../qml/assets/icons/primary/eye.svg")),