Browse Source

【BOTA】注释列表原始数据兼容

tangchao 1 year ago
parent
commit
69c8c6672c

+ 52 - 7
PDF Office/PDF Master/Class/PDFWindowController/Side/LeftSide/KMLeftSideViewController+Note.swift

@@ -7,7 +7,17 @@
 
 import Foundation
 
-// Menu
+extension KMLeftSideViewController.Key {
+    static let noteAscendSortKey = "KMLeftSideViewAscendSortBoolKey"
+    static let noteSortTypeKey = "KMLeftSideViewNoteSortTypeKey"
+    
+    static let filterSelectTypeKey = "KMNoteOutlineFilterSelectArray_Type"
+    static let filterSelectColorKey = "KMNoteOutlineFilterSelectArray_Color"
+    
+    
+}
+
+// MARK: - Menu
 
 extension KMLeftSideViewController {
     static let noteFilterDataKey        = "NoteFilterDataKey"
@@ -98,6 +108,7 @@ extension KMLeftSideViewController {
             sud.sync_setValue(self.noteTypeDict, forKey: Self.noteFilterDataKey)
         }
         self.caseInsensitiveNoteSearch = sud.bool(forKey: SKCaseInsensitiveNoteSearchKey)
+        self.isAscendSort = KMDataManager.ud_bool(forKey: Self.Key.noteAscendSortKey)
         
         self.noteTitleLabel.stringValue = KMLocalizedString("Notes", nil);
         self.noteTitleLabel.textColor = KMAppearance.Layout.h0Color()
@@ -135,7 +146,7 @@ extension KMLeftSideViewController {
         self.noteHeaderView.wantsLayer = true
         self.noteHeaderView.layer?.backgroundColor = KMAppearance.Else.textTagColor().cgColor
         self.noteHeaderView.layer?.cornerRadius = 1.0
-        let sortType = sud.integer(forKey: Self.noteSortTypeKey)
+        let sortType = KMDataManager.ud_integer(forKey: Self.Key.noteSortTypeKey)
         if (sortType == 1) {
             self.noteSortType = KMNoteSortType(rawValue: sortType)!
             if (self.noteSortType == .time) {
@@ -327,8 +338,7 @@ extension KMLeftSideViewController {
             self.noteSortButton.image = NSImage(named: KMImageNameBtnSidebarRankReverse)
             self.noteSortButton.toolTip = KMLocalizedString("ascending sort", nil)
         }
-        UserDefaults.standard.setValue(self.isAscendSort, forKey: Self.ascendSorKey)
-        UserDefaults.standard.synchronize()
+        KMDataManager.ud_set(self.isAscendSort, forKey: Self.Key.noteAscendSortKey)
         
         self.annotationSort(sortArray: [])
     }
@@ -392,6 +402,29 @@ extension KMLeftSideViewController {
             return section?.annotations?.first?.annotation
         }
     }
+    
+    @IBAction @objc  func sortTypeAction(_ sender: NSMenuItem) {
+        let item = sender
+        let tag = item.tag
+        
+        if (item.state == .on) {
+            item.state = .off
+        } else {
+            item.state = .on
+        }
+        if (tag == 0) {
+            self.noteSortType = .page
+            self.sortTypeLabel.stringValue = KMLocalizedString("Page", nil)
+            self.sortTypeBox.toolTip = KMLocalizedString("Page", nil)
+        } else if (tag == 1) {
+            self.noteSortType = .time
+            self.sortTypeLabel.stringValue = KMLocalizedString("Time", nil)
+            self.sortTypeBox.toolTip = KMLocalizedString("Time", nil)
+        }
+        KMDataManager.ud_set(self.noteSortType.rawValue, forKey: Self.Key.noteSortTypeKey)
+        
+        self.annotationSort(sortArray: [])
+    }
 }
 
 // MARK: - Note
@@ -464,7 +497,7 @@ extension KMLeftSideViewController {
         
         let sud = UserDefaults.standard
         var typeArr = NSMutableArray()
-        if let typeData = sud.object(forKey: "KMNoteOutlineFilterSelectArray_Type") as? Data {
+        if let typeData = KMDataManager.ud_object(forKey: Self.Key.filterSelectTypeKey) as? Data {
             if let data = NSKeyedUnarchiver.unarchiveObject(with: typeData) as? NSArray {
                 typeArr = NSMutableArray(array: data)
             }
@@ -640,8 +673,7 @@ extension KMLeftSideViewController {
             var authorArr: [Any] = []
             
             let sud = UserDefaults.standard
-            let typeData = sud.object(forKey: "KMNoteOutlineFilterSelectArray_Type" + self.listView.document.documentURL.path) as? Data
-//            let typeData = sud.object(forKey: "KMNoteOutlineFilterSelectArray_Type") as? Data
+            let typeData = KMDataManager.ud_object(forKey: Self.Key.filterSelectTypeKey + self.listView.document.documentURL.path) as? Data
             if typeData != nil {
                 typeArr = NSKeyedUnarchiver.unarchiveObject(with: typeData!) as! [Any]
             }
@@ -1009,4 +1041,17 @@ extension KMLeftSideViewController {
         }
         return selectedNotes
     }
+    
+    func clearAnnotationFilterData() {
+        if let _key = self.listView?.document?.documentURL?.path {
+            let userDefaults = UserDefaults.standard
+            let typeData = try?NSKeyedArchiver.archivedData(withRootObject: [Any](), requiringSecureCoding: false)
+            userDefaults.set(typeData, forKey: Self.Key.filterSelectTypeKey + _key)
+            let colorData = try?NSKeyedArchiver.archivedData(withRootObject: [Any](), requiringSecureCoding: false)
+            userDefaults.set(colorData, forKey: "KMNoteOutlineFilterSelectArray_Color" + _key)
+            let authorData = try?NSKeyedArchiver.archivedData(withRootObject: [Any](), requiringSecureCoding: false)
+            userDefaults.set(authorData, forKey: "KMNoteOutlineFilterSelectArray_Author" + _key)
+            userDefaults.synchronize()
+        }
+    }
 }

+ 2 - 0
PDF Office/PDF Master/Class/PDFWindowController/Side/LeftSide/KMLeftSideViewController+Outline.swift

@@ -84,6 +84,8 @@ extension KMLeftSideViewController {
         self.tocOutlineView.autoresizesOutlineColumn = false
         self.tocOutlineView.allowsMultipleSelection = true
         self.tocOutlineView.allowsEmptySelection = true
+        self.tocOutlineView.focusRingType = .none
+        self.tocOutlineView.autoresizesSubviews = true
     }
     
     func updateOutlineSelection() {

+ 0 - 79
PDF Office/PDF Master/Class/PDFWindowController/Side/LeftSide/KMLeftSideViewController.swift

@@ -7,9 +7,6 @@
 
 import Cocoa
 
-private let KMLeftSideViewNoteSortTypeKey = "KMLeftSideViewNoteSortTypeKey"
-private let KMLeftSideViewAscendSortBoolKey = "KMLeftSideViewAscendSortBoolKey"
-
 @objc protocol KMLeftSideViewControllerDelegate {
     @objc optional func controlStateChange(_ obj: KMLeftSideViewController,show:Bool)
     @objc optional func enterEditMode(_ obj: KMLeftSideViewController, _ pages: [Int])
@@ -199,8 +196,6 @@ class KMLeftSideViewController: KMSideViewController {
     private let MIN_SIDE_PANE_WIDTH: CGFloat = 270
     private let LABEL_COLUMNID = "label"
     var foldType: KMFoldAllAnnotationType = .none
-    static let noteSortTypeKey = KMLeftSideViewNoteSortTypeKey
-    static let ascendSorKey = KMLeftSideViewAscendSortBoolKey
     
     var tocType: KMFoldType = .none
     
@@ -417,9 +412,6 @@ class KMLeftSideViewController: KMSideViewController {
         self.view.wantsLayer = true
         self.view.layer?.backgroundColor = KMAppearance.Layout.l0Color().cgColor
         
-        let sud = UserDefaults.standard
-        self.isAscendSort = sud.bool(forKey: KMLeftSideViewAscendSortBoolKey)
-        
         self.mwcFlags.wholeWordSearch = UserDefaults.standard.integer(forKey: SKWholeWordSearchKey)
         self.mwcFlags.caseInsensitiveSearch = UserDefaults.standard.integer(forKey: SKCaseInsensitiveSearchKey)
         
@@ -744,30 +736,6 @@ class KMLeftSideViewController: KMSideViewController {
         }
     }
     
-    @IBAction @objc  func sortTypeAction(_ sender: NSMenuItem) {
-        let item = sender
-        let tag = item.tag
-        
-        if (item.state == .on) {
-            item.state = .off
-        } else {
-            item.state = .on
-        }
-        if (tag == 0) {
-            self.noteSortType = .page
-            self.sortTypeLabel.stringValue = KMLocalizedString("Page", nil)
-            self.sortTypeBox.toolTip = KMLocalizedString("Page", nil)
-        } else if (tag == 1) {
-            self.noteSortType = .time
-            self.sortTypeLabel.stringValue = KMLocalizedString("Time", nil)
-            self.sortTypeBox.toolTip = KMLocalizedString("Time", nil)
-        }
-        UserDefaults.standard.set(self.noteSortType.rawValue, forKey: KMLeftSideViewNoteSortTypeKey)
-        UserDefaults.standard.synchronize()
-        
-        self.annotationSort(sortArray: [])
-    }
-    
     @IBAction func leftSideViewDoneButtonAction(_ sender: AnyObject?) {
         let button = sender as? NSButton
         let tag = button?.tag ?? 0
@@ -1026,12 +994,6 @@ extension KMLeftSideViewController {
 //        self.updateViewButtonState()
         // 将事件传递出去
         self.delegate?.controlStateChange?(self,show:show)
-        if (index != NSNotFound) {
-            
-            // 记录当前选中
-            UserDefaults.standard.set(index, forKey: "KMBOTASelectedIndexKey")
-            UserDefaults.standard.synchronize()
-        }
     }
     
     private func getMethodMode(_ type: BotaType) -> KMLeftMethodMode {
@@ -1071,51 +1033,10 @@ extension KMLeftSideViewController {
 
 //MARK: Cache
 extension KMLeftSideViewController {
-    func clearAnnotationFilterData() {
-        if let _key = self.listView?.document?.documentURL?.path {
-            let userDefaults = UserDefaults.standard
-            let typeData = try?NSKeyedArchiver.archivedData(withRootObject: [Any](), requiringSecureCoding: false)
-            userDefaults.set(typeData, forKey: "KMNoteOutlineFilterSelectArray_Type" + _key)
-            let colorData = try?NSKeyedArchiver.archivedData(withRootObject: [Any](), requiringSecureCoding: false)
-            userDefaults.set(colorData, forKey: "KMNoteOutlineFilterSelectArray_Color" + _key)
-            let authorData = try?NSKeyedArchiver.archivedData(withRootObject: [Any](), requiringSecureCoding: false)
-            userDefaults.set(authorData, forKey: "KMNoteOutlineFilterSelectArray_Author" + _key)
-            userDefaults.synchronize()
-        }
-    }
-    
     func clearNotification() {
     }
 }
 
-// MARK: - Analytics (埋点)
-
-extension KMLeftSideViewController {
-    func trackEvent(type: BotaType) -> Void {
-        if (type == .Thumbnail) {
-            KMAnalytics.trackEvent(eventName: "Btn_LeftSideBar_Thumbnail", parameters: [
-                KMAnalytics.Parameter.categoryKey : KMAnalytics.Category.leftSideBar,
-                KMAnalytics.Parameter.labelKey : KMAnalytics.Label.leftSideBar_Btn], platform: .AppCenter, appTarget: .all)
-        } else if (type == .Outline) {
-            KMAnalytics.trackEvent(eventName: "Btn_LeftSideBar_Outline", parameters: [
-                KMAnalytics.Parameter.categoryKey : KMAnalytics.Category.leftSideBar,
-                KMAnalytics.Parameter.labelKey : KMAnalytics.Label.leftSideBar_Btn], platform: .AppCenter, appTarget: .all)
-        } else if (type == .BookMark) {
-            KMAnalytics.trackEvent(eventName: "Btn_LeftSideBar_BookMark", parameters: [
-                KMAnalytics.Parameter.categoryKey : KMAnalytics.Category.leftSideBar,
-                KMAnalytics.Parameter.labelKey : KMAnalytics.Label.leftSideBar_Btn], platform: .AppCenter, appTarget: .all)
-        } else if (type == .Annotation) {
-            KMAnalytics.trackEvent(eventName: "Btn_LeftSideBar_Annotation", parameters: [
-                KMAnalytics.Parameter.categoryKey : KMAnalytics.Category.leftSideBar,
-                KMAnalytics.Parameter.labelKey : KMAnalytics.Label.leftSideBar_Btn], platform: .AppCenter, appTarget: .all)
-        } else if (type == .Search) {
-            KMAnalytics.trackEvent(eventName: "Btn_LeftSideBar_Search", parameters: [
-                KMAnalytics.Parameter.categoryKey : KMAnalytics.Category.leftSideBar,
-                KMAnalytics.Parameter.labelKey : KMAnalytics.Label.leftSideBar_Btn], platform: .AppCenter, appTarget: .all)
-        }
-    }
-}
-
 // MARK: - Private Methods
 
 extension KMLeftSideViewController {

+ 0 - 32
PDF Office/PDF Master/Class/PDFWindowController/ViewController/KMMainViewController.swift

@@ -581,38 +581,6 @@ let LOCKED_KEY  = "locked"
     }
     
     func checkShouldAutoOpenLeftVC() {
-        //        if (KMPreferenceManager.shared.leftSideNeedCloseWhenOpenFile()) {
-        //            return
-        //        }
-        //        if (KMPreferenceManager.shared.leftSideDisplayType == .showOutlineIfHas) {
-        //            let outlineRoot = self.listView.document.outlineRoot()
-        //            let hasOutline = (outlineRoot != nil && outlineRoot!.numberOfChildren > 0)
-        //            if (hasOutline == false) {
-        //                return
-        //            }
-        //
-        //            DispatchQueue.main.asyncAfter(deadline: .now() + 0.15) {
-        //                self.leftSideViewController.refreshMethodType(methodType: .Outline)
-        //            }
-        //            return
-        //        }
-        //        DispatchQueue.main.asyncAfter(deadline: .now() + 0.15) {
-        //            let selectedIndex = UserDefaults.standard.integer(forKey: "KMBOTASelectedIndexKey")
-        //            let thumai = KMLeftMethodMode()
-        //            if selectedIndex == 0 {
-        //                thumai.methodType = .Thumbnail
-        //            } else if selectedIndex == 1 {
-        //                thumai.methodType = .Outline
-        //            } else if selectedIndex == 2 {
-        //                thumai.methodType = .BookMark
-        //            } else if selectedIndex == 3 {
-        //                thumai.methodType = .Annotation
-        //            } else if selectedIndex == 4 {
-        //                thumai.methodType = .Search
-        //            }
-        //
-        //            self.leftSideViewController.refreshMethodType(methodType: thumai.methodType)
-        //        }
         if KMPreference.shared.showLeftSideBar == false {
             return
         }