|
@@ -27,8 +27,11 @@ typealias KMMainDocumentCloudUploadHanddler = (@escaping(Bool, String)->()) -> (
|
|
|
}
|
|
|
|
|
|
override func save(to url: URL, ofType typeName: String, for saveOperation: NSDocument.SaveOperationType, delegate: Any?, didSave didSaveSelector: Selector?, contextInfo: UnsafeMutableRawPointer?) {
|
|
|
- self._saveToURL = url
|
|
|
- super.save(to: url, ofType: typeName, for: saveOperation, delegate: delegate, didSave: didSaveSelector, contextInfo: contextInfo)
|
|
|
+ self._km_saveForWatermark { [unowned self] needSave in
|
|
|
+ if (needSave) {
|
|
|
+ self._km_save(to: url, ofType: typeName, for: saveOperation, delegate: delegate, didSave: didSaveSelector, contextInfo: contextInfo)
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
override func makeWindowControllers() {
|
|
@@ -141,46 +144,7 @@ typealias KMMainDocumentCloudUploadHanddler = (@escaping(Bool, String)->()) -> (
|
|
|
}
|
|
|
|
|
|
override func write(to url: URL, ofType typeName: String, for saveOperation: NSDocument.SaveOperationType, originalContentsURL absoluteOriginalContentsURL: URL?) throws {
|
|
|
- var success = true
|
|
|
- if !self.isHome {
|
|
|
- if mainViewController != nil {
|
|
|
- if mainViewController?.document != nil {
|
|
|
- self.mainViewController?.commitEditingIfNeed()
|
|
|
-
|
|
|
-// if mainViewController!.document!.isEncrypted {
|
|
|
-// success = mainViewController!.document!.write(to: url)
|
|
|
-// } else {
|
|
|
- if (mainViewController!.needSave) {
|
|
|
- if let options = self.mainViewController?.secureOptions, !options.isEmpty {
|
|
|
- success = self.mainViewController!.document!.write(to: url, withOptions: options)
|
|
|
- } else if let flag = self.mainViewController?.removeSecureFlag, flag {
|
|
|
- success = self.mainViewController!.document!.writeDecrypt(to: url)
|
|
|
- } else {
|
|
|
- success = mainViewController!.document!.write(to: url)
|
|
|
- }
|
|
|
- } else {
|
|
|
- success = mainViewController!.document!.write(to: url)
|
|
|
- }
|
|
|
-// }
|
|
|
- self.mainViewController?.needSave = false
|
|
|
- self.mainViewController?.clearSecureOptions()
|
|
|
- self.mainViewController?.clearRemoveSecureFlag()
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- success = false
|
|
|
- }
|
|
|
-
|
|
|
- if (success && self._saveAsing) {
|
|
|
- if let tabView = self.browser?.windowController?.tabStripController?.activeTabView() as? CTTabView {
|
|
|
- tabView.controller()?.title = url.lastPathComponent
|
|
|
- }
|
|
|
- self._saveAsing = false
|
|
|
- }
|
|
|
-
|
|
|
- if success && isNewCreated && NSDocument.SaveOperationType.saveAsOperation == saveOperation {
|
|
|
- isNewCreated = false
|
|
|
- }
|
|
|
+ try self._km_write(to: url, ofType: typeName, for: saveOperation, originalContentsURL: absoluteOriginalContentsURL)
|
|
|
}
|
|
|
|
|
|
override func canClose(withDelegate delegate: Any, shouldClose shouldCloseSelector: Selector?, contextInfo: UnsafeMutableRawPointer?) {
|
|
@@ -210,49 +174,10 @@ typealias KMMainDocumentCloudUploadHanddler = (@escaping(Bool, String)->()) -> (
|
|
|
}
|
|
|
|
|
|
override func save(_ sender: Any?) {
|
|
|
- Task { @MainActor in
|
|
|
- if await (KMLightMemberManager.manager.canPayFunction() == false) {
|
|
|
- let _ = KMSubscribeWaterMarkWindowController.show(window: NSApp.mainWindow!) { isSubscribeSuccess, isWaterMarkExport, isClose in
|
|
|
- if (isClose) {
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- if (isSubscribeSuccess) {
|
|
|
- super.save(sender)
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- if (isWaterMarkExport) {
|
|
|
- guard let _document = self.mainViewController?.document else {
|
|
|
- return
|
|
|
- }
|
|
|
- // 提交文本编辑的内容
|
|
|
- self.mainViewController?.commitEditingIfNeed()
|
|
|
- DispatchQueue.main.async {
|
|
|
- NSPanel.savePanel(NSApp.mainWindow!, true, panel:{ panel in
|
|
|
- panel.nameFieldStringValue = _document.documentURL.lastPathComponent
|
|
|
- }) { response, url, isOpen in
|
|
|
- if (response == .cancel) {
|
|
|
- return
|
|
|
- }
|
|
|
- guard let _url = KMTools.saveDocumentForWatermark(document: _document, to: url!, secureOptions: self.mainViewController?.secureOptions, removePWD: self.mainViewController!.removeSecureFlag) else {
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- if (isOpen) {
|
|
|
- NSDocumentController.shared.km_safe_openDocument(withContentsOf: _url, display: true) { _, _, _ in
|
|
|
-
|
|
|
- }
|
|
|
- } else {
|
|
|
- NSWorkspace.shared.activateFileViewerSelecting([_url])
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return
|
|
|
+ self._km_saveForWatermark { [unowned self] needSave in
|
|
|
+ if (needSave) {
|
|
|
+ self._km_save(sender)
|
|
|
}
|
|
|
- super.save(sender)
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -451,6 +376,111 @@ typealias KMMainDocumentCloudUploadHanddler = (@escaping(Bool, String)->()) -> (
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ private func _km_write(to url: URL, ofType typeName: String, for saveOperation: NSDocument.SaveOperationType, originalContentsURL absoluteOriginalContentsURL: URL?) throws {
|
|
|
+ var success = true
|
|
|
+ if !self.isHome {
|
|
|
+ if mainViewController != nil {
|
|
|
+ if mainViewController?.document != nil {
|
|
|
+ self.mainViewController?.commitEditingIfNeed()
|
|
|
+
|
|
|
+// if mainViewController!.document!.isEncrypted {
|
|
|
+// success = mainViewController!.document!.write(to: url)
|
|
|
+// } else {
|
|
|
+ if (mainViewController!.needSave) {
|
|
|
+ if let options = self.mainViewController?.secureOptions, !options.isEmpty {
|
|
|
+ success = self.mainViewController!.document!.write(to: url, withOptions: options)
|
|
|
+ } else if let flag = self.mainViewController?.removeSecureFlag, flag {
|
|
|
+ success = self.mainViewController!.document!.writeDecrypt(to: url)
|
|
|
+ } else {
|
|
|
+ success = mainViewController!.document!.write(to: url)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ success = mainViewController!.document!.write(to: url)
|
|
|
+ }
|
|
|
+// }
|
|
|
+ self.mainViewController?.needSave = false
|
|
|
+ self.mainViewController?.clearSecureOptions()
|
|
|
+ self.mainViewController?.clearRemoveSecureFlag()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ success = false
|
|
|
+ }
|
|
|
+
|
|
|
+ if (success && self._saveAsing) {
|
|
|
+ if let tabView = self.browser?.windowController?.tabStripController?.activeTabView() as? CTTabView {
|
|
|
+ tabView.controller()?.title = url.lastPathComponent
|
|
|
+ }
|
|
|
+ self._saveAsing = false
|
|
|
+ }
|
|
|
+
|
|
|
+ if success && isNewCreated && NSDocument.SaveOperationType.saveAsOperation == saveOperation {
|
|
|
+ isNewCreated = false
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private func _km_saveForWatermark(callback:@escaping (_ needSave: Bool)->Void) {
|
|
|
+ Task { @MainActor in
|
|
|
+ if await (KMLightMemberManager.manager.canPayFunction() == false) {
|
|
|
+ let _ = KMSubscribeWaterMarkWindowController.show(window: NSApp.mainWindow!) { isSubscribeSuccess, isWaterMarkExport, isClose in
|
|
|
+ if (isClose) {
|
|
|
+ callback(false)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if (isSubscribeSuccess) {
|
|
|
+ callback(true)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if (isWaterMarkExport) {
|
|
|
+ guard let _document = self.mainViewController?.document else {
|
|
|
+ callback(false)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 提交文本编辑的内容
|
|
|
+ self.mainViewController?.commitEditingIfNeed()
|
|
|
+ DispatchQueue.main.async {
|
|
|
+ NSPanel.savePanel(NSApp.mainWindow!, true, panel:{ panel in
|
|
|
+ panel.nameFieldStringValue = _document.documentURL.lastPathComponent
|
|
|
+ }) { response, url, isOpen in
|
|
|
+ if (response == .cancel) {
|
|
|
+ callback(false)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ guard let _url = KMTools.saveDocumentForWatermark(document: _document, to: url!, secureOptions: self.mainViewController?.secureOptions, removePWD: self.mainViewController!.removeSecureFlag) else {
|
|
|
+ callback(false)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ callback(false)
|
|
|
+ if (isOpen) {
|
|
|
+ NSDocumentController.shared.km_safe_openDocument(withContentsOf: _url, display: true) { _, _, _ in
|
|
|
+
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ NSWorkspace.shared.activateFileViewerSelecting([_url])
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return
|
|
|
+ }
|
|
|
+ callback(true)
|
|
|
+ }
|
|
|
+ return
|
|
|
+ }
|
|
|
+ callback(true)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private func _km_save(_ sender: Any?) {
|
|
|
+ super.save(sender)
|
|
|
+ }
|
|
|
+
|
|
|
+ private func _km_save(to url: URL, ofType typeName: String, for saveOperation: NSDocument.SaveOperationType, delegate: Any?, didSave didSaveSelector: Selector?, contextInfo: UnsafeMutableRawPointer?) {
|
|
|
+ self._saveToURL = url
|
|
|
+ super.save(to: url, ofType: typeName, for: saveOperation, delegate: delegate, didSave: didSaveSelector, contextInfo: contextInfo)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
extension NSDocument {
|