소스 검색

【fix】【测量】注释列表和筛选中,注释类型不一致

tangchao 6 달 전
부모
커밋
d5edc33fd2

+ 31 - 0
PDF Office/PDF Master/Class/Common/Category/CPDFKit/CPDFAnnotation+KMExtension.swift

@@ -7,6 +7,35 @@
 
 import Foundation
 
+extension CPDFAnnotation.kType {
+    public static let highlight                         = "Highlight"
+    public static let underline                         = "Underline"
+    public static let strikeout                         = "Strikeout"
+    public static let squiggly                          = "Squiggly"
+    
+    public static let freehand                          = "Freehand"
+    
+    public static let freetext                          = "FreeText"
+    public static let note                              = "Note"
+    
+    public static let square                            = "Square"
+    public static let circle                            = "Circle"
+    public static let arrow                             = "Arrow"
+    public static let line                              = "Line"
+    
+    public static let stamp                             = "Stamp"
+    public static let image                             = "Image"
+    
+    public static let redact                            = "Redact"
+    public static let sign                              = "Sign"
+    
+    public static let polyline                          = "Polyline"
+    public static let polygon                           = "Polygon"
+    
+    // 自定义的
+    public static let measureArrow                      = "MeasureArrow"
+}
+
 @objc extension CPDFAnnotation {
     static let kSquareType                              = "Square"
     static let kCircleType                              = "Circle"
@@ -16,4 +45,6 @@ import Foundation
 //    static let kClosedArrowType                         = "ClosedArrow"
     
     static let KSquigglyType                            = "Squiggly"
+    
+    public struct kType {}
 }

+ 1 - 2
PDF Office/PDF Master/Class/PDFWindowController/Side/LeftSide/Annotation/Controller/KMNoteOutlineFilterViewController.swift

@@ -40,8 +40,7 @@ class KMNoteOutlineFilterViewController: NSViewController {
                 self._addNoteColorWith(noteColor)
                 if let data = _anno as? CPDFLineAnnotation {
                     if data.isMeasure {
-                        self._addNoteTypeWith(noteType + "_Measure")
-//                        self._addNoteTypeWith(noteType)
+                        self._addNoteTypeWith(CPDFAnnotation.kType.measureArrow)
                     } else {
                         self._addNoteTypeWith(noteType)
                     }

+ 3 - 3
PDF Office/PDF Master/Class/PDFWindowController/Side/LeftSide/Annotation/View/KMNoteTypeCollectionViewItem.swift

@@ -89,7 +89,7 @@ class KMNoteTypeCollectionViewItem: NSCollectionViewItem {
             } else {
                 isSelect = false
             }
-        } else if (self.typeString == "Arrow_Measure") {
+        } else if (self.typeString == CPDFAnnotation.kType.measureArrow) {
             if (self._equalToImage(sender.image!, otherImage: NSImage(named: "KMImageNameFilterMeasure")!)) {
                 isSelect = true
             } else {
@@ -183,7 +183,7 @@ class KMNoteTypeCollectionViewItem: NSCollectionViewItem {
                 self.typeButton.image = NSImage(named: "KMImageNameSidebarAnnotationFilterStrikeoutWhite")
             } else if (self.typeString == "Line") {
                 self.typeButton.image = NSImage(named: "KMImageNameSidebarAnnotationFilterLineWhite")
-            } else if (self.typeString == "Arrow_Measure") {
+            } else if (self.typeString == CPDFAnnotation.kType.measureArrow) {
                 self.typeButton.image = NSImage(named: "KMImageNameFilterMeasureSelected")
             } else if (self.typeString == "Arrow") {
                 self.typeButton.image = NSImage(named: "KMImageNameSidebarAnnotationFilterArrowWhite")
@@ -228,7 +228,7 @@ class KMNoteTypeCollectionViewItem: NSCollectionViewItem {
                 self.typeButton.image = NSImage(named: "KMImageNameSidebarAnnotationFilterStrikeoutNor")
             } else if (self.typeString == "Line") {
                 self.typeButton.image = NSImage(named: "KMImageNameSidebarAnnotationFilterLineNor")
-            } else if (self.typeString == "Arrow_Measure") {
+            } else if (self.typeString == CPDFAnnotation.kType.measureArrow) {
                 self.typeButton.image = NSImage(named: "KMImageNameFilterMeasure")
             } else if (self.typeString == "Arrow") {
                 self.typeButton.image = NSImage(named: "KMImageNameSidebarAnnotationFilterArrowNor")

+ 17 - 6
PDF Office/PDF Master/Class/PDFWindowController/Side/LeftSide/KMLeftSideViewController+Note.swift

@@ -769,7 +769,7 @@ extension KMLeftSideViewController {
     func reloadAnnotation() {
         if self.listView != nil {
             let filterKey = self.pdfDocument()?.documentURL.path ?? ""
-            let typeArr: [Any] = KMBotaTools.noteFilterAnnoTypes(key: filterKey)
+            let typeArr: [String] = KMBotaTools.noteFilterAnnoTypes(key: filterKey)
             let colorArr: [Any] = KMBotaTools.noteFilterColors(key: filterKey)
             let authorArr: [Any] = KMBotaTools.noteFilterAuthors(key: filterKey)
             if typeArr.count == 0 && colorArr.count == 0 && authorArr.count == 0 {
@@ -796,7 +796,11 @@ extension KMLeftSideViewController {
                     annotationArray += allAnnos
                     
                     if typeArr.count > 0 {
-                        filterAnnos = (KMOCToolClass.filterAnnotation(annotations: filterAnnos, types: typeArr) as? [CPDFAnnotation]) ?? []
+                        var theTypes = typeArr
+                        if typeArr.contains(CPDFAnnotation.kType.measureArrow) && typeArr.contains(CPDFAnnotation.kType.arrow) == false {
+                            theTypes.append(CPDFAnnotation.kType.arrow)
+                        }
+                        filterAnnos = (KMOCToolClass.filterAnnotation(annotations: filterAnnos, types: theTypes) as? [CPDFAnnotation]) ?? []
                     }
                     if (colorArr.count > 0) {
                         filterAnnos = (KMOCToolClass.filterAnnotation(annotations: filterAnnos,colors: colorArr) as? [CPDFAnnotation]) ?? []
@@ -804,12 +808,19 @@ extension KMLeftSideViewController {
                     if (authorArr.count > 0) {
                         filterAnnos = (KMOCToolClass.filterAnnotation(annotations: filterAnnos,authors: authorArr) as? [CPDFAnnotation]) ?? []
                     }
-                    if types.contains("Arrow_Measure") {
-                        
+                    
+                    if typeArr.contains(CPDFAnnotation.kType.measureArrow) {
+                        if typeArr.contains(CPDFAnnotation.kType.arrow) == false {
+                            for anno in filterAnnos {
+                                if let data = anno as? CPDFLineAnnotation, data.type == CPDFAnnotation.kType.arrow && data.isMeasure == false {
+                                    filterAnnos.removeObject(anno)
+                                }
+                            }
+                        }
                     } else {
-                        for anno in annos {
+                        for anno in filterAnnos {
                             if let data = anno as? CPDFLineAnnotation, data.isMeasure {
-                                annos.removeObject(anno)
+                                filterAnnos.removeObject(anno)
                             }
                         }
                     }