|
@@ -97,6 +97,9 @@ struct KMNMWCFlags {
|
|
|
//春季活动
|
|
|
var recommondPopWindowVC: KMRecommondPopWindow?
|
|
|
|
|
|
+ //数字签名状态
|
|
|
+ var signaturestateVC: CDSignatureCertificateStateViewController = CDSignatureCertificateStateViewController.init()
|
|
|
+
|
|
|
//MARK: - 旧代码,有需要用到的拿出来,写好备注
|
|
|
|
|
|
@IBOutlet weak var leftView: NSView!
|
|
@@ -1306,6 +1309,30 @@ struct KMNMWCFlags {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ func popUpSignatureWidgetState(_ signature: CPDFSignature, _ pdfListView: CPDFListView) ->(){
|
|
|
+ signaturestateVC.signature = signature
|
|
|
+ signaturestateVC.pdfListView = pdfListView
|
|
|
+ signaturestateVC.actionBlock = { [weak self, weak signaturestateVC] stateVCSelf, actionType in
|
|
|
+ guard let weakSelf = self, let stateVC = signaturestateVC else { return }
|
|
|
+ if actionType == .cancel {
|
|
|
+ stateVC.dismiss(stateVCSelf)
|
|
|
+ } else if actionType == .confirm {
|
|
|
+ if let signer = signature.signers.first, let data = signer.certificates {
|
|
|
+ let signatureDetail = DSignatureDetailsViewController.init()
|
|
|
+ signatureDetail.certificates = data
|
|
|
+ signatureDetail.signature = signature
|
|
|
+ signatureDetail.pdfListView = pdfListView
|
|
|
+ stateVCSelf.presentAsSheet(signatureDetail)
|
|
|
+ } else {
|
|
|
+ NSSound.beep()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ self.presentAsSheet(signaturestateVC)
|
|
|
+ signaturestateVC.reloadData()
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
// MARK: - 显示合并窗口
|
|
|
public func showMergeWindow(url: URL? = nil, _ password: String?) {
|
|
|
DispatchQueue.main.async {
|
|
@@ -3966,52 +3993,57 @@ extension KMMainViewController: CPDFViewDelegate,CPDFListViewDelegate {
|
|
|
func pdfListViewEditAnnotation(_ pdfListView: CPDFListView!, for anotation: CPDFAnnotation!) {
|
|
|
if anotation.isKind(of: CPDFSignatureWidgetAnnotation.self) {
|
|
|
if let signatureWidgetAnnotation = anotation as? CPDFSignatureWidgetAnnotation {
|
|
|
-
|
|
|
- let widget = CPDFSignatureWidgetAnnotation.init(PDFListViewNoteWith: listView.document)
|
|
|
- widget.bounds = NSMakeRect(-1000, -1000, 545, 178);
|
|
|
- anotation.page.addAnnotation(widget)
|
|
|
-
|
|
|
- let configWindowVC = DSignatureConfigWindowController.init(windowNibName: "DSignatureConfigWindowController")
|
|
|
- configWindowVC.viewType = .fileList;
|
|
|
- configWindowVC.appearanceWidget = widget;
|
|
|
- configWindowVC.isCreatDS = false
|
|
|
- configWindowVC.complentionHandle = {[weak self] isSign, dic, config, isLock in
|
|
|
- widget.page.removeAnnotation(widget)
|
|
|
- if isSign {
|
|
|
- if (dic.object(forKey: SAVEFILEPATH_KEY) != nil) {
|
|
|
- let p12Path = dic.object(forKey: SAVEFILEPATH_KEY) as! String
|
|
|
- let password = dic.object(forKey: PASSWORD_KEY)
|
|
|
- if p12Path.count > 0 {
|
|
|
- self?.writeSignatureToWidget(signatureWidgetAnnotation, p12Path, password as! String, config, isLock)
|
|
|
+ let signature = signatureWidgetAnnotation.signature()
|
|
|
+ if ((signature) != nil) {
|
|
|
+ popUpSignatureWidgetState(signature!, listView)
|
|
|
+ } else {
|
|
|
+ let widget = CPDFSignatureWidgetAnnotation.init(PDFListViewNoteWith: listView.document)
|
|
|
+ widget.bounds = NSMakeRect(-1000, -1000, 545, 178);
|
|
|
+ anotation.page.addAnnotation(widget)
|
|
|
+
|
|
|
+ let configWindowVC = DSignatureConfigWindowController.init(windowNibName: "DSignatureConfigWindowController")
|
|
|
+ configWindowVC.viewType = .fileList;
|
|
|
+ configWindowVC.appearanceWidget = widget;
|
|
|
+ configWindowVC.isCreatDS = false
|
|
|
+ configWindowVC.complentionHandle = {[weak self] isSign, dic, config, isLock in
|
|
|
+ widget.page.removeAnnotation(widget)
|
|
|
+ if isSign {
|
|
|
+ if (dic.object(forKey: SAVEFILEPATH_KEY) != nil) {
|
|
|
+ let p12Path = dic.object(forKey: SAVEFILEPATH_KEY) as! String
|
|
|
+ let password = dic.object(forKey: PASSWORD_KEY)
|
|
|
+ if p12Path.count > 0 {
|
|
|
+ self?.writeSignatureToWidget(signatureWidgetAnnotation, p12Path, password as! String, config, isLock)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if signatureWidgetAnnotation.isSignSignatureAdd() == true {
|
|
|
+ self?.listView.remove(anotation)
|
|
|
}
|
|
|
- }
|
|
|
- } else {
|
|
|
- if signatureWidgetAnnotation.isSignSignatureAdd() == true {
|
|
|
- self?.listView.remove(anotation)
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- configWindowVC.actionBlock = {[weak self] controller, type in
|
|
|
- if (type == .cancel) {
|
|
|
- NSApplication.shared.stopModal()
|
|
|
- controller.window?.orderOut(nil)
|
|
|
- controller.window?.close()
|
|
|
- widget.page.removeAnnotation(widget)
|
|
|
-
|
|
|
- if signatureWidgetAnnotation.isSignSignatureAdd() == true {
|
|
|
- self?.listView.remove(anotation)
|
|
|
- } else {
|
|
|
- self?.listView.setNeedsDisplayAnnotationViewFor(anotation.page)
|
|
|
+ configWindowVC.actionBlock = {[weak self] controller, type in
|
|
|
+ if (type == .cancel) {
|
|
|
+ NSApplication.shared.stopModal()
|
|
|
+ controller.window?.orderOut(nil)
|
|
|
+ controller.window?.close()
|
|
|
+ widget.page.removeAnnotation(widget)
|
|
|
+
|
|
|
+ if signatureWidgetAnnotation.isSignSignatureAdd() == true {
|
|
|
+ self?.listView.remove(anotation)
|
|
|
+ } else {
|
|
|
+ self?.listView.setNeedsDisplayAnnotationViewFor(anotation.page)
|
|
|
+ }
|
|
|
+ } else if (type == .confirm) {
|
|
|
+ NSApplication.shared.stopModal()
|
|
|
+ controller.window?.orderOut(nil)
|
|
|
+ controller.window?.close()
|
|
|
}
|
|
|
- } else if (type == .confirm) {
|
|
|
- NSApplication.shared.stopModal()
|
|
|
- controller.window?.orderOut(nil)
|
|
|
- controller.window?.close()
|
|
|
}
|
|
|
+ configWindowVC.window?.center()
|
|
|
+ NSApplication.shared.runModal(for: configWindowVC.window!)
|
|
|
}
|
|
|
- configWindowVC.window?.center()
|
|
|
- NSApplication.shared.runModal(for: configWindowVC.window!)
|
|
|
}
|
|
|
+
|
|
|
} else if anotation.isKind(of: CPDFRedactAnnotation.self) {
|
|
|
if let redactAnnotation = anotation as? CPDFRedactAnnotation {
|
|
|
let properties = KMRedactPropertiesWindowController()
|