Files
qbz/crates/qbz-qt/qml/views/local/LocalSearchBox.qml
T
vicrodh e0fcf7a089 fix(qbz-qt): local context menus, collapsing search fields, toolbar density
Four things the owner hit in Local Library.

The context menu did nothing there — local rows and cards now mount the shared
menu the rest of the app uses, with the action set Slint gives local and Plex
items. Anything with no seam in this port (add-to-playlist, add-to-mixtape, the
tag editor, local favourites) is hidden or visibly disabled rather than a row
that silently does nothing.

The per-view search fields did not open and collapse the way the header's does.
That behaviour moved into the shared QbzLineEdit, so the Local toolbar, the
queue and the tree rail all get it from one place instead of four copies. The
queue's field also escaped its 300px column; it is width-bound now.

Filter, sorting and grouping become icon-only buttons with an explanatory
tooltip, which is what the owner asked for and what the crowding called for.

Found on the way, and affecting Qobuz cards too: the album card's ⋯ menu had no
"Play later" at all, and its "Add to queue" row dispatched play-later — the row
lied about what it did. Both fixed, with Slint's icon set for the three.

cc
2026-07-28 16:23:23 -06:00

29 lines
1.0 KiB
QML

// Local Library search input — a NAMING wrapper over the shared
// controls/QbzLineEdit.qml search arm, kept only so the six local call sites
// read as one thing and tune in one place.
//
// Slint has three near-identical inputs on this view (LocalLibraryView.slint:
// the toolbar `ExpandableSearch { sm: true }` at :782, the tree-rail header
// input at :1724 and the folder-detail input at :1984). All three are the
// EXPANDABLE form here: closed they are a 30px magnifier slot; clicking opens
// a `boxWidth` field that grows LEFT over its neighbours, and the X clears and
// closes it again (primitives/ExpandableSearch.slint).
import QtQuick
import "../../controls"
QbzLineEdit {
id: root
/// Width of the OPEN field (the closed footprint is always 30px).
property int boxWidth: 200
searchMode: true
expandable: true
sm: true
// surface-card — ExpandableSearch.slint's own overlay fill (the port's
// toolbar copy used surface-elevated; the reference does not).
elevated: false
openWidth: boxWidth
}