Prefs & PrefUI // Refactoring toggles related to Chinese conversions.

This commit is contained in:
ShikiSuen 2022-08-16 08:34:01 +08:00
parent 046710427e
commit 146a50079e
2 changed files with 30 additions and 26 deletions

View File

@ -469,34 +469,44 @@ public enum mgrPrefs {
}
@UserDefault(key: UserDef.kChineseConversionEnabled.rawValue, defaultValue: false)
static var chineseConversionEnabled: Bool
static var chineseConversionEnabled: Bool {
didSet {
// JIS
if chineseConversionEnabled, shiftJISShinjitaiOutputEnabled {
toggleShiftJISShinjitaiOutputEnabled()
UserDefaults.standard.set(
shiftJISShinjitaiOutputEnabled, forKey: UserDef.kShiftJISShinjitaiOutputEnabled.rawValue
)
}
UserDefaults.standard.set(
chineseConversionEnabled, forKey: UserDef.kChineseConversionEnabled.rawValue
)
}
}
@discardableResult static func toggleChineseConversionEnabled() -> Bool {
chineseConversionEnabled = !chineseConversionEnabled
// JIS
if chineseConversionEnabled, shiftJISShinjitaiOutputEnabled {
toggleShiftJISShinjitaiOutputEnabled()
UserDefaults.standard.set(
shiftJISShinjitaiOutputEnabled, forKey: UserDef.kShiftJISShinjitaiOutputEnabled.rawValue
)
}
UserDefaults.standard.set(chineseConversionEnabled, forKey: UserDef.kChineseConversionEnabled.rawValue)
return chineseConversionEnabled
}
@UserDefault(key: UserDef.kShiftJISShinjitaiOutputEnabled.rawValue, defaultValue: false)
static var shiftJISShinjitaiOutputEnabled: Bool
static var shiftJISShinjitaiOutputEnabled: Bool {
didSet {
// JIS
if shiftJISShinjitaiOutputEnabled, chineseConversionEnabled {
toggleChineseConversionEnabled()
UserDefaults.standard.set(
chineseConversionEnabled, forKey: UserDef.kChineseConversionEnabled.rawValue
)
}
UserDefaults.standard.set(
shiftJISShinjitaiOutputEnabled, forKey: UserDef.kShiftJISShinjitaiOutputEnabled.rawValue
)
}
}
@discardableResult static func toggleShiftJISShinjitaiOutputEnabled() -> Bool {
shiftJISShinjitaiOutputEnabled = !shiftJISShinjitaiOutputEnabled
// JIS
if shiftJISShinjitaiOutputEnabled, chineseConversionEnabled {
toggleChineseConversionEnabled()
UserDefaults.standard.set(chineseConversionEnabled, forKey: UserDef.kChineseConversionEnabled.rawValue)
}
UserDefaults.standard.set(
shiftJISShinjitaiOutputEnabled, forKey: UserDef.kShiftJISShinjitaiOutputEnabled.rawValue
)
return shiftJISShinjitaiOutputEnabled
}

View File

@ -133,20 +133,14 @@ struct suiPrefPaneGeneral: View {
LocalizedStringKey("Auto-convert traditional Chinese glyphs to KangXi characters"),
isOn: $selEnableKanjiConvToKangXi.onChange {
mgrPrefs.chineseConversionEnabled = selEnableKanjiConvToKangXi
if selEnableKanjiConvToKangXi {
mgrPrefs.shiftJISShinjitaiOutputEnabled = !selEnableKanjiConvToKangXi
selEnableKanjiConvToJIS = !selEnableKanjiConvToKangXi
}
selEnableKanjiConvToJIS = mgrPrefs.shiftJISShinjitaiOutputEnabled
}
)
Toggle(
LocalizedStringKey("Auto-convert traditional Chinese glyphs to JIS Shinjitai characters"),
isOn: $selEnableKanjiConvToJIS.onChange {
mgrPrefs.shiftJISShinjitaiOutputEnabled = selEnableKanjiConvToJIS
if selEnableKanjiConvToJIS {
mgrPrefs.chineseConversionEnabled = !selEnableKanjiConvToJIS
selEnableKanjiConvToKangXi = !selEnableKanjiConvToJIS
}
selEnableKanjiConvToKangXi = mgrPrefs.chineseConversionEnabled
}
)
Toggle(