feat(qbz-ui): settings export modal + Developer row (04 §4.2)

Add the desktop "Export settings…" surface for the qbzd daemon epic (T18):
a Developer-settings row that opens a modal with the single default-off
"Include Qobuz login and integration tokens" gate, its warning line, and a
Cancel/Export footer. Confirm() is a Rust callback (wired next). New
SettingsExportState/SettingsExportActions globals, exported from app.slint
so the Rust layer binds them, and the modal mounted in AppShell. New strings
translated across all 8 locales (en es de fr pt ru ja nl).

cc
This commit is contained in:
vicrodh committed 2026-07-15 07:50:27 -06:00
1 parent d658a501ad
commit 897ba7128c
13 files changed
+512 -2

No files matched your search

@@ -6,7 +6,7 @@
import { Theme } from "../foundation/semantic-colors.slint";
import { Typography } from "../foundation/typography.slint";
import { Radius } from "../foundation/radius.slint";
import { QconnectDevState, LogViewerState } from "../state.slint";
import { QconnectDevState, LogViewerState, SettingsExportState } from "../state.slint";
import { SettingRow } from "SettingRow.slint";
import { DiagnosticsPanel } from "DiagnosticsPanel.slint";
@@ -74,5 +74,20 @@ export component DeveloperSettings inherits VerticalLayout {
}
}
GroupHeader { text: @tr("SETTINGS PORTABILITY"); }
SettingRow {
label: @tr("Export settings…");
description: @tr("Save a portable bundle of your settings to move to another machine or the qbzd daemon.");
SecondaryButton {
label: @tr("Export…");
clicked => {
// Always reset the auth gate so it opens default-OFF (04 §4.2).
SettingsExportState.include-auth = false;
SettingsExportState.open = true;
}
}
}
DiagnosticsPanel { }
}