Ver código fonte

【2025】【Markup】右边属性栏展开隐藏逻辑

niehaoyu 2 meses atrás
pai
commit
f84bc276ac

+ 4 - 0
PDF Office/PDF Master/Class/PDFWindowController/PDFListView/CPDFKitExtensions/CPDFListViewExtension/CPDFListView+AnnotationsCompare.swift

@@ -31,6 +31,10 @@ extension CPDFListView {
             return false
         }
         
+        if annotations.count == 1 {
+            return false
+        }
+        
         guard let firstAnnotation = annotations.first else {
             return false
         }

+ 47 - 24
PDF Office/PDF Master/KMClass/KMPDFViewController/KMMainViewController.swift

@@ -748,16 +748,30 @@ struct KMNMWCFlags {
     func toolbarViewModeChanged() {
         updatePDFViewAnnotationMode()
         
+        refreshToolbarRightViewInfo()
+        
+        if viewManager.toolMode != .Edit && viewManager.subToolMode != .Edit_Crop {
+            removeCropController()
+        }
+    }
+    
+    //MARK: - 右边属性栏
+    func refreshToolbarRightViewInfo() {
+        //统一刷新viewManager.showRightSide, 由这个参数控制右边属性边框的展开与隐藏
         if viewManager.showRightSide == true {
+            toolbarManager.rightViewProperty.state = .pressed
             toggleOpenRightSide()
         } else {
             toggleCloseRightSide()
         }
         
-        
-        if viewManager.toolMode != .Edit && viewManager.subToolMode != .Edit_Crop {
-            removeCropController()
+        if viewManager.showRightSide == true {
+            toolbarManager.rightViewProperty.state = .pressed
+        } else {
+            toolbarManager.rightViewProperty.state = .normal
         }
+        pdfToolbarController?.reloadRightToolsView()
+        
     }
     
     //MARK: - 侧边工具栏
@@ -854,12 +868,17 @@ struct KMNMWCFlags {
         rightSideController?.viewManager = self.viewManager
         
         rightSideController?.reloadDataWithPDFView(pdfView: listView)
+        
+        
+        
     }
     
     @objc func toggleCloseRightSide() -> Void {
         removeRightSideController()
         
         infoContendSplitView.setPosition(CGRectGetWidth(view.frame), ofDividerAt: 1)
+        
+        
     }
     
     func refreshRightSide() -> Void {
@@ -1370,7 +1389,8 @@ struct KMNMWCFlags {
             
             if viewManager.showRightSide == false {
                 viewManager.showRightSide = true
-                pdfToolbarController?.reloadRightToolsView()
+                
+                refreshToolbarRightViewInfo()
                 
                 toggleOpenRightSide()
             }
@@ -1630,10 +1650,11 @@ struct KMNMWCFlags {
             
             popWindow.paneCallback = {[weak self] isOpen in
                 if isOpen == true && self?.viewManager.showRightSide == false {
-                    self?.toggleCloseRightSide()
+                    self?.viewManager.showRightSide = false
                 } else {
-                    self?.toggleOpenRightSide()
+                    self?.viewManager.showRightSide = true
                 }
+                self?.refreshToolbarRightViewInfo()
             }
         }
     }
@@ -1654,10 +1675,11 @@ struct KMNMWCFlags {
             
             popWindow.paneCallback = {[weak self] isOpen in
                 if isOpen == true && self?.viewManager.showRightSide == false {
-                    self?.toggleCloseRightSide()
+                    self?.viewManager.showRightSide = false
                 } else {
-                    self?.toggleOpenRightSide()
+                    self?.viewManager.showRightSide = true
                 }
+                self?.refreshToolbarRightViewInfo()
             }
         }
     }
@@ -2675,6 +2697,8 @@ extension KMMainViewController: KMPDFToolbarControllerDelegate {
             } else {
                 viewManager.showRightSide = true
             }
+            self.refreshToolbarRightViewInfo()
+            
         } else if toolbarManager.getSubToolItemIdentifys(KMPDFToolbar_Edit_Identifier).contains(itemIdentifier) {
             //MARK: -编辑
             if itemIdentifier == KMPDFToolbar_edit_addWatermark_Identifier {
@@ -2805,6 +2829,8 @@ extension KMMainViewController: KMPDFToolbarControllerDelegate {
                 self.showBatchCompressController([self.listView.document.documentURL])
             } else if itemIdentifier == KMPDFToolbar_tools_OCR_Identifier {
                 viewManager.showRightSide = !viewManager.showRightSide
+                self.refreshToolbarRightViewInfo()
+                
             } else if itemIdentifier == KMPDFToolbar_tools_merge_Identifier {
                 self.showMergeWindow(self.listView.document.password)
             } else if itemIdentifier == KMPDFToolbar_tools_TTS_Identifier {
@@ -3915,23 +3941,18 @@ extension KMMainViewController: CPDFViewDelegate,CPDFListViewDelegate {
         if isRightMenu {
             
         } else if annotations.count > 0 {
-            if annotations.count > 1 {
-                var isMultiAnnotations = pdfListView.isMultiAnnotation(annotations)
+            if self.viewManager.isPDFReadMode {
+                toggleCloseRightSide()
+            } else {
+                let isMultiAnnotations = pdfListView.isMultiAnnotation(annotations)
                 if isMultiAnnotations == true {
-                    self.toggleCloseRightSide()
+                    viewManager.showRightSide = false
                 } else {
-                    self.toggleOpenRightSide()
+                    viewManager.showRightSide = true
                 }
+                refreshToolbarRightViewInfo()
+                
                 self.rightSideController?.reloadDataWithPDFView(pdfView: pdfListView)
-            } else {
-                let fristAnnotation  = annotations.first
-                let className = NSStringFromClass(fristAnnotation!.classForCoder)
-                if self.viewManager.isPDFReadMode {
-                    toggleCloseRightSide()
-                } else {
-                    self.toggleOpenRightSide()
-                    self.rightSideController?.reloadDataWithPDFView(pdfView: pdfListView)
-                }
             }
             
             //测量相关
@@ -3964,14 +3985,16 @@ extension KMMainViewController: CPDFViewDelegate,CPDFListViewDelegate {
             }
         } else if (annotations.count == 0){
             if pdfListView.annotationType == .unkown {
-                toggleCloseRightSide()
+                viewManager.showRightSide = false
             } else {
                 if self.viewManager.isPDFReadMode {
-                    toggleCloseRightSide()
+                    viewManager.showRightSide = false
                 } else {
-                    toggleOpenRightSide()
+                    viewManager.showRightSide = true
                 }
             }
+            refreshToolbarRightViewInfo()
+            
             rightSideController?.reloadDataWithPDFView(pdfView: pdfListView)
         }
     }

+ 2 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/Toolbar/KMPDFToolbarController.swift

@@ -442,6 +442,8 @@ class KMPDFToolbarController: NSViewController {
                             button.reloadData()
                         }
                     }
+                    button.reloadData()
+                    
                 }
             } else if view is ComponentDropdownTool {
                 

+ 2 - 1
PDF Office/PDF Master/KMClass/Tools/CustomViews/KMPageRangeSelectView/KMPageRangeSelectView.swift

@@ -34,7 +34,8 @@ class KMPageRangeSelectView: NSView {
                                                               placeholder: KMLocalizedString("e.g. 1,3-5,10"),
                                                               errorText: nil,
                                                               creatable: false,
-                                                              text: KMLocalizedString("All Pages"))
+                                                              text: KMLocalizedString("All Pages"),
+                                                              regexString: "0123456789,-")
         pageSelectView.delegate = self
         
         let menuItemString:[String] = [KMLocalizedString("Current Page"),