Boot splash and periodic announcement banner
Splash: resources/splash/splash.gif built into the binary, played once by SplashOverlay over a black cover present from the first frame (no UI flash), then fades into the UI; hides icons loading. GIF, so no QtMultimedia/gstreamer. Toggle: splash.enabled. Banner (InfoBanner): metro-style band that fades/slides in with a hold pictogram; text that does not fit runs as a seamless ticker for two rounds. Never takes touches; hidden during splash and settings. Config section banner (enabled, text, intervalSec, showSec, position, accentColor), editable in the web UI and on-device settings; shown once after saving. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -192,6 +192,25 @@ Window {
|
||||
z: 20
|
||||
}
|
||||
|
||||
// Periodic announcement ("удерживайте кнопку"); config section "banner".
|
||||
InfoBanner {
|
||||
id: infoBanner
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.margins: 12
|
||||
y: settingsContainer.bannerPosition === "top"
|
||||
? 12 : parent.height - height - 12
|
||||
z: 30
|
||||
suppressed: splash.active || root.secureDialogOpen
|
||||
}
|
||||
|
||||
// Boot splash over everything in the window (dialogs live in the overlay
|
||||
// layer, but none can be open this early).
|
||||
SplashOverlay {
|
||||
id: splash
|
||||
z: 900
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: settingsContainer
|
||||
onChanged: root.hideSensorsIfDisabled()
|
||||
@@ -304,6 +323,7 @@ Window {
|
||||
|
||||
SettingsDialog {
|
||||
id: settingsDialog
|
||||
onBannerPreview: infoBanner.preview()
|
||||
}
|
||||
|
||||
InputPanel {
|
||||
|
||||
Reference in New Issue
Block a user