Browse Source

【综合】BOTA缩略图列表分享窗口弹出方式调整

tangchao 9 months ago
parent
commit
fa4e5fd604

+ 16 - 37
PDF Office/PDF Master/Class/PDFWindowController/Side/LeftSide/KMLeftSideViewController+Thumbnail.swift

@@ -561,50 +561,29 @@ extension KMLeftSideViewController {
         }
         
         guard let document = self.pdfDocument() else {
+            KMPrint("document is nil.", beep: true)
             return
         }
-        var pages = NSMutableArray()
-        for idx in self.thumbnailTableView.selectedRowIndexes {
-            if (idx < document.pageCount) {
-                if let page = self.pdfDocument()?.page(at: UInt(idx)) {
-                    pages.add(page)
-                }
-            }
+        let ris = self.thumbnailTableView.selectedRowIndexes
+        if ris.isEmpty {
+            KMPrint("empty selection.", beep: true)
+            return
         }
+        
         let pdf = CPDFDocument()
-        for page in pages {
-            if let _page = page as? CPDFPage {
-                pdf?.insertPageObject(_page, at: pdf?.pageCount ?? 0)
-            }
-        }
-        var fileName = ""
-        var documentFileName = document.documentURL?.deletingPathExtension().lastPathComponent ?? ""
+        pdf?.importPages(ris, from: document, at: 0)
 
-        var tName = self.fileNameWithSelectedPages(self.thumbnailTableView.selectedRowIndexes)
-        if (tName.count > 50) {
-            tName = tName.substring(to: 50)
-        }
-
-        if (pages.count > 1) {
-            fileName = String(format: "%@ pages %@", documentFileName, tName)
-        } else {
-            fileName = String(format: "%@ page %@", documentFileName, tName)
+        var fileName = self.fileNameWithSelectedPages(ris)
+        if (fileName.count > 50) {
+            fileName = fileName.substring(to: 50)
         }
 
         let paths = NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true)
         var cachesDir = paths.first ?? ""
         cachesDir = "\(cachesDir)/\(fileName).pdf"
-        var array = NSMutableArray()
         let url = URL(fileURLWithPath: cachesDir)
-        array.add(url)
-        let vc = KMProgressWindowController()
-        guard let win = vc.window else {
-            NSSound.beep()
-            return
-        }
-        self.view.window?.beginSheet(win, completionHandler: { [unowned self] returnCode in
-            NSApp.endSheet(self.view.window!, returnCode: returnCode.rawValue)
-        })
+        let winC = KMProgressWindowController()
+        self.km_beginSheet(windowC: winC) { resp, obj in }
 
         DispatchQueue.global().async {
             let sucess = pdf?.write(toFile: cachesDir) ?? false
@@ -613,12 +592,12 @@ extension KMLeftSideViewController {
                     let represent = (sender as? NSMenuItem)?.representedObject as? NSSharingService
                     represent?.perform(withItems: [url])
                     
-                    NSApp.endSheet(win)
-                    vc.close()
+                    self.km_quick_endSheet()
+                    winC.close()
                 }
             } else {
-                NSApp.endSheet(win)
-                vc.close()
+                self.km_quick_endSheet()
+                winC.close()
             }
         }
     }