Explorar o código

AI - 文本翻译模拟进度条补充

wanjun hai 1 ano
pai
achega
674919987e

+ 24 - 0
PDF Office/PDF Master/Class/Home/ViewController/KMAITranslationVC.swift

@@ -35,6 +35,8 @@ class KMAITranslationVC: NSViewController {
 
     var popover: NSPopover?
     var progressController: SKProgressController?
+    var timer: Timer?
+    var timerCounter = 0.0
 
     override func viewDidLoad() {
         super.viewDidLoad()
@@ -135,8 +137,11 @@ class KMAITranslationVC: NSViewController {
                             } else {
                                 DispatchQueue.main.async {
                                     self.showProgressWindow()
+                                    self.progressController?.maxValue = Double(100)
                                 }
                                 
+                                timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(timerTick), userInfo: nil, repeats: true)
+                                
                                 let infoDictionary = Bundle .main.infoDictionary!
                                 let majorVersion = infoDictionary["CFBundleShortVersionString"]
 
@@ -375,6 +380,11 @@ class KMAITranslationVC: NSViewController {
     }
     
     func hiddenProgressWindow() {
+        DispatchQueue.main.async {
+            self.progressController?.doubleValue = 100.0
+        }
+        self.stopTimer()
+        
         if (self.progressController != nil) {
             self.view.window?.endSheet((self.progressController?.window)!)
             self.progressController = nil
@@ -406,6 +416,20 @@ class KMAITranslationVC: NSViewController {
         let pageCount = document.pageCount
         return pageCount > 30
     }
+    
+    @objc func timerTick() {
+        timerCounter += 1.0
+        self.progressController?.increment(by: 1.0)
+        
+        if timerCounter >= 95 {
+            stopTimer()
+        }
+    }
+    
+    func stopTimer() {
+        timer?.invalidate()
+        timer = nil
+    }
 
     // MARK: Action Methods
     

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

@@ -663,8 +663,10 @@ extension KMHomeViewController {
              let majorVersion = infoDictionary["CFBundleShortVersionString"]
             DispatchQueue.main.async {
                 self.showProgressWindow()
+                self.progressController?.maxValue = Double(100)
             }
-            
+            timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(timerTick), userInfo: nil, repeats: true)
+
              KMRequestServerManager.manager.aiTranslationFileUpload(file: path, version: majorVersion as! String) { [unowned self] success, result in
                  if success {
                      let result: NSDictionary = result!.result

+ 21 - 0
PDF Office/PDF Master/Class/Home/ViewController/KMHomeViewController.swift

@@ -120,6 +120,8 @@ import KMAdvertisement
     var popover: NSPopover?
     var deviceBrowserWC: KMDeviceBrowserWindowController?
     var progressController: SKProgressController?
+    var timer: Timer?
+    var timerCounter = 0.0
 
     override func viewWillAppear() {
         super.viewWillAppear()
@@ -616,6 +618,11 @@ import KMAdvertisement
     }
     
     func hiddenProgressWindow() {
+        DispatchQueue.main.async {
+            self.progressController?.doubleValue = 100.0
+        }
+        self.stopTimer()
+
         if (self.progressController != nil) {
             self.view.window?.endSheet((self.progressController?.window)!)
             self.progressController = nil
@@ -647,6 +654,20 @@ import KMAdvertisement
         let pageCount = document.pageCount
         return pageCount > 30
     }
+    
+    @objc func timerTick() {
+        timerCounter += 1.0
+        self.progressController?.increment(by: 1.0)
+        
+        if timerCounter >= 95 {
+            stopTimer()
+        }
+    }
+    
+    func stopTimer() {
+        timer?.invalidate()
+        timer = nil
+    }
 
     // MARK: Common methods
     

+ 23 - 1
PDF Office/PDF Master/Class/Home/WindowController/KMAITranslationConfirmWindowController.swift

@@ -31,6 +31,8 @@ class KMAITranslationConfirmWindowController: NSWindowController {
 
     var filePath: String = ""
     var progressController: SKProgressController?
+    var timer: Timer?
+    var timerCounter = 0.0
     var fromStr: String = "auto"
     var toStr: String = "en"
     var fromLanguages: [String] = ["Automatic", "English", "Simplified Chinese", "Traditional Chinese", "Japanese", "Korean", "French", "Spanish", "Italian", "German", "Portuguese", "Russian", "Vietnamese", "Thai", "Arabic", "Greek", "Bulgarian", "Finnish", "Slovene", "Dutch", "Czech", "Swedish", "Polish", "Danish", "Romanian", "Hungarian"]
@@ -150,8 +152,10 @@ class KMAITranslationConfirmWindowController: NSWindowController {
             
             DispatchQueue.main.async {
                 self.showProgressWindow()
+                self.progressController?.maxValue = Double(100)
             }
-            
+            timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(timerTick), userInfo: nil, repeats: true)
+
             let languages = [self.fromLabel.stringValue, self.toLabel.stringValue]
             UserDefaults.standard.set(languages, forKey: "KMAITranslationLanguageArrayKey")
             UserDefaults.standard.synchronize()
@@ -264,6 +268,11 @@ class KMAITranslationConfirmWindowController: NSWindowController {
     }
     
     func hiddenProgressWindow() {
+        DispatchQueue.main.async {
+            self.progressController?.doubleValue = 100.0
+        }
+        self.stopTimer()
+
         if (self.progressController != nil) {
             self.window?.endSheet((self.progressController?.window)!)
             self.progressController = nil
@@ -430,4 +439,17 @@ class KMAITranslationConfirmWindowController: NSWindowController {
         return "auto"
     }
 
+    @objc func timerTick() {
+        timerCounter += 1.0
+        self.progressController?.increment(by: 1.0)
+        
+        if timerCounter >= 95 {
+            stopTimer()
+        }
+    }
+    
+    func stopTimer() {
+        timer?.invalidate()
+        timer = nil
+    }
 }