feat(orbit): add shared library foundations and gated host tools
Extract the HTTP host and catalog layer into qbz-control, preserve the existing daemon API, and keep private session credentials out of SSE. Scope library stores and scan workers to their host. Share bounded source search and show Local results alongside Qobuz in the Qt search page. Add the launch-gated Qt Orbit laboratory and persistent remote-context banner. Let qbzd run --orbit own and administer its file library through instance-scoped API and CLI operations. Full remote UI control remains pending. Validate library/control/daemon suites, Qt search and QML regressions, two isolated daemon processes, Qt release build and final cargo check. cx
This commit is contained in:
75 files changed
+6437
-1470
No files matched your search
@@ -0,0 +1,36 @@
|
||||
// Persistent context identity. No dismiss button or mutable visibility state.
|
||||
// A lost connection keeps the selected host visible; only ending remote
|
||||
// control may remove the banner. Host verification does not activate it.
|
||||
import QtQuick
|
||||
import com.blitzfc.qbz
|
||||
import "../theme"
|
||||
|
||||
Rectangle {
|
||||
id: root
|
||||
property bool remoteActive: false
|
||||
property bool connectionLost: false
|
||||
property string hostName: ""
|
||||
visible: remoteActive
|
||||
height: remoteActive ? Math.max(38, label.implicitHeight + 16) : 0
|
||||
color: theme.surfaceElevated
|
||||
border.width: 1
|
||||
border.color: theme.accent
|
||||
Accessible.role: Accessible.StaticText
|
||||
Accessible.name: label.text
|
||||
QbzTheme { id: theme }
|
||||
Text {
|
||||
id: label
|
||||
objectName: "orbitContextLabel"
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.margins: 16
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
text: "Orbit · " + QbzSession.tr("Controlling {}", QbzSession.trRev).replace("{}", root.hostName)
|
||||
+ (root.connectionLost ? " · " + QbzSession.tr("Connection lost. Remote controls are unavailable.", QbzSession.trRev) : "")
|
||||
textFormat: Text.PlainText
|
||||
wrapMode: Text.WordWrap
|
||||
color: theme.textPrimary
|
||||
font.pixelSize: theme.fontBody
|
||||
font.weight: theme.weightSemibold
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user