فهرست منبع

【BOTA】搜索补充右键菜单

tangchao 1 سال پیش
والد
کامیت
2612830c4c

+ 8 - 0
PDF Office/PDF Master.xcodeproj/project.pbxproj

@@ -3868,6 +3868,9 @@
 		BBE78F1B2B36F69F0071AC1A /* KMLeftSideViewController+Note.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBE78F1A2B36F69F0071AC1A /* KMLeftSideViewController+Note.swift */; };
 		BBE78F1C2B36F69F0071AC1A /* KMLeftSideViewController+Note.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBE78F1A2B36F69F0071AC1A /* KMLeftSideViewController+Note.swift */; };
 		BBE78F1D2B36F69F0071AC1A /* KMLeftSideViewController+Note.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBE78F1A2B36F69F0071AC1A /* KMLeftSideViewController+Note.swift */; };
+		BBE78F1F2B3875B50071AC1A /* KMLeftSideViewController+Search.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBE78F1E2B3875B50071AC1A /* KMLeftSideViewController+Search.swift */; };
+		BBE78F202B3875B50071AC1A /* KMLeftSideViewController+Search.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBE78F1E2B3875B50071AC1A /* KMLeftSideViewController+Search.swift */; };
+		BBE78F212B3875B50071AC1A /* KMLeftSideViewController+Search.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBE78F1E2B3875B50071AC1A /* KMLeftSideViewController+Search.swift */; };
 		BBE9D0922AF0A85C002E83CE /* KMBatchOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBE9D0912AF0A85C002E83CE /* KMBatchOperation.swift */; };
 		BBE9D0932AF0A85C002E83CE /* KMBatchOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBE9D0912AF0A85C002E83CE /* KMBatchOperation.swift */; };
 		BBE9D0942AF0A85C002E83CE /* KMBatchOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBE9D0912AF0A85C002E83CE /* KMBatchOperation.swift */; };
@@ -5746,6 +5749,7 @@
 		BBDA8A6C2A31F9A6006A2C4E /* KMDesignStepperView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMDesignStepperView.swift; sourceTree = "<group>"; };
 		BBE0BDF229A22EF300440583 /* KMMainViewController+MenuAction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "KMMainViewController+MenuAction.swift"; sourceTree = "<group>"; };
 		BBE78F1A2B36F69F0071AC1A /* KMLeftSideViewController+Note.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "KMLeftSideViewController+Note.swift"; sourceTree = "<group>"; };
+		BBE78F1E2B3875B50071AC1A /* KMLeftSideViewController+Search.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "KMLeftSideViewController+Search.swift"; sourceTree = "<group>"; };
 		BBE9D0912AF0A85C002E83CE /* KMBatchOperation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMBatchOperation.swift; sourceTree = "<group>"; };
 		BBE9D0962AF0CECB002E83CE /* KMBatchOperateCompressViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMBatchOperateCompressViewController.swift; sourceTree = "<group>"; };
 		BBE9D09A2AF0CEEA002E83CE /* KMBatchOperateCompressViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KMBatchOperateCompressViewController.xib; sourceTree = "<group>"; };
@@ -6204,6 +6208,7 @@
 				BB8B99FC2B355E7600A066EC /* KMLeftSideViewController+Action.swift */,
 				BB8B9A002B355EFB00A066EC /* KMLeftSideViewController+Outline.swift */,
 				BBE78F1A2B36F69F0071AC1A /* KMLeftSideViewController+Note.swift */,
+				BBE78F1E2B3875B50071AC1A /* KMLeftSideViewController+Search.swift */,
 				BB0B2CD72B04AE560088FFD8 /* LeftSideView.xib */,
 				8997011E28F41AB8009AF911 /* KMLeftSideViewController.xib */,
 				8942F7E82925E1C400389627 /* KMLiftSideCellView.swift */,
@@ -12717,6 +12722,7 @@
 				ADE86AF72B0AF59A00414DFA /* KMCompareContentSettingView.swift in Sources */,
 				ADD1B6AB2941E97F00C3FFF7 /* KMPrintWindowController.swift in Sources */,
 				BB8F454F295A9FA50037EA22 /* KMCreateHeaderFooterController.swift in Sources */,
+				BBE78F1F2B3875B50071AC1A /* KMLeftSideViewController+Search.swift in Sources */,
 				9FA693A82987C0590055488A /* KMStepperView.swift in Sources */,
 				BBC745F2295F0DD00072C2ED /* KMCropSettingPageSizeView.swift in Sources */,
 				F3599222292CA27B000D25DE /* CPDFListViewRuntime.m in Sources */,
@@ -13602,6 +13608,7 @@
 				F34BF9542953DA91002C25A2 /* NSGeometry+PDFListView.m in Sources */,
 				BBBC08842B2AC863009B237F /* KMSnapshotModel.swift in Sources */,
 				AD3AAD2D2B0B6FFA00DE5FE7 /* KMCompareCoveringView.swift in Sources */,
+				BBE78F202B3875B50071AC1A /* KMLeftSideViewController+Search.swift in Sources */,
 				AD3AAD542B0D87E500DE5FE7 /* KMCompareThumbItem.swift in Sources */,
 				BBB14A582978E75D00936EDB /* KMRedactMutilPageFlagWindowController.swift in Sources */,
 				ADAFDA692AEB46F500F084BC /* KMHomeHistoryListView.swift in Sources */,
@@ -14979,6 +14986,7 @@
 				BB6719F72AD2C949003D44D5 /* CPDFRedactAnnotation+PDFListView.swift in Sources */,
 				9F1FE4B029406E4700E952CA /* CTPresentationModeController.m in Sources */,
 				BBD1F791296FE6A500343885 /* KMPageEditSplitWindowController.swift in Sources */,
+				BBE78F212B3875B50071AC1A /* KMLeftSideViewController+Search.swift in Sources */,
 				ADD1B6EA2946C02600C3FFF7 /* KMPrintChoosePageSizeMultipageView.swift in Sources */,
 				BBF2455F2AE78FF900037D08 /* KMBatchWindow.swift in Sources */,
 				BBE9D0A12AF0D10F002E83CE /* KMSlider.swift in Sources */,

+ 18 - 11
PDF Office/PDF Master/Class/PDFWindowController/Side/LeftSide/KMLeftSideViewController+Action.swift

@@ -112,18 +112,25 @@ extension KMLeftSideViewController: NSMenuDelegate {
                     rowIndexes = IndexSet(integer: row)
                 }
 //                NSArray *selections = [[leftSideController.findArrayController arrangedObjects] objectsAtIndexes:rowIndexes];
+                var selections: [CPDFSelection] = []
+                for (i, data) in self.searchResults.enumerated() {
+                    if rowIndexes.contains(i) {
+                        selections.append(data.selection)
+                    }
+                }
 //                if ([pdfView hideNotes] == NO && [[self pdfDocument] allowsNotes]) {
-                item = menu.addItem(withTitle: KMLocalizedString("Add New Circle", "Menu item title"), action: #selector(addAnnotationsForSelections), target: self, tag: 0)
-////                    [item setRepresentedObject:selections];
-                item = menu.addItem(withTitle: KMLocalizedString("Add New Rectangle", "Menu item title"), action: #selector(addAnnotationsForSelections), target: self, tag: 1)
-////                    [item setRepresentedObject:selections];
-                item = menu.addItem(withTitle: KMLocalizedString("Add New Highlight", "Menu item title"), action: #selector(addAnnotationsForSelections), target: self, tag: 2)
-////                    [item setRepresentedObject:selections];
-                item = menu.addItem(withTitle: KMLocalizedString("Add New Underline", "Menu item title"), action: #selector(addAnnotationsForSelections), target: self, tag: 3)
-////                    [item setRepresentedObject:selections];
-                item = menu.addItem(withTitle: KMLocalizedString("Add New Strikethrough", "Menu item title"), action: #selector(addAnnotationsForSelections), target: self, tag: 4)
-//                    [item setRepresentedObject:selections];
-//                }
+                if self.listView.hideNotes == false {
+                    item = menu.addItem(withTitle: KMLocalizedString("Add New Circle", "Menu item title"), action: #selector(addAnnotationsForSelections), target: self, tag: CAnnotationType.circle.rawValue)
+                    item?.representedObject = selections
+                    item = menu.addItem(withTitle: KMLocalizedString("Add New Rectangle", "Menu item title"), action: #selector(addAnnotationsForSelections), target: self, tag: CAnnotationType.square.rawValue)
+                    item?.representedObject = selections
+                    item = menu.addItem(withTitle: KMLocalizedString("Add New Highlight", "Menu item title"), action: #selector(addAnnotationsForSelections), target: self, tag: CAnnotationType.highlight.rawValue)
+                    item?.representedObject = selections
+                    item = menu.addItem(withTitle: KMLocalizedString("Add New Underline", "Menu item title"), action: #selector(addAnnotationsForSelections), target: self, tag: CAnnotationType.underline.rawValue)
+                    item?.representedObject = selections
+                    item = menu.addItem(withTitle: KMLocalizedString("Add New Strikethrough", "Menu item title"), action: #selector(addAnnotationsForSelections), target: self, tag: CAnnotationType.strikeOut.rawValue)
+                    item?.representedObject = selections
+                }
             }
         } else if menu.isEqual(to: self.groupedFindTableView.menu) {
             var rowIndexes = self.groupedFindTableView.selectedRowIndexes

+ 21 - 0
PDF Office/PDF Master/Class/PDFWindowController/Side/LeftSide/KMLeftSideViewController+Search.swift

@@ -0,0 +1,21 @@
+//
+//  KMLeftSideViewController+Search.swift
+//  PDF Master
+//
+//  Created by tangchao on 2023/12/24.
+//
+
+import Foundation
+
+// MARK: - Menu
+
+extension KMLeftSideViewController {
+    @objc func addAnnotationsForSelections(_ sender: NSMenuItem) {
+        guard let selections = sender.representedObject as? [CPDFSelection], selections.count > 0 else {
+            return
+        }
+        for selection in selections {
+            self.listView.addAnnotation(with: CAnnotationType(rawValue: sender.tag) ?? .circle, selection: selection, page: selection.page, bounds: selection.bounds)
+        }
+    }
+}

+ 0 - 4
PDF Office/PDF Master/Class/PDFWindowController/Side/LeftSide/KMLeftSideViewController.swift

@@ -4487,10 +4487,6 @@ extension KMLeftSideViewController {
 //        [vc release];
     }
     
-    @objc func addAnnotationsForSelections(_ sender: AnyObject?) {
-        KMPrint("KMLeftSideViewController-addAnnotationsForSelections...")
-    }
-    
     @objc func selectSelections(_ sender: AnyObject?) {
         KMPrint("KMLeftSideViewController-selectSelections...")
     }