From 5c0ae7282c73a395f20cc73ddc8d4b74501950a2 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sat, 29 Jan 2022 15:04:21 +0800 Subject: [PATCH] Pref // Merging OOBE module into Pref module. --- Source/AppDelegate.swift | 2 +- Source/Engine/vChewing/clsOOBEDefaults.swift | 80 ---------- Source/InputMethodController.mm | 4 +- Source/PreferencesModule.swift | 159 +++++++++++++------ vChewing.xcodeproj/project.pbxproj | 4 - 5 files changed, 111 insertions(+), 138 deletions(-) delete mode 100644 Source/Engine/vChewing/clsOOBEDefaults.swift diff --git a/Source/AppDelegate.swift b/Source/AppDelegate.swift index c84206f8..0959b114 100644 --- a/Source/AppDelegate.swift +++ b/Source/AppDelegate.swift @@ -150,7 +150,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NonModalAlertWindowControlle LanguageModelManager.loadUserPhrases() LanguageModelManager.loadUserPhraseReplacement() - OOBE.setMissingDefaults() + Preferences.setMissingDefaults() // 只要使用者沒有勾選檢查更新、沒有主動做出要檢查更新的操作,就不要檢查更新。 if (UserDefaults.standard.object(forKey: kCheckUpdateAutomatically) != nil) == true { diff --git a/Source/Engine/vChewing/clsOOBEDefaults.swift b/Source/Engine/vChewing/clsOOBEDefaults.swift deleted file mode 100644 index 8e82b9c5..00000000 --- a/Source/Engine/vChewing/clsOOBEDefaults.swift +++ /dev/null @@ -1,80 +0,0 @@ -/* - * clsOOBEDefaults.swift - * - * Copyright 2021-2022 vChewing Project (3-Clause BSD License). - * Derived from 2011-2022 OpenVanilla Project (MIT License). - * Some rights reserved. See "LICENSE.TXT" for details. - */ - -import Cocoa - -private let kShouldNotFartInLieuOfBeep = "ShouldNotFartInLieuOfBeep" -private let kCheckUpdateAutomatically = "CheckUpdateAutomatically" -private let kCandidateListTextSize = "CandidateListTextSize" -private let kChooseCandidateUsingSpaceKey = "ChooseCandidateUsingSpaceKey" -private let kUseWinNT351BPMF = "UseWinNT351BPMF" -private let kSelectPhraseAfterCursorAsCandidate = "SelectPhraseAfterCursorAsCandidate" -private let kUseHorizontalCandidateList = "UseHorizontalCandidateList" -private let kCNS11643EnabledKey = "CNS11643Enabled" -private let kChineseConversionEnabledKey = "ChineseConversionEnabled" -private let kPhraseReplacementEnabledKey = "PhraseReplacementEnabled" - -@objc public class OOBE : NSObject { - - @objc public static func setMissingDefaults () { - // 既然 Preferences Module 的預設屬性不自動寫入 plist、而且還是 private,那這邊就先寫入了。 - - // 首次啟用輸入法時設定不要自動更新,免得在某些要隔絕外部網路連線的保密機構內觸犯資安規則。 - if UserDefaults.standard.object(forKey: kCheckUpdateAutomatically) == nil { - UserDefaults.standard.set(false, forKey: kCheckUpdateAutomatically) - UserDefaults.standard.synchronize() - } - - // 預設選字窗字詞文字尺寸,設成 18 剛剛好 - if UserDefaults.standard.object(forKey: kCandidateListTextSize) == nil { - UserDefaults.standard.set(Preferences.candidateListTextSize, forKey: kCandidateListTextSize) - } - - // 預設摁空格鍵來選字,所以設成 true - if UserDefaults.standard.object(forKey: kChooseCandidateUsingSpaceKey) == nil { - UserDefaults.standard.set(Preferences.chooseCandidateUsingSpace, forKey: kChooseCandidateUsingSpaceKey) - } - - // 預設禁用 WinNT351 風格的注音選字模式(就是每個字都要選的那種),所以設成 false - if UserDefaults.standard.object(forKey: kUseWinNT351BPMF) == nil { - UserDefaults.standard.set(Preferences.useWinNT351BPMF, forKey: kUseWinNT351BPMF) - } - - // 預設漢音風格選字,所以要設成 0 - if UserDefaults.standard.object(forKey: kSelectPhraseAfterCursorAsCandidate) == nil { - UserDefaults.standard.set(Preferences.selectPhraseAfterCursorAsCandidate, forKey: kSelectPhraseAfterCursorAsCandidate) - } - - // 預設橫向選字窗,不爽請自行改成縱向選字窗 - if UserDefaults.standard.object(forKey: kUseHorizontalCandidateList) == nil { - UserDefaults.standard.set(Preferences.useHorizontalCandidateList, forKey: kUseHorizontalCandidateList) - } - - // 預設停用全字庫支援 - if UserDefaults.standard.object(forKey: kCNS11643EnabledKey) == nil { - UserDefaults.standard.set(Preferences.cns11643Enabled, forKey: kCNS11643EnabledKey) - } - - // 預設停用繁體轉康熙模組 - if UserDefaults.standard.object(forKey: kChineseConversionEnabledKey) == nil { - UserDefaults.standard.set(Preferences.chineseConversionEnabled, forKey: kChineseConversionEnabledKey) - } - - // 預設停用自訂語彙置換 - if UserDefaults.standard.object(forKey: kPhraseReplacementEnabledKey) == nil { - UserDefaults.standard.set(Preferences.phraseReplacementEnabled, forKey: kPhraseReplacementEnabledKey) - } - - // 預設沒事不要在那裡放屁 - if UserDefaults.standard.object(forKey: kShouldNotFartInLieuOfBeep) == nil { - UserDefaults.standard.set(Preferences.shouldNotFartInLieuOfBeep, forKey: kShouldNotFartInLieuOfBeep) - } - - UserDefaults.standard.synchronize() - } -} diff --git a/Source/InputMethodController.mm b/Source/InputMethodController.mm index 6529b2f0..7f3303c5 100644 --- a/Source/InputMethodController.mm +++ b/Source/InputMethodController.mm @@ -182,7 +182,7 @@ static double FindHighestScore(const vector& nodes, double epsilon) - (void)activateServer:(id)client { // Write missing OOBE user plist entries. - [OOBE setMissingDefaults]; + [Preferences setMissingDefaults]; // Read user plist. [[NSUserDefaults standardUserDefaults] synchronize]; @@ -1493,7 +1493,7 @@ NS_INLINE size_t max(size_t a, size_t b) { return a > b ? a : b; } - (void)showPreferences:(id)sender { // Write missing OOBE user plist entries. - [OOBE setMissingDefaults]; + [Preferences setMissingDefaults]; // show the preferences panel, and also make the IME app itself the focus if ([IMKInputController instancesRespondToSelector:@selector(showPreferences:)]) { diff --git a/Source/PreferencesModule.swift b/Source/PreferencesModule.swift index cd6267df..593c2788 100644 --- a/Source/PreferencesModule.swift +++ b/Source/PreferencesModule.swift @@ -8,20 +8,21 @@ import Cocoa -private let kKeyboardLayoutPreferenceKey = "KeyboardLayout" -private let kBasisKeyboardLayoutPreferenceKey = "BasisKeyboardLayout" // alphanumeric ("ASCII") input basi -private let kFunctionKeyKeyboardLayoutPreferenceKey = "FunctionKeyKeyboardLayout" // alphanumeric ("ASCII") input basi -private let kFunctionKeyKeyboardLayoutOverrideIncludeShiftKey = "FunctionKeyKeyboardLayoutOverrideIncludeShift" // whether include shif -private let kCandidateListTextSizeKey = "CandidateListTextSize" -private let kAppleLanguagesPreferencesKey = "AppleLanguages" -private let kSelectPhraseAfterCursorAsCandidatePreferenceKey = "SelectPhraseAfterCursorAsCandidate" -private let kUseHorizontalCandidateListPreferenceKey = "UseHorizontalCandidateList" -private let kComposingBufferSizePreferenceKey = "ComposingBufferSize" -private let kChooseCandidateUsingSpaceKey = "ChooseCandidateUsingSpaceKey" -private let kCNS11643EnabledKey = "CNS11643Enabled" -private let kChineseConversionEnabledKey = "ChineseConversionEnabled" -private let kHalfWidthPunctuationEnabledKey = "HalfWidthPunctuationEnable" -private let kEscToCleanInputBufferKey = "EscToCleanInputBuffer" +private let kCheckUpdateAutomatically = "CheckUpdateAutomatically" +private let kKeyboardLayoutPreference = "KeyboardLayout" +private let kBasisKeyboardLayoutPreference = "BasisKeyboardLayout" +private let kFunctionKeyKeyboardLayoutPreference = "FunctionKeyKeyboardLayout" +private let kFunctionKeyKeyboardLayoutOverrideIncludeShift = "FunctionKeyKeyboardLayoutOverrideIncludeShift" +private let kCandidateListTextSize = "CandidateListTextSize" +private let kAppleLanguagesPreferences = "AppleLanguages" +private let kSelectPhraseAfterCursorAsCandidatePreference = "SelectPhraseAfterCursorAsCandidate" +private let kUseHorizontalCandidateListPreference = "UseHorizontalCandidateList" +private let kComposingBufferSizePreference = "ComposingBufferSize" +private let kChooseCandidateUsingSpace = "ChooseCandidateUsingSpaceKey" +private let kCNS11643Enabled = "CNS11643Enabled" +private let kChineseConversionEnabled = "ChineseConversionEnabled" +private let kHalfWidthPunctuationEnabled = "HalfWidthPunctuationEnable" +private let kEscToCleanInputBuffer = "EscToCleanInputBuffer" private let kUseWinNT351BPMF = "UseWinNT351BPMF" private let kMaxCandidateLength = "MaxCandidateLength" private let kShouldNotFartInLieuOfBeep = "ShouldNotFartInLieuOfBeep" @@ -29,8 +30,8 @@ private let kShouldNotFartInLieuOfBeep = "ShouldNotFartInLieuOfBeep" private let kCandidateTextFontName = "CandidateTextFontName" private let kCandidateKeyLabelFontName = "CandidateKeyLabelFontName" private let kCandidateKeys = "CandidateKeys" -private let kChineseConversionEngineKey = "ChineseConversionEngine" -private let kPhraseReplacementEnabledKey = "PhraseReplacementEnabled" +private let kChineseConversionEngine = "ChineseConversionEngine" +private let kPhraseReplacementEnabled = "PhraseReplacementEnabled" private let kDefaultCandidateListTextSize: CGFloat = 18 private let kMinKeyLabelSize: CGFloat = 10 @@ -168,62 +169,118 @@ struct ComposingBufferSize { @objc public class Preferences: NSObject { static func reset() { let defaults = UserDefaults.standard - defaults.removeObject(forKey: kKeyboardLayoutPreferenceKey) - defaults.removeObject(forKey: kBasisKeyboardLayoutPreferenceKey) - defaults.removeObject(forKey: kFunctionKeyKeyboardLayoutPreferenceKey) - defaults.removeObject(forKey: kFunctionKeyKeyboardLayoutOverrideIncludeShiftKey) - defaults.removeObject(forKey: kCandidateListTextSizeKey) - defaults.removeObject(forKey: kAppleLanguagesPreferencesKey) - defaults.removeObject(forKey: kSelectPhraseAfterCursorAsCandidatePreferenceKey) - defaults.removeObject(forKey: kUseHorizontalCandidateListPreferenceKey) - defaults.removeObject(forKey: kComposingBufferSizePreferenceKey) - defaults.removeObject(forKey: kChooseCandidateUsingSpaceKey) - defaults.removeObject(forKey: kCNS11643EnabledKey) - defaults.removeObject(forKey: kChineseConversionEnabledKey) - defaults.removeObject(forKey: kHalfWidthPunctuationEnabledKey) - defaults.removeObject(forKey: kEscToCleanInputBufferKey) + defaults.removeObject(forKey: kKeyboardLayoutPreference) + defaults.removeObject(forKey: kBasisKeyboardLayoutPreference) + defaults.removeObject(forKey: kFunctionKeyKeyboardLayoutPreference) + defaults.removeObject(forKey: kFunctionKeyKeyboardLayoutOverrideIncludeShift) + defaults.removeObject(forKey: kCandidateListTextSize) + defaults.removeObject(forKey: kAppleLanguagesPreferences) + defaults.removeObject(forKey: kSelectPhraseAfterCursorAsCandidatePreference) + defaults.removeObject(forKey: kUseHorizontalCandidateListPreference) + defaults.removeObject(forKey: kComposingBufferSizePreference) + defaults.removeObject(forKey: kChooseCandidateUsingSpace) + defaults.removeObject(forKey: kCNS11643Enabled) + defaults.removeObject(forKey: kChineseConversionEnabled) + defaults.removeObject(forKey: kHalfWidthPunctuationEnabled) + defaults.removeObject(forKey: kEscToCleanInputBuffer) defaults.removeObject(forKey: kCandidateTextFontName) defaults.removeObject(forKey: kCandidateKeyLabelFontName) defaults.removeObject(forKey: kCandidateKeys) - defaults.removeObject(forKey: kPhraseReplacementEnabledKey) - defaults.removeObject(forKey: kChineseConversionEngineKey) + defaults.removeObject(forKey: kPhraseReplacementEnabled) + defaults.removeObject(forKey: kChineseConversionEngine) defaults.removeObject(forKey: kUseWinNT351BPMF) defaults.removeObject(forKey: kMaxCandidateLength) defaults.removeObject(forKey: kShouldNotFartInLieuOfBeep) } - @UserDefault(key: kAppleLanguagesPreferencesKey, defaultValue: []) + @objc public static func setMissingDefaults () { + // 既然 Preferences Module 的預設屬性不自動寫入 plist、而且還是 private,那這邊就先寫入了。 + + // 首次啟用輸入法時設定不要自動更新,免得在某些要隔絕外部網路連線的保密機構內觸犯資安規則。 + if UserDefaults.standard.object(forKey: kCheckUpdateAutomatically) == nil { + UserDefaults.standard.set(false, forKey: kCheckUpdateAutomatically) + } + + // 預設選字窗字詞文字尺寸,設成 18 剛剛好 + if UserDefaults.standard.object(forKey: kCandidateListTextSize) == nil { + UserDefaults.standard.set(Preferences.candidateListTextSize, forKey: kCandidateListTextSize) + } + + // 預設摁空格鍵來選字,所以設成 true + if UserDefaults.standard.object(forKey: kChooseCandidateUsingSpace) == nil { + UserDefaults.standard.set(Preferences.chooseCandidateUsingSpace, forKey: kChooseCandidateUsingSpace) + } + + // 預設禁用 WinNT351 風格的注音選字模式(就是每個字都要選的那種),所以設成 false + if UserDefaults.standard.object(forKey: kUseWinNT351BPMF) == nil { + UserDefaults.standard.set(Preferences.useWinNT351BPMF, forKey: kUseWinNT351BPMF) + } + + // 預設漢音風格選字,所以要設成 0 + if UserDefaults.standard.object(forKey: kSelectPhraseAfterCursorAsCandidatePreference) == nil { + UserDefaults.standard.set(Preferences.selectPhraseAfterCursorAsCandidate, forKey: kSelectPhraseAfterCursorAsCandidatePreference) + } + + // 預設橫向選字窗,不爽請自行改成縱向選字窗 + if UserDefaults.standard.object(forKey: kUseHorizontalCandidateListPreference) == nil { + UserDefaults.standard.set(Preferences.useHorizontalCandidateList, forKey: kUseHorizontalCandidateListPreference) + } + + // 預設停用全字庫支援 + if UserDefaults.standard.object(forKey: kCNS11643Enabled) == nil { + UserDefaults.standard.set(Preferences.cns11643Enabled, forKey: kCNS11643Enabled) + } + + // 預設停用繁體轉康熙模組 + if UserDefaults.standard.object(forKey: kChineseConversionEnabled) == nil { + UserDefaults.standard.set(Preferences.chineseConversionEnabled, forKey: kChineseConversionEnabled) + } + + // 預設停用自訂語彙置換 + if UserDefaults.standard.object(forKey: kPhraseReplacementEnabled) == nil { + UserDefaults.standard.set(Preferences.phraseReplacementEnabled, forKey: kPhraseReplacementEnabled) + } + + // 預設沒事不要在那裡放屁 + if UserDefaults.standard.object(forKey: kShouldNotFartInLieuOfBeep) == nil { + UserDefaults.standard.set(Preferences.shouldNotFartInLieuOfBeep, forKey: kShouldNotFartInLieuOfBeep) + } + + UserDefaults.standard.synchronize() + } + + @UserDefault(key: kAppleLanguagesPreferences, defaultValue: []) @objc static var appleLanguages: Array - @UserDefault(key: kKeyboardLayoutPreferenceKey, defaultValue: 0) + @UserDefault(key: kKeyboardLayoutPreference, defaultValue: 0) @objc static var keyboardLayout: Int @objc static var keyboardLayoutName: String { (KeyboardLayout(rawValue: self.keyboardLayout) ?? KeyboardLayout.standard).name } - @UserDefault(key: kBasisKeyboardLayoutPreferenceKey, defaultValue: "com.apple.keylayout.US") + @UserDefault(key: kBasisKeyboardLayoutPreference, defaultValue: "com.apple.keylayout.US") @objc static var basisKeyboardLayout: String - @UserDefault(key: kFunctionKeyKeyboardLayoutPreferenceKey, defaultValue: "com.apple.keylayout.US") + @UserDefault(key: kFunctionKeyKeyboardLayoutPreference, defaultValue: "com.apple.keylayout.US") @objc static var functionKeyboardLayout: String - @UserDefault(key: kFunctionKeyKeyboardLayoutOverrideIncludeShiftKey, defaultValue: false) + @UserDefault(key: kFunctionKeyKeyboardLayoutOverrideIncludeShift, defaultValue: false) @objc static var functionKeyKeyboardLayoutOverrideIncludeShiftKey: Bool - @CandidateListTextSize(key: kCandidateListTextSizeKey) + @CandidateListTextSize(key: kCandidateListTextSize) @objc static var candidateListTextSize: CGFloat - @UserDefault(key: kSelectPhraseAfterCursorAsCandidatePreferenceKey, defaultValue: false) + @UserDefault(key: kSelectPhraseAfterCursorAsCandidatePreference, defaultValue: false) @objc static var selectPhraseAfterCursorAsCandidate: Bool - @UserDefault(key: kUseHorizontalCandidateListPreferenceKey, defaultValue: true) + @UserDefault(key: kUseHorizontalCandidateListPreference, defaultValue: true) @objc static var useHorizontalCandidateList: Bool - @ComposingBufferSize(key: kComposingBufferSizePreferenceKey) + @ComposingBufferSize(key: kComposingBufferSizePreference) @objc static var composingBufferSize: Int - @UserDefault(key: kChooseCandidateUsingSpaceKey, defaultValue: true) + @UserDefault(key: kChooseCandidateUsingSpace, defaultValue: true) @objc static var chooseCandidateUsingSpace: Bool @UserDefault(key: kUseWinNT351BPMF, defaultValue: false) @@ -247,25 +304,25 @@ struct ComposingBufferSize { return shouldNotFartInLieuOfBeep } - @UserDefault(key: kCNS11643EnabledKey, defaultValue: false) + @UserDefault(key: kCNS11643Enabled, defaultValue: false) @objc static var cns11643Enabled: Bool @objc static func toggleCNS11643Enabled() -> Bool { cns11643Enabled = !cns11643Enabled - UserDefaults.standard.set(cns11643Enabled, forKey: kCNS11643EnabledKey) + UserDefaults.standard.set(cns11643Enabled, forKey: kCNS11643Enabled) return cns11643Enabled } - @UserDefault(key: kChineseConversionEnabledKey, defaultValue: false) + @UserDefault(key: kChineseConversionEnabled, defaultValue: false) @objc static var chineseConversionEnabled: Bool @objc static func toggleChineseConversionEnabled() -> Bool { chineseConversionEnabled = !chineseConversionEnabled - UserDefaults.standard.set(chineseConversionEnabled, forKey: kChineseConversionEnabledKey) + UserDefaults.standard.set(chineseConversionEnabled, forKey: kChineseConversionEnabled) return chineseConversionEnabled } - @UserDefault(key: kHalfWidthPunctuationEnabledKey, defaultValue: false) + @UserDefault(key: kHalfWidthPunctuationEnabled, defaultValue: false) @objc static var halfWidthPunctuationEnabled: Bool @objc static func toggleHalfWidthPunctuationEnabled() -> Bool { @@ -273,7 +330,7 @@ struct ComposingBufferSize { return halfWidthPunctuationEnabled } - @UserDefault(key: kEscToCleanInputBufferKey, defaultValue: true) + @UserDefault(key: kEscToCleanInputBuffer, defaultValue: true) @objc static var escToCleanInputBuffer: Bool // MARK: Optional settings @@ -343,19 +400,19 @@ struct ComposingBufferSize { } - @UserDefault(key: kChineseConversionEngineKey, defaultValue: 0) + @UserDefault(key: kChineseConversionEngine, defaultValue: 0) @objc static var chineseConversionEngine: Int @objc static var chineseConversionEngineName: String? { return ChineseConversionEngine(rawValue: chineseConversionEngine)?.name } - @UserDefault(key: kPhraseReplacementEnabledKey, defaultValue: false) + @UserDefault(key: kPhraseReplacementEnabled, defaultValue: false) @objc static var phraseReplacementEnabled: Bool @objc static func togglePhraseReplacementEnabled() -> Bool { phraseReplacementEnabled = !phraseReplacementEnabled - UserDefaults.standard.set(phraseReplacementEnabled, forKey: kPhraseReplacementEnabledKey) + UserDefaults.standard.set(phraseReplacementEnabled, forKey: kPhraseReplacementEnabled) return phraseReplacementEnabled } } diff --git a/vChewing.xcodeproj/project.pbxproj b/vChewing.xcodeproj/project.pbxproj index d171ee00..79091b13 100644 --- a/vChewing.xcodeproj/project.pbxproj +++ b/vChewing.xcodeproj/project.pbxproj @@ -31,7 +31,6 @@ 5BD0D19427940E9D0008F48E /* Fart.aif in Resources */ = {isa = PBXBuildFile; fileRef = 5BD0D19327940E9D0008F48E /* Fart.aif */; }; 5BD0D19A27943D390008F48E /* clsSFX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BD0D19927943D390008F48E /* clsSFX.swift */; }; 5BD0D19F279454F60008F48E /* Beep.aif in Resources */ = {isa = PBXBuildFile; fileRef = 5BD0D19E279454F60008F48E /* Beep.aif */; }; - 5BD0D1A4279463510008F48E /* clsOOBEDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BD0D1A3279463510008F48E /* clsOOBEDefaults.swift */; }; 5BD13F482794F0A6000E429F /* PhraseReplacementMap.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5B6797B42794822C004AC7CE /* PhraseReplacementMap.mm */; }; 5BDD25F2279D65CC00AA18F8 /* UNICHARS.zip in Resources */ = {isa = PBXBuildFile; fileRef = 5BDD25F1279D65CB00AA18F8 /* UNICHARS.zip */; }; 5BDD25F4279D678600AA18F8 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 5BDD25F3279D677F00AA18F8 /* libz.tbd */; }; @@ -146,7 +145,6 @@ 5BD0D19327940E9D0008F48E /* Fart.aif */ = {isa = PBXFileReference; lastKnownFileType = file; path = Fart.aif; sourceTree = ""; }; 5BD0D19927943D390008F48E /* clsSFX.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = clsSFX.swift; sourceTree = ""; }; 5BD0D19E279454F60008F48E /* Beep.aif */ = {isa = PBXFileReference; lastKnownFileType = file; path = Beep.aif; sourceTree = ""; }; - 5BD0D1A3279463510008F48E /* clsOOBEDefaults.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = clsOOBEDefaults.swift; sourceTree = ""; }; 5BDD25E2279D64FB00AA18F8 /* AWFileHash.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AWFileHash.h; sourceTree = ""; }; 5BDD25E3279D64FB00AA18F8 /* AWFileHash.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AWFileHash.m; sourceTree = ""; }; 5BDD25E6279D64FB00AA18F8 /* unzip.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = unzip.m; sourceTree = ""; }; @@ -275,7 +273,6 @@ children = ( 5BC2D2842793B434002C0BEC /* KeyValueBlobReader.h */, 5BC2D2862793B434002C0BEC /* KeyValueBlobReader.cpp */, - 5BD0D1A3279463510008F48E /* clsOOBEDefaults.swift */, ); path = vChewing; sourceTree = ""; @@ -729,7 +726,6 @@ 5BC3EE1B278FC48C00F5E44C /* VerticalCandidateController.swift in Sources */, 5B42B64027876FDC00BB9B9F /* UserOverrideModel.mm in Sources */, 5BDD25F7279D6D1200AA18F8 /* unzip.m in Sources */, - 5BD0D1A4279463510008F48E /* clsOOBEDefaults.swift in Sources */, D427A9C125ED28CC005D43E0 /* OpenCCBridge.swift in Sources */, 6A0D4F4515FC0EB100ABF4B3 /* Mandarin.mm in Sources */, 5B6797B52794822C004AC7CE /* PhraseReplacementMap.h in Sources */,