Browse Source

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

liujiajie 10 months ago
parent
commit
fd00867a1f

+ 6 - 3
PDF Office/PDF Master/Class/Home/ViewController/KMHomeViewController+Action.swift

@@ -572,11 +572,14 @@ extension KMHomeViewController {
 
             // 创建 NSBitmapImageRep 对象,并将 PNG 图像绘制到其中
             let bitmap = NSBitmapImageRep(data: pngImage.tiffRepresentation!)
-            let rect = NSRect(origin: .zero, size: bitmap!.size)
-            bitmap?.draw(in: rect)
+            guard let bitmap = bitmap else {
+                return
+            }
+            let rect = NSRect(origin: .zero, size: bitmap.size)
+            bitmap.draw(in: rect)
 
             // 将 PNG 图像数据转换为 JPG 图像数据
-            guard let jpgData = bitmap?.representation(using: .jpeg, properties: [:]) else {
+            guard let jpgData = bitmap.representation(using: .jpeg, properties: [:]) else {
                 KMPrint("Failed to convert PNG to JPG")
                 return
             }

+ 2 - 2
PDF Office/PDF Master/Class/PDFTools/Watermark/Tools/KMWatermarkManager.swift

@@ -426,8 +426,8 @@ class KMWatermarkManager: NSObject {
         for model in self.watermarks {
             let watermarkID = model.watermarkID
             if (watermarkID.hasPrefix(watermark)) {
-                let indexString: String = (watermarkID.components(separatedBy: watermark).last)!
-                let index: Int = Int(indexString)!
+                let indexString: String = (watermarkID.components(separatedBy: watermark).last ?? "0")
+                let index: Int = Int(indexString) ?? 0
                 if (index >= availableIndex) {
                     availableIndex = index + 1
                 }

+ 6 - 4
PDF Office/PDF Master/Class/PDFWindowController/Toolbar/KMToolbarViewController.swift

@@ -1229,8 +1229,9 @@ extension KMToolbarViewController {
             item?.btnAction = #selector(leftControllButtonAction)
             item?.promptIdentifier = identifier
             
-            let menuItem = NSMenuItem.init(title: NSLocalizedString("Edit PDF", comment: ""), action: #selector(leftControllButtonAction), target: self)
+            let menuItem = NSMenuItem.init(title: NSLocalizedString("Edit PDF", comment: ""), action: #selector(_menuItemAction), target: self)
             menuItem.tag = item!.btnTag
+            menuItem.representedObject = identifier
             item?.menuFormRepresentation = menuItem
         } else if identifier == KMDocumentFormToolbarItemIdentifier {
             item?.titleName = NSLocalizedString("Forms", comment: "")
@@ -1243,8 +1244,9 @@ extension KMToolbarViewController {
             item?.btnAction = #selector(leftControllButtonAction)
             item?.promptIdentifier = identifier
             
-            let menuItem = NSMenuItem.init(title: NSLocalizedString("Forms", comment: ""), action: #selector(leftControllButtonAction), target: self)
+            let menuItem = NSMenuItem.init(title: NSLocalizedString("Forms", comment: ""), action: #selector(_menuItemAction), target: self)
             menuItem.tag = item!.btnTag
+            menuItem.representedObject = identifier
             item?.menuFormRepresentation = menuItem
         } else if identifier == KMDocumentFillSginToolbarItemIdentifier {
             item?.titleName = NSLocalizedString("Fill & Sign", comment: "")
@@ -1257,10 +1259,10 @@ extension KMToolbarViewController {
             item?.btnAction = #selector(leftControllButtonAction)
             item?.promptIdentifier = identifier
             
-            let menuItem = NSMenuItem.init(title: NSLocalizedString("Fill & Sign", comment: ""), action: #selector(leftControllButtonAction), target: self)
+            let menuItem = NSMenuItem.init(title: NSLocalizedString("Fill & Sign", comment: ""), action: #selector(_menuItemAction), target: self)
             menuItem.tag = item!.btnTag
+            menuItem.representedObject = identifier
             item?.menuFormRepresentation = menuItem
-
         } else if identifier == KMDocumentToolToolbarItemIdentifier {
             item?.titleName = NSLocalizedString("Editor", comment: "")
             item?.target = self

+ 12 - 58
PDF Office/PDF Master/Class/PDFWindowController/ViewController/KMMainViewController+Action.swift

@@ -3693,14 +3693,7 @@ extension KMMainViewController : KMMainToolbarControllerDelegate {
     }
     
     func mainToolDidClicked(_ toolController: KMToolbarController, _ beforeType: KMToolbarViewType, _ type: KMToolbarViewType, _ item: KMToolbarItemView , _ pages: [Int]) {
-        if beforeType == .editPDF {
-//            self.asyncSaveDocument { params in
-//
-//            }
-        }
-        
-        // 埋点
-//        self.trackEvent(toolType: type)
+        if beforeType == .editPDF {}
         
         if(type != .Page) {
             if (hasEnterPageEdit()) {
@@ -3732,10 +3725,7 @@ extension KMMainViewController : KMMainToolbarControllerDelegate {
                 self.enterPageEdit(pages)
             }
         } else if type == .editPDF {
-            self.listView.updateActiveAnnotations([])
-            self.listView.setNeedsDisplayForVisiblePages()
-            self.listView.commitEditFormText()
-            self.listView.annotationType = .editTextImage
+            self.enterEditPDF()
         } else if type == .Annatiton {
             self.rightSideViewController.subViewType = .AnnotationProperts
         } else if type == .redact {
@@ -3841,37 +3831,6 @@ extension KMMainViewController : KMMainToolbarControllerDelegate {
                 FMTrackEventManager.defaultManager.trackEvent(event: "SubTbr_Editor", withProperties: ["SubTbr_Btn": "Btn_SubTbr_Editor_Merge"])
                 if !self.documentAllowsEdit() {
                     return
-                    
-//                    if await (KMLightMemberManager.manager.canPayFunction() == false) {
-//                            KMPasswordInputWindow.openWindow(window: self.view.window!, type: .owner, url: self.listView.document.documentURL) { [unowned self] result , password in
-//                                if (result == .cancel) {
-//                                    return
-//                                }
-//                                 
-//                                guard let _url =  KMTools.saveWatermarkDocumentToTemp(document: self.listView.document, secureOptions: self.secureOptions, removePWD: self.removeSecureFlag) else {
-//                                    return
-//                                }
-//                                self.showMergeWindow(url: _url, password)
-//                            }
-//                        return
-//                    }
-//                    
-//                    KMPasswordInputWindow.openWindow(window: self.view.window!, type: .owner, url: self.listView.document.documentURL) { [unowned self] result , password in
-//                        if (result == .cancel) {
-//                            return
-//                        }
-//  
-//                            
-//                        if (self.needSaveDocument()) {
-//                            self.saveDocumentWithProgressAlert { [unowned self] params in
-//                                self.showMergeWindow(password)
-//                            }
-//                            return
-//                        }
-//                        
-//                        self.showMergeWindow(password)
-//                    }
-                    return
                 }
                 
                 if await (KMLightMemberManager.manager.canPayFunction() == false) {
@@ -4481,21 +4440,7 @@ extension KMMainViewController : KMMainToolbarControllerDelegate {
     }
     
     func toolbarViewController(_ viewController: KMToolbarViewController, itemDidClick toolbarItem: KMToolbarItemView) {
-        if(toolbarItem.itemIdentifier != KMDocumentPageToolbarItemIdentifier) {
-            if (hasEnterPageEdit()) {
-                self.exitPageEdit()
-            }
-        }
-        if toolbarItem.itemIdentifier != KMDocumentRedactToolbarItemIdentifier {
-            if self.hasEnterRedact() {
-                self.exitRedact()
-            }
-        }
-        if toolbarItem.itemIdentifier != KMDocumentDigitalSignToolbarItemIdentifier {
-            if self.hasShowDigitalSign() {
-                self.exitDigitalSign()
-            }
-        }
+        self.toolbarItemClickForExitMode(toolbarItem)
         
         if let itemID = toolbarItem.itemIdentifier {
             if isMainToolItem(itemID) {
@@ -4717,6 +4662,8 @@ extension KMMainViewController : KMMainToolbarControllerDelegate {
     }
     
     func toolbarViewController(_ viewController: KMToolbarViewController, menuItemDidClick toolbarItem: KMToolbarItemView, index: Int, info: Any?) {
+        self.toolbarItemClickForExitMode(toolbarItem)
+        
         if (toolbarItem.itemIdentifier == KMToolbarToolWatermarkItemIdentifier) {
             self.clickChildTool(type: .watermark, index: index)
             FMTrackEventManager.defaultManager.trackEvent(event: "SubTbr_Editor", withProperties: ["SubTbr_Btn": "Btn_SubTbr_Editor_Watermark"])
@@ -4774,6 +4721,13 @@ extension KMMainViewController : KMMainToolbarControllerDelegate {
             }
         } else if toolbarItem.itemIdentifier == KMDocumentScanOCRToolbarItemIdentifier {
             self.showOCRWindow()
+        } else if toolbarItem.itemIdentifier == KMDocumentEditToolbarItemIdentifier {
+            self.toolbarController.toolbarType = .editPDF
+            self.enterEditPDF()
+        } else if toolbarItem.itemIdentifier == KMDocumentFillSginToolbarItemIdentifier {
+            self.toolbarController.toolbarType = .FillSign
+        } else if toolbarItem.itemIdentifier == KMDocumentFormToolbarItemIdentifier {
+            self.toolbarController.toolbarType = .Form
         }
     }
     

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

@@ -1078,6 +1078,35 @@ import Cocoa
         return self.getPDFEditController() != nil
     }
     
+    // MARK: - Edit PDF
+    
+    func enterEditPDF() {
+        self.listView.updateActiveAnnotations([])
+        self.listView.setNeedsDisplayForVisiblePages()
+        self.listView.commitEditFormText()
+        self.listView.annotationType = .editTextImage
+    }
+    
+    // MARK: - Toolbar
+    
+    func toolbarItemClickForExitMode(_ toolbarItem: KMToolbarItemView) {
+        if(toolbarItem.itemIdentifier != KMDocumentPageToolbarItemIdentifier) {
+            if (hasEnterPageEdit()) {
+                self.exitPageEdit()
+            }
+        }
+        if toolbarItem.itemIdentifier != KMDocumentRedactToolbarItemIdentifier {
+            if self.hasEnterRedact() {
+                self.exitRedact()
+            }
+        }
+        if toolbarItem.itemIdentifier != KMDocumentDigitalSignToolbarItemIdentifier {
+            if self.hasShowDigitalSign() {
+                self.exitDigitalSign()
+            }
+        }
+    }
+    
     // MARK: - Private Methods
     
     private func getPDFEditController() -> KMPDFEditViewController? {

+ 56 - 56
PDF Office/PDF Reader Pro.xcodeproj/xcuserdata/kdanmobile.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -430,8 +430,8 @@
             filePath = "PDF Master/Class/Preference/View/KMLineWell.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "389"
-            endingLineNumber = "389"
+            startingLineNumber = "387"
+            endingLineNumber = "387"
             landmarkName = "draggingEntered(_:)"
             landmarkType = "7">
          </BreakpointContent>
@@ -448,7 +448,7 @@
             endingColumnNumber = "9223372036854775807"
             startingLineNumber = "3368"
             endingLineNumber = "3368"
-            landmarkName = "changeModelAction(mode:)"
+            landmarkName = "controllerDidClose(_:)"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
@@ -464,23 +464,7 @@
             endingColumnNumber = "9223372036854775807"
             startingLineNumber = "3663"
             endingLineNumber = "3663"
-            landmarkName = "mainToolDidClicked(_:_:_:_:_:)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "C7678A42-CF3B-45B2-98FE-D482016561A5"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "PDF Master/Class/PDFWindowController/ViewController/KMMainViewController+Action.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "4711"
-            endingLineNumber = "4711"
-            landmarkName = "toolbarViewController(_:menuItemDidClick:index:info:)"
+            landmarkName = "toolbarViewController(_:scanOCRModel:)"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
@@ -494,8 +478,8 @@
             filePath = "PDF Master/Class/PDFWindowController/ViewController/KMMainViewController+Action.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "4562"
-            endingLineNumber = "4562"
+            startingLineNumber = "4507"
+            endingLineNumber = "4507"
             landmarkName = "toolbarViewController(_:itemDidClick:)"
             landmarkType = "7">
          </BreakpointContent>
@@ -526,42 +510,58 @@
             filePath = "PDF Master/Class/PDFWindowController/ViewController/KMMainViewController.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "1939"
-            endingLineNumber = "1939"
+            startingLineNumber = "1968"
+            endingLineNumber = "1968"
             landmarkName = "annotationsAttributeHasChange(_:)"
             landmarkType = "7">
-            <Locations>
-               <Location
-                  uuid = "F75A96BF-D169-4294-860E-D87BC0554D56 - d7c6bc251e6b2862"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMMainViewController.annotationsAttributeHasChange(Foundation.Notification) -&gt; ()"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/work/tangchao/git/PDFOffice/PDF%20Office/PDF%20Master/Class/PDFWindowController/ViewController/KMMainViewController.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "1939"
-                  endingLineNumber = "1939"
-                  offsetFromSymbolStart = "385">
-               </Location>
-               <Location
-                  uuid = "F75A96BF-D169-4294-860E-D87BC0554D56 - d7c6bc251e6b2862"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMMainViewController.annotationsAttributeHasChange(Foundation.Notification) -&gt; ()"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/work/tangchao/git/PDFOffice/PDF%20Office/PDF%20Master/Class/PDFWindowController/ViewController/KMMainViewController.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "1939"
-                  endingLineNumber = "1939"
-                  offsetFromSymbolStart = "634">
-               </Location>
-            </Locations>
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "D24D073E-D708-48C2-92EB-491749FB4B15"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "PDF Master/Class/Preference/View/KMLineWell.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "337"
+            endingLineNumber = "337"
+            landmarkName = "performClick(_:)"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "02E196B3-26D2-4E48-8005-2390C06C1D0A"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "PDF Master/Class/Preference/View/KMLineWell.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "813"
+            endingLineNumber = "813"
+            landmarkName = "_activate(_:)"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "88B40703-B5A1-41D3-A074-7069BBEE2A75"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "PDF Master/Class/AD/KMAdsWebView.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "290"
+            endingLineNumber = "290"
+            landmarkName = "buttonItemClicked(_:)"
+            landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
    </Breakpoints>