fix(ux): land quick-win UX audit fixes across settings, exports, toasts, nav
Batch of safe, isolated fixes from the 10-surface UX audit: - settings: Auto-shield / Save-z-transactions toggles now persist on change (they discarded CB()'s return and relied on a Save button that only renders on the About tab, so the choice was silently lost on relaunch). - exports: show the resolved Platform::getConfigDir() instead of a hardcoded ~/.config path (wrong on Windows/macOS) in both the all-keys and CSV dialogs; all-keys also reveals the file path on a partial export. - notifications: error/warning toasts last 9s/7s (were 4s/3.5s) so failures are readable. - qr popup / tx-details: copy-to-clipboard now confirms with a toast. - about: Escape-to-close + readable heading contrast via OnSurfaceMedium(). - sidebar: suppress single-key nav (J/K/arrows/[) while an overlay dialog or ImGui popup is open, so it no longer switches the tab behind a modal. - i18n: strip the stale hardcoded path out of file_save_location in i18n.cpp and all eight res/lang/*.json locales (additive, one key each). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+1
-1
@@ -876,7 +876,7 @@
|
||||
"fee_normal": "Normal",
|
||||
"fetch_prices": "Preise abrufen",
|
||||
"file": "Datei",
|
||||
"file_save_location": "Datei wird gespeichert in: ~/.config/ObsidianDragon/",
|
||||
"file_save_location": "Datei wird gespeichert in:",
|
||||
"filter": "Filtern...",
|
||||
"font_scale": "Schriftgröße",
|
||||
"from": "Von",
|
||||
|
||||
+1
-1
@@ -876,7 +876,7 @@
|
||||
"fee_normal": "Normal",
|
||||
"fetch_prices": "Obtener precios",
|
||||
"file": "Archivo",
|
||||
"file_save_location": "El archivo se guardará en: ~/.config/ObsidianDragon/",
|
||||
"file_save_location": "El archivo se guardará en:",
|
||||
"filter": "Filtrar...",
|
||||
"font_scale": "Escala de fuente",
|
||||
"from": "Desde",
|
||||
|
||||
+1
-1
@@ -876,7 +876,7 @@
|
||||
"fee_normal": "Normal",
|
||||
"fetch_prices": "Récupérer les prix",
|
||||
"file": "Fichier",
|
||||
"file_save_location": "Le fichier sera enregistré dans : ~/.config/ObsidianDragon/",
|
||||
"file_save_location": "Le fichier sera enregistré dans :",
|
||||
"filter": "Filtrer...",
|
||||
"font_scale": "Taille de police",
|
||||
"from": "De",
|
||||
|
||||
+1
-1
@@ -876,7 +876,7 @@
|
||||
"fee_normal": "通常",
|
||||
"fetch_prices": "価格を取得",
|
||||
"file": "ファイル",
|
||||
"file_save_location": "ファイルの保存先:~/.config/ObsidianDragon/",
|
||||
"file_save_location": "ファイルの保存先:",
|
||||
"filter": "フィルター...",
|
||||
"font_scale": "フォントサイズ",
|
||||
"from": "送信元",
|
||||
|
||||
+1
-1
@@ -876,7 +876,7 @@
|
||||
"fee_normal": "보통",
|
||||
"fetch_prices": "가격 조회",
|
||||
"file": "파일",
|
||||
"file_save_location": "파일 저장 위치: ~/.config/ObsidianDragon/",
|
||||
"file_save_location": "파일 저장 위치:",
|
||||
"filter": "필터...",
|
||||
"font_scale": "글꼴 크기",
|
||||
"from": "보낸 곳",
|
||||
|
||||
+1
-1
@@ -876,7 +876,7 @@
|
||||
"fee_normal": "Normal",
|
||||
"fetch_prices": "Buscar preços",
|
||||
"file": "Arquivo",
|
||||
"file_save_location": "O arquivo será salvo em: ~/.config/ObsidianDragon/",
|
||||
"file_save_location": "O arquivo será salvo em:",
|
||||
"filter": "Filtrar...",
|
||||
"font_scale": "Escala da Fonte",
|
||||
"from": "De",
|
||||
|
||||
+1
-1
@@ -876,7 +876,7 @@
|
||||
"fee_normal": "Обычная",
|
||||
"fetch_prices": "Получить цены",
|
||||
"file": "Файл",
|
||||
"file_save_location": "Файл будет сохранён в: ~/.config/ObsidianDragon/",
|
||||
"file_save_location": "Файл будет сохранён в:",
|
||||
"filter": "Фильтр...",
|
||||
"font_scale": "Масштаб шрифта",
|
||||
"from": "От",
|
||||
|
||||
+1
-1
@@ -876,7 +876,7 @@
|
||||
"fee_normal": "普通",
|
||||
"fetch_prices": "获取价格",
|
||||
"file": "文件",
|
||||
"file_save_location": "文件将保存至:~/.config/ObsidianDragon/",
|
||||
"file_save_location": "文件将保存至:",
|
||||
"filter": "筛选...",
|
||||
"font_scale": "字体大小",
|
||||
"from": "从",
|
||||
|
||||
+2
-2
@@ -1229,8 +1229,8 @@ glass-border-alpha = { size = 35.0 }
|
||||
progress-bar-height = { size = 2.0 }
|
||||
duration-info = { size = 1.0 }
|
||||
duration-success = { size = 2.5 }
|
||||
duration-warning = { size = 3.5 }
|
||||
duration-error = { size = 4.0 }
|
||||
duration-warning = { size = 7.0 }
|
||||
duration-error = { size = 9.0 }
|
||||
window = { width = 350, height = 60, border-radius = 8, border-width = 1 }
|
||||
viewport-padding = { size = 20.0 }
|
||||
stack-gap = { size = 10.0 }
|
||||
|
||||
Reference in New Issue
Block a user