|
@@ -320,7 +320,27 @@ class KMPDFThumbViewBaseController: KMBaseViewController {
|
|
|
let _ = KMComparativeTableViewController.show(window: self.view.window!)
|
|
|
return
|
|
|
}
|
|
|
- self._extractPages(indexpaths: indexpaths)
|
|
|
+// if await (KMLightMemberManager.manager.canPayFunction() == false) {
|
|
|
+// let _ = KMSubscribeWaterMarkWindowController.show(window: self.view.window!) { isSubscribeSuccess, isWaterMarkExport, isClose in
|
|
|
+// if (isClose) {
|
|
|
+// return
|
|
|
+// }
|
|
|
+// self._extractPages(indexpaths: indexpaths)
|
|
|
+// }
|
|
|
+// return
|
|
|
+// }
|
|
|
+// self._extractPages(indexpaths: indexpaths)
|
|
|
+ self.showExtractWindow_success(indexpaths: indexpaths) { [unowned self] oneDocumentPerPage, extractAfterDelete in
|
|
|
+ self._extractPages(indexpaths: indexpaths, oneDocumentPerPage: oneDocumentPerPage) { [unowned self] result, params in
|
|
|
+ if (result == .failure) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if (extractAfterDelete) {
|
|
|
+ self.deleteIndexPaths(indexpaths: indexpaths)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -389,6 +409,58 @@ class KMPDFThumbViewBaseController: KMBaseViewController {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ // MARK: - Show Windows
|
|
|
+
|
|
|
+ public func showExtractWindow(indexpaths: Set<IndexPath>, callback:@escaping KMResultBlock) {
|
|
|
+ let windowC = KMPageEditExtractWindowController(nil)
|
|
|
+ if let data = self.thumbnailView.document?.pageCount, data == indexpaths.count {
|
|
|
+ windowC.canDeleteAll = false
|
|
|
+ } else {
|
|
|
+ windowC.canDeleteAll = true
|
|
|
+ }
|
|
|
+ self.km_beginSheet(windowC: windowC)
|
|
|
+
|
|
|
+ windowC.itemClick = { [weak self] index, _ in
|
|
|
+ if (index == 1) { /// 取消
|
|
|
+ self?.km_endSheet()
|
|
|
+ callback(.cancel)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ guard let _windowC = self?.currentWindowC as? KMPageEditExtractWindowController else {
|
|
|
+ self?.km_endSheet()
|
|
|
+ callback(nil)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ /// 提取设置项
|
|
|
+ let settingView = _windowC.settingView as! KMPageEditExtractSettingView
|
|
|
+ let oneDocumentPerPage = settingView.independentPerPageValue
|
|
|
+ let extractAfterDelete = settingView.extractAfterDeletePageValue
|
|
|
+
|
|
|
+ self?.km_endSheet()
|
|
|
+ callback(.ok, oneDocumentPerPage, extractAfterDelete)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public func showExtractWindow_success(indexpaths: Set<IndexPath>, callback:@escaping (_ oneDocumentPerPage: Bool, _ extractAfterDelete: Bool)->Void) {
|
|
|
+ self.showExtractWindow(indexpaths: indexpaths) { result, params in
|
|
|
+ guard let data = result, data == .ok else { // 点击取消或出错
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var oneDocumentPerPage = false
|
|
|
+ if let data = params.first as? Bool {
|
|
|
+ oneDocumentPerPage = data
|
|
|
+ }
|
|
|
+ var extractAfterDelete = false
|
|
|
+ if let data = params.last as? Bool {
|
|
|
+ extractAfterDelete = data
|
|
|
+ }
|
|
|
+
|
|
|
+ callback(oneDocumentPerPage, extractAfterDelete)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// MARK: - 刷新 UI
|
|
|
|
|
|
func refreshUI(indexpaths: Set<IndexPath> = [], keepSelected: Bool = false) {
|
|
@@ -482,57 +554,9 @@ class KMPDFThumbViewBaseController: KMBaseViewController {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private func _extractPages(indexpaths: Set<IndexPath>) {
|
|
|
- let windowC = KMPageEditExtractWindowController(nil)
|
|
|
- if let data = self.thumbnailView.document?.pageCount, data == self.thumbnailView.selectionIndexPaths.count {
|
|
|
- windowC.canDeleteAll = false
|
|
|
- } else {
|
|
|
- windowC.canDeleteAll = true
|
|
|
- }
|
|
|
-
|
|
|
- self.km_beginSheet(windowC: windowC)
|
|
|
-
|
|
|
- windowC.itemClick = { [weak self] index, value in
|
|
|
- if (index == 1) { /// 取消
|
|
|
- self?.km_endSheet()
|
|
|
- return
|
|
|
- }
|
|
|
- guard let _windowC = self?.currentWindowC as? KMPageEditExtractWindowController else {
|
|
|
- self?.km_endSheet()
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- /// 提取设置项
|
|
|
- let settingView = _windowC.settingView as! KMPageEditExtractSettingView
|
|
|
- let oneDocumentPerPage = settingView.independentPerPageValue
|
|
|
- let extractAfterDelete = settingView.extractAfterDeletePageValue
|
|
|
-
|
|
|
- self?.km_endSheet()
|
|
|
-
|
|
|
- var indexs: IndexSet = []
|
|
|
- var extractPages: Array<CPDFPage> = []
|
|
|
- for indexpath in indexpaths {
|
|
|
- let page = self?.thumbnailView.document!.page(at: UInt(indexpath.item))
|
|
|
- if (page != nil) {
|
|
|
- extractPages.append(page!)
|
|
|
- }
|
|
|
- indexs.insert(indexpath.item)
|
|
|
- }
|
|
|
-
|
|
|
- KMPageEditTools.extract((self?.thumbnailView.document)!, indexs, !oneDocumentPerPage, (self?.view.window)!) { result, urls, error in
|
|
|
- if (result == false) {
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- if (extractAfterDelete) {
|
|
|
- var indexpaths = Set<IndexPath>()
|
|
|
- for page in extractPages {
|
|
|
- let indexPage: Int = Int((self?.thumbnailView.document!.index(for: page))!)
|
|
|
- indexpaths.insert(IndexPath(item: indexPage, section: 0))
|
|
|
- }
|
|
|
- self?.deleteIndexPaths(indexpaths: indexpaths)
|
|
|
- }
|
|
|
- }
|
|
|
+ private func _extractPages(indexpaths: Set<IndexPath>, oneDocumentPerPage: Bool, callback: @escaping KMResultBlock) {
|
|
|
+ KMPageEditTools.extract((self.thumbnailView.document)!, self.indexpathsToIndexs(indexpaths: indexpaths), !oneDocumentPerPage, self.view.window!) { result, urls, error in
|
|
|
+ callback(result ? .success : .failure, urls as Any, error)
|
|
|
}
|
|
|
}
|
|
|
|