Переглянути джерело

【页面编辑】右键菜单区分单选和多选场景

tangchao 1 рік тому
батько
коміт
9419e48475

+ 20 - 4
PDF Office/PDF Master/Class/PDFTools/PageEdit/Controller/KMPDFEditViewController.swift

@@ -32,8 +32,8 @@ class KMPDFEditViewController: KMPDFThumbViewBaseController {
     
     override var menuItems: [[KMPDFThumbViewMenu.Item]] {
         get {
-            return [[.insert, .extract, .replace, .delete], [.rightRotate, .leftRotate],
-                    [.copy, .cut, .paste], [.showPageSize], [.print]]
+            return [[.copy, .cut, .paste, .delete], [.insert, .extract, .replace, .split, .reverse],
+                    [.rightRotate, .leftRotate], [.showPageSize], [.print]]
         }
     }
     
@@ -325,6 +325,14 @@ class KMPDFEditViewController: KMPDFThumbViewBaseController {
         return index
     }
     
+    override func splitAction() {
+        self.splitMenuAction(sender: nil)
+    }
+    
+    override func reverseAction() {
+        self.reverseMenuAction(sender: nil)
+    }
+    
     // MARK: Undo / Redo
     
     @objc private func reversePages(indexs: IndexSet) {
@@ -626,8 +634,6 @@ class KMPDFEditViewController: KMPDFThumbViewBaseController {
     }
     
     override func addMenuItem(menu: NSMenu, item: KMPDFThumbViewMenu.Item) -> NSMenuItem? {
-        let _ = super.addMenuItem(menu: menu, item: item)
-        
         var item_: NSMenuItem?
         if (item.sel == KMPDFThumbViewMenu.insertSelector) {
             if (self.thumbnailView.selectionIndexPaths.count == 1) {
@@ -639,6 +645,16 @@ class KMPDFEditViewController: KMPDFThumbViewBaseController {
                 subMenu.addItem(withTitle: NSLocalizedString("Insert Custom Page", comment: ""), action: #selector(insertPageItemAction), target: self, tag:2)
                 item_?.submenu = subMenu
             }
+        } else if (item.sel == KMPDFThumbViewMenu.splitSelector) {
+            if (self.thumbnailView.selectionIndexPaths.count > 1) {
+                item_ = menu.addItem(withTitle: NSLocalizedString("Split", comment: ""), action: KMPDFThumbViewMenu.splitSelector, target: self)
+            }
+        } else if (item.sel == KMPDFThumbViewMenu.reverseSelector) {
+            if (self.thumbnailView.selectionIndexPaths.count > 1) {
+                item_ = menu.addItem(withTitle: NSLocalizedString("Reverse", comment: ""), action: KMPDFThumbViewMenu.reverseSelector, target: self)
+            }
+        } else {
+            return super.addMenuItem(menu: menu, item: item)
         }
         return item_
     }

+ 27 - 1
PDF Office/PDF Master/Class/PDFWindowController/Side/LeftSide/Thumbnail/Base/KMPDFThumbViewBaseController.swift

@@ -13,6 +13,8 @@ import Cocoa
     func menuItemAction_delete(_ sender: Any?)
     func menuItemAction_replace(_ sender: Any?)
     func menuItemAction_extract(_ sender: Any?)
+    func menuItemAction_split(_ sender: Any?)
+    func menuItemAction_reverse(_ sender: Any?)
     
     func menuItemAction_leftRotate(_ sender: Any?)
     func menuItemAction_rightRotate(_ sender: Any?)
@@ -32,6 +34,8 @@ extension KMPDFThumbViewMenu.Item {
     static let delete           = KMPDFThumbViewMenu.Item(KMPDFThumbViewMenu.deleteSelector)
     static let replace          = KMPDFThumbViewMenu.Item(KMPDFThumbViewMenu.replaceSelector)
     static let extract          = KMPDFThumbViewMenu.Item(KMPDFThumbViewMenu.extractSelector)
+    static let split            = KMPDFThumbViewMenu.Item(KMPDFThumbViewMenu.splitSelector)
+    static let reverse          = KMPDFThumbViewMenu.Item(KMPDFThumbViewMenu.reverseSelector)
     
     static let leftRotate       = KMPDFThumbViewMenu.Item(KMPDFThumbViewMenu.leftRotateSelector)
     static let rightRotate      = KMPDFThumbViewMenu.Item(KMPDFThumbViewMenu.rightRotateSelector)
@@ -52,6 +56,8 @@ class KMPDFThumbViewMenu: NSObject {
     public static let deleteSelector              = NSSelectorFromString("menuItemAction_delete:")
     public static let replaceSelector             = NSSelectorFromString("menuItemAction_replace:")
     public static let extractSelector             = NSSelectorFromString("menuItemAction_extract:")
+    public static let splitSelector               = NSSelectorFromString("menuItemAction_split:")
+    public static let reverseSelector             = NSSelectorFromString("menuItemAction_reverse:")
     
     public static let leftRotateSelector          = NSSelectorFromString("menuItemAction_leftRotate:")
     public static let rightRotateSelector         = NSSelectorFromString("menuItemAction_rightRotate:")
@@ -66,7 +72,7 @@ class KMPDFThumbViewMenu: NSObject {
     public static let showPageSizeSelector        = NSSelectorFromString("menuItemAction_showPageSize:")
     
     public static func actions() -> [Selector] {
-        return [self.insertSelector, self.deleteSelector, self.replaceSelector, self.extractSelector,
+        return [self.insertSelector, self.deleteSelector, self.replaceSelector, self.extractSelector, self.splitSelector, self.reverseSelector,
                 self.leftRotateSelector, self.rightRotateSelector,
                 self.copySelector, self.cutSelector, self.pasteSelector,
                 self.printSelector, self.shareSelector,
@@ -394,6 +400,14 @@ class KMPDFThumbViewBaseController: KMBaseViewController {
         }
     }
     
+    public func splitAction() {
+        
+    }
+    
+    public func reverseAction() {
+        
+    }
+    
     // MARK: - 刷新 UI
     
     func refreshUI(indexpaths: Set<IndexPath> = []) {
@@ -736,6 +750,10 @@ class KMPDFThumbViewBaseController: KMBaseViewController {
             item_ = menu.addItem(withTitle: NSLocalizedString("Extract", comment: ""), action: KMPDFThumbViewMenu.extractSelector, target: self)
         } else if (item.sel == KMPDFThumbViewMenu.replaceSelector) {
             item_ = menu.addItem(withTitle: NSLocalizedString("Replace Page", comment: ""), action: KMPDFThumbViewMenu.replaceSelector, target: self)
+        } else if (item.sel == KMPDFThumbViewMenu.splitSelector) {
+            item_ = menu.addItem(withTitle: NSLocalizedString("Split", comment: ""), action: KMPDFThumbViewMenu.splitSelector, target: self)
+        } else if (item.sel == KMPDFThumbViewMenu.reverseSelector) {
+            item_ = menu.addItem(withTitle: NSLocalizedString("Reverse", comment: ""), action: KMPDFThumbViewMenu.reverseSelector, target: self)
         }
         
         return item_
@@ -815,6 +833,14 @@ extension KMPDFThumbViewBaseController {
 // MARK: - KMPDFThumbViewMenuProtocol
 
 extension KMPDFThumbViewBaseController: KMPDFThumbViewMenuProtocol {
+    func menuItemAction_split(_ sender: Any?) {
+        self.splitAction()
+    }
+    
+    func menuItemAction_reverse(_ sender: Any?) {
+        self.reverseAction()
+    }
+    
     func menuItemAction_insert(_ sender: Any?) {
         
     }