Browse Source

【EditPDF】属性面板展开规则调整

tangchao 8 months ago
parent
commit
883121521f

+ 52 - 7
PDF Office/PDF Master/Class/PDFTools/EditPDF/Tools/KMEditPDfHanddler.swift

@@ -7,10 +7,18 @@
 
 import Cocoa
 
+@objc enum KMRightSideLastState: Int {
+    case none = 0
+    case open = 1
+    case close = 2
+}
+
 // EditPDF处理对象
 class KMEditPDfHanddler: NSObject {
     weak var viewC: KMMainViewController?
     
+    static let kRightSideLastStateKey = "KMRightSideLastStateKey"
+    
     weak var listView: CPDFListView? {
         get {
             return self.viewC?.listView
@@ -65,7 +73,31 @@ class KMEditPDfHanddler: NSObject {
         }
     }
     
+    var rightSideLastState: KMRightSideLastState {
+        get {
+            let state = KMDataManager.ud_integer(forKey: Self.kRightSideLastStateKey)
+            return KMRightSideLastState(rawValue: state) ?? .none
+        }
+        set {
+            KMDataManager.ud_set(newValue.rawValue, forKey: Self.kRightSideLastStateKey)
+        }
+    }
+    
     func enterEditPDF() {
+        let toolMode = self.listView?.toolMode ?? .none
+        if toolMode != .editPDFToolMode { // 退出
+            self.listView?.updateActiveAnnotations([])
+            self.listView?.setNeedsDisplayForVisiblePages()
+            self.listView?.commitEditFormText()
+            self.closeRightPane()
+            return
+        }
+        if self.rightSideLastState == .open {
+            self.openRightPane()
+        } else {
+            self.closeRightPane()
+        }
+        
         self.listView?.updateActiveAnnotations([])
         self.listView?.setNeedsDisplayForVisiblePages()
         self.listView?.commitEditFormText()
@@ -86,7 +118,7 @@ class KMEditPDfHanddler: NSObject {
         // 边框宽度
 //        self.editingConfig?.mouseHoverBorderWidth = 1
         // 边框颜色
-        self.editingConfig?.mouseHoverBorderColor = .purple
+        self.editingConfig?.mouseHoverBorderColor = NSColor(hex: "#999999")
         // 边框虚线设置
         self.editingConfig?.mouseHoverBorderDashPattern = [3,3,3]
         // 块填充颜色(拖拽中)
@@ -101,6 +133,18 @@ class KMEditPDfHanddler: NSObject {
         self.editingConfig?.isDrawRectWithDot = true
     }
     
+    func openRightPane() {
+        let state = self.rightSideLastState
+        if state == .none || state == .open {
+            self.viewC?.openRightPane()
+        }
+    }
+    
+    func closeRightPane() {
+        self.rightViewC?.isHidden = true
+        self.viewC?.closeRightPane()
+    }
+    
     func fontColorAction(color: NSColor?) {
         guard let theColor = color else {
             return
@@ -758,7 +802,8 @@ extension KMEditPDfHanddler: CPDFViewDelegate {
 //                        self.openRightPane()
                     }
                 } else {
-                    self.viewC?.closeRightPane()
+//                    self.viewC?.closeRightPane()
+                    self.rightViewC?.isHidden = true
                 }
             } else {
                 self.rightViewC?.isHidden = true
@@ -785,10 +830,10 @@ extension KMEditPDfHanddler: CPDFViewDelegate {
                     self.rightViewC?.subViewType = .EditPDFAddImage
                     self.rightViewC?.eidtPDFImageProperty.reloadData()
                 }
-                self.viewC?.openRightPane()
+                self.openRightPane()
             } else {
                 self.rightViewC?.isHidden = true
-                self.viewC?.closeRightPane()
+//                self.viewC?.closeRightPane()
             }
         } else if self.subViewType == .EditPDFAddText && annotationType == .addText {
             self.rightViewC?.isHidden = false
@@ -798,7 +843,7 @@ extension KMEditPDfHanddler: CPDFViewDelegate {
             } else {
                 self.rightViewC?.eidtPDFTextProperty.refreshSelectAreaProperty(needDefaultData: true)
             }
-            self.viewC?.openRightPane()
+            self.openRightPane()
         } else {
             var textsAreas : [CPDFEditTextArea] = []
             var imagesAreas : [CPDFEditImageArea] = []
@@ -818,12 +863,12 @@ extension KMEditPDfHanddler: CPDFViewDelegate {
                 self.rightViewC?.isHidden = false
                 self.rightViewC?.subViewType = .EditPDFAddText
                 self.rightViewC?.eidtPDFTextProperty?.reloadData()
-                self.viewC?.openRightPane()
+                self.openRightPane()
             } else if imagesAreas.count > 0 {
                 self.rightViewC?.isHidden = false
                 self.rightViewC?.subViewType = .EditPDFAddImage
                 self.rightViewC?.eidtPDFImageProperty?.reloadData()
-                self.viewC?.openRightPane()
+                self.openRightPane()
             }
         }
         

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

@@ -4334,6 +4334,10 @@ extension KMMainViewController : KMMainToolbarControllerDelegate {
                     }
                     toolbarItem.isSelected = !toolbarItem.isSelected
                     self.toggleRightPane()
+                    
+                    if self.listView.toolMode == .editPDFToolMode {
+                        self.editPDFHanddler.rightSideLastState = toolbarItem.isSelected ? .open : .close
+                    }
                 } else if itemID == KMDocumentRedactToolbarItemIdentifier {
                     self.listView.toolMode = .redactToolMode
                     self.enterRedact()