AppDelegate // Reload user dictionary data after changing its folder.
- Also tweak the order in reloadOnFolderChangeHappens().
This commit is contained in:
parent
7b1892bd8d
commit
829bb8d16b
|
@ -23,14 +23,18 @@ public class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCen
|
||||||
// MARK: - Private Functions
|
// MARK: - Private Functions
|
||||||
|
|
||||||
extension AppDelegate {
|
extension AppDelegate {
|
||||||
private func reloadOnFolderChangeHappens() {
|
private func reloadOnFolderChangeHappens(forced: Bool = true) {
|
||||||
// 拖 100ms 再重載,畢竟有些有特殊需求的使用者可能會想使用巨型自訂語彙檔案。
|
// 拖 100ms 再重載,畢竟有些有特殊需求的使用者可能會想使用巨型自訂語彙檔案。
|
||||||
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.1) {
|
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.1) {
|
||||||
if #available(macOS 10.15, *) { FileObserveProject.shared.touch() }
|
// forced 用於剛剛切換了辭典檔案目錄的場合。
|
||||||
if PrefMgr.shared.phraseEditorAutoReloadExternalModifications {
|
// 先執行 initUserLangModels() 可以在目標辭典檔案不存在的情況下先行生成空白範本檔案。
|
||||||
CtlPrefWindow.shared?.updatePhraseEditor()
|
if PrefMgr.shared.shouldAutoReloadUserDataFiles || forced { LMMgr.initUserLangModels() }
|
||||||
|
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.1) {
|
||||||
|
if #available(macOS 10.15, *) { FileObserveProject.shared.touch() }
|
||||||
|
if PrefMgr.shared.phraseEditorAutoReloadExternalModifications {
|
||||||
|
CtlPrefWindow.shared?.updatePhraseEditor()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if PrefMgr.shared.shouldAutoReloadUserDataFiles { LMMgr.initUserLangModels() }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -85,7 +89,10 @@ extension AppDelegate {
|
||||||
folderMonitor.folderDidChange = { [weak self] in
|
folderMonitor.folderDidChange = { [weak self] in
|
||||||
self?.reloadOnFolderChangeHappens()
|
self?.reloadOnFolderChangeHappens()
|
||||||
}
|
}
|
||||||
if LMMgr.userDataFolderExists { folderMonitor.startMonitoring() }
|
if LMMgr.userDataFolderExists { // 沒有資料夾的話,FolderMonitor 會崩潰。
|
||||||
|
folderMonitor.startMonitoring()
|
||||||
|
reloadOnFolderChangeHappens(forced: true)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public func selfUninstall() {
|
public func selfUninstall() {
|
||||||
|
|
Loading…
Reference in New Issue