feat(qt): kiosk profile release hardening
Integrate the Kiosk profile hardening round: 12 dedicated Kiosk views plus 22 shared opt-in hosts, shared navigation history with Back/Forward, Albums as the default library tab, native paged Local Library (artists/tracks), lightweight MyQBZ grid and detail, Ephemeral lifecycle, bounded lists and artwork sized to the physical frame, static skeletons, 64px transport bar, Settings touch reflow and a persistent Immersive exit. Desktop keeps its prior behavior: every shared component defaults to the desktop path and only opts into Kiosk behavior through explicit properties (origin-relative ScrollMemory, viewport-bounded artwork requests). Regression coverage: kiosk navigation and artwork Node tests added to the runtime gate, scroll-origin fixtures for fixed and grouped rows, i18n strings for all eight locales. Verified by 750 release tests, six QML audits, Kiosk smokes at 800x480 and 1280x800 and a Desktop A/B with seven pixel-identical captures. cc
This commit is contained in:
139 files changed
+9590
-4973
No files matched your search
@@ -100,9 +100,10 @@ QbzContextMenu {
|
||||
Item {
|
||||
visible: (menuRoot.folders || []).length >= 8
|
||||
width: menuRoot.rowW
|
||||
height: visible ? 32 : 0
|
||||
height: visible ? (menuRoot.kioskHost ? 44 : 32) : 0
|
||||
|
||||
QbzLineEdit {
|
||||
kioskHost: menuRoot.kioskHost
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
// The plain arm is a FIXED width: 240 — a modal/menu must set it.
|
||||
width: menuRoot.rowW
|
||||
@@ -112,7 +113,7 @@ QbzContextMenu {
|
||||
// is 1). The reference field is 28 inside a 32 px Rectangle
|
||||
// (`:828-830`); the sidebar row menu sets its own height the same
|
||||
// way (shell/SidebarRowMenu.qml:305).
|
||||
height: 28
|
||||
height: menuRoot.kioskHost ? 44 : 28
|
||||
searchMode: true
|
||||
elevated: false
|
||||
placeholder: QbzSession.tr("Search folders", QbzSession.trRev)
|
||||
@@ -125,6 +126,7 @@ QbzContextMenu {
|
||||
// current folder's row is excluded, which makes the folder arm's selected
|
||||
// state dead by construction. Do not "fix" it.
|
||||
PmMenuRow {
|
||||
kioskHost: menuRoot.kioskHost
|
||||
width: menuRoot.rowW
|
||||
label: QbzSession.tr("No folder", QbzSession.trRev)
|
||||
selected: menuRoot.currentFolderId === ""
|
||||
@@ -152,6 +154,7 @@ QbzContextMenu {
|
||||
model: menuRoot.filteredFolders
|
||||
|
||||
delegate: PmMenuRow {
|
||||
kioskHost: menuRoot.kioskHost
|
||||
required property var modelData
|
||||
width: menuRoot.rowW
|
||||
// The current-folder exclusion, in the markup (D4).
|
||||
|
||||
Reference in new issue
Block a user