feat(qbz-slint): functional system-browser OAuth login
Wires real authentication. "Sign in via Browser" now runs the actual Qobuz OAuth flow with no Tauri and no WebView: opens the system browser, captures the authorization code on a one-shot localhost listener, exchanges it via QbzCore's Qobuz client, and activates a real per-user session through AppRuntime. - adapter.rs: SlintAdapter implements FrontendAdapter. - auth.rs: system-browser OAuth, mirrors v2_start_system_browser_oauth without Tauri. Includes a query-param parse test. - main.rs: tokio runtime; sign-in / offline callbacks run real async work and navigate to the shell on success. - Sidebar: placeholder playlist fixtures removed. qbz-slint now depends on qbz-app, qbz-core, and qbz-models. cc
This commit is contained in:
6 files changed
+299
-84
No files matched your search
@@ -4,7 +4,7 @@ version.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
repository.workspace = true
|
||||
description = "Slint functional POC shell for QBZ (private branch only)"
|
||||
description = "Slint functional MVP shell for QBZ (private branch only)"
|
||||
|
||||
[[bin]]
|
||||
name = "qbz-slint"
|
||||
@@ -14,6 +14,13 @@ path = "src/main.rs"
|
||||
slint = "1"
|
||||
log = { workspace = true }
|
||||
env_logger = "0.11"
|
||||
tokio = { workspace = true }
|
||||
async-trait = { workspace = true }
|
||||
urlencoding = "2"
|
||||
open = "5"
|
||||
qbz-app = { path = "../qbz-app" }
|
||||
qbz-core = { path = "../qbz-core" }
|
||||
qbz-models = { path = "../qbz-models" }
|
||||
|
||||
[build-dependencies]
|
||||
slint-build = "1"
|
||||
Reference in new issue
Block a user