Quellcode durchsuchen

Merge branch 'develop_2025' of git.kdan.cc:Mac_PDF/PDF_Office into develop_2025

tangchao vor 4 Monaten
Ursprung
Commit
e2264904e6

+ 0 - 2
PDF Office/KMComponentLibrary/KMComponentLibrary/View/Radio/ComponentRadio.swift

@@ -174,8 +174,6 @@ public class ComponentRadio: ComponentBaseXibView {
             }
             if properties.checkboxType != .selected {
                 properties.checkboxType = .selected
-            } else {
-                properties.checkboxType = .normal
             }
             refreshUI()
             

+ 0 - 5
PDF Office/PDF Master/KMClass/KMHomeViewController/Views/KMHomeRightView/HistoryFilesItems/KMHistoryEmptyView.xib

@@ -26,11 +26,6 @@
                                 <rect key="frame" x="0.0" y="0.0" width="520" height="184"/>
                                 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                 <subviews>
-                                    <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="2y9-br-mBz">
-                                        <rect key="frame" x="174" y="-1" width="128" height="128"/>
-                                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
-                                        <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" id="VRQ-Th-NQN"/>
-                                    </imageView>
                                     <customView translatesAutoresizingMaskIntoConstraints="NO" id="pzT-6X-APu" customClass="ComponentEmpty" customModule="KMComponentLibrary">
                                         <rect key="frame" x="0.0" y="0.0" width="520" height="184"/>
                                         <constraints>

+ 19 - 10
PDF Office/PDF Master/KMClass/KMPDFViewController/KMNDisplayViewController/KMNDisplayViewController.swift

@@ -12,15 +12,18 @@ import KMComponentLibrary
     
     //Display Mode
     @objc optional func displayViewControllerDidDisplayModeChanged(_ controller: KMNDisplayViewController)
-
+    
     //阅读模式
     @objc optional func displayViewControllerDidReadModeUpdated(_ controller: KMNDisplayViewController)
     
     //PPT
     @objc optional func displayViewControllerDidGotoSlideShow(_ controller: KMNDisplayViewController)
- 
+    
     //SplitView
     @objc optional func displayViewControllerDidSplitModeChanged(_ controller: KMNDisplayViewController)
+    
+    //SplitView
+    @objc optional func displayViewControllerDidSplitFileChanged(_ controller: KMNDisplayViewController)
 }
 
 class KMNDisplayViewController: NSViewController {
@@ -68,6 +71,12 @@ class KMNDisplayViewController: NSViewController {
 
     weak open var delegate: KMNDisplayViewControllerDelegate?
  
+    deinit {
+        print("\n\(self.className) deinit.\n")
+
+    }
+    
+    
     override func viewDidLoad() {
         super.viewDidLoad()
         // Do view setup here.
@@ -488,26 +497,26 @@ class KMNDisplayViewController: NSViewController {
         let openPanel = NSOpenPanel()
         openPanel.allowedFileTypes = ["pdf","PDF"]
         openPanel.allowsMultipleSelection = false
-        openPanel.beginSheetModal(for: self.view.window!) { [self] result in
+        openPanel.beginSheetModal(for: self.view.window!) { [weak self] result in
             if (result == .OK) {
+                guard let weakSelf = self else { return }
+                
                 let fileURL = openPanel.url
                 let pdfDoc = CPDFDocument(url: fileURL)
                 if let data = pdfDoc?.isLocked, data {
                     DispatchQueue.main.asyncAfter(deadline: .now()+0.5) {
                         KMNBaseWindowController.checkPassword(url: fileURL ?? NSURL.fileURL(withPath: ""), type: .owner) { result, pwd in
                             if (pwd.isEmpty == false) {
-
+                                
                             }
                         }
                     }
                 } else {
-                    self.viewManager?.splitPDFFileURL = fileURL
-                    self.viewManager?.splitPDFDocument = CPDFDocument(url: fileURL)
-
-                    self.reloadData()
+                    weakSelf.viewManager?.splitPDFFileURL = fileURL
+                    
+                    weakSelf.reloadData()
                 }
-                
-                self.updatePDFSplitViewInfo()
+                weakSelf.delegate?.displayViewControllerDidSplitFileChanged?(weakSelf)
             }
         }
     }

+ 31 - 176
PDF Office/PDF Master/Class/PDFWindowController/PDFListView/Split/View/KMSecondaryPDFView.swift

@@ -49,7 +49,6 @@ class KMSecondaryPDFView: CPDFListView {
             if self._selectsText != newValue {
                 self._selectsText = newValue
                 if newValue == false {
-//                    [self setCurrentSelection:RUNNING_AFTER(10_11) ? [[[PDFSelection alloc] initWithDocument:[self document]] autorelease] : nil];
                     self.currentSelection = CPDFSelection(document: self.document)
                 }
                 self.toolModeButton?.state = self.selectsText ? .on : .off
@@ -70,18 +69,16 @@ class KMSecondaryPDFView: CPDFListView {
     private var SKDefaultScaleMenuLabels = ["=", "Auto", "10%", "20%", "25%", "35%", "50%", "60%", "71%", "85%", "100%", "120%", "141%", "170%", "200%", "300%", "400%", "600%", "800%", "1000%", "1200%", "1400%", "1700%", "2000%"]
     private var SKDefaultScaleMenuFactors = [0.0, 0.0, 0.1, 0.2, 0.25, 0.35, 0.5, 0.6, 0.71, 0.85, 1.0, 1.2, 1.41, 1.7, 2.0, 3.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0, 17.0, 20.0]
     
-//    #define SKMinDefaultScaleMenuFactor (SKDefaultScaleMenuFactors[2])
     private var SKMinDefaultScaleMenuFactor = 0.1
     private var SKDefaultScaleMenuFactorsCount = 24
     
-    
     private var CONTROL_FONT_SIZE = 10.0
     private var CONTROL_HEIGHT = 15.0
     private var CONTROL_WIDTH_OFFSET = 20.0
-
+    
     override func draw(_ dirtyRect: NSRect) {
         super.draw(dirtyRect)
-
+        
         // Drawing code here.
     }
     
@@ -113,9 +110,6 @@ class KMSecondaryPDFView: CPDFListView {
         self.selectsText = KMDataManager.ud_bool(forKey: SKLastSecondarySelectsTextKey)
         
         NotificationCenter.default.addObserver(self, selector: #selector(handlePageChangedNotification), name: NSNotification.Name.CPDFViewPageChanged, object: self)
-//        if ([PDFView instancesRespondToSelector:@selector(magnifyWithEvent:)] == NO || [PDFView instanceMethodForSelector:@selector(magnifyWithEvent:)] == [NSView instanceMethodForSelector:@selector(magnifyWithEvent:)])
-//            [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handlePDFViewScaleChangedNotification:)
-//                                                         name:PDFViewScaleChangedNotification object:self];
         NotificationCenter.default.addObserver(self, selector: #selector(themeChanged), name: NSApplication.interfaceThemeChangedNotification, object: nil)
     }
     
@@ -128,12 +122,12 @@ class KMSecondaryPDFView: CPDFListView {
             self.scalePopUpButton?.isEnabled = true
             self.scalePopUpButton?.refusesFirstResponder = true
             (self.scalePopUpButton?.cell as? NSPopUpButtonCell)?.usesItemFromMenu = true
-
+            
             // set a suitable font, the control size is 0, 1 or 2
             self.scalePopUpButton?.font = .toolTipsFont(ofSize: CONTROL_FONT_SIZE)
-
+            
             var cnt = 0
-            var numberOfDefaultItems = SKDefaultScaleMenuFactorsCount
+            let numberOfDefaultItems = SKDefaultScaleMenuFactorsCount
             var curItem: NSMenuItem?
             var label: String?
             var width: CGFloat = 0
@@ -142,7 +136,6 @@ class KMSecondaryPDFView: CPDFListView {
             let attrs = [NSAttributedString.Key.font : self.scalePopUpButton?.font ?? .toolTipsFont(ofSize: CONTROL_FONT_SIZE)]
             var maxIndex = 0
             
-            // fill it
             for i in 0 ..< numberOfDefaultItems {
                 cnt = i
                 label = Bundle.main.localizedString(forKey: SKDefaultScaleMenuLabels[i], value: "", table: "")
@@ -155,7 +148,7 @@ class KMSecondaryPDFView: CPDFListView {
                 curItem = self.scalePopUpButton?.item(at: cnt)
                 curItem?.representedObject = SKDefaultScaleMenuFactors[cnt] > 0.0 ? NSNumber(value: SKDefaultScaleMenuFactors[cnt]) : nil
             }
-            // select the appropriate item, adjusting the scaleFactor if necessary
+            
             if self.synchronizeZoom {
                 self.setSynchronizeZoom(true, adjustPopup: true)
             } else if self.autoScales {
@@ -163,55 +156,44 @@ class KMSecondaryPDFView: CPDFListView {
             } else {
                 self.setScaleFactor(self.scaleFactor, adjustPopup: true)
             }
-
-            // Make sure the popup is big enough to fit the largest cell
+            
             self.sizePopUpToItemAtIndex(self.scalePopUpButton, anIndex: UInt(maxIndex))
-
-            // don't let it become first responder
+            
             self.scalePopUpButton?.refusesFirstResponder = true
-
-            // hook it up
+            
             self.scalePopUpButton?.target = self
             self.scalePopUpButton?.action = #selector(scalePopUpAction)
         }
         
         if (self.pagePopUpButton == nil) {
-            // create it
             self.pagePopUpButton = NSPopUpButton(frame: NSMakeRect(0.0, 0.0, 1.0, 1.0), pullsDown: false)
             self.pagePopUpButton?.cell?.controlSize = .small
             self.pagePopUpButton?.isBordered = false
             self.pagePopUpButton?.isEnabled = true
             self.pagePopUpButton?.refusesFirstResponder = true
             (self.pagePopUpButton?.cell as? NSPopUpButtonCell)?.usesItemFromMenu = true
-
-            // set a suitable font, the control size is 0, 1 or 2
+            
             self.pagePopUpButton?.font = .toolTipsFont(ofSize: CONTROL_FONT_SIZE)
             
             self.reloadPagePopUpButton()
-
-            // don't let it become first responder
+            
             self.pagePopUpButton?.refusesFirstResponder = true
-
-            // hook it up
+            
             self.pagePopUpButton?.target = self
             self.pagePopUpButton?.action = #selector(pagePopUpAction)
         }
         
         if (self.toolModeButton == nil) {
-            // create it
             self.toolModeButton = NSButton(frame: NSMakeRect(0.0, 0.0, 17.0, 15.0))
             
             self.toolModeButton?.setButtonType(.onOff)
             self.toolModeButton?.bezelStyle = .texturedSquare
-//            self.toolModeButton?.image = NSImage(named: SKImageNameTextToolAdorn)
             self.toolModeButton?.image = NSImage(named: "TextToolAdorn")
             
             self.toolModeButton?.state = self.selectsText ? .on : .off
             
-            // don't let it become first responder
             self.toolModeButton?.refusesFirstResponder = true
             
-            // hook it up
             self.toolModeButton?.target = self
             self.toolModeButton?.action = #selector(toolModeButtonAction)
         }
@@ -304,8 +286,6 @@ class KMSecondaryPDFView: CPDFListView {
         var maxWidth = 0.0
         var maxIndex = 0
         
-//        while (count--)
-//            [pagePopUpButton removeItemAtIndex:count];
         while count > 0 {
             count -= 1
             self.pagePopUpButton?.removeItem(at: count)
@@ -324,14 +304,13 @@ class KMSecondaryPDFView: CPDFListView {
             self.sizePopUpToItemAtIndex(self.pagePopUpButton, anIndex: UInt(maxIndex))
             self.pagePopUpButton?.selectItem(at: self.currentPageIndex)
             if (self.controlView != nil) {
-                //                [controlView setFrameSize:NSMakeSize(NSWidth([toolModeButton frame]) + NSWidth([pagePopUpButton frame]) + NSWidth([scalePopUpButton frame]), NSHeight([controlView frame]))];
                 let w = NSWidth(self.toolModeButton?.frame ?? .zero) + NSWidth(self.pagePopUpButton?.frame ?? .zero) + NSWidth(self.scalePopUpButton?.frame ?? .zero)
                 let h = NSHeight(self.controlView?.frame ?? .zero)
                 self.controlView?.setFrameSize(NSMakeSize(w, h))
             }
         }
     }
-
+    
     @objc func scalePopUpAction(_ sender: NSPopUpButton) {
         let selectedFactorObject = sender.selectedItem?.representedObject
         if (selectedFactorObject != nil) {
@@ -341,15 +320,15 @@ class KMSecondaryPDFView: CPDFListView {
         } else {
             self.setAutoScales(true, adjustPopup: false)
         }
-     }
-
+    }
+    
     @objc func pagePopUpAction(_ sender: NSPopUpButton) {
         self.go(toPageIndex: sender.indexOfSelectedItem, animated: false)
-     }
-
+    }
+    
     @objc func toolModeButtonAction(_ sender: NSButton) {
         self.selectsText = sender.state == .on
-     }
+    }
     
     override var canZoomIn: Bool {
         if super.canZoomIn == false {
@@ -365,7 +344,7 @@ class KMSecondaryPDFView: CPDFListView {
         let numberOfDefaultItems = SKDefaultScaleMenuFactorsCount
         var i = self.lowerIndex(for: self.scaleFactor)
         if i < numberOfDefaultItems-1 {
-           i += 1
+            i += 1
         }
         self.setScaleFactor(SKDefaultScaleMenuFactors[Int(i)], adjustPopup: true)
     }
@@ -381,7 +360,7 @@ class KMSecondaryPDFView: CPDFListView {
     override func zoomOut(_ sender: Any!) {
         var i = self.upperIndex(for: self.scaleFactor)
         if i > 2 {
-           i -= 1
+            i -= 1
         }
         self.setScaleFactor(SKDefaultScaleMenuFactors[Int(i)], adjustPopup: true)
     }
@@ -409,7 +388,7 @@ class KMSecondaryPDFView: CPDFListView {
     }
     
     @objc func doPhysicalSize(_ sender: AnyObject?) {
-//        [self setPhysicalScaleFactor:1.0];
+        
     }
     
     @objc func changeToolMode(_ sender: NSMenuItem?) {
@@ -425,8 +404,6 @@ class KMSecondaryPDFView: CPDFListView {
             while let cnt = menu?.numberOfItems, cnt > 0 {
                 item = menu?.item(at: 0)
                 if item!.isSeparatorItem || selectionActions.contains(NSStringFromSelector(item!.action!)) {
-                    //                if ([item isSeparatorItem] || [self validateMenuItem:item] == NO || [selectionActions containsObject:NSStringFromSelector([item action])])
-                    //                    [menu removeItemAtIndex:0];
                     menu?.removeItem(at: 0)
                 } else {
                     break
@@ -441,7 +418,6 @@ class KMSecondaryPDFView: CPDFListView {
             }
         }
         
-//        var i = menu?.indexOfItem(withTarget: self, andAction: NSSelectorFromString("menuItemClick_TwoPagesContinuous:"))
         var i = menu?.indexOfItem(withTarget: nil, andAction: NSSelectorFromString("menuItemClick_TwoPagesContinuous:"))
         if (i == -1) {
             i = menu?.indexOfItem(withTarget: self, andAction: NSSelectorFromString("_toggleContinuous:"))
@@ -462,7 +438,6 @@ class KMSecondaryPDFView: CPDFListView {
         if let data = i, data != -1 {
             menu?.item(at: data)?.action = #selector(doActualSize)
             item = menu?.insertItem(withTitle: KMLocalizedString("Physical Size"), action: #selector(doPhysicalSize), target: self, at: data + 1)
-//            [item setKeyEquivalentModifierMask:NSAlternateKeyMask];
             item?.keyEquivalentModifierMask = [.option]
             item?.isAlternate = true
         }
@@ -473,7 +448,7 @@ class KMSecondaryPDFView: CPDFListView {
         } else if let data = i {
             i = data - 1
         }
-
+        
         if let data = i {
             _ = menu?.insertItem(withTitle: KMLocalizedString("Scroll Tool"), action: #selector(changeToolMode), target: self, at: data)
             _ = menu?.insertItem(withTitle: KMLocalizedString("Text Tool"), action: #selector(changeToolMode), target: self, tag: 1 ,at: data)
@@ -497,116 +472,6 @@ class KMSecondaryPDFView: CPDFListView {
         }
     }
     
-    /*
-
-     // we don't want to steal the printDocument: action from the responder chain
-     - (void)printDocument:(id)sender{}
-
-     - (BOOL)respondsToSelector:(SEL)aSelector {
-         return aSelector != @selector(printDocument:) && [super respondsToSelector:aSelector];
-     }
-
-     #pragma mark Gestures
-
-     - (void)beginGestureWithEvent:(NSEvent *)theEvent {
-         if ([[SKSecondaryPDFView superclass] instancesRespondToSelector:_cmd])
-             [super beginGestureWithEvent:theEvent];
-         startScale = [self scaleFactor];
-     }
-
-     - (void)endGestureWithEvent:(NSEvent *)theEvent {
-         if (fabs(startScale - [self scaleFactor]) > 0.001)
-             [self setScaleFactor:fmax([self scaleFactor], SKMinDefaultScaleMenuFactor) adjustPopup:YES];
-         if ([[SKSecondaryPDFView superclass] instancesRespondToSelector:_cmd])
-             [super endGestureWithEvent:theEvent];
-     }
-
-     - (void)magnifyWithEvent:(NSEvent *)theEvent {
-         if ([[NSUserDefaults standardUserDefaults] boolForKey:SKDisablePinchZoomKey] == NO && [theEvent respondsToSelector:@selector(magnification)]) {
-             if ([theEvent respondsToSelector:@selector(phase)] && [theEvent phase] == NSEventPhaseBegan)
-                 startScale = [self scaleFactor];
-             CGFloat magnifyFactor = (1.0 + fmax(-0.5, fmin(1.0 , [theEvent magnification])));
-             [super setScaleFactor:magnifyFactor * [self scaleFactor]];
-             if ([theEvent respondsToSelector:@selector(phase)] && ([theEvent phase] == NSEventPhaseEnded || [theEvent phase] == NSEventPhaseCancelled) && fabs(startScale - [self scaleFactor]) > 0.001)
-                 [self setScaleFactor:fmax([self scaleFactor], SKMinDefaultScaleMenuFactor) adjustPopup:YES];
-         }
-     }
-
-     #pragma mark Dragging
-
-     - (void)mouseDown:(NSEvent *)theEvent{
-         [[self window] makeFirstResponder:self];
-         
-         NSUInteger modifiers = [theEvent standardModifierFlags];
-         
-         if (modifiers == NSCommandKeyMask) {
-             
-             [[NSCursor arrowCursor] push];
-             
-             // eat up mouseDragged/mouseUp events, so we won't get their event handlers
-             NSEvent *lastEvent = theEvent;
-             while (YES) {
-                 lastEvent = [[self window] nextEventMatchingMask: NSLeftMouseUpMask | NSLeftMouseDraggedMask];
-                 if ([lastEvent type] == NSLeftMouseUp)
-                     break;
-             }
-             
-             [NSCursor pop];
-             [self performSelector:@selector(mouseMoved:) withObject:lastEvent afterDelay:0];
-             
-             NSPoint location = NSZeroPoint;
-             PDFPage *page = [self pageAndPoint:&location forEvent:theEvent nearest:YES];
-             [synchronizedPDFView goToDestination:[[[PDFDestination alloc] initWithPage:page atPoint:location] autorelease]];
-             
-         } else if (modifiers == (NSEventModifierFlagCommand | NSEventModifierFlagShift)) {
-             
-             [self doPdfsyncWithEvent:theEvent];
-             
-         } else if ([self selectsText] == NO) {
-             
-             [self doDragWithEvent:theEvent];
-             
-         } else if (([self areaOfInterestForMouse:theEvent] & SKDragArea)) {
-             
-             [self doDragWithEvent:theEvent];
-             
-         } else {
-             
-             [super mouseDown:theEvent];
-             
-         }
-     }
-
-     #define TEXT_SELECT_MARGIN_SIZE ((NSSize){80.0, 100.0})
-
-     - (PDFAreaOfInterest)areaOfInterestForMouse:(NSEvent *)theEvent {
-         PDFAreaOfInterest area = [super areaOfInterestForMouse:theEvent];
-         NSInteger modifiers = [theEvent standardModifierFlags];
-         
-         if ((modifiers & ~NSEventModifierFlagShift) == NSEventModifierFlagCommand) {
-             area = (area & kPDFPageArea) | SKSpecialToolArea;
-         } else if ([self selectsText] == NO) {
-             area = (area & kPDFPageArea) | SKDragArea;
-         } else if ((area & kPDFPageArea) && (area & kPDFTextArea) == 0 && modifiers == 0) {
-             NSPoint p = [theEvent locationInWindow];
-             PDFPage *page = [self pageAndPoint:&p forEvent:theEvent nearest:YES];
-             if ([[page selectionForRect:SKRectFromCenterAndSize(p, TEXT_SELECT_MARGIN_SIZE)] hasCharacters] == NO)
-                 area |= SKDragArea;
-         }
-         
-         return area;
-     }
-
-     - (void)setCursorForAreaOfInterest:(PDFAreaOfInterest)area {
-         if ((area & SKSpecialToolArea))
-             [[NSCursor arrowCursor] set];
-         else if ((area & SKDragArea))
-             [[NSCursor openHandCursor] set];
-         else
-             [super setCursorForAreaOfInterest:area];
-     }
-     */
-    
     // MARK: - mark Notification handling
     
     private func _startObservingSynchronizedPDFView() {
@@ -614,7 +479,7 @@ class KMSecondaryPDFView: CPDFListView {
             NotificationCenter.default.addObserver(self, selector: #selector(handleSynchronizedScaleChangedNotification), name: NSNotification.Name.CPDFViewScaleChanged, object: self.synchronizedPDFView)
         }
     }
-     
+    
     private func _stopObservingSynchronizedPDFView() {
         if self.synchronizedPDFView != nil {
             NotificationCenter.default.removeObserver(self, name: NSNotification.Name.CPDFViewScaleChanged, object: self.synchronizedPDFView)
@@ -622,9 +487,7 @@ class KMSecondaryPDFView: CPDFListView {
     }
     
     @objc func handlePageChangedNotification(_ notification: Notification) {
-//        if self.document != nil && !self.document.isLocked {
-//            self.pagePopUpButton?.selectItem(at: self.currentPageIndex)
-//        }
+        
     }
     
     @objc func handleSynchronizedScaleChangedNotification(_ notification: Notification) {
@@ -650,7 +513,7 @@ class KMSecondaryPDFView: CPDFListView {
     }
     
     func sizePopUpToItemAtIndex(_ popUpButton: NSPopUpButton?, anIndex: UInt) {
-        var i = popUpButton?.indexOfSelectedItem
+        let i = popUpButton?.indexOfSelectedItem
         popUpButton?.selectItem(at: Int(anIndex))
         popUpButton?.sizeToFit()
         popUpButton?.setFrameSize(NSMakeSize(NSWidth(popUpButton?.frame ?? .zero) - CONTROL_WIDTH_OFFSET, CONTROL_HEIGHT))
@@ -707,7 +570,7 @@ class KMSecondaryPDFView: CPDFListView {
             self.switching = savedSwitching
         }
     }
-
+    
     func setAutoScales(_ newAuto: Bool, adjustPopup flag: Bool) {
         let savedSwitching = self.switching
         self.switching = true
@@ -723,10 +586,8 @@ class KMSecondaryPDFView: CPDFListView {
     
     
     func lowerIndex(for scaleFactor: CGFloat) -> UInt {
-//        var i = 0
-        var count = SKDefaultScaleMenuFactorsCount
+        let count = SKDefaultScaleMenuFactorsCount
         for i in 1 ..< count-1 {
-//        for (i = count - 1; i > 1; i--) {
             let index = count-i
             if (scaleFactor * 1.01 > SKDefaultScaleMenuFactors[index]) {
                 return UInt(index)
@@ -734,19 +595,17 @@ class KMSecondaryPDFView: CPDFListView {
         }
         return 2
     }
-
+    
     func upperIndex(for scaleFactor: CGFloat) -> UInt {
-//        NSUInteger i, count = SKDefaultScaleMenuFactorsCount;
-        var count = SKDefaultScaleMenuFactorsCount
+        let count = SKDefaultScaleMenuFactorsCount
         for i in 2 ..< count {
-//        for (i = 2; i < count; i++) {
             if (scaleFactor * 0.99 < SKDefaultScaleMenuFactors[i]) {
                 return UInt(i)
             }
         }
         return UInt(count - 1)
     }
- 
+    
     func index(for scaleFactor: CGFloat) -> UInt {
         let lower = self.lowerIndex(for: scaleFactor)
         let upper = self.upperIndex(for: scaleFactor)
@@ -768,8 +627,6 @@ class KMSecondaryPDFView: CPDFListView {
             menuItem.state = abs(self.scaleFactor-1.0) < 0.1 ? .on : .off
             return true
         } else if action == #selector(doPhysicalSize) {
-//            [menuItem setState:([self autoScales] || fabs([self physicalScaleFactor] - 1.0 ) > 0.01) ? NSOffState : NSOnState];
-//            return YES;
         } else if action == #selector(changeToolMode) {
             if self.selectsText {
                 menuItem.state = menuItem.tag == 1 ? .on : .off
@@ -778,9 +635,7 @@ class KMSecondaryPDFView: CPDFListView {
             }
             return true
         } else if let supCls = self.superclass as? NSObject.Type {
-//            if supCls.instancesRespond(to: _cmd) {
-                return super.validate(menuItem)
-//            }
+            return super.validate(menuItem)
         }
         return true
     }

+ 108 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/KMNDisplayViewController/KMSplitPDFViewController/KMSplitPDFViewController.swift

@@ -0,0 +1,108 @@
+//
+//  KMSplitPDFViewController.swift
+//  PDF Reader Pro
+//
+//  Created by Niehaoyu on 2024/10/29.
+//
+
+import Cocoa
+import KMComponentLibrary
+
+@objc protocol KMSplitPDFViewControllerDelegate: AnyObject {
+    
+    @objc optional func splitPDFViewControllerDidUpdateFilePath(_ controller: KMSplitPDFViewController)
+ 
+}
+
+class KMSplitPDFViewController: NSViewController {
+
+    @IBOutlet var contendView: NSView!
+    
+    @IBOutlet var emptyView: ComponentEmpty!
+     
+    var pdfView: KMSecondaryPDFView?
+    var viewManager: KMPDFViewManager?
+
+    weak open var delegate: KMSplitPDFViewControllerDelegate?
+
+    deinit {
+        pdfView?.removeFromSuperview()
+        
+        KMPrint(self.className + " deinit.")
+
+    }
+    
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        // Do view setup here.
+        
+        view.wantsLayer = true
+        view.layer?.backgroundColor = ComponentLibrary.shared.getComponentColorFromKey("colorBg/layout-low").cgColor
+         
+        setupProperty()
+        
+        reloadData()
+    }
+    
+    func setupProperty() {
+        
+        emptyView.properties = ComponentEmptyProperty(emptyType: .add_File,
+                                                      text: KMLocalizedString("No recently opened file"),
+                                                      subText: KMLocalizedString("Click Open File or drag-and-drop file here to open them."))
+        emptyView.setTarget(self, action: #selector(emptyViewAddFileClicked(_:)))
+        
+        if pdfView == nil {
+            pdfView = KMSecondaryPDFView.init()
+        }
+        pdfView?.frame = contendView.bounds
+        pdfView?.autoresizingMask = [.width, .height]
+        contendView.addSubview(pdfView!)
+        
+    }
+    
+    func reloadData() {
+        if let fileURL = viewManager?.splitPDFFileURL {
+            emptyView.isHidden = true
+            pdfView?.isHidden = false
+            
+            let document = CPDFDocument(url: fileURL)
+            let isLocked = document?.isLocked ?? false
+            if isLocked {
+                if let pw = viewManager?.splitPDFFilePassword {
+                    document?.unlock(withPassword: pw)
+                }
+            }
+            pdfView?.document = document
+            
+        } else {
+            emptyView.isHidden = false
+            pdfView?.isHidden = true
+            
+        }
+    }
+    
+    @objc func emptyViewAddFileClicked(_ sender: NSView) {
+        let openPanel = NSOpenPanel()
+        openPanel.allowedFileTypes = ["pdf", "PDF"]
+        openPanel.allowsMultipleSelection = false
+        openPanel.beginSheetModal(for: self.view.window!) { [weak self] result in
+             if result == NSApplication.ModalResponse.OK {
+                 if let url = openPanel.url {
+                     guard let weakSelf = self else { return }
+                     
+                     weakSelf.viewManager?.splitPDFFileURL = url
+                     
+                     let document = CPDFDocument(url: url)
+                     let isLocked = document?.isLocked ?? false
+                     if isLocked {
+                         
+                     }
+                     weakSelf.reloadData()
+                     
+                     weakSelf.delegate?.splitPDFViewControllerDidUpdateFilePath?(weakSelf)
+                 }
+            }
+        }
+    }
+    
+}

+ 48 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/KMNDisplayViewController/KMSplitPDFViewController/KMSplitPDFViewController.xib

@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+    <dependencies>
+        <deployment identifier="macosx"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <customObject id="-2" userLabel="File's Owner" customClass="KMSplitPDFViewController" customModule="PDF_Reader_Pro" customModuleProvider="target">
+            <connections>
+                <outlet property="contendView" destination="h9a-I9-jjo" id="BRC-SH-k8f"/>
+                <outlet property="emptyView" destination="a7b-yc-tgX" id="uD0-vi-qen"/>
+                <outlet property="view" destination="Hz6-mo-xeY" id="0bl-1N-x8E"/>
+            </connections>
+        </customObject>
+        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
+        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
+        <customView id="Hz6-mo-xeY">
+            <rect key="frame" x="0.0" y="0.0" width="480" height="272"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+            <subviews>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="h9a-I9-jjo">
+                    <rect key="frame" x="0.0" y="0.0" width="480" height="272"/>
+                    <subviews>
+                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="a7b-yc-tgX" customClass="ComponentEmpty" customModule="KMComponentLibrary">
+                            <rect key="frame" x="90" y="44" width="300" height="184"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="184" id="9Uw-t2-seD"/>
+                                <constraint firstAttribute="width" constant="300" id="hMx-Oj-Sl1"/>
+                            </constraints>
+                        </customView>
+                    </subviews>
+                    <constraints>
+                        <constraint firstItem="a7b-yc-tgX" firstAttribute="centerY" secondItem="h9a-I9-jjo" secondAttribute="centerY" id="IcB-NO-E4H"/>
+                        <constraint firstItem="a7b-yc-tgX" firstAttribute="centerX" secondItem="h9a-I9-jjo" secondAttribute="centerX" id="aTc-ah-Z9O"/>
+                    </constraints>
+                </customView>
+            </subviews>
+            <constraints>
+                <constraint firstItem="h9a-I9-jjo" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" id="9qb-rk-JNI"/>
+                <constraint firstAttribute="bottom" secondItem="h9a-I9-jjo" secondAttribute="bottom" id="iT6-9F-W7Q"/>
+                <constraint firstItem="h9a-I9-jjo" firstAttribute="top" secondItem="Hz6-mo-xeY" secondAttribute="top" id="jZs-4f-nrG"/>
+                <constraint firstAttribute="trailing" secondItem="h9a-I9-jjo" secondAttribute="trailing" id="mZE-ZG-e7K"/>
+            </constraints>
+            <point key="canvasLocation" x="116" y="114"/>
+        </customView>
+    </objects>
+</document>

+ 36 - 7
PDF Office/PDF Master/KMClass/KMPDFViewController/KMPDFViewController.swift

@@ -51,6 +51,8 @@ class KMPDFViewController: NSViewController {
     
     //DisplaySetting
     private var displaySettingController: KMNDisplayViewController?
+    
+    private var splitPDFController: KMSplitPDFViewController?
 
     override func viewDidLoad() {
         super.viewDidLoad()
@@ -95,7 +97,7 @@ class KMPDFViewController: NSViewController {
     //MARK: - SplitView
     func setUpSplitView() {
         infoContendSplitView.wantsLayer = true
-        infoContendSplitView.layer?.backgroundColor = NSColor.green.cgColor
+        infoContendSplitView.layer?.backgroundColor = NSColor.clear.cgColor
         infoContendSplitView.delegate = self
         infoContendSplitView.layer?.masksToBounds = true
         
@@ -104,6 +106,18 @@ class KMPDFViewController: NSViewController {
         
     }
     
+    func setupSplitPDFController() {
+        if splitPDFController == nil {
+            splitPDFController = KMSplitPDFViewController.init()
+        }
+        splitPDFController?.view.frame = pdfSplitBottomView.bounds
+        splitPDFController?.view.autoresizingMask = [.height, .width]
+        splitPDFController?.viewManager = self.viewManager
+        splitPDFController?.delegate = self
+        
+        pdfSplitBottomView.addSubview(splitPDFController!.view)
+    }
+    
     //MARK: - 工具栏
     func initToolbar() {
         toolbarBox.borderWidth = 0
@@ -169,8 +183,7 @@ class KMPDFViewController: NSViewController {
     func updatePDFDisplaySettingView() {
         
         if viewManager.showDisplayView {
-            let width = displaySettingController?.view.frame.size.width ?? 0
-            infoSplitViewLeftConst.constant = max(0, width - CGRectGetWidth(sidebarBox.frame))
+            infoSplitViewLeftConst.constant = 264 - CGRectGetWidth(sidebarBox.frame)
         } else {
             infoSplitViewLeftConst.constant = 0
         }
@@ -190,7 +203,7 @@ class KMPDFViewController: NSViewController {
             
         } else {
             displaySettingController?.view.removeFromSuperview()
-            
+            displaySettingController = nil
         }
     }
     
@@ -232,20 +245,23 @@ class KMPDFViewController: NSViewController {
             pdfView.frame = infoSplitCenterView.bounds
             infoSplitCenterView.addSubview(pdfView)
             
+            if splitPDFController != nil {
+                splitPDFController = nil
+            }
         } else {
             pdfSplitView.isHidden = false
             pdfView.frame = pdfSplitTopView.bounds
             pdfSplitTopView.addSubview(pdfView)
             
+            setupSplitPDFController()
+            
             if pdfView.viewSplitMode == .horizontal {
                 pdfSplitView.isVertical = true
                 
             } else if pdfView.viewSplitMode == .vertical {
                 pdfSplitView.isVertical = false
-                
-                
+                 
             }
-               
         }
         
         
@@ -402,6 +418,19 @@ extension KMPDFViewController: KMNDisplayViewControllerDelegate {
         reloadPDFSplitInfo()
         
     }
+    
+    func displayViewControllerDidSplitFileChanged(_ controller: KMNDisplayViewController) {
+        splitPDFController?.reloadData()
+        
+    }
+}
+
+//MARK: - KMSplitPDFViewControllerDelegate SplitPDFView
+extension KMPDFViewController: KMSplitPDFViewControllerDelegate {
+    func splitPDFViewControllerDidUpdateFilePath(_ controller: KMSplitPDFViewController) {
+        displaySettingController?.reloadData()
+        
+    }
 }
 
 //MARK: - CPDFViewDelegate PDFView代理

+ 1 - 1
PDF Office/PDF Master/KMClass/KMPDFViewController/KMPDFViewManager.swift

@@ -26,7 +26,7 @@ class KMPDFViewManager: NSObject {
     
     //分割PDF相关
     var splitPDFFileURL: URL?
-    var splitPDFDocument: CPDFDocument?
+    var splitPDFFilePassword: String?
     var splitSyncScroll: Bool = true
     var splitShowBottomBar: Bool = true
     

+ 2 - 2
PDF Office/PDF Master/KMClass/Tools/PDFPreview/KMNPreView.xib

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="21507" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="21507"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>

+ 25 - 1
PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj

@@ -3576,6 +3576,12 @@
 		BB3D07632CD0821F00EB94DF /* KMPDFSplitView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB3D07622CD0821F00EB94DF /* KMPDFSplitView.swift */; };
 		BB3D07642CD0821F00EB94DF /* KMPDFSplitView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB3D07622CD0821F00EB94DF /* KMPDFSplitView.swift */; };
 		BB3D07652CD0821F00EB94DF /* KMPDFSplitView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB3D07622CD0821F00EB94DF /* KMPDFSplitView.swift */; };
+		BB3D07692CD08FDB00EB94DF /* KMSplitPDFViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB3D07672CD08FDB00EB94DF /* KMSplitPDFViewController.swift */; };
+		BB3D076A2CD08FDB00EB94DF /* KMSplitPDFViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB3D07672CD08FDB00EB94DF /* KMSplitPDFViewController.swift */; };
+		BB3D076B2CD08FDB00EB94DF /* KMSplitPDFViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB3D07672CD08FDB00EB94DF /* KMSplitPDFViewController.swift */; };
+		BB3D076C2CD08FDB00EB94DF /* KMSplitPDFViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB3D07682CD08FDB00EB94DF /* KMSplitPDFViewController.xib */; };
+		BB3D076D2CD08FDB00EB94DF /* KMSplitPDFViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB3D07682CD08FDB00EB94DF /* KMSplitPDFViewController.xib */; };
+		BB3D076E2CD08FDB00EB94DF /* KMSplitPDFViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB3D07682CD08FDB00EB94DF /* KMSplitPDFViewController.xib */; };
 		BB3D1EB22C3EAE5B001D1BBE /* KMAlignmentController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB3D1EB02C3EAE5B001D1BBE /* KMAlignmentController.swift */; };
 		BB3D1EB32C3EAE5B001D1BBE /* KMAlignmentController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB3D1EB02C3EAE5B001D1BBE /* KMAlignmentController.swift */; };
 		BB3D1EB42C3EAE5B001D1BBE /* KMAlignmentController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB3D1EB02C3EAE5B001D1BBE /* KMAlignmentController.swift */; };
@@ -7312,6 +7318,8 @@
 		BB3AD6F729935483004FC1AE /* Reachability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Reachability.m; sourceTree = "<group>"; };
 		BB3AD6F829935483004FC1AE /* Reachability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Reachability.h; sourceTree = "<group>"; };
 		BB3D07622CD0821F00EB94DF /* KMPDFSplitView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPDFSplitView.swift; sourceTree = "<group>"; };
+		BB3D07672CD08FDB00EB94DF /* KMSplitPDFViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMSplitPDFViewController.swift; sourceTree = "<group>"; };
+		BB3D07682CD08FDB00EB94DF /* KMSplitPDFViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMSplitPDFViewController.xib; sourceTree = "<group>"; };
 		BB3D1EB02C3EAE5B001D1BBE /* KMAlignmentController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMAlignmentController.swift; sourceTree = "<group>"; };
 		BB3D1EB12C3EAE5B001D1BBE /* KMAlignmentController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMAlignmentController.xib; sourceTree = "<group>"; };
 		BB3D97092B2FEAC8007094C8 /* KMPDFRedactViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPDFRedactViewController.swift; sourceTree = "<group>"; };
@@ -12810,6 +12818,16 @@
 			path = Views;
 			sourceTree = "<group>";
 		};
+		BB3D07662CD08FB400EB94DF /* KMSplitPDFViewController */ = {
+			isa = PBXGroup;
+			children = (
+				BBC8DC6F2B57854800270C98 /* KMSecondaryPDFView.swift */,
+				BB3D07672CD08FDB00EB94DF /* KMSplitPDFViewController.swift */,
+				BB3D07682CD08FDB00EB94DF /* KMSplitPDFViewController.xib */,
+			);
+			path = KMSplitPDFViewController;
+			sourceTree = "<group>";
+		};
 		BB3D97082B2FEA9E007094C8 /* Controller */ = {
 			isa = PBXGroup;
 			children = (
@@ -14527,7 +14545,6 @@
 		BBC8DC6E2B57851F00270C98 /* View */ = {
 			isa = PBXGroup;
 			children = (
-				BBC8DC6F2B57854800270C98 /* KMSecondaryPDFView.swift */,
 			);
 			path = View;
 			sourceTree = "<group>";
@@ -14537,6 +14554,7 @@
 			children = (
 				BBCB9EA42CCDF65000563AC8 /* KMNDisplayViewController.swift */,
 				BBCB9EA52CCDF65000563AC8 /* KMNDisplayViewController.xib */,
+				BB3D07662CD08FB400EB94DF /* KMSplitPDFViewController */,
 				BB3D07612CD081FE00EB94DF /* Views */,
 			);
 			path = KMNDisplayViewController;
@@ -16114,6 +16132,7 @@
 				9F853A022947137500DF644E /* default-icon.pdf in Resources */,
 				BBC348052955403D008D2CD1 /* KMWatermarkFilePropertyInfoController.xib in Resources */,
 				BB3D970E2B2FEAF9007094C8 /* KMPDFRedactViewController.xib in Resources */,
+				BB3D076C2CD08FDB00EB94DF /* KMSplitPDFViewController.xib in Resources */,
 				ADBC2CF5299C7B3E006280C8 /* Print.xcassets in Resources */,
 				AD88109A29A78AEC00178CA1 /* KMVerificationCodeView.xib in Resources */,
 				9F72D20B2994BDAF00DCACF1 /* KMNotificationVC.xib in Resources */,
@@ -16721,6 +16740,7 @@
 				ADE86ABB2B0343F100414DFA /* KMWatermarkView.xib in Resources */,
 				8942F7FC2926089200389627 /* KMSignatureViewController.xib in Resources */,
 				BBA922392B4E97540061057A /* KMPurchaseFirstTrialWindowController.xib in Resources */,
+				BB3D076D2CD08FDB00EB94DF /* KMSplitPDFViewController.xib in Resources */,
 				AD5374962C65A426002DE248 /* default.metallib in Resources */,
 				9F080B18298CFDB300FC27DA /* KMTextImageButtonVC.xib in Resources */,
 				ADE86A8E2B02269400414DFA /* KMRemovePasswordWindowController.xib in Resources */,
@@ -16941,6 +16961,7 @@
 				F3B7DF9F2948565000333201 /* CPDFListHoverAnnotationViewController.xib in Resources */,
 				BB5A9D322CB6520100F64C1F /* KMNHomeViewController.xib in Resources */,
 				AD3AAD292B0B6FB100DE5FE7 /* KMCompareContentView.xib in Resources */,
+				BB3D076E2CD08FDB00EB94DF /* KMSplitPDFViewController.xib in Resources */,
 				AD1FE8222BD7C98300AA4A9B /* KMPDFBookletWindowController.xib in Resources */,
 				BB69C961299116FD0001A9B1 /* plaid.pdf in Resources */,
 				ADDF83912B391A5D00A81A4E /* DSignDetailTypeACellView.xib in Resources */,
@@ -17892,6 +17913,7 @@
 				656C1E402CD0745200295F82 /* KMConvertSettingLimitTipView.swift in Sources */,
 				BB0FE0582B734DD1001E0F88 /* KMAIRequestServerManager.swift in Sources */,
 				9F72D2032994A3B800DCACF1 /* KMDesignToken+Notification.swift in Sources */,
+				BB3D07692CD08FDB00EB94DF /* KMSplitPDFViewController.swift in Sources */,
 				ADDF83A72B391A5D00A81A4E /* DSignatureApperanceManager.swift in Sources */,
 				BB2C847F2BAE732700AF6142 /* KMBotaLeftView.swift in Sources */,
 				AD2D74AD29F0CEB300EDC5E4 /* KMCancellationWindowController.swift in Sources */,
@@ -18912,6 +18934,7 @@
 				BBFCCE092B56988C003742B3 /* KMPreferenceCommon.swift in Sources */,
 				BB7289E12B8838D8004B53B5 /* KMDataManager.swift in Sources */,
 				ADDF834E2B391A5C00A81A4E /* DSignatureCertifyDetailViewController.swift in Sources */,
+				BB3D076A2CD08FDB00EB94DF /* KMSplitPDFViewController.swift in Sources */,
 				651559262CCA6E3100C0F0D9 /* KMConvertCSVWindowController.swift in Sources */,
 				BBF729902B1960FF00576AC5 /* KMCompressOperationQueue.swift in Sources */,
 				BBF8A3FE2AE8B04100788BAC /* KMBatchOperateFile.swift in Sources */,
@@ -20629,6 +20652,7 @@
 				BBBB6CD82AD150D20035AA66 /* CPDFCircleAnnotation+PDFListView.swift in Sources */,
 				BB19A7692CB7D0F4008204DC /* KMHomeFilesEmptyHeaderView.swift in Sources */,
 				BBCB9EA82CCDF65000563AC8 /* KMNDisplayViewController.swift in Sources */,
+				BB3D076B2CD08FDB00EB94DF /* KMSplitPDFViewController.swift in Sources */,
 				BBD7FE092A13241E00F96075 /* KMOutlineEditViewController.swift in Sources */,
 				ADDEEA882AD7805200EF675D /* KMGeneralButton.swift in Sources */,
 				BBD54ED62A1CBD720012A230 /* NSView+KMExtension.swift in Sources */,

+ 0 - 64
PDF Office/PDF Reader Pro.xcodeproj/xcuserdata/kdanmobile.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -740,22 +740,6 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "6351E812-6779-44EC-A7D1-3CC9C546EDB1"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "KMComponentLibrary/KMComponentLibrary/View/Empty/ComponentEmpty.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "208"
-            endingLineNumber = "208"
-            landmarkName = "mouseUp(with:)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
@@ -804,22 +788,6 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "4597F4DC-9854-4BFD-9449-F429E538F56F"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "KMComponentLibrary/KMComponentLibrary/View/Radio/ComponentRadio.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "161"
-            endingLineNumber = "161"
-            landmarkName = "mouseUp(with:)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
@@ -1748,22 +1716,6 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "7C042F0E-798B-4A19-B32E-5FF4DFB53DD4"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "KMComponentLibrary/KMComponentLibrary/View/Radio/ComponentRadio.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "156"
-            endingLineNumber = "156"
-            landmarkName = "mouseDown(with:)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
@@ -1828,22 +1780,6 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "4943CB50-93B4-4D65-AECF-299F61BDDFCF"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "KMComponentLibrary/KMComponentLibrary/View/Empty/ComponentEmpty.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "196"
-            endingLineNumber = "196"
-            landmarkName = "mouseDown(with:)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent