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 alwaysShowTooltipTextsHorizontally: Bool { get set }
var clientsIMKTextInputIncapable: [String] { get set }
var onlyLoadFactoryLangModelsIfNeeded: Bool { get set }
var useIMKCandidateWindow: Bool { get set }
var handleDefaultCandidateFontsByLangIdentifier: Bool { get set }
var shiftKeyAccommodationBehavior: Int { get set }

View File

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

View File

@ -51,7 +51,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele
NSUserNotificationCenter.default.deliver(userNotification)
}
LMMgr.loadDataModelsOnAppDelegate()
if !PrefMgr.shared.onlyLoadFactoryLangModelsIfNeeded { LMMgr.loadDataModelsOnAppDelegate() }
DispatchQueue.main.async {
LMMgr.initUserLangModels()
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"])
public var clientsIMKTextInputIncapable: [String]
@AppProperty(key: UserDef.kOnlyLoadFactoryLangModelsIfNeeded.rawValue, defaultValue: true)
public var onlyLoadFactoryLangModelsIfNeeded: Bool {
didSet {
if !onlyLoadFactoryLangModelsIfNeeded { LMMgr.loadDataModelsOnAppDelegate() }
}
}
// MARK: - Settings (Tier 2)
@AppProperty(key: UserDef.kUseIMKCandidateWindow.rawValue, defaultValue: false)

View File

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