Prefs // +onlyLoadFactoryLangModelsIfNeeded.

This commit is contained in:
ShikiSuen 2022-09-21 12:41:56 +08:00
parent e1648fc1a7
commit 50396a42c6
5 changed files with 11 additions and 2 deletions

View File

@ -40,6 +40,7 @@ public protocol PrefMgrProtocol {
var trimUnfinishedReadingsOnCommit: Bool { get set } var trimUnfinishedReadingsOnCommit: Bool { get set }
var alwaysShowTooltipTextsHorizontally: Bool { get set } var alwaysShowTooltipTextsHorizontally: Bool { get set }
var clientsIMKTextInputIncapable: [String] { get set } var clientsIMKTextInputIncapable: [String] { get set }
var onlyLoadFactoryLangModelsIfNeeded: Bool { get set }
var useIMKCandidateWindow: Bool { get set } var useIMKCandidateWindow: Bool { get set }
var handleDefaultCandidateFontsByLangIdentifier: Bool { get set } var handleDefaultCandidateFontsByLangIdentifier: Bool { get set }
var shiftKeyAccommodationBehavior: Int { get set } var shiftKeyAccommodationBehavior: Int { get set }

View File

@ -58,6 +58,7 @@ public enum UserDef: String, CaseIterable {
case kTrimUnfinishedReadingsOnCommit = "TrimUnfinishedReadingsOnCommit" case kTrimUnfinishedReadingsOnCommit = "TrimUnfinishedReadingsOnCommit"
case kAlwaysShowTooltipTextsHorizontally = "AlwaysShowTooltipTextsHorizontally" case kAlwaysShowTooltipTextsHorizontally = "AlwaysShowTooltipTextsHorizontally"
case kClientsIMKTextInputIncapable = "ClientsIMKTextInputIncapable" case kClientsIMKTextInputIncapable = "ClientsIMKTextInputIncapable"
case kOnlyLoadFactoryLangModelsIfNeeded = "OnlyLoadFactoryLangModelsIfNeeded"
case kUseIMKCandidateWindow = "UseIMKCandidateWindow" case kUseIMKCandidateWindow = "UseIMKCandidateWindow"
case kHandleDefaultCandidateFontsByLangIdentifier = "HandleDefaultCandidateFontsByLangIdentifier" case kHandleDefaultCandidateFontsByLangIdentifier = "HandleDefaultCandidateFontsByLangIdentifier"

View File

@ -51,7 +51,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele
NSUserNotificationCenter.default.deliver(userNotification) NSUserNotificationCenter.default.deliver(userNotification)
} }
LMMgr.loadDataModelsOnAppDelegate() if !PrefMgr.shared.onlyLoadFactoryLangModelsIfNeeded { LMMgr.loadDataModelsOnAppDelegate() }
DispatchQueue.main.async { DispatchQueue.main.async {
LMMgr.initUserLangModels() LMMgr.initUserLangModels()
self.folderMonitor.folderDidChange = { [weak self] in self.folderMonitor.folderDidChange = { [weak self] in

View File

@ -126,6 +126,13 @@ public class PrefMgr: PrefMgrProtocol {
@AppProperty(key: UserDef.kClientsIMKTextInputIncapable.rawValue, defaultValue: ["com.valvesoftware.steam"]) @AppProperty(key: UserDef.kClientsIMKTextInputIncapable.rawValue, defaultValue: ["com.valvesoftware.steam"])
public var clientsIMKTextInputIncapable: [String] public var clientsIMKTextInputIncapable: [String]
@AppProperty(key: UserDef.kOnlyLoadFactoryLangModelsIfNeeded.rawValue, defaultValue: true)
public var onlyLoadFactoryLangModelsIfNeeded: Bool {
didSet {
if !onlyLoadFactoryLangModelsIfNeeded { LMMgr.loadDataModelsOnAppDelegate() }
}
}
// MARK: - Settings (Tier 2) // MARK: - Settings (Tier 2)
@AppProperty(key: UserDef.kUseIMKCandidateWindow.rawValue, defaultValue: false) @AppProperty(key: UserDef.kUseIMKCandidateWindow.rawValue, defaultValue: false)

View File

@ -177,7 +177,7 @@ class ctlInputMethod: IMKInputController {
default: default:
newInputMode = .imeModeNULL newInputMode = .imeModeNULL
} }
// LMMgr.loadDataModel(newInputMode) if PrefMgr.shared.onlyLoadFactoryLangModelsIfNeeded { LMMgr.loadDataModel(newInputMode) }
if inputMode != newInputMode { if inputMode != newInputMode {
UserDefaults.standard.synchronize() UserDefaults.standard.synchronize()