feat(qbz-slint): scaffold Slint POC crate

First increment of M1 of the Slint functional POC. Adds the qbz-slint
workspace member: Slint 1.x dependency, build.rs compiling ui/app.slint,
a minimal AppWindow, and the binary entry point.

Verifies the Slint toolchain builds in this environment before the
foundation layer (tokens, shell, theme, i18n, typed commands) lands.

Private slint-poc branch only (ADR-007).

cc
This commit is contained in:
vicrodh committed 2026-05-18 11:57:49 -06:00
1 parent 196fa796f5
commit f1748383a5
6 files changed
+3905 -68

No files matched your search

+3842 -68
View File
File diff suppressed because it is too large. Load diff
+1
View File
@@ -19,6 +19,7 @@ members = [
"qconnect-transport-ws", "qconnect-transport-ws",
"qconnect-app", "qconnect-app",
"qbzd", "qbzd",
"qbz-slint",
] ]
[workspace.package] [workspace.package]
+18
View File
@@ -0,0 +1,18 @@
[package]
name = "qbz-slint"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
description = "Slint functional POC shell for QBZ (private branch only)"
[[bin]]
name = "qbz-slint"
path = "src/main.rs"
[dependencies]
slint = "1"
log = { workspace = true }
[build-dependencies]
slint-build = "1"
+6
View File
@@ -0,0 +1,6 @@
//! Compiles the Slint UI tree. `ui/app.slint` is the single entry point; it
//! imports everything else, so only the entry file is listed here.
fn main() {
slint_build::compile("ui/app.slint").expect("Slint UI failed to compile");
}
+16
View File
@@ -0,0 +1,16 @@
//! QBZ Slint POC binary.
//!
//! Validates whether Slint can become QBZ's future UI foundation on top of
//! the framework-agnostic `qbz-app` / `qbz-core` stack. See the POC ADR
//! (`qbz-nix-docs/qbz-adr/qbz_slint_functional_poc_adr.md`).
//!
//! Lives only on the private `slint-poc` branch (ADR-007). The Slint UI tree
//! is compiled from `ui/app.slint` by `build.rs`; `include_modules!` pulls in
//! the generated Rust bindings.
slint::include_modules!();
fn main() -> Result<(), slint::PlatformError> {
let window = AppWindow::new()?;
window.run()
}
+22
View File
@@ -0,0 +1,22 @@
// QBZ Slint POC — UI entry point.
//
// This file stays thin: it imports the foundation, shell, and feature
// modules and exports the single top-level window. No raw visual constants
// or domain logic live here (see the POC ADR, sections 13 and 21).
export component AppWindow inherits Window {
title: "QBZ";
preferred-width: 1180px;
preferred-height: 760px;
min-width: 940px;
min-height: 600px;
// Placeholder content. Replaced by the AppShell in the next M1 step
// (foundation tokens + sidebar / header / content / player bar).
Text {
text: "QBZ — Slint POC";
font-size: 22px;
horizontal-alignment: center;
vertical-alignment: center;
}
}