From 2fb1b222700b7f036d4727dfd860e6d962318e47 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Mon, 5 Feb 2024 22:47:37 +0800 Subject: [PATCH] SettingsUI // Update a binding & Folder structure changes. --- .../SettingsCocoa}/PrefUITabs.swift | 0 .../SettingsUI/CtlSettingsUI.swift | 0 .../SettingsUI/UserDefRenderableImpl.swift | 0 .../SettingsUI/VwrSettingsPaneBehavior.swift | 0 .../VwrSettingsPaneCandidates.swift | 0 .../SettingsUI/VwrSettingsPaneCassette.swift | 48 ++++++++----------- .../SettingsUI/VwrSettingsPaneDevZone.swift | 0 .../VwrSettingsPaneDictionary.swift | 0 .../SettingsUI/VwrSettingsPaneGeneral.swift | 0 .../SettingsUI/VwrSettingsPaneKeyboard.swift | 0 .../SettingsUI/VwrSettingsPaneOutput.swift | 0 .../SettingsUI/VwrSettingsPanePhrases.swift | 0 .../SettingsUI/VwrSettingsUI.swift | 0 13 files changed, 20 insertions(+), 28 deletions(-) rename Packages/vChewing_MainAssembly/Sources/MainAssembly/{SettingsUI => Settings/SettingsCocoa}/PrefUITabs.swift (100%) rename Packages/vChewing_MainAssembly/Sources/MainAssembly/{ => Settings}/SettingsUI/CtlSettingsUI.swift (100%) rename Packages/vChewing_MainAssembly/Sources/MainAssembly/{ => Settings}/SettingsUI/UserDefRenderableImpl.swift (100%) rename Packages/vChewing_MainAssembly/Sources/MainAssembly/{ => Settings}/SettingsUI/VwrSettingsPaneBehavior.swift (100%) rename Packages/vChewing_MainAssembly/Sources/MainAssembly/{ => Settings}/SettingsUI/VwrSettingsPaneCandidates.swift (100%) rename Packages/vChewing_MainAssembly/Sources/MainAssembly/{ => Settings}/SettingsUI/VwrSettingsPaneCassette.swift (78%) rename Packages/vChewing_MainAssembly/Sources/MainAssembly/{ => Settings}/SettingsUI/VwrSettingsPaneDevZone.swift (100%) rename Packages/vChewing_MainAssembly/Sources/MainAssembly/{ => Settings}/SettingsUI/VwrSettingsPaneDictionary.swift (100%) rename Packages/vChewing_MainAssembly/Sources/MainAssembly/{ => Settings}/SettingsUI/VwrSettingsPaneGeneral.swift (100%) rename Packages/vChewing_MainAssembly/Sources/MainAssembly/{ => Settings}/SettingsUI/VwrSettingsPaneKeyboard.swift (100%) rename Packages/vChewing_MainAssembly/Sources/MainAssembly/{ => Settings}/SettingsUI/VwrSettingsPaneOutput.swift (100%) rename Packages/vChewing_MainAssembly/Sources/MainAssembly/{ => Settings}/SettingsUI/VwrSettingsPanePhrases.swift (100%) rename Packages/vChewing_MainAssembly/Sources/MainAssembly/{ => Settings}/SettingsUI/VwrSettingsUI.swift (100%) diff --git a/Packages/vChewing_MainAssembly/Sources/MainAssembly/SettingsUI/PrefUITabs.swift b/Packages/vChewing_MainAssembly/Sources/MainAssembly/Settings/SettingsCocoa/PrefUITabs.swift similarity index 100% rename from Packages/vChewing_MainAssembly/Sources/MainAssembly/SettingsUI/PrefUITabs.swift rename to Packages/vChewing_MainAssembly/Sources/MainAssembly/Settings/SettingsCocoa/PrefUITabs.swift diff --git a/Packages/vChewing_MainAssembly/Sources/MainAssembly/SettingsUI/CtlSettingsUI.swift b/Packages/vChewing_MainAssembly/Sources/MainAssembly/Settings/SettingsUI/CtlSettingsUI.swift similarity index 100% rename from Packages/vChewing_MainAssembly/Sources/MainAssembly/SettingsUI/CtlSettingsUI.swift rename to Packages/vChewing_MainAssembly/Sources/MainAssembly/Settings/SettingsUI/CtlSettingsUI.swift diff --git a/Packages/vChewing_MainAssembly/Sources/MainAssembly/SettingsUI/UserDefRenderableImpl.swift b/Packages/vChewing_MainAssembly/Sources/MainAssembly/Settings/SettingsUI/UserDefRenderableImpl.swift similarity index 100% rename from Packages/vChewing_MainAssembly/Sources/MainAssembly/SettingsUI/UserDefRenderableImpl.swift rename to Packages/vChewing_MainAssembly/Sources/MainAssembly/Settings/SettingsUI/UserDefRenderableImpl.swift diff --git a/Packages/vChewing_MainAssembly/Sources/MainAssembly/SettingsUI/VwrSettingsPaneBehavior.swift b/Packages/vChewing_MainAssembly/Sources/MainAssembly/Settings/SettingsUI/VwrSettingsPaneBehavior.swift similarity index 100% rename from Packages/vChewing_MainAssembly/Sources/MainAssembly/SettingsUI/VwrSettingsPaneBehavior.swift rename to Packages/vChewing_MainAssembly/Sources/MainAssembly/Settings/SettingsUI/VwrSettingsPaneBehavior.swift diff --git a/Packages/vChewing_MainAssembly/Sources/MainAssembly/SettingsUI/VwrSettingsPaneCandidates.swift b/Packages/vChewing_MainAssembly/Sources/MainAssembly/Settings/SettingsUI/VwrSettingsPaneCandidates.swift similarity index 100% rename from Packages/vChewing_MainAssembly/Sources/MainAssembly/SettingsUI/VwrSettingsPaneCandidates.swift rename to Packages/vChewing_MainAssembly/Sources/MainAssembly/Settings/SettingsUI/VwrSettingsPaneCandidates.swift diff --git a/Packages/vChewing_MainAssembly/Sources/MainAssembly/SettingsUI/VwrSettingsPaneCassette.swift b/Packages/vChewing_MainAssembly/Sources/MainAssembly/Settings/SettingsUI/VwrSettingsPaneCassette.swift similarity index 78% rename from Packages/vChewing_MainAssembly/Sources/MainAssembly/SettingsUI/VwrSettingsPaneCassette.swift rename to Packages/vChewing_MainAssembly/Sources/MainAssembly/Settings/SettingsUI/VwrSettingsPaneCassette.swift index 637434db..42c6e4e6 100644 --- a/Packages/vChewing_MainAssembly/Sources/MainAssembly/SettingsUI/VwrSettingsPaneCassette.swift +++ b/Packages/vChewing_MainAssembly/Sources/MainAssembly/Settings/SettingsUI/VwrSettingsPaneCassette.swift @@ -115,35 +115,27 @@ public struct VwrSettingsPaneCassette: View { Text("×") } } - Spacer() - Text( - LocalizedStringKey( - "Cassette mode is similar to the CIN support of the Yahoo Kimo IME, allowing users to use their own CIN tables to implement their stroked-based input schema (e.g. Wubi, Cangjie, Boshiamy, etc.) as a plan-B in vChewing IME. However, since vChewing won't compromise its phonabet input mode experience for this cassette mode, users might not feel comfortable enough comparing to their experiences with RIME (recommended) or OpenVanilla (deprecated)." - ) - ) - .settingsDescription() - Toggle( - LocalizedStringKey("Enable cassette mode, suppressing phonabet input"), - isOn: $cassetteEnabled.didChange { - if cassetteEnabled, !LMMgr.checkCassettePathValidity(cassettePath) { - if let window = CtlSettingsUI.shared?.window { - IMEApp.buzz() - let alert = NSAlert(error: NSLocalizedString("Path invalid or file access error.", comment: "")) - alert.informativeText = NSLocalizedString( - "Please reconfigure the cassette path to a valid one before enabling this mode.", comment: "" - ) - alert.beginSheetModal(for: window) { _ in - } - } - LMMgr.resetCassettePath() - cassetteEnabled = false - } else { - LMMgr.loadCassetteData() - } - LMMgr.syncLMPrefs() - } - ) } + UserDef.kCassetteEnabled.bind( + $cassetteEnabled.didChange { + if cassetteEnabled, !LMMgr.checkCassettePathValidity(cassettePath) { + if let window = CtlSettingsUI.shared?.window { + IMEApp.buzz() + let alert = NSAlert(error: NSLocalizedString("Path invalid or file access error.", comment: "")) + alert.informativeText = NSLocalizedString( + "Please reconfigure the cassette path to a valid one before enabling this mode.", comment: "" + ) + alert.beginSheetModal(for: window) { _ in + } + } + LMMgr.resetCassettePath() + cassetteEnabled = false + } else { + LMMgr.loadCassetteData() + } + LMMgr.syncLMPrefs() + } + ).render() } // MARK: - Something Else diff --git a/Packages/vChewing_MainAssembly/Sources/MainAssembly/SettingsUI/VwrSettingsPaneDevZone.swift b/Packages/vChewing_MainAssembly/Sources/MainAssembly/Settings/SettingsUI/VwrSettingsPaneDevZone.swift similarity index 100% rename from Packages/vChewing_MainAssembly/Sources/MainAssembly/SettingsUI/VwrSettingsPaneDevZone.swift rename to Packages/vChewing_MainAssembly/Sources/MainAssembly/Settings/SettingsUI/VwrSettingsPaneDevZone.swift diff --git a/Packages/vChewing_MainAssembly/Sources/MainAssembly/SettingsUI/VwrSettingsPaneDictionary.swift b/Packages/vChewing_MainAssembly/Sources/MainAssembly/Settings/SettingsUI/VwrSettingsPaneDictionary.swift similarity index 100% rename from Packages/vChewing_MainAssembly/Sources/MainAssembly/SettingsUI/VwrSettingsPaneDictionary.swift rename to Packages/vChewing_MainAssembly/Sources/MainAssembly/Settings/SettingsUI/VwrSettingsPaneDictionary.swift diff --git a/Packages/vChewing_MainAssembly/Sources/MainAssembly/SettingsUI/VwrSettingsPaneGeneral.swift b/Packages/vChewing_MainAssembly/Sources/MainAssembly/Settings/SettingsUI/VwrSettingsPaneGeneral.swift similarity index 100% rename from Packages/vChewing_MainAssembly/Sources/MainAssembly/SettingsUI/VwrSettingsPaneGeneral.swift rename to Packages/vChewing_MainAssembly/Sources/MainAssembly/Settings/SettingsUI/VwrSettingsPaneGeneral.swift diff --git a/Packages/vChewing_MainAssembly/Sources/MainAssembly/SettingsUI/VwrSettingsPaneKeyboard.swift b/Packages/vChewing_MainAssembly/Sources/MainAssembly/Settings/SettingsUI/VwrSettingsPaneKeyboard.swift similarity index 100% rename from Packages/vChewing_MainAssembly/Sources/MainAssembly/SettingsUI/VwrSettingsPaneKeyboard.swift rename to Packages/vChewing_MainAssembly/Sources/MainAssembly/Settings/SettingsUI/VwrSettingsPaneKeyboard.swift diff --git a/Packages/vChewing_MainAssembly/Sources/MainAssembly/SettingsUI/VwrSettingsPaneOutput.swift b/Packages/vChewing_MainAssembly/Sources/MainAssembly/Settings/SettingsUI/VwrSettingsPaneOutput.swift similarity index 100% rename from Packages/vChewing_MainAssembly/Sources/MainAssembly/SettingsUI/VwrSettingsPaneOutput.swift rename to Packages/vChewing_MainAssembly/Sources/MainAssembly/Settings/SettingsUI/VwrSettingsPaneOutput.swift diff --git a/Packages/vChewing_MainAssembly/Sources/MainAssembly/SettingsUI/VwrSettingsPanePhrases.swift b/Packages/vChewing_MainAssembly/Sources/MainAssembly/Settings/SettingsUI/VwrSettingsPanePhrases.swift similarity index 100% rename from Packages/vChewing_MainAssembly/Sources/MainAssembly/SettingsUI/VwrSettingsPanePhrases.swift rename to Packages/vChewing_MainAssembly/Sources/MainAssembly/Settings/SettingsUI/VwrSettingsPanePhrases.swift diff --git a/Packages/vChewing_MainAssembly/Sources/MainAssembly/SettingsUI/VwrSettingsUI.swift b/Packages/vChewing_MainAssembly/Sources/MainAssembly/Settings/SettingsUI/VwrSettingsUI.swift similarity index 100% rename from Packages/vChewing_MainAssembly/Sources/MainAssembly/SettingsUI/VwrSettingsUI.swift rename to Packages/vChewing_MainAssembly/Sources/MainAssembly/Settings/SettingsUI/VwrSettingsUI.swift