Explorar o código

【综合】右键AI功能实现

niehaoyu hai 1 ano
pai
achega
e3586c52db

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

@@ -492,6 +492,24 @@ extension KMMainViewController {
         return stypItem
     }
     
+    func setAITranslateStype() -> NSMenuItem {
+        let stypItem = NSMenuItem(title: NSLocalizedString("AI Translate", comment: ""), action: #selector(AITranslateItemAction), target: self)
+        stypItem.state = self.listView.isAutoFlow() ? .on : .off
+        return stypItem
+    }
+    
+    func setAIProofreadStype() -> NSMenuItem {
+        let stypItem = NSMenuItem(title: NSLocalizedString("AI Proofread", comment: ""), action: #selector(AIProofreadItemAction), target: self)
+        stypItem.state = self.listView.isAutoFlow() ? .on : .off
+        return stypItem
+    }
+    
+    func setAIRewriteStype() -> NSMenuItem {
+        let stypItem = NSMenuItem(title: NSLocalizedString("AI Rewrite", comment: ""), action: #selector(AIRewriteItemAction), target: self)
+        stypItem.state = self.listView.isAutoFlow() ? .on : .off
+        return stypItem
+    }
+    
     func addHighlightLinksStype() -> NSMenuItem {
         let highlightLink = KMPreferenceManager.shared.highlightLinks
         var highlightLinkTitle = NSLocalizedString("Highlight Links", comment: "")

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

@@ -708,6 +708,16 @@ extension KMMainViewController {
     @objc func EditNoteItemAction(sender: NSMenuItem) {
         
     }
+    @objc func AITranslateItemAction(sender: NSMenuItem) {
+        self.loadAIConfigWindowWithType(.translate)
+    }
+    @objc func AIProofreadItemAction(sender: NSMenuItem) {
+        self.loadAIConfigWindowWithType(.proofreading)
+    }
+    @objc func AIRewriteItemAction(sender: NSMenuItem) {
+        self.loadAIConfigWindowWithType(.reWriting)
+    }
+    
 //    @objc func highlightLinks() {
 //        let highlightLinks = KMPreferenceManager.shared.highlightLinks
 //        KMPreferenceManager.shared.highlightLinks = !highlightLinks

+ 26 - 17
PDF Office/PDF Master/Class/PDFWindowController/ViewController/KMMainViewController.swift

@@ -781,23 +781,7 @@ let LOCKED_KEY  = "locked"
         }
         self.aiTypeChooseView.clickHandle = { [weak self] view, type in
             DispatchQueue.main.async {
-                let windowVC = AIConfigWindowController.currentWC()
-                windowVC.configType = type
-                if type == .summarize {
-                    windowVC.window?.setFrame(CGRectMake(0, 0, 800, 500), display: true)
-                } else if type == .reWriting {
-                    windowVC.window?.setFrame(CGRectMake(0, 0, 800, 460), display: true)
-                } else if type == .proofreading {
-                    windowVC.window?.setFrame(CGRectMake(0, 0, 800, 460), display: true)
-                } else if type == .translate {
-                    windowVC.window?.setFrame(CGRectMake(0, 0, 800, 545), display: true)
-                }
-                
-                windowVC.cancelHandle = { [weak self] windowVC in
-                    self?.view.window?.endSheet(windowVC.window!)
-                }
-                self?.view.window?.beginSheet(windowVC.window!)
-                windowVC.refreshUI()
+                self!.loadAIConfigWindowWithType(type)
             }
         }
         self.aiTypeChooseView.frame = controller.view.bounds
@@ -814,6 +798,26 @@ let LOCKED_KEY  = "locked"
 
     }
     
+    func loadAIConfigWindowWithType(_ type: AIConfigType) -> Void {
+        let windowVC = AIConfigWindowController.currentWC()
+        windowVC.configType = type
+        if type == .summarize {
+            windowVC.window?.setFrame(CGRectMake(0, 0, 800, 500), display: true)
+        } else if type == .reWriting {
+            windowVC.window?.setFrame(CGRectMake(0, 0, 800, 460), display: true)
+        } else if type == .proofreading {
+            windowVC.window?.setFrame(CGRectMake(0, 0, 800, 460), display: true)
+        } else if type == .translate {
+            windowVC.window?.setFrame(CGRectMake(0, 0, 800, 545), display: true)
+        }
+        
+        windowVC.cancelHandle = { [weak self] windowVC in
+            self?.view.window?.endSheet(windowVC.window!)
+        }
+        self.view.window?.beginSheet(windowVC.window!)
+        windowVC.refreshUI()
+    }
+    
     //MARK: - 引导
     func loadFunctionGuide() -> Void {
 
@@ -2826,6 +2830,11 @@ let LOCKED_KEY  = "locked"
             currentMenu.insertItem(self.setAnnotationToolStype(), at: 5)
         }
         
+        currentMenu.insertItem(NSMenuItem.separator(), at: 0)
+        currentMenu.insertItem(self.setAITranslateStype(), at: 0)
+        currentMenu.insertItem(self.setAIProofreadStype(), at: 0)
+        currentMenu.insertItem(self.setAIRewriteStype(), at: 0)
+        
         for item in currentMenu.items {
             if (item.action == NSSelectorFromString("menuItemClick_HidenorShowNote:")) {
                 // 显示与隐藏注释 item action 截取

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

@@ -493,10 +493,42 @@
             filePath = "PDF Master/Class/PDFWindowController/ViewController/KMMainViewController+Action.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "1029"
-            endingLineNumber = "1029"
+            startingLineNumber = "1047"
+            endingLineNumber = "1047"
             landmarkName = "customCropModel(sender:)"
             landmarkType = "7">
+            <Locations>
+               <Location
+                  uuid = "84C1CA5D-0448-47E5-92DB-8A76F64B1A7B - 43721b4bd80952be"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Reader_Pro.KMMainViewController.menuItemAnnotationClick_toolModel(sender: __C.NSMenuItem) -&gt; ()"
+                  moduleName = "PDF Reader Pro"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/ViewController/KMMainViewController+Action.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "1047"
+                  endingLineNumber = "1047"
+                  offsetFromSymbolStart = "420">
+               </Location>
+               <Location
+                  uuid = "84C1CA5D-0448-47E5-92DB-8A76F64B1A7B - 92a552f75803f928"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "closure #1 (__C.CPDFDocument) -&gt; () in PDF_Reader_Pro.KMMainViewController.customCropModel(sender: __C.NSMenuItem) -&gt; ()"
+                  moduleName = "PDF Reader Pro"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/ViewController/KMMainViewController+Action.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "1047"
+                  endingLineNumber = "1047"
+                  offsetFromSymbolStart = "3068">
+               </Location>
+            </Locations>
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
@@ -715,28 +747,13 @@
             filePath = "PDF Master/Class/PDFWindowController/ViewController/KMMainViewController.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "2632"
-            endingLineNumber = "2632"
+            startingLineNumber = "2636"
+            endingLineNumber = "2636"
             landmarkName = "tableMenu(_:withTable:point:)"
             landmarkType = "7">
             <Locations>
                <Location
-                  uuid = "CA4FC0A7-ECA3-4141-AE22-84D66385B822 - e67b12dd034d39f"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "PDF_Reader_Pro.KMMainViewController.tableMenu(_: __C.NSMenu, withTable: PDF_Reader_Pro.KMTableAnnotation, point: __C.CGPoint) -&gt; __C.NSMenu"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/ViewController/KMMainViewController.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "2631"
-                  endingLineNumber = "2631"
-                  offsetFromSymbolStart = "268">
-               </Location>
-               <Location
-                  uuid = "CA4FC0A7-ECA3-4141-AE22-84D66385B822 - e67b12dd034d39f"
+                  uuid = "CA4FC0A7-ECA3-4141-AE22-84D66385B822 - e67b12dd034d23a"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
@@ -746,12 +763,12 @@
                   urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/ViewController/KMMainViewController.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "2631"
-                  endingLineNumber = "2631"
-                  offsetFromSymbolStart = "456">
+                  startingLineNumber = "2636"
+                  endingLineNumber = "2636"
+                  offsetFromSymbolStart = "2368">
                </Location>
                <Location
-                  uuid = "CA4FC0A7-ECA3-4141-AE22-84D66385B822 - e67b12dd034d3be"
+                  uuid = "CA4FC0A7-ECA3-4141-AE22-84D66385B822 - e67b12dd034d23a"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
@@ -761,8 +778,8 @@
                   urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/ViewController/KMMainViewController.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "2632"
-                  endingLineNumber = "2632"
+                  startingLineNumber = "2636"
+                  endingLineNumber = "2636"
                   offsetFromSymbolStart = "456">
                </Location>
             </Locations>
@@ -784,5 +801,21 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "BE92BA8E-6878-41A0-9D43-CA2ABA88CE7B"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "PDF Master/Class/PDFWindowController/ViewController/KMMainViewController+Action.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "431"
+            endingLineNumber = "431"
+            landmarkName = "setAutoScrollStype()"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
    </Breakpoints>
 </Bucket>