|
@@ -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()
|
|
|
}
|
|
|
}
|
|
|
}
|