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) @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 { @discardableResult static func toggleChineseConversionEnabled() -> Bool {
chineseConversionEnabled = !chineseConversionEnabled 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 return chineseConversionEnabled
} }
@UserDefault(key: UserDef.kShiftJISShinjitaiOutputEnabled.rawValue, defaultValue: false) @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 { @discardableResult static func toggleShiftJISShinjitaiOutputEnabled() -> Bool {
shiftJISShinjitaiOutputEnabled = !shiftJISShinjitaiOutputEnabled 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 return shiftJISShinjitaiOutputEnabled
} }

View File

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