feat(dac-wizard): redesign welcome step and fix stepper navigation
Welcome step changes: - Add comprehensive disclaimer with bullet points - Add system requirements caveats (custom configs, manual mods, etc.) - Add recovery information - Update translations for EN/ES/FR/DE Bug fixes: - Fix stepper not updating when navigating backwards (current step now always shows as 'active') UI changes: - Replace Wand2 icon with gandalf.svg for DAC wizard button
This commit is contained in:
1 parent
e6d5c1ae7d
commit
8ef38c67e0
7 files changed
+305
-18
No files matched your search
@@ -197,7 +197,7 @@
|
||||
const steps = $derived<Step[]>(STEPS.map((step, index) => ({
|
||||
id: step,
|
||||
label: $t(`dacWizard.steps.${toCamelCase(step)}`) || step,
|
||||
status: completedSteps.has(step) ? 'complete' : index === currentIndex ? 'active' : 'upcoming'
|
||||
status: index === currentIndex ? 'active' : completedSteps.has(step) ? 'complete' : 'upcoming'
|
||||
})));
|
||||
|
||||
// Navigation
|
||||
@@ -362,8 +362,28 @@
|
||||
|
||||
<div class="wizard-content">
|
||||
{#if currentStep === 'welcome'}
|
||||
<div class="step-content">
|
||||
<p class="body-text">{$t('dacWizard.welcome.body')}</p>
|
||||
<div class="step-content welcome-content">
|
||||
<p class="body-text intro-text">{$t('dacWizard.welcome.intro')}</p>
|
||||
|
||||
<div class="disclaimer-section">
|
||||
<p class="disclaimer-title">{$t('dacWizard.welcome.disclaimerTitle')}</p>
|
||||
<ul class="disclaimer-list">
|
||||
<li>{$t('dacWizard.welcome.bulletResponsibility')}</li>
|
||||
<li>
|
||||
{$t('dacWizard.welcome.bulletNoGuarantee')}
|
||||
<ul class="system-issues">
|
||||
<li>{$t('dacWizard.welcome.systemIssue1')}</li>
|
||||
<li>{$t('dacWizard.welcome.systemIssue2')}</li>
|
||||
<li>{$t('dacWizard.welcome.systemIssue3')}</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>{$t('dacWizard.welcome.bulletHelper')}</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<p class="body-text recovery-text">{$t('dacWizard.welcome.recovery')}</p>
|
||||
|
||||
<p class="body-text ready-text">{$t('dacWizard.welcome.readyText')}</p>
|
||||
|
||||
<label class="checkbox-row">
|
||||
<input type="checkbox" bind:checked={welcomeConfirmed} />
|
||||
@@ -814,6 +834,69 @@
|
||||
color: var(--text-secondary);
|
||||
line-height: 1.6;
|
||||
margin: 0;
|
||||
white-space: pre-line;
|
||||
}
|
||||
|
||||
/* Welcome step styles */
|
||||
.welcome-content {
|
||||
gap: 20px;
|
||||
}
|
||||
|
||||
.intro-text {
|
||||
color: var(--text-primary);
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.disclaimer-section {
|
||||
background: var(--bg-tertiary);
|
||||
border-radius: 8px;
|
||||
padding: 16px;
|
||||
border-left: 3px solid var(--warning, #fbbf24);
|
||||
}
|
||||
|
||||
.disclaimer-title {
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: var(--text-primary);
|
||||
margin: 0 0 12px 0;
|
||||
}
|
||||
|
||||
.disclaimer-list {
|
||||
margin: 0;
|
||||
padding-left: 20px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.disclaimer-list > li {
|
||||
font-size: 13px;
|
||||
color: var(--text-secondary);
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.system-issues {
|
||||
margin: 8px 0 0 0;
|
||||
padding-left: 16px;
|
||||
list-style-type: disc;
|
||||
}
|
||||
|
||||
.system-issues li {
|
||||
font-size: 12px;
|
||||
color: var(--text-muted);
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.recovery-text {
|
||||
padding: 12px;
|
||||
background: rgba(34, 197, 94, 0.1);
|
||||
border-radius: 6px;
|
||||
border-left: 3px solid var(--color-success, #22c55e);
|
||||
}
|
||||
|
||||
.ready-text {
|
||||
font-style: italic;
|
||||
color: var(--text-muted);
|
||||
}
|
||||
|
||||
.checkbox-row {
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
import ViewTransition from '../ViewTransition.svelte';
|
||||
import { getCurrentWebview } from '@tauri-apps/api/webview';
|
||||
import { writeText as copyToClipboard } from '@tauri-apps/plugin-clipboard-manager';
|
||||
import { ArrowLeft, ChevronRight, ChevronDown, ChevronUp, Loader2, Sun, Moon, SunMoon, HelpCircle, Ban, Wand2 } from 'lucide-svelte';
|
||||
import { ArrowLeft, ChevronRight, ChevronDown, ChevronUp, Loader2, Sun, Moon, SunMoon, HelpCircle, Ban } from 'lucide-svelte';
|
||||
import Toggle from '../Toggle.svelte';
|
||||
import Dropdown from '../Dropdown.svelte';
|
||||
import DeviceDropdown from '../DeviceDropdown.svelte';
|
||||
@@ -2022,7 +2022,7 @@
|
||||
onclick={() => showDACWizardModal = true}
|
||||
title={$t('dacWizard.title')}
|
||||
>
|
||||
<Wand2 size={16} />
|
||||
<img src="/gandalf.svg" alt="DAC Setup" class="gandalf-icon" />
|
||||
</button>
|
||||
{/if}
|
||||
</div>
|
||||
@@ -3003,6 +3003,12 @@ flatpak override --user --filesystem=/home/USUARIO/Música com.blitzfc.qbz</pre>
|
||||
transform: scale(1.05);
|
||||
}
|
||||
|
||||
.dac-setup-btn .gandalf-icon {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
filter: invert(1);
|
||||
}
|
||||
|
||||
.loading-overlay {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
|
||||
@@ -965,9 +965,18 @@
|
||||
"triggerTooltip": "DAC-Einrichtungshilfe",
|
||||
"welcome": {
|
||||
"title": "Geführte DAC-Einrichtung",
|
||||
"subtitle": "Schritt-für-Schritt-Anleitung.",
|
||||
"body": "Sie werden Befehle kopieren und im Terminal ausführen. QBZ führt Sie durch jeden Schritt und erklärt alles. Vor Änderungen wird eine Sicherung erstellt.",
|
||||
"checkbox": "Ich verstehe, dass diese Anleitung die System-Audiokonfiguration ändert",
|
||||
"subtitle": "Dieser Assistent hilft Ihnen, Ihren DAC für bit-perfekte Wiedergabe unter Linux zu konfigurieren.",
|
||||
"intro": "QBZ nimmt keine automatischen Änderungen an Ihrem System vor.\nJeder Schritt zeigt die exakten Befehle, erklärt deren Funktion und überlässt Ihnen die Entscheidung, wann Sie fortfahren.",
|
||||
"disclaimerTitle": "Bitte beachten Sie vor dem Fortfahren:",
|
||||
"bulletResponsibility": "Sie sind selbst verantwortlich für das Erstellen, Aufbewahren und Wiederherstellen Ihrer Backups",
|
||||
"bulletNoGuarantee": "QBZ basiert auf offizieller Dokumentation und empfohlenen Vorgehensweisen, kann jedoch keine Garantie bieten bei Systemen mit:",
|
||||
"bulletHelper": "Diese Anleitung ist als Hilfestellung gedacht, nicht als System-Recovery-Werkzeug",
|
||||
"systemIssue1": "Bereits vorhandenen benutzerdefinierten Audio-Konfigurationen",
|
||||
"systemIssue2": "Manuell angepassten PipeWire-, Pulse- oder WirePlumber-Setups",
|
||||
"systemIssue3": "Übersprungenen oder in falscher Reihenfolge ausgeführten Befehlen",
|
||||
"recovery": "Sollte etwas nicht wie erwartet funktionieren, können Sie Ihre vorherige Konfiguration jederzeit aus dem erstellten Backup wiederherstellen.",
|
||||
"readyText": "Gehen Sie Schritt für Schritt vor.\nNichts wird ausgeführt, solange Sie es nicht selbst tun.",
|
||||
"checkbox": "Ich verstehe und akzeptiere diese Bedingungen",
|
||||
"start": "Starten"
|
||||
},
|
||||
"precheck": {
|
||||
|
||||
@@ -1024,9 +1024,18 @@
|
||||
"triggerTooltip": "DAC Setup Guide",
|
||||
"welcome": {
|
||||
"title": "Guided DAC Setup",
|
||||
"subtitle": "Step-by-step instructions.",
|
||||
"body": "You will copy and run commands in a terminal. QBZ will guide you and explain each step. A backup will be created before any changes.",
|
||||
"checkbox": "I understand this guide modifies system audio configuration",
|
||||
"subtitle": "This wizard helps you configure your DAC for bit-perfect playback on Linux.",
|
||||
"intro": "QBZ will not modify your system automatically.\nEach step shows the exact commands to run, explains what they do, and lets you decide when to proceed.",
|
||||
"disclaimerTitle": "Before continuing, please note:",
|
||||
"bulletResponsibility": "You are responsible for creating, keeping, and restoring your own backups",
|
||||
"bulletNoGuarantee": "QBZ follows official documentation and recommended practices, but cannot guarantee results on systems with:",
|
||||
"bulletHelper": "This guide is provided as a helper, not a system recovery tool",
|
||||
"systemIssue1": "Previous custom audio configurations",
|
||||
"systemIssue2": "Manually modified PipeWire, Pulse, or WirePlumber setups",
|
||||
"systemIssue3": "Commands skipped or executed out of order",
|
||||
"recovery": "If anything goes wrong, you can restore your previous configuration using the backup created during this process.",
|
||||
"readyText": "When you're ready, continue step by step.\nNothing will run unless you run it.",
|
||||
"checkbox": "I understand and accept these terms",
|
||||
"start": "Start"
|
||||
},
|
||||
"precheck": {
|
||||
|
||||
@@ -1024,9 +1024,18 @@
|
||||
"triggerTooltip": "Guía de Configuración de DAC",
|
||||
"welcome": {
|
||||
"title": "Configuración Guiada de DAC",
|
||||
"subtitle": "Instrucciones paso a paso.",
|
||||
"body": "Copiarás y ejecutarás comandos en una terminal. QBZ te guiará y explicará cada paso. Se creará un backup antes de cualquier cambio.",
|
||||
"checkbox": "Entiendo que esta guía modifica la configuración de audio del sistema",
|
||||
"subtitle": "Este asistente te ayuda a configurar tu DAC para una reproducción bit-perfect en Linux.",
|
||||
"intro": "QBZ no realiza cambios automáticos en tu sistema.\nCada paso muestra los comandos exactos que debes ejecutar, explica qué hacen y te permite decidir cuándo continuar.",
|
||||
"disclaimerTitle": "Antes de seguir, ten en cuenta lo siguiente:",
|
||||
"bulletResponsibility": "Tú eres responsable de crear, conservar y restaurar tus propios respaldos",
|
||||
"bulletNoGuarantee": "QBZ se basa en documentación oficial y prácticas recomendadas, pero no puede garantizar resultados en sistemas con:",
|
||||
"bulletHelper": "Esta guía es solo una ayuda, no una herramienta de recuperación del sistema",
|
||||
"systemIssue1": "Configuraciones de audio personalizadas previas",
|
||||
"systemIssue2": "Modificaciones manuales en PipeWire, Pulse o WirePlumber",
|
||||
"systemIssue3": "Comandos omitidos o ejecutados fuera de orden",
|
||||
"recovery": "Si algo sale mal, siempre puedes restaurar tu configuración anterior usando el respaldo creado durante este proceso.",
|
||||
"readyText": "Cuando estés listo, avanza paso a paso.\nNada se ejecuta si tú no lo ejecutas.",
|
||||
"checkbox": "Entiendo y acepto estos términos",
|
||||
"start": "Comenzar"
|
||||
},
|
||||
"precheck": {
|
||||
|
||||
@@ -964,10 +964,19 @@
|
||||
"title": "Assistant Configuration DAC",
|
||||
"triggerTooltip": "Guide de configuration DAC",
|
||||
"welcome": {
|
||||
"title": "Configuration guidée du DAC",
|
||||
"subtitle": "Instructions étape par étape.",
|
||||
"body": "Vous allez copier et exécuter des commandes dans un terminal. QBZ vous guidera et expliquera chaque étape. Une sauvegarde sera créée avant toute modification.",
|
||||
"checkbox": "Je comprends que ce guide modifie la configuration audio du système",
|
||||
"title": "Configuration Guidée du DAC",
|
||||
"subtitle": "Cet assistant vous aide à configurer votre DAC pour une lecture bit-perfect sous Linux.",
|
||||
"intro": "QBZ n'applique aucune modification automatiquement.\nChaque étape affiche les commandes exactes à exécuter, explique leur fonctionnement et vous laisse décider quand continuer.",
|
||||
"disclaimerTitle": "Avant de poursuivre, veuillez noter :",
|
||||
"bulletResponsibility": "Vous êtes responsable de la création, de la conservation et de la restauration de vos sauvegardes",
|
||||
"bulletNoGuarantee": "QBZ s'appuie sur la documentation officielle et les bonnes pratiques, sans pouvoir garantir le bon fonctionnement sur des systèmes ayant :",
|
||||
"bulletHelper": "Ce guide est une aide, et non un outil de récupération système",
|
||||
"systemIssue1": "Des configurations audio personnalisées existantes",
|
||||
"systemIssue2": "Des modifications manuelles de PipeWire, Pulse ou WirePlumber",
|
||||
"systemIssue3": "Des commandes ignorées ou exécutées dans un ordre différent",
|
||||
"recovery": "En cas de problème, vous pourrez restaurer votre configuration précédente à l'aide de la sauvegarde créée durant ce processus.",
|
||||
"readyText": "Lorsque vous êtes prêt, avancez étape par étape.\nRien ne s'exécute sans votre action.",
|
||||
"checkbox": "Je comprends et j'accepte ces conditions",
|
||||
"start": "Commencer"
|
||||
},
|
||||
"precheck": {
|
||||
|
||||
@@ -0,0 +1,162 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" version="1.2" baseProfile="tiny" viewBox="0.00 0.00 100.00 100.00" width="100.00" height="100.00">
|
||||
<g>
|
||||
<path fill="#000000" d="
|
||||
M 44.00 5.56
|
||||
Q 44.18 5.56 44.24 5.52
|
||||
C 48.35 3.31 54.84 4.30 59.34 6.39
|
||||
Q 73.67 13.03 75.28 28.51
|
||||
Q 77.00 45.04 81.97 93.69
|
||||
A 1.92 1.92 0.0 0 1 80.24 95.80
|
||||
L 80.13 95.81
|
||||
A 1.95 1.95 0.0 0 1 78.01 94.07
|
||||
Q 74.00 55.61 71.84 33.50
|
||||
Q 70.90 23.96 68.99 20.35
|
||||
C 64.91 12.62 56.73 7.78 47.81 8.34
|
||||
A 2.80 2.79 -61.0 0 0 46.66 8.67
|
||||
C 45.87 9.10 44.88 9.96 44.00 9.96
|
||||
C 43.12 9.96 42.13 9.10 41.34 8.67
|
||||
A 2.80 2.79 61.0 0 0 40.19 8.34
|
||||
C 31.27 7.78 23.09 12.62 19.01 20.35
|
||||
Q 17.10 23.96 16.16 33.50
|
||||
Q 14.00 55.61 9.98 94.07
|
||||
A 1.95 1.95 0.0 0 1 7.86 95.81
|
||||
L 7.75 95.80
|
||||
A 1.92 1.92 0.0 0 1 6.02 93.69
|
||||
Q 11.00 45.04 12.72 28.51
|
||||
Q 14.33 13.03 28.66 6.39
|
||||
C 33.16 4.30 39.65 3.31 43.76 5.52
|
||||
Q 43.82 5.56 44.00 5.56
|
||||
Z"
|
||||
/>
|
||||
<path fill="#000000" d="
|
||||
M 88.00 4.33
|
||||
Q 88.20 4.33 88.27 4.44
|
||||
Q 97.14 18.60 97.64 19.43
|
||||
A 1.75 1.67 31.1 0 1 97.89 20.35
|
||||
Q 97.86 27.45 95.17 40.45
|
||||
Q 93.80 47.13 90.33 51.14
|
||||
A 1.37 1.34 65.9 0 0 90.00 52.03
|
||||
L 90.00 95.35
|
||||
A 0.65 0.65 0.0 0 1 89.35 96.00
|
||||
Q 89.05 96.00 88.00 96.00
|
||||
Q 86.95 96.00 86.65 96.00
|
||||
A 0.65 0.65 0.0 0 1 86.00 95.35
|
||||
L 86.00 52.03
|
||||
A 1.37 1.34 -65.9 0 0 85.67 51.14
|
||||
Q 82.19 47.13 80.82 40.45
|
||||
Q 78.13 27.45 78.10 20.35
|
||||
A 1.75 1.67 -31.1 0 1 78.35 19.43
|
||||
Q 78.85 18.60 87.72 4.44
|
||||
Q 87.79 4.33 88.00 4.33
|
||||
Z
|
||||
M 87.99 16.37
|
||||
Q 88.16 16.37 88.95 13.91
|
||||
A 1.31 1.31 0.0 0 0 88.90 12.99
|
||||
Q 88.43 11.92 88.00 11.92
|
||||
Q 87.58 11.92 87.10 12.98
|
||||
A 1.31 1.31 0.0 0 0 87.05 13.91
|
||||
Q 87.82 16.37 87.99 16.37
|
||||
Z
|
||||
M 83.74 18.25
|
||||
L 82.28 20.78
|
||||
A 1.66 1.66 0.0 0 0 82.07 21.79
|
||||
L 83.34 33.00
|
||||
A 0.20 0.20 0.0 0 0 83.71 33.07
|
||||
Q 87.68 25.64 84.59 18.31
|
||||
A 0.48 0.47 48.8 0 0 83.74 18.25
|
||||
Z
|
||||
M 92.26 18.20
|
||||
A 0.48 0.48 0.0 0 0 91.40 18.26
|
||||
Q 88.31 25.62 92.30 33.08
|
||||
A 0.20 0.20 0.0 0 0 92.67 33.01
|
||||
L 93.94 21.75
|
||||
A 1.67 1.66 -56.9 0 0 93.73 20.74
|
||||
L 92.26 18.20
|
||||
Z
|
||||
M 88.00 47.62
|
||||
Q 88.34 47.62 89.14 46.13
|
||||
Q 89.90 44.71 91.10 40.33
|
||||
A 1.08 1.06 -51.2 0 0 91.03 39.62
|
||||
L 88.14 33.79
|
||||
A 0.09 0.08 79.5 0 0 88.07 33.73
|
||||
Q 88.03 33.73 88.00 33.73
|
||||
Q 87.97 33.73 87.94 33.73
|
||||
A 0.09 0.08 -79.5 0 0 87.87 33.79
|
||||
L 84.97 39.62
|
||||
A 1.08 1.06 51.3 0 0 84.90 40.33
|
||||
Q 86.09 44.71 86.85 46.13
|
||||
Q 87.65 47.62 88.00 47.62
|
||||
Z"
|
||||
/>
|
||||
<path fill="#000000" d="
|
||||
M 44.00 24.65
|
||||
Q 44.18 24.65 44.65 24.16
|
||||
C 52.89 15.80 65.71 21.08 65.96 32.76
|
||||
Q 66.04 36.51 65.99 92.81
|
||||
A 2.01 2.01 0.0 0 1 64.05 94.82
|
||||
L 63.97 94.82
|
||||
A 1.91 1.90 -0.9 0 1 62.00 92.92
|
||||
L 62.00 65.35
|
||||
A 1.24 1.20 -67.8 0 0 61.66 64.50
|
||||
Q 57.89 60.53 53.58 58.45
|
||||
A 0.75 0.75 0.0 0 0 52.70 58.61
|
||||
C 50.31 61.10 47.59 61.96 44.00 61.96
|
||||
C 40.41 61.96 37.69 61.10 35.30 58.61
|
||||
A 0.75 0.75 0.0 0 0 34.42 58.45
|
||||
Q 30.11 60.53 26.34 64.50
|
||||
A 1.24 1.20 67.8 0 0 26.00 65.35
|
||||
L 26.00 92.92
|
||||
A 1.91 1.90 0.9 0 1 24.03 94.82
|
||||
L 23.95 94.82
|
||||
A 2.01 2.01 0.0 0 1 22.01 92.81
|
||||
Q 21.96 36.51 22.04 32.76
|
||||
C 22.28 21.08 35.10 15.80 43.34 24.16
|
||||
Q 43.82 24.65 44.00 24.65
|
||||
Z
|
||||
M 44.00 57.96
|
||||
C 46.12 57.96 49.49 57.46 50.07 55.04
|
||||
Q 50.40 53.66 51.73 53.46
|
||||
A 1.97 1.91 -38.5 0 1 52.66 53.55
|
||||
Q 57.64 55.37 61.44 58.95
|
||||
A 0.32 0.32 0.0 0 0 61.98 58.71
|
||||
Q 62.04 40.89 61.97 32.78
|
||||
C 61.91 25.07 54.00 21.48 47.99 26.16
|
||||
C 46.66 27.20 45.76 29.97 43.99 29.97
|
||||
C 42.23 29.97 41.33 27.20 39.99 26.16
|
||||
C 33.98 21.49 26.07 25.08 26.02 32.79
|
||||
Q 25.95 40.90 26.02 58.72
|
||||
A 0.32 0.32 0.0 0 0 26.56 58.96
|
||||
Q 30.36 55.38 35.34 53.56
|
||||
A 1.97 1.91 38.5 0 1 36.27 53.46
|
||||
Q 37.60 53.66 37.93 55.04
|
||||
C 38.51 57.46 41.89 57.96 44.00 57.96
|
||||
Z"
|
||||
/>
|
||||
<rect fill="#000000" x="37.07" y="68.01" width="13.86" height="3.98" rx="1.92"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#000000" d="
|
||||
M 35.01 33.16
|
||||
C 36.76 33.18 40.51 34.06 39.85 36.58
|
||||
A 1.92 1.90 21.6 0 1 37.08 37.76
|
||||
Q 35.98 37.17 34.97 37.16
|
||||
Q 33.95 37.14 32.84 37.72
|
||||
A 1.92 1.90 -20.3 0 1 30.09 36.48
|
||||
C 29.49 33.94 33.26 33.14 35.01 33.16
|
||||
Z"
|
||||
/>
|
||||
<path fill="#000000" d="
|
||||
M 53.03 37.15
|
||||
Q 52.02 37.17 50.91 37.76
|
||||
A 1.92 1.90 -21.6 0 1 48.15 36.58
|
||||
C 47.49 34.06 51.24 33.17 52.99 33.15
|
||||
C 54.74 33.13 58.52 33.94 57.91 36.48
|
||||
A 1.92 1.90 20.4 0 1 55.16 37.72
|
||||
Q 54.05 37.14 53.03 37.15
|
||||
Z"
|
||||
/>
|
||||
<circle fill="#000000" cx="34.75" cy="42.20" r="2.27"/>
|
||||
<circle fill="#000000" cx="54.00" cy="42.00" r="1.96"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.4 KiB |
Reference in new issue
Block a user