Browse Source

【2025】【Edit】裁剪白边距补充完善

niehaoyu 3 months ago
parent
commit
19fd375dd4

+ 2 - 0
PDF Office/PDF Master/AppDelegate.swift

@@ -135,6 +135,8 @@ class AppDelegate: NSObject, NSApplicationDelegate, iRateDelegate{
 #else
         appName = .PDFReaderProMacPro
 #endif
+        
+        
         KMAdvertisementManager.manager.initConfig(appName: appName,
                                                   subscribeType: .unknow,
                                                   platform: .Mac)

+ 13 - 13
PDF Office/PDF Master/Class/PDFWindowController/PDFListView/CPDFListViewExtension/CPDFListView+Edit.swift

@@ -27,7 +27,7 @@ extension CPDFListView {
         for area in areas {
             var data = self.opacityByRange(for: area)
             if data < 0 {
-               data = self.opacity(for: area)
+                data = self.opacity(for: area)
             }
             arr.append(data)
         }
@@ -143,7 +143,7 @@ extension CPDFListView {
     
     //MARK: - 开始&结束编辑
     func configPDFEditingInfo() {
- 
+        
         // 设置边框颜色
         self.editingConfig().editingBorderColor = .clear
         
@@ -180,7 +180,7 @@ extension CPDFListView {
             self.setOpacityEditArea(area, opacity: opacity)
         }
     }
- 
+    
     //MARK: -Text
     func changeEditingTextarea_Color(color: NSColor?) {
         guard let theColor = color else {
@@ -449,7 +449,7 @@ extension CPDFListView {
             bounds.size.width = width
         }
         self.setBoundsEditArea(area, withBounds: bounds)
-         self.editAreaBoundUpdating = false
+        self.editAreaBoundUpdating = false
         
     }
     
@@ -484,7 +484,7 @@ extension CPDFListView {
     
     //MARK: -修改对齐方式
     func changeEditingAreas(_ alignType: KMPDFActiveFormsAlignType) {
-         let editingAreas = self.km_EditingAreas()
+        let editingAreas = self.km_EditingAreas()
         
         if editingAreas.count >= 2 {
             
@@ -507,7 +507,7 @@ extension CPDFListView {
             var totalHeight = 0.0
             
             for i in 0 ... editingAreas.count-1 {
-                let area : CPDFEditArea = editingAreas[i] 
+                let area : CPDFEditArea = editingAreas[i]
                 zeroRect = zeroRect.union(area.bounds)
                 totalWidth = totalWidth + area.bounds.width
                 totalHeight = totalHeight + area.bounds.height
@@ -553,7 +553,7 @@ extension CPDFListView {
                 resultAreasArray = editingAreas
             } else if alignType == .right {
                 for i in 0 ... editingAreas.count-1 {
-                    let areas = editingAreas[i] 
+                    let areas = editingAreas[i]
                     var bounds = areas.bounds
                     bounds.origin.x = zeroRect.maxX - bounds.size.width
                     newBoundsArray.append(NSStringFromRect(bounds))
@@ -561,7 +561,7 @@ extension CPDFListView {
                 resultAreasArray = editingAreas
             } else if alignType == .top {
                 for i in 0 ... editingAreas.count-1 {
-                    let areas = editingAreas[i] 
+                    let areas = editingAreas[i]
                     var bounds = areas.bounds
                     bounds.origin.y = zeroRect.maxY - bounds.size.height
                     newBoundsArray.append(NSStringFromRect(bounds))
@@ -569,7 +569,7 @@ extension CPDFListView {
                 resultAreasArray = editingAreas
             } else if alignType == .bottom {
                 for i in 0 ... editingAreas.count-1 {
-                    let areas = editingAreas[i] 
+                    let areas = editingAreas[i]
                     var bounds = areas.bounds
                     bounds.origin.y = zeroRect.minY
                     newBoundsArray.append(NSStringFromRect(bounds))
@@ -577,7 +577,7 @@ extension CPDFListView {
                 resultAreasArray = editingAreas
             } else if alignType == .vertical {
                 for i in 0 ... editingAreas.count-1 {
-                    let areas = editingAreas[i] 
+                    let areas = editingAreas[i]
                     var bounds = areas.bounds
                     bounds.origin.y = highestRect.midY - bounds.height/2
                     newBoundsArray.append(NSStringFromRect(bounds))
@@ -585,7 +585,7 @@ extension CPDFListView {
                 resultAreasArray = editingAreas
             } else if alignType == .horizontally {
                 for i in 0 ... editingAreas.count-1 {
-                    let areas = editingAreas[i] 
+                    let areas = editingAreas[i]
                     var bounds = areas.bounds
                     bounds.origin.x = widthestRect.midX - bounds.width/2
                     newBoundsArray.append(NSStringFromRect(bounds))
@@ -596,7 +596,7 @@ extension CPDFListView {
                 let otherAreasTotalWidth = totalWidth - leftestRect.width - rightestRect.width
                 
                 let gap = (middleGap - otherAreasTotalWidth)/CGFloat(editingAreas.count - 1)
-                var areasCopyArray : [CPDFEditArea] = editingAreas 
+                var areasCopyArray : [CPDFEditArea] = editingAreas
                 areasCopyArray.sorted(by: { obj1, obj2 in
                     let area1 = obj1
                     let area2 = obj2
@@ -661,7 +661,7 @@ extension CPDFListView {
             for i in 0 ... resultAreasArray.count-1 {
                 let area : CPDFEditArea = resultAreasArray[i] as! CPDFEditArea
                 if newBoundsArray.count > i {
-                    let boundString = newBoundsArray[i] 
+                    let boundString = newBoundsArray[i]
                     self.setBoundsEditArea(area, withBounds: NSRectFromString(boundString))
                 }
             }

+ 12 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/EditTool/Crop/KMCropController.swift

@@ -11,6 +11,10 @@ import KMComponentLibrary
 @objc protocol KMCropControllerDelegate: AnyObject {
     
     @objc optional func kmCropControllerDidCrop(_ controller: KMCropController, _ cropRect: CGRect, _ view: KMPageRangeSelectView)
+     
+    @objc optional func kmCropControllerDidCropSeparate(_ controller: KMCropController, _ view: KMPageRangeSelectView)
+    
+    @objc optional func kmCropControllerDidCropAuto(_ controller: KMCropController, _ view: KMPageRangeSelectView)
 }
 
 class KMCropController: NSViewController {
@@ -112,4 +116,12 @@ extension KMCropController: KMCropPropertyControllerDelegate {
     func kmCropControllerDidCrop(_ controller: KMCropPropertyController, _ cropRect: CGRect, _ view: KMPageRangeSelectView) {
         delegate?.kmCropControllerDidCrop?(self, cropRect, view)
     }
+    
+    func kmCropControllerDidCropAuto(_ controller: KMCropPropertyController, _ view: KMPageRangeSelectView) {
+        delegate?.kmCropControllerDidCropAuto?(self, view)
+    }
+    
+    func kmCropControllerDidCropSeparate(_ controller: KMCropPropertyController, _ view: KMPageRangeSelectView) {
+        delegate?.kmCropControllerDidCropSeparate?(self, view)
+    }
 }

+ 115 - 8
PDF Office/PDF Master/KMClass/KMPDFViewController/EditTool/Crop/Views/KMCropPropertyController.swift

@@ -11,6 +11,10 @@ import KMComponentLibrary
 @objc protocol KMCropPropertyControllerDelegate: AnyObject {
     
     @objc optional func kmCropControllerDidCrop(_ controller: KMCropPropertyController, _ cropRect: CGRect, _ view: KMPageRangeSelectView)
+    
+    @objc optional func kmCropControllerDidCropSeparate(_ controller: KMCropPropertyController, _ view: KMPageRangeSelectView)
+    
+    @objc optional func kmCropControllerDidCropAuto(_ controller: KMCropPropertyController, _ view: KMPageRangeSelectView)
 }
 
 class KMCropPropertyController: NSViewController {
@@ -50,7 +54,9 @@ class KMCropPropertyController: NSViewController {
     
     @IBOutlet var cropButton: ComponentButton!
     
-    private var syncChangeBounds: Bool = true //同步修改宽高
+    private var _cropSeparateOn: Bool = false
+    private var _cropAutoOn: Bool = false
+    private var _syncChangeBounds: Bool = false //同步修改宽高
     
     weak open var delegate: KMCropPropertyControllerDelegate?
     
@@ -60,11 +66,52 @@ class KMCropPropertyController: NSViewController {
         super.viewDidLoad()
         // Do view setup here.
         
+        cropSeparateOn = UserDefaults.standard.bool(forKey: "CropSeparateOnKey")
+        cropAutoOn = UserDefaults.standard.bool(forKey: "CropAutoOnKey")
+        if UserDefaults.standard.object(forKey: "CropSyncChangeBoundsKey") == nil {
+            UserDefaults.standard.setValue(true, forKey: "CropSyncChangeBoundsKey")
+        }
+        syncChangeBounds = UserDefaults.standard.bool(forKey: "CropSyncChangeBoundsKey")
+        
         setupProperty()
         
         reloadData()
     }
     
+    //MARK: - Setter and Getter
+    public var cropSeparateOn : Bool {
+        get {
+            return _cropSeparateOn
+        }
+        set {
+            _cropSeparateOn = newValue
+          
+            UserDefaults.standard.setValue(_cropSeparateOn, forKey: "CropSeparateOnKey")
+         }
+    }
+    
+    public var cropAutoOn : Bool {
+        get {
+            return _cropAutoOn
+        }
+        set {
+            _cropAutoOn = newValue
+          
+            UserDefaults.standard.setValue(_cropAutoOn, forKey: "CropAutoOnKey")
+         }
+    }
+    
+    public var syncChangeBounds : Bool {
+        get {
+            return _syncChangeBounds
+        }
+        set {
+            _syncChangeBounds = newValue
+          
+            UserDefaults.standard.setValue(_syncChangeBounds, forKey: "CropSyncChangeBoundsKey")
+         }
+    }
+    
     func setupProperty() {
         //White Margin
         whiteMarginLabel.stringValue = KMLocalizedString("Crop White Margins")
@@ -76,6 +123,7 @@ class KMCropPropertyController: NSViewController {
         separateLabel.font = ComponentLibrary.shared.getFontFromKey("mac/body-m-regular")
         
         separateSwitch.properties = ComponentSwitchProperty(size: .s, open: false, isDisabled: false)
+        separateSwitch.setTarget(self, action: #selector(switchAction(_:)))
         
         autoLabel.stringValue = KMLocalizedString("Auto")
         autoLabel.textColor = ComponentLibrary.shared.getComponentColorFromKey("comp-form/colorText-label")
@@ -86,6 +134,7 @@ class KMCropPropertyController: NSViewController {
         autoTipsView.toolTip = KMLocalizedString("autoTipsView tooltips")
         
         autoSwitch.properties = ComponentSwitchProperty(size: .s, open: false, isDisabled: false)
+        autoSwitch.setTarget(self, action: #selector(switchAction(_:)))
         
         //PageSize
         whiteMarginLabel.stringValue = KMLocalizedString("Crop Page Size")
@@ -156,7 +205,6 @@ class KMCropPropertyController: NSViewController {
         pageRangeLabel.textColor = ComponentLibrary.shared.getComponentColorFromKey("colorText/2")
         pageRangeLabel.font = ComponentLibrary.shared.getFontFromKey("mac/body-s-medium")
         
-         
         cropButton.properties = ComponentButtonProperty(type: .primary, size: .m, buttonText: KMLocalizedString("Apply"), keepPressState: false)
         cropButton.setTarget(self, action: #selector(cropButtonClicked(_:)))
     }
@@ -173,6 +221,11 @@ class KMCropPropertyController: NSViewController {
         let selectionRect = pdfView.selectionRect
         
         //White Margin
+        separateSwitch.properties.open = cropSeparateOn
+        separateSwitch.reloadData()
+        
+        autoSwitch.properties.open = cropAutoOn
+        autoSwitch.reloadData()
         
         //PageSize
         sizeWidthInput.properties.maxSize = Int(pageBounds.size.width)
@@ -183,6 +236,12 @@ class KMCropPropertyController: NSViewController {
         sizeHeightInput.properties.text = String(format: "%.0f", selectionRect.size.height)
         sizeHeightInput.reloadData()
         
+        if syncChangeBounds {
+            sizeSyncButton.properties.state = .pressed
+        } else {
+            sizeSyncButton.properties.state = .normal
+        }
+        sizeSyncButton.reloadData()
         //PageMargin
         
         pageLeftInput.properties.maxSize = Int(pageBounds.size.width)
@@ -214,18 +273,49 @@ class KMCropPropertyController: NSViewController {
     @objc func sizeSyncButtonClicked(_ sender: ComponentButton) {
         syncChangeBounds = !syncChangeBounds
         
-        if syncChangeBounds {
-            sizeSyncButton.properties.state = .pressed
+        reloadData()
+    }
+    
+    @objc func cropButtonClicked(_ sender: ComponentButton) {
+        if cropSeparateOn {
+            delegate?.kmCropControllerDidCropSeparate?(self, pangeRangeSelectView)
+        } else if cropAutoOn {
+            delegate?.kmCropControllerDidCropAuto?(self, pangeRangeSelectView)
         } else {
-            sizeSyncButton.properties.state = .normal
+            delegate?.kmCropControllerDidCrop?(self, pdfView?.selectionRect ?? CGRectZero, pangeRangeSelectView)
         }
-        sizeSyncButton.reloadData()
     }
     
-    @objc func cropButtonClicked(_ sender: ComponentButton) {
-        delegate?.kmCropControllerDidCrop?(self, pdfView?.selectionRect ?? CGRectZero, pangeRangeSelectView)
+    @objc func switchAction(_ sender: ComponentSwitch) {
+        guard let pdfView = self.pdfView else {
+            return
+        }
+        
+        guard let page = pdfView.document.page(at: 0) else {
+            return
+        }
+        
+        if sender == separateSwitch {
+            cropSeparateOn = sender.properties.open
+            cropAutoOn = false
+            
+            let rect = KMCropTools.getPageForegroundBox(page)
+            pdfView.selectionRect = rect
+            pdfView.setNeedsDisplayForVisiblePages()
+            
+        } else if sender == autoSwitch {
+            cropAutoOn = sender.properties.open
+            cropSeparateOn = false
+            
+            let rect = KMCropTools.getPageForegroundBox(page)
+            pdfView.selectionRect = rect
+            pdfView.setNeedsDisplayForVisiblePages()
+            
+        }
+        reloadData()
     }
     
+    
 }
 
 //MARK: - ComponentInputNumberDelegate
@@ -247,8 +337,22 @@ extension KMCropPropertyController: ComponentInputNumberDelegate {
   
         var rect = pdfView.selectionRect
         if inputNumber == sizeWidthInput {
+            if syncChangeBounds {
+                var scale: CGFloat = 0
+                if rect.size.width != 0 {
+                    scale = value / rect.size.width
+                }
+                rect.size.height *= scale
+            }
             rect.size.width = value
         } else if inputNumber == sizeHeightInput {
+            if syncChangeBounds {
+                var scale: CGFloat = 0
+                if rect.size.height != 0 {
+                    scale = value / rect.size.height
+                }
+                rect.size.width *= scale
+             }
             rect.size.height = value
         } else if inputNumber == pageLeftInput {
             rect.origin.x = value
@@ -262,6 +366,9 @@ extension KMCropPropertyController: ComponentInputNumberDelegate {
         pdfView.selectionRect = rect
         pdfView.setNeedsDisplayForVisiblePages()
         
+        cropAutoOn = false
+        cropSeparateOn = false
+
         reloadData()
     }
 }

+ 37 - 19
PDF Office/PDF Master/KMClass/KMPDFViewController/KMMainViewController.swift

@@ -1189,25 +1189,12 @@ import KMComponentLibrary
         
     }
     
-    //MARK: - Crop
+    //MARK: - Crop Action
     
-    // 白边距
-    @objc func smart_cropAllPage() {
-   
-        var rectArray: Array<NSRect> = []
-        for i in 0 ..< self.listView.document.pageCount {
-            progressC?.increment(by: Double(i))
-            progressC?.doubleValue = Double(i)
-            let page = self.listView.document.page(at: i)
-            let rect = KMCropTools.getPageForegroundBox(page!)
-            rectArray.append(rect)
-        }
-    }
-    
-    // 自动
-    @objc func auto_cropAllPage() {
+    // 白边距,统一大小
+    @objc func auto_cropPagesWhiteMargin(_ pageIndexs: [UInt]) {
         var size = NSZeroSize
-        for i in 0 ..< self.listView.document.pageCount {
+        for i in pageIndexs {
             let page = self.listView.document.page(at: i)
             let rect = KMCropTools.getPageForegroundBox(page!)
             size.width = fmax(size.width, NSWidth(rect))
@@ -1215,7 +1202,7 @@ import KMComponentLibrary
         }
         
         var rectArray: Array<NSRect> = []
-        for i in 0 ..< self.listView.document.pageCount {
+        for i in pageIndexs {
             progressC?.increment(by: Double(i))
             progressC?.doubleValue = Double(i)
             let page = self.listView.document.page(at: i)
@@ -1249,6 +1236,7 @@ import KMComponentLibrary
             
             rectArray.append(rect)
         }
+        self.cropPages(atIndexs: pageIndexs, to: rectArray)
          
     }
     
@@ -1282,7 +1270,7 @@ import KMComponentLibrary
     }
     
     
-    //MARK: - Share
+    //MARK: - Share Action
     @objc private func shareDocument(sender: NSView) {
         let document = self.listView.document ?? CPDFDocument()
         if  document?.documentURL == nil {
@@ -2081,6 +2069,36 @@ extension KMMainViewController: KMCropControllerDelegate {
         cropPages(atIndexs: uIndexs, to: [cropRect])
         removeCropController()
     }
+    
+    func kmCropControllerDidCropSeparate(_ controller: KMCropController, _ view: KMPageRangeSelectView) {
+        let indexs = view.getSelectedPageIndex(listView.document)
+        
+        var rectArray: Array<NSRect> = []
+        var uIndexs: [UInt] = []
+        for index in indexs {
+            if index > 0 {
+                uIndexs.append(UInt(index-1))
+                
+                let page = self.listView.document.page(at: UInt(index-1))
+                let rect = KMCropTools.getPageForegroundBox(page!)
+                rectArray.append(rect)
+             }
+        }
+        cropPages(atIndexs: uIndexs, to: rectArray)
+        removeCropController()
+    }
+    
+    func kmCropControllerDidCropAuto(_ controller: KMCropController, _ view: KMPageRangeSelectView) {
+        let indexs = view.getSelectedPageIndex(listView.document)
+        var uIndexs: [UInt] = []
+        for index in indexs {
+            if index > 0 {
+                uIndexs.append(UInt(index-1))
+            }
+        }
+        auto_cropPagesWhiteMargin(uIndexs)
+    }
+    
 }
 
 //MARK: - KMWatermarkControllerDelegate 水印相关代理

+ 12 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/PDFImages.xcassets/PDF_Edit/edit_Reset.imageset/Contents.json

@@ -0,0 +1,12 @@
+{
+  "images" : [
+    {
+      "filename" : "edit_Reset.pdf",
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
PDF Office/PDF Master/KMClass/KMPDFViewController/PDFImages.xcassets/PDF_Edit/edit_Reset.imageset/edit_Reset.pdf


+ 1 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/KMRightSideController.swift

@@ -15,6 +15,7 @@ class KMRightSideController: NSViewController {
     
     @IBOutlet var headerBGView: NSView!
     @IBOutlet var titleLabel: NSTextField!
+    @IBOutlet var headerRightButton: ComponentButton!
     
     @IBOutlet var infoContendView: NSView!
     

+ 10 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/KMRightSideController.xib

@@ -12,6 +12,7 @@
                 <outlet property="contendView" destination="Sx1-Eg-QqT" id="6gg-wx-Pn7"/>
                 <outlet property="emptyView" destination="caV-0D-KSQ" id="y5j-1P-GHx"/>
                 <outlet property="headerBGView" destination="TcN-JR-Ldb" id="0Ok-kE-c9g"/>
+                <outlet property="headerRightButton" destination="Rab-FM-SLM" id="y9O-Jc-gdm"/>
                 <outlet property="infoContendView" destination="5et-6F-yVg" id="ibb-Ic-3DS"/>
                 <outlet property="titleLabel" destination="Rtf-SN-4Bo" id="ddV-ja-Zc8"/>
                 <outlet property="view" destination="Hz6-mo-xeY" id="0bl-1N-x8E"/>
@@ -49,13 +50,22 @@
                                         <constraint firstAttribute="height" constant="1" id="Wcr-yw-mvt"/>
                                     </constraints>
                                 </customView>
+                                <customView translatesAutoresizingMaskIntoConstraints="NO" id="Rab-FM-SLM" customClass="ComponentButton" customModule="KMComponentLibrary">
+                                    <rect key="frame" x="232" y="8" width="24" height="24"/>
+                                    <constraints>
+                                        <constraint firstAttribute="width" constant="24" id="iLC-7V-qmC"/>
+                                        <constraint firstAttribute="height" constant="24" id="wD0-ls-QYy"/>
+                                    </constraints>
+                                </customView>
                             </subviews>
                             <constraints>
                                 <constraint firstItem="Rtf-SN-4Bo" firstAttribute="centerX" secondItem="TcN-JR-Ldb" secondAttribute="centerX" id="GZV-pG-XPa"/>
                                 <constraint firstItem="S7y-0d-xw5" firstAttribute="leading" secondItem="TcN-JR-Ldb" secondAttribute="leading" id="Kzb-5g-wtX"/>
                                 <constraint firstAttribute="height" constant="40" id="NoW-2A-4bC"/>
                                 <constraint firstAttribute="trailing" secondItem="S7y-0d-xw5" secondAttribute="trailing" id="bOI-W8-3Am"/>
+                                <constraint firstItem="Rab-FM-SLM" firstAttribute="centerY" secondItem="TcN-JR-Ldb" secondAttribute="centerY" id="lJE-fh-IgR"/>
                                 <constraint firstItem="Rtf-SN-4Bo" firstAttribute="centerY" secondItem="TcN-JR-Ldb" secondAttribute="centerY" id="nRW-oz-YOE"/>
+                                <constraint firstAttribute="trailing" secondItem="Rab-FM-SLM" secondAttribute="trailing" constant="8" id="vI7-lv-UKG"/>
                                 <constraint firstAttribute="bottom" secondItem="S7y-0d-xw5" secondAttribute="bottom" id="xKr-rQ-GAj"/>
                             </constraints>
                         </customView>

+ 35 - 158
PDF Office/PDF Reader Pro.xcodeproj/xcuserdata/kdanmobile.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -3293,13 +3293,13 @@
             filePath = "PDF Master/KMClass/KMPDFViewController/KMMainViewController.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "2314"
-            endingLineNumber = "2314"
+            startingLineNumber = "2332"
+            endingLineNumber = "2332"
             landmarkName = "KMMainViewController"
             landmarkType = "21">
             <Locations>
                <Location
-                  uuid = "18021D19-EAF7-4279-A121-953E8941B3AE - d2506868f114a772"
+                  uuid = "18021D19-EAF7-4279-A121-953E8941B3AE - d2506868f114a162"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
@@ -3309,27 +3309,12 @@
                   urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/KMClass/KMPDFViewController/KMMainViewController.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "2316"
-                  endingLineNumber = "2316"
-                  offsetFromSymbolStart = "104">
-               </Location>
-               <Location
-                  uuid = "18021D19-EAF7-4279-A121-953E8941B3AE - ce71ce32deb19f7"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMMainViewController.pdfViewEditingSelectionDidChanged(Swift.Optional&lt;__C.CPDFView&gt;) -&gt; ()"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/KMClass/KMPDFViewController/KMMainViewController.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "2316"
-                  endingLineNumber = "2316"
-                  offsetFromSymbolStart = "36">
+                  startingLineNumber = "2332"
+                  endingLineNumber = "2332"
+                  offsetFromSymbolStart = "812">
                </Location>
                <Location
-                  uuid = "18021D19-EAF7-4279-A121-953E8941B3AE - ef7fea5a86a383c2"
+                  uuid = "18021D19-EAF7-4279-A121-953E8941B3AE - ef7fea5a86a38410"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
@@ -3339,8 +3324,8 @@
                   urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/KMClass/KMPDFViewController/KMMainViewController.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "2315"
-                  endingLineNumber = "2315"
+                  startingLineNumber = "2333"
+                  endingLineNumber = "2333"
                   offsetFromSymbolStart = "64">
                </Location>
             </Locations>
@@ -3452,28 +3437,13 @@
             filePath = "PDF Master/KMClass/KMPDFViewController/KMMainViewController.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "2796"
-            endingLineNumber = "2796"
+            startingLineNumber = "2814"
+            endingLineNumber = "2814"
             landmarkName = "pdfListViewMenuItemsEditing(at:for:menuItems:)"
             landmarkType = "7">
             <Locations>
                <Location
-                  uuid = "CA957B0F-74F0-4ECF-9BE5-F996315D44F7 - 41b99e031fc7cc15"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMMainViewController.pdfListViewMenu(forEvent: Swift.Optional&lt;__C.CPDFListView&gt;, for: Swift.Optional&lt;__C.NSEvent&gt;, click: Swift.Optional&lt;Swift.AutoreleasingUnsafeMutablePointer&lt;Swift.Optional&lt;__C.NSMenu&gt;&gt;&gt;, isMoveSelectAnno: Swift.Bool) -&gt; ()"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/KMClass/KMPDFViewController/KMMainViewController.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "2797"
-                  endingLineNumber = "2797"
-                  offsetFromSymbolStart = "2964">
-               </Location>
-               <Location
-                  uuid = "CA957B0F-74F0-4ECF-9BE5-F996315D44F7 - 41b99e031fc7cc15"
+                  uuid = "CA957B0F-74F0-4ECF-9BE5-F996315D44F7 - 41b99e031fc7cfe4"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
@@ -3483,12 +3453,12 @@
                   urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/KMClass/KMPDFViewController/KMMainViewController.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "2797"
-                  endingLineNumber = "2797"
-                  offsetFromSymbolStart = "488">
+                  startingLineNumber = "2814"
+                  endingLineNumber = "2814"
+                  offsetFromSymbolStart = "3264">
                </Location>
                <Location
-                  uuid = "CA957B0F-74F0-4ECF-9BE5-F996315D44F7 - 55adff6b3ed4536"
+                  uuid = "CA957B0F-74F0-4ECF-9BE5-F996315D44F7 - 55adff6b3ed46e4"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
@@ -3498,8 +3468,8 @@
                   urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/KMClass/KMPDFViewController/KMMainViewController.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "2796"
-                  endingLineNumber = "2796"
+                  startingLineNumber = "2814"
+                  endingLineNumber = "2814"
                   offsetFromSymbolStart = "2936">
                </Location>
             </Locations>
@@ -3515,13 +3485,13 @@
             filePath = "PDF Master/KMClass/KMPDFViewController/KMMainViewController.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "2614"
-            endingLineNumber = "2614"
+            startingLineNumber = "2632"
+            endingLineNumber = "2632"
             landmarkName = "pdfListViewKeyDownIsContinue(_:theEvent:)"
             landmarkType = "7">
             <Locations>
                <Location
-                  uuid = "E36E1A66-A8B1-4248-9550-68D820499376 - 3071b91268110fed"
+                  uuid = "E36E1A66-A8B1-4248-9550-68D820499376 - 3071b91268110d70"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
@@ -3531,27 +3501,12 @@
                   urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/KMClass/KMPDFViewController/KMMainViewController.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "2616"
-                  endingLineNumber = "2616"
+                  startingLineNumber = "2627"
+                  endingLineNumber = "2627"
                   offsetFromSymbolStart = "340">
                </Location>
                <Location
-                  uuid = "E36E1A66-A8B1-4248-9550-68D820499376 - 3071b91268110f0c"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMMainViewController.pdfListViewMenuValidate(_: Swift.Optional&lt;__C.CPDFListView&gt;, menuItem: Swift.Optional&lt;__C.NSMenuItem&gt;, isTakesEffect: Swift.Optional&lt;Swift.UnsafeMutablePointer&lt;ObjectiveC.ObjCBool&gt;&gt;) -&gt; Swift.Bool"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/KMClass/KMPDFViewController/KMMainViewController.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "2615"
-                  endingLineNumber = "2615"
-                  offsetFromSymbolStart = "148">
-               </Location>
-               <Location
-                  uuid = "E36E1A66-A8B1-4248-9550-68D820499376 - 680781a588394721"
+                  uuid = "E36E1A66-A8B1-4248-9550-68D820499376 - 680781a588394593"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
@@ -3561,8 +3516,8 @@
                   urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/KMClass/KMPDFViewController/KMMainViewController.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "2615"
-                  endingLineNumber = "2615"
+                  startingLineNumber = "2633"
+                  endingLineNumber = "2633"
                   offsetFromSymbolStart = "14748">
                </Location>
             </Locations>
@@ -3578,28 +3533,13 @@
             filePath = "PDF Master/KMClass/KMPDFViewController/KMMainViewController.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "2755"
-            endingLineNumber = "2755"
+            startingLineNumber = "2773"
+            endingLineNumber = "2773"
             landmarkName = "pdfListViewLinkDestinationStart(_:withActiveAnnotation:)"
             landmarkType = "7">
             <Locations>
                <Location
-                  uuid = "829A2007-5055-4924-B2CB-8003D30BE87C - 55adff6b3ed4e3d"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMMainViewController.pdfListViewMenuItemsEditing(at: __C.CGPoint, for: Swift.Optional&lt;__C.CPDFPage&gt;, menuItems: Swift.Optional&lt;Swift.Array&lt;__C.NSMenuItem&gt;&gt;) -&gt; Swift.Optional&lt;Swift.Array&lt;__C.NSMenuItem&gt;&gt;"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/KMClass/KMPDFViewController/KMMainViewController.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "2757"
-                  endingLineNumber = "2757"
-                  offsetFromSymbolStart = "328">
-               </Location>
-               <Location
-                  uuid = "829A2007-5055-4924-B2CB-8003D30BE87C - 55adff6b3ed4e5e"
+                  uuid = "829A2007-5055-4924-B2CB-8003D30BE87C - 55adff6b3ed482d"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
@@ -3609,12 +3549,12 @@
                   urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/KMClass/KMPDFViewController/KMMainViewController.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "2756"
-                  endingLineNumber = "2756"
-                  offsetFromSymbolStart = "136">
+                  startingLineNumber = "2773"
+                  endingLineNumber = "2773"
+                  offsetFromSymbolStart = "944">
                </Location>
                <Location
-                  uuid = "829A2007-5055-4924-B2CB-8003D30BE87C - 3bb3816cf1b4cde9"
+                  uuid = "829A2007-5055-4924-B2CB-8003D30BE87C - 3bb3816cf1b4cbbb"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
@@ -3624,8 +3564,8 @@
                   urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/KMClass/KMPDFViewController/KMMainViewController.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "2755"
-                  endingLineNumber = "2755"
+                  startingLineNumber = "2773"
+                  endingLineNumber = "2773"
                   offsetFromSymbolStart = "44">
                </Location>
             </Locations>
@@ -3663,68 +3603,5 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "88C1FB77-918D-43E1-9582-4ED4DDF51ED4"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "PDF Master/KMClass/KMPDFViewController/Toolbar/KMPDFToolbarController.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "566"
-            endingLineNumber = "566"
-            landmarkName = "buttonClicked(_:)"
-            landmarkType = "7">
-            <Locations>
-               <Location
-                  uuid = "88C1FB77-918D-43E1-9582-4ED4DDF51ED4 - 343429274f673007"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMPDFToolbarController.tabsMoreButtonClicked(KMComponentLibrary.ComponentButton) -&gt; ()"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/KMClass/KMPDFViewController/Toolbar/KMPDFToolbarController.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "566"
-                  endingLineNumber = "566"
-                  offsetFromSymbolStart = "836">
-               </Location>
-               <Location
-                  uuid = "88C1FB77-918D-43E1-9582-4ED4DDF51ED4 - 65f655ee98db78ef"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMPDFToolbarController.buttonClicked(KMComponentLibrary.ComponentButton) -&gt; ()"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/KMClass/KMPDFViewController/Toolbar/KMPDFToolbarController.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "566"
-                  endingLineNumber = "566"
-                  offsetFromSymbolStart = "92">
-               </Location>
-               <Location
-                  uuid = "88C1FB77-918D-43E1-9582-4ED4DDF51ED4 - 65f655ee98db78ef"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMPDFToolbarController.buttonClicked(KMComponentLibrary.ComponentButton) -&gt; ()"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/KMClass/KMPDFViewController/Toolbar/KMPDFToolbarController.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "566"
-                  endingLineNumber = "566"
-                  offsetFromSymbolStart = "168">
-               </Location>
-            </Locations>
-         </BreakpointContent>
-      </BreakpointProxy>
    </Breakpoints>
 </Bucket>