Parcourir la source

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

niehaoyu il y a 3 mois
Parent
commit
b2bcf6db5f

+ 14 - 1
PDF Office/PDF Master/Class/PDFWindowController/PDFListView/CPDFKitExtensions/CPDFListViewExtension/CPDFListView+CPDFEditArea.swift

@@ -179,8 +179,21 @@ extension CPDFListView {
         
         self.editingConfig().isShowMouseAreaHover = true
         
+        // 设置选中时为空心矩形
+        self.editingConfig().zoomPointType = .hollowRectangle
+        
+        // 设置选中时为空心矩形的宽度
+        self.editingConfig().editingCenterBorderWidth = 2
+        
+        // 设置选中时为空心矩形的大小
+        self.editingConfig().editingCenterRadius = 4
+
         // 边框颜色
-        self.editingConfig().mouseHoverBorderColor = NSColor(hex: "#999999")
+        self.editingConfig().mouseHoverBorderColor = CPDFListViewConfig.defaultManager.annotationBorderColor
+        
+        // 设置选中的边框颜色
+        self.editingConfig().editingSelectionBorderColor = CPDFListViewConfig.defaultManager.annotationBorderColor;
+
         // 边框虚线设置
         self.editingConfig().mouseHoverBorderDashPattern = [3,3,3]
         // 块填充颜色(拖拽中)

BIN
PDF Office/PDF Master/Class/PDFWindowController/PDFSDK/ComPDFKit.framework/Versions/A/ComPDFKit


+ 15 - 0
PDF Office/PDF Master/Class/PDFWindowController/PDFSDK/ComPDFKit.framework/Versions/A/Headers/CPDFView+Editing.h

@@ -45,6 +45,11 @@ typedef NS_OPTIONS(NSInteger, CEditingSelectState) {
     CEditingSelectStateEditSelectText,
 };
 
+typedef NS_OPTIONS(NSInteger, CEditingAreaSelectBorderZoomPointType) {
+    CEditingAreaSelectBorderZoomPointSolidCircleType = 0,
+    CEditingAreaSelectBorderZoomPointHollowRectangle,
+};
+
 #pragma mark - CEditAttributes
 
 @interface CEditAttributes : NSObject
@@ -104,6 +109,16 @@ typedef NS_OPTIONS(NSInteger, CEditingSelectState) {
  */
 @property (nonatomic,assign) BOOL isShowEditingAreaItemHover;
 
+/**
+ * Editing Area Select Border Zoom Point Type Setting
+ */
+@property (nonatomic,assign) CEditingAreaSelectBorderZoomPointType zoomPointType;
+
+/**
+ * Border width of the dotted box Zoom Point
+ */
+@property (nonatomic,strong) NSNumber *editingCenterBorderWidth;
+
 /* *
  * Whether to support hover changes when moving the mouse
  */

+ 2 - 2
PDF Office/PDF Master/Class/PDFWindowController/PDFSDK/ComPDFKit.framework/Versions/A/_CodeSignature/CodeResources

@@ -1032,11 +1032,11 @@
 		<dict>
 			<key>hash</key>
 			<data>
-			eayhjbUmHDGFaPd0Sr0xpyGwgBI=
+			AZ5JiF1dsxteFtBaJpAGmT39St8=
 			</data>
 			<key>hash2</key>
 			<data>
-			99dPFjYQSGUERBJZCpeOJDxEtH7FNP7OixTjIE/zxcg=
+			BryT3o/tAhRVoNWfirmomjUA3hk2UZh1GzAkbjATS5w=
 			</data>
 		</dict>
 		<key>Headers/CPDFView+Utilities.h</key>

+ 3 - 1
PDF Office/PDF Master/KMClass/KMPDFViewController/KMMainViewController.swift

@@ -4050,7 +4050,9 @@ extension KMMainViewController: KMNLeftSideViewControllerDelegate {
     func addBookmarkForLeftC(controller: KMNLeftSideViewController, bookmark: CPDFBookmark?, info: [String : Any]?) {
         if let result = info?["result"] as? Bool {
             if result == false {
-                let message = KMNCustomAlertView.alertView(message: KMLocalizedString("This page has been bookmarked"), type: .normal_custom, fromView: self.view, point:CGPointMake(self.view.frame.origin.x + self.view.frame.size.width/2, self.view.bounds.size.height - 30))
+                if let targetV = listView.superview {
+                    _ = KMNCustomAlertView.alertView(message: KMLocalizedString("This page has been bookmarked"), type: .normal_custom, fromView: targetV, point:CGPointMake(targetV.frame.size.width/2, targetV.bounds.size.height-24))
+                }
             }
         }
     }

+ 82 - 22
PDF Office/PDF Master/KMClass/Left/Bookmark/Controller/KMBookMarkViewController.swift

@@ -46,6 +46,7 @@ class KMBookMarkViewController: KMNBotaBaseViewController {
         return view
     }()
     private var groupView: ComponentGroup? = ComponentGroup.createFromNib(in: ComponentLibrary.shared.componentBundle())
+    private var menuGroupView_: ComponentGroup?
     
     var dataSource: [KMBookmarkItem] = []
     var renameTextField: NSTextField?
@@ -89,6 +90,42 @@ class KMBookMarkViewController: KMNBotaBaseViewController {
         
         bookTableView.hasImageToolTips = true
         bookTableView.botaDelegate = self
+        bookTableView.menuClickedAction = { [unowned self] point in
+            let idxs = self.bookTableView.selectedRowIndexes.count
+
+            let convertP = self.bookTableView.convert(point, from: nil)
+            let row = self.bookTableView.row(at: convertP)
+            if row == -1 {
+                var viewHeight: CGFloat = 0
+                let items: [String] = ["Add Bookmark", "All Select", "Delete"]
+                var menuItemArr: [ComponentMenuitemProperty] = []
+                for value in items {
+                    let properties_Menuitem: ComponentMenuitemProperty = ComponentMenuitemProperty(multipleSelect: false,
+                                                                                                       itemSelected: false,
+                                                                                                       isDisabled: false,
+                                                                                                       keyEquivalent: nil,
+                                                                                                       text: KMLocalizedString(value),
+                                                                                                       identifier: value)
+                    if value == "Delete" {
+                        properties_Menuitem.keyEquivalent = "⌘ " + String(Unicode.Scalar(NSBackspaceCharacter)!)
+                        properties_Menuitem.isDisabled = idxs == 0
+                    }
+                    menuItemArr.append(properties_Menuitem)
+                    viewHeight += 36
+                }
+
+                self.menuGroupView_ = ComponentGroup.createFromNib(in: ComponentLibrary.shared.componentBundle())
+                self.menuGroupView_?.clickedAutoHide = false
+                self.menuGroupView_?.groupDelegate = self
+                self.menuGroupView_?.frame = CGRectMake(0, 0, 180, viewHeight)
+                self.menuGroupView_?.updateGroupInfo(menuItemArr)
+
+                self.menuGroupView_?.showWithPoint(CGPoint(x: point.x, y: point.y - viewHeight), relativeTo: self.bookTableView)
+
+                return NSMenu()
+            }
+            return NSMenu()
+        }
         
         topView.addSubview(searchButton)
         searchButton.km_add_size_constraint(size: NSMakeSize(24, 24))
@@ -336,9 +373,9 @@ class KMBookMarkViewController: KMNBotaBaseViewController {
     }
     
     func updateAddBookMarkState() {
-        addButton_.properties.isDisabled = !canAddBorkMark()
-        addButton_.properties.state = .normal
-        addButton_.reloadData()
+//        addButton_.properties.isDisabled = !canAddBorkMark()
+//        addButton_.properties.state = .normal
+//        addButton_.reloadData()
     }
     
     // MARK: - Public Methods
@@ -414,6 +451,9 @@ class KMBookMarkViewController: KMNBotaBaseViewController {
     }
     
     @IBAction func addBookmarkAction(_ sender: Any) {
+        addButton_.properties.state = .normal
+        addButton_.reloadData()
+        
         let currentPageIndex = handdler.currentPageIndex
         if let data = handdler.bookmark(for: currentPageIndex) {
             delegate?.bkControllerAddAction?(controller: self, bookmark: data, info: ["result" : false])
@@ -435,7 +475,7 @@ class KMBookMarkViewController: KMNBotaBaseViewController {
             alter.addButton(withTitle: KMLocalizedString("Yes", comment:""))
             alter.addButton(withTitle: KMLocalizedString("No", comment:""))
             let modlres = alter.runModal()
-            if modlres == NSApplication.ModalResponse.alertFirstButtonReturn {
+            if modlres == .alertFirstButtonReturn {
                 let bookMark = KMBookmarkItem()
                 bookMark.bookMark = item.bookMark
                 bookMark.label = item.label
@@ -565,7 +605,10 @@ extension KMBookMarkViewController : NSTableViewDelegate,NSTableViewDataSource {
                 
                 let tempView = self?.bookTableView.rowView(atRow: row, makeIfNecessary: false)
                 var viewHeight: CGFloat = 0
-                let items: [String] = ["Delete", "Add", "Rename", "Delete All"]
+                var items: [String] = ["Rename", "Setting Destination", "Delete"]
+                if idxs > 1 {
+                    items = ["Delete"]
+                }
                 var menuItemArr: [ComponentMenuitemProperty] = []
                 for value in items {
                     let properties_Menuitem: ComponentMenuitemProperty = ComponentMenuitemProperty(multipleSelect: false,
@@ -575,14 +618,14 @@ extension KMBookMarkViewController : NSTableViewDelegate,NSTableViewDataSource {
                                                                                                        text: KMLocalizedString(value),
                                                                                                        identifier: value)
                         
+                    
+                    if value == "Delete" {
+                        properties_Menuitem.keyEquivalent = "⌘ " + String(Unicode.Scalar(NSBackspaceCharacter)!)
+                    }
                     menuItemArr.append(properties_Menuitem)
                     viewHeight += 36
                 }
-                if idxs > 1 {
-                    (menuItemArr.safe_element(for: 1) as? ComponentMenuitemProperty)?.isDisabled = true
-                    (menuItemArr.safe_element(for: 2) as? ComponentMenuitemProperty)?.isDisabled = true
-                }
-                
+
                 if self?.groupView != nil {
                     self?.groupView?.clickedAutoHide = false
                     self?.groupView?.groupDelegate = self
@@ -809,8 +852,7 @@ extension KMBookMarkViewController: ComponentGroupDelegate {
     func componentGroupDidSelect(group: ComponentGroup?, menuItemProperty: ComponentMenuitemProperty?) {
         if group == groupView {
             if let selItem = menuItemProperty {
-                let index = group?.menuItemArr.firstIndex(of: selItem)
-                if index == 0 {
+                if selItem.text == KMLocalizedString("Delete") {
                     group?.removeFromSuperview()
                     var pageIndexs = IndexSet()
                     for i in bookTableView.selectedRowIndexes {
@@ -822,19 +864,12 @@ extension KMBookMarkViewController: ComponentGroupDelegate {
                         }
                     }
                     _ = handdler.removeBookmarks(for: pageIndexs)
-                } else if index == 1 {
-                    
-                } else if index == 2 {
+                } else if selItem.text == KMLocalizedString("Rename") {
                     group?.removeFromSuperview()
                     
                     renameBookAction()
-                } else if index == 3 {
-                    Task {
-                        let resp = await KMAlertTool.runModel(message: KMLocalizedString("此操作将删除文档中的所有书签,是否继续?"), buttons: [KMLocalizedString("OK"), KMLocalizedString("No")])
-                        if resp == .alertFirstButtonReturn {
-                            _ = handdler.removeAllBookmarks()
-                        }
-                    }
+                } else if selItem.text == KMLocalizedString("Setting Destination") {
+                   changeLocationAction()
                 }
             }
         } else if group == searchGroupView {
@@ -855,6 +890,31 @@ extension KMBookMarkViewController: ComponentGroupDelegate {
                 
                 handdler.caseSensitive = !value
             }
+        } else if group == menuGroupView_ {
+            guard let menuI = menuItemProperty else {
+                return
+            }
+            let idx = group?.menuItemArr.firstIndex(of: menuI)
+            if idx == 0 {
+                group?.removeFromSuperview()
+                
+                addBookmarkAction(addButton_)
+            } else if idx == 1 {
+                group?.removeFromSuperview()
+                
+                var indexs = IndexSet()
+                for (i, _) in dataSource.enumerated() {
+                    indexs.insert(i)
+                }
+                bookTableView.km_safe_selectRowIndexes(indexs, byExtendingSelection: false)
+                for i in indexs {
+                    didSelectItem(row: i, event: nil)
+                }
+            } else if idx == 2 {
+                group?.removeFromSuperview()
+                
+                deleteBookAction()
+            }
         }
     }