|
@@ -26,6 +26,8 @@ typealias KMMainDocumentCloudUploadHanddler = (@escaping(Bool, String)->()) -> (
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ weak var watermarkSaveDelegate: AnyObject?
|
|
|
+
|
|
|
override func save(to url: URL, ofType typeName: String, for saveOperation: NSDocument.SaveOperationType, delegate: Any?, didSave didSaveSelector: Selector?, contextInfo: UnsafeMutableRawPointer?) {
|
|
|
if (self.isNewCreated) {
|
|
|
// if let data = self.mainViewController, !data.isPDFDocumentEdited && !data.needSave && !self.isDocumentEdited {
|
|
@@ -38,9 +40,42 @@ typealias KMMainDocumentCloudUploadHanddler = (@escaping(Bool, String)->()) -> (
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- self._km_saveForWatermark { [unowned self] needSave in
|
|
|
+ var openAccessoryView = self.watermarkSaveDelegate != nil
|
|
|
+ if (openAccessoryView) {
|
|
|
+ if let _browser = self.watermarkSaveDelegate as? KMBrowser, _browser.isCloseAllTabViewItem {
|
|
|
+ openAccessoryView = false
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ self._km_saveForWatermark(openAccessoryView: openAccessoryView) { [unowned self] needSave, params in
|
|
|
if (needSave) {
|
|
|
self._km_save(to: url, ofType: typeName, for: saveOperation, delegate: delegate, didSave: didSaveSelector, contextInfo: contextInfo)
|
|
|
+ } else { // 水印保存
|
|
|
+ if (self.watermarkSaveDelegate == nil) {
|
|
|
+ if let data = params.first as? KMResult, data == .cancel {
|
|
|
+ if let shouldClose = params.last as? Bool, shouldClose {
|
|
|
+ DispatchQueue.main.async {
|
|
|
+ self.mainViewController?.browserWindowController?.browser.windowDidBeginToClose()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ DispatchQueue.main.async {
|
|
|
+ self.mainViewController?.browserWindowController?.browser.windowDidBeginToClose()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if let data = params.first as? KMResult, data == .cancel {
|
|
|
+ if var shouldClose = params.last as? Bool {
|
|
|
+ if let _browser = self.watermarkSaveDelegate as? KMBrowser, _browser.isCloseAllTabViewItem {
|
|
|
+ shouldClose = true
|
|
|
+ }
|
|
|
+ (self.watermarkSaveDelegate as? KMBrowser)?.document(self, shouldClose: shouldClose, contextInfo: nil)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ (self.watermarkSaveDelegate as? KMBrowser)?.document(self, shouldClose: true, contextInfo: nil)
|
|
|
+ }
|
|
|
+ self.watermarkSaveDelegate = nil
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -183,7 +218,7 @@ typealias KMMainDocumentCloudUploadHanddler = (@escaping(Bool, String)->()) -> (
|
|
|
self._km_saveAs(sender)
|
|
|
return
|
|
|
}
|
|
|
- self._km_saveForWatermark { [unowned self] needSave in
|
|
|
+ self._km_saveForWatermark { [unowned self] needSave, _ in
|
|
|
if (needSave) {
|
|
|
self._km_saveAs(sender)
|
|
|
}
|
|
@@ -202,7 +237,7 @@ typealias KMMainDocumentCloudUploadHanddler = (@escaping(Bool, String)->()) -> (
|
|
|
self._km_runModalSavePanel(for: saveOperation, delegate: delegate, didSave: didSaveSelector, contextInfo: contextInfo)
|
|
|
return
|
|
|
}
|
|
|
- self._km_saveForWatermark { [unowned self] needSave in
|
|
|
+ self._km_saveForWatermark { [unowned self] needSave, _ in
|
|
|
if (needSave) {
|
|
|
self._km_runModalSavePanel(for: saveOperation, delegate: delegate, didSave: didSaveSelector, contextInfo: contextInfo)
|
|
|
}
|
|
@@ -214,7 +249,7 @@ typealias KMMainDocumentCloudUploadHanddler = (@escaping(Bool, String)->()) -> (
|
|
|
self._km_save(sender)
|
|
|
return
|
|
|
}
|
|
|
- self._km_saveForWatermark { [unowned self] needSave in
|
|
|
+ self._km_saveForWatermark { [unowned self] needSave, _ in
|
|
|
if (needSave) {
|
|
|
self._km_save(sender)
|
|
|
}
|
|
@@ -466,12 +501,12 @@ typealias KMMainDocumentCloudUploadHanddler = (@escaping(Bool, String)->()) -> (
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private func _km_saveForWatermark(callback:@escaping (_ needSave: Bool)->Void) {
|
|
|
+ private func _km_saveForWatermark(openAccessoryView: Bool = true, callback:@escaping (_ needSave: Bool, _ param: Any...)->Void) {
|
|
|
Task { @MainActor in
|
|
|
if await (KMLightMemberManager.manager.canPayFunction() == false) {
|
|
|
let _ = KMSubscribeWaterMarkWindowController.show(window: NSApp.mainWindow!) { isSubscribeSuccess, isWaterMarkExport, isClose in
|
|
|
if (isClose) {
|
|
|
- callback(false)
|
|
|
+ callback(false, KMResult.cancel, false)
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -482,13 +517,13 @@ typealias KMMainDocumentCloudUploadHanddler = (@escaping(Bool, String)->()) -> (
|
|
|
|
|
|
if (isWaterMarkExport) {
|
|
|
guard let _document = self.mainViewController?.document else {
|
|
|
- callback(false)
|
|
|
+ callback(false, KMResult.failure)
|
|
|
return
|
|
|
}
|
|
|
// 提交文本编辑的内容
|
|
|
self.mainViewController?.commitEditingIfNeed()
|
|
|
DispatchQueue.main.async {
|
|
|
- NSPanel.savePanel(NSApp.mainWindow!, true, panel:{ panel in
|
|
|
+ NSPanel.savePanel(NSApp.mainWindow!, openAccessoryView, panel:{ panel in
|
|
|
if (!self.isNewCreated) {
|
|
|
panel.directoryURL = _document.documentURL.deletingLastPathComponent()
|
|
|
}
|
|
@@ -496,14 +531,14 @@ typealias KMMainDocumentCloudUploadHanddler = (@escaping(Bool, String)->()) -> (
|
|
|
panel.nameFieldStringValue = _document.documentURL.lastPathComponent
|
|
|
}) { response, url, isOpen in
|
|
|
if (response == .cancel) {
|
|
|
- callback(false)
|
|
|
+ callback(false, KMResult.cancel, true)
|
|
|
return
|
|
|
}
|
|
|
guard let _url = KMTools.saveWatermarkDocument(document: _document, to: url!, secureOptions: self.mainViewController?.secureOptions, removePWD: self.mainViewController!.removeSecureFlag) else {
|
|
|
- callback(false)
|
|
|
+ callback(false, KMResult.failure)
|
|
|
return
|
|
|
}
|
|
|
- callback(false)
|
|
|
+ callback(false, KMResult.success)
|
|
|
if (isOpen) {
|
|
|
NSDocumentController.shared.km_safe_openDocument(withContentsOf: _url, display: true) { _, _, _ in
|
|
|
|