|
@@ -94,14 +94,75 @@ class KMEditPDfHanddler: NSObject {
|
|
|
// 图片是否显示8个操作点
|
|
|
self.editingConfig?.isDrawRectWithDot = true
|
|
|
}
|
|
|
+
|
|
|
+ func showPopWindow(positionRect: NSRect) {
|
|
|
+ let win = KMEditPDFPopToolBarWindow.shared
|
|
|
+ win.show(relativeTo: positionRect, of: self.viewC!.listView, preferredEdge: .maxY)
|
|
|
+ self.viewC?.view.window?.addChildWindow(win, ordered: .above)
|
|
|
+
|
|
|
+ // 显示新手引导
|
|
|
+ if let toolbarView = (win.contentViewController as? KMEditPDFPopToolBarController)?.toolbarView {
|
|
|
+ if let view = toolbarView.subviews.last {
|
|
|
+ self.showGuideView(view)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ func showGuideView(_ view: NSView) {
|
|
|
+ DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
|
|
|
+ if KMGuideInfoWindowController.availableShow(.editPDFPopWindow) {
|
|
|
+ let guideWC = KMGuideInfoWindowController.currentWC()
|
|
|
+ // guard let guideWC = guideInfoWindowController else { return }
|
|
|
+
|
|
|
+ guideWC.type = .editPDFPopWindow
|
|
|
+ var viewFrame = view.superview?.convert(view.frame, to: view.window?.contentView) ?? .zero
|
|
|
+ viewFrame.origin.x += (view.window?.frame.origin.x ?? 0)
|
|
|
+ viewFrame.origin.x -= (self.viewC?.view.window?.frame.origin.x ?? 0)
|
|
|
+ viewFrame.origin.y += (view.window?.frame.origin.y ?? 0)
|
|
|
+ viewFrame.origin.x -= (self.viewC?.view.window?.frame.origin.y ?? 0)
|
|
|
+
|
|
|
+ viewFrame.origin.x -= KMEditPDFPopGuideView.kWidth
|
|
|
+ viewFrame.origin.y -= KMEditPDFPopGuideView.kHeight
|
|
|
+
|
|
|
+ viewFrame.origin.y += 26
|
|
|
+ guideWC.digitalBoxRect = viewFrame
|
|
|
+ var beh = view.window?.collectionBehavior ?? []
|
|
|
+ beh.insert(.canJoinAllSpaces)
|
|
|
+ guideWC.window?.collectionBehavior = beh
|
|
|
+
|
|
|
+ let view_ = self.viewC?.view
|
|
|
+ var rect = view_?.window?.frame ?? .zero
|
|
|
+ rect.size.height -= 20
|
|
|
+ guideWC.window?.setFrame(rect, display: false)
|
|
|
+ guideWC.window?.minSize = rect.size
|
|
|
+ guideWC.window?.maxSize = rect.size
|
|
|
+ view_?.window?.addChildWindow(guideWC.window!, ordered: .above)
|
|
|
+ guideWC.show()
|
|
|
+
|
|
|
+ guideWC.settingCallback = {
|
|
|
+ KMPreferenceController.shared.showWindow(nil)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
extension KMEditPDfHanddler: CPDFViewDelegate {
|
|
|
+ // 编辑区块已经改变
|
|
|
func pdfViewEditingAreaDidChanged(_ pdfView: CPDFView!) {
|
|
|
- let areas = self.listView?.editingAreas()
|
|
|
- let annotationType = self.annotationType
|
|
|
- if areas == nil || areas?.count ?? 0 == 0 {
|
|
|
+ let isEdited = self.listView?.isEdited() ?? false
|
|
|
+ if isEdited {
|
|
|
+ // 记录编辑状态
|
|
|
+ self.viewC?.recordIsPDFDocumentEdited(type: .editText)
|
|
|
+ }
|
|
|
+ if annotationType != .addText {
|
|
|
+ NotificationCenter.default.post(name: NSNotification.Name(rawValue: "kPDFViewEditingAreaDidChanged"), object: self.listView?.document)
|
|
|
+ }
|
|
|
+
|
|
|
+ let areas = self.listView?.editingAreas() ?? []
|
|
|
+ if areas.isEmpty {
|
|
|
let toolMode = self.listView?.toolMode ?? .none
|
|
|
+ let annotationType = self.annotationType
|
|
|
if toolMode == .editPDFToolMode {
|
|
|
if annotationType == .addImage || annotationType == .addText {
|
|
|
if self.isEditImage {
|
|
@@ -111,8 +172,8 @@ extension KMEditPDfHanddler: CPDFViewDelegate {
|
|
|
// self.closeRightPane()
|
|
|
// }
|
|
|
if annotationType == .addImage {
|
|
|
- if self.viewC?.rightSideViewController.eidtPDFImageProperty != nil {
|
|
|
- self.viewC?.rightSideViewController.eidtPDFImageProperty.reloadData()
|
|
|
+ if self.rightViewC?.eidtPDFImageProperty != nil {
|
|
|
+ self.rightViewC?.eidtPDFImageProperty.reloadData()
|
|
|
}
|
|
|
}
|
|
|
// self.openRightPane()
|
|
@@ -121,53 +182,42 @@ extension KMEditPDfHanddler: CPDFViewDelegate {
|
|
|
self.viewC?.closeRightPane()
|
|
|
}
|
|
|
} else {
|
|
|
- self.viewC?.rightSideViewController.isHidden = true
|
|
|
+ self.rightViewC?.isHidden = true
|
|
|
self.viewC?.closeRightPane()
|
|
|
- let subViewType = self.viewC?.rightSideViewController.subViewType ?? .None
|
|
|
- if self.viewC?.rightSideViewController != nil && subViewType == .EditPDFAddText && annotationType == .addText {
|
|
|
- self.viewC?.rightSideViewController.eidtPDFTextProperty.initData()
|
|
|
+ if self.subViewType == .EditPDFAddText && annotationType == .addText {
|
|
|
+ self.rightViewC?.eidtPDFTextProperty.initData()
|
|
|
}
|
|
|
}
|
|
|
- let isEdited = self.listView?.isEdited() ?? false
|
|
|
- if isEdited {
|
|
|
- self.viewC?.recordIsPDFDocumentEdited(type: .editText)
|
|
|
- }
|
|
|
- if annotationType != .addText {
|
|
|
- NotificationCenter.default.post(name: NSNotification.Name(rawValue: "kPDFViewEditingAreaDidChanged"), object: self.listView?.document)
|
|
|
- }
|
|
|
return
|
|
|
}
|
|
|
|
|
|
self.viewC?.model.isPDFTextImageEdited = true
|
|
|
- let subViewType = self.viewC?.rightSideViewController.subViewType ?? .None
|
|
|
- if (annotationType == .addImage) && areas!.count > 0 {
|
|
|
+ let subViewType = self.rightViewC?.subViewType ?? .None
|
|
|
+ if self.annotationType == .addImage {
|
|
|
var isImageArea = false
|
|
|
- for i in 0 ... areas!.count-1 {
|
|
|
- if areas![i] is CPDFEditImageArea {
|
|
|
+ for i in 0 ..< areas.count {
|
|
|
+ if areas[i] is CPDFEditImageArea {
|
|
|
isImageArea = true
|
|
|
}
|
|
|
}
|
|
|
if isImageArea {
|
|
|
-// self.rightSideViewController.view.isHidden = false
|
|
|
- self.viewC?.rightSideViewController.isHidden = false
|
|
|
- if self.viewC?.rightSideViewController != nil && subViewType == .EditPDFAddImage {
|
|
|
- self.viewC?.rightSideViewController.subViewType = .EditPDFAddImage
|
|
|
- self.viewC?.rightSideViewController.eidtPDFImageProperty.reloadData()
|
|
|
+ self.rightViewC?.isHidden = false
|
|
|
+ if self.subViewType == .EditPDFAddImage {
|
|
|
+ self.rightViewC?.subViewType = .EditPDFAddImage
|
|
|
+ self.rightViewC?.eidtPDFImageProperty.reloadData()
|
|
|
}
|
|
|
self.viewC?.openRightPane()
|
|
|
} else {
|
|
|
-// self.rightSideViewController.view.isHidden = true
|
|
|
- self.viewC?.rightSideViewController.isHidden = true
|
|
|
+ self.rightViewC?.isHidden = true
|
|
|
self.viewC?.closeRightPane()
|
|
|
}
|
|
|
- } else if self.viewC?.rightSideViewController != nil && subViewType == .EditPDFAddText && annotationType == .addText {
|
|
|
-// self.rightSideViewController.view.isHidden = false
|
|
|
- self.viewC?.rightSideViewController.isHidden = false
|
|
|
- let count = self.listView?.editingSelectionString().count ?? 0
|
|
|
+ } else if self.subViewType == .EditPDFAddText && annotationType == .addText {
|
|
|
+ self.rightViewC?.isHidden = false
|
|
|
+ let count = self.listView?.editingSelectionString()?.count ?? 0
|
|
|
if count != 0 {
|
|
|
- self.viewC?.rightSideViewController.eidtPDFTextProperty.reloadData()
|
|
|
+ self.rightViewC?.eidtPDFTextProperty.reloadData()
|
|
|
} else {
|
|
|
- self.viewC?.rightSideViewController.eidtPDFTextProperty.refreshSelectAreaProperty(needDefaultData: true)
|
|
|
+ self.rightViewC?.eidtPDFTextProperty.refreshSelectAreaProperty(needDefaultData: true)
|
|
|
}
|
|
|
self.viewC?.openRightPane()
|
|
|
} else {
|
|
@@ -177,37 +227,26 @@ extension KMEditPDfHanddler: CPDFViewDelegate {
|
|
|
if count < 1 {
|
|
|
return
|
|
|
}
|
|
|
- for i in 0 ... areas!.count-1 {
|
|
|
- if areas![i] is CPDFEditTextArea {
|
|
|
- textsAreas.append(areas![i] as! CPDFEditTextArea)
|
|
|
+ for i in 0 ..< areas.count {
|
|
|
+ if areas[i] is CPDFEditTextArea {
|
|
|
+ textsAreas.append(areas[i] as! CPDFEditTextArea)
|
|
|
}
|
|
|
- if areas![i] is CPDFEditImageArea {
|
|
|
- imagesAreas.append(areas![i] as! CPDFEditImageArea)
|
|
|
+ if areas[i] is CPDFEditImageArea {
|
|
|
+ imagesAreas.append(areas[i] as! CPDFEditImageArea)
|
|
|
}
|
|
|
}
|
|
|
- if textsAreas.count > 0 && textsAreas.count == areas!.count {
|
|
|
-// self.rightSideViewController.view.isHidden = false
|
|
|
- self.viewC?.rightSideViewController.isHidden = false
|
|
|
- self.viewC?.rightSideViewController.subViewType = .EditPDFAddText
|
|
|
- self.viewC?.rightSideViewController.eidtPDFTextProperty?.reloadData()
|
|
|
+ if textsAreas.count > 0 && textsAreas.count == areas.count {
|
|
|
+ self.rightViewC?.isHidden = false
|
|
|
+ self.rightViewC?.subViewType = .EditPDFAddText
|
|
|
+ self.rightViewC?.eidtPDFTextProperty?.reloadData()
|
|
|
self.viewC?.openRightPane()
|
|
|
} else if imagesAreas.count > 0 {
|
|
|
-// self.rightSideViewController.view.isHidden = false
|
|
|
- self.viewC?.rightSideViewController.isHidden = false
|
|
|
- self.viewC?.rightSideViewController.subViewType = .EditPDFAddImage
|
|
|
- self.viewC?.rightSideViewController.eidtPDFImageProperty?.reloadData()
|
|
|
+ self.rightViewC?.isHidden = false
|
|
|
+ self.rightViewC?.subViewType = .EditPDFAddImage
|
|
|
+ self.rightViewC?.eidtPDFImageProperty?.reloadData()
|
|
|
self.viewC?.openRightPane()
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- let isEdited = self.listView?.isEdited() ?? false
|
|
|
- if isEdited {
|
|
|
- self.viewC?.recordIsPDFDocumentEdited(type: .editText)
|
|
|
-
|
|
|
- if annotationType != .addText {
|
|
|
- NotificationCenter.default.post(name: NSNotification.Name(rawValue: "kPDFViewEditingAreaDidChanged"), object: self.listView?.document)
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
func pdfViewEditingCropBoundsDidChanged(_ pdfView: CPDFView!, editing editArea: CPDFEditArea!) {
|
|
@@ -291,9 +330,8 @@ extension KMEditPDfHanddler: CPDFViewDelegate {
|
|
|
self.listView?.createImagePath(filePath, rect: imageRect, page: pdfView.currentPage())
|
|
|
self.viewC?.model.isPDFTextImageEdited = true
|
|
|
self.viewC?.recordIsPDFDocumentEdited(type: .editImage)
|
|
|
-// self.asyncSaveDocument { params in
|
|
|
-//
|
|
|
-// }
|
|
|
+
|
|
|
+ self.showPopWindow(positionRect: imageRect)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -306,9 +344,13 @@ extension KMEditPDfHanddler: CPDFViewDelegate {
|
|
|
if (window.isVisible) {
|
|
|
window.orderOut(nil)
|
|
|
let areas = self.listView?.editingAreas() as? [CPDFEditArea] ?? []
|
|
|
-// for area in areas {
|
|
|
- self.listView?.remove(with: areas)
|
|
|
-// }
|
|
|
+ if let area = areas.last {
|
|
|
+ if let data = area as? CPDFEditTextArea {
|
|
|
+ if let str = data.editTextAreaString(), str.isEmpty {
|
|
|
+ self.listView?.remove(with: [area])
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
return
|
|
|
}
|
|
|
var newRect = rect
|
|
@@ -337,19 +379,10 @@ extension KMEditPDfHanddler: CPDFViewDelegate {
|
|
|
if self.subViewType == .EditPDFAddText && self.annotationType == .addText {
|
|
|
self.rightViewC?.eidtPDFTextProperty.refreshSelectAreaProperty(needDefaultData: true)
|
|
|
}
|
|
|
-
|
|
|
- let win = KMEditPDFPopToolBarWindow.shared
|
|
|
- win.show(relativeTo: newRect, of: self.viewC!.listView, preferredEdge: .maxY)
|
|
|
- self.viewC?.view.window?.addChildWindow(win, ordered: .above)
|
|
|
-
|
|
|
- if let toolbarView = (win.contentViewController as? KMEditPDFPopToolBarController)?.toolbarView {
|
|
|
- if let view = toolbarView.subviews.last {
|
|
|
- self.showGuideView(view)
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
+ self.showPopWindow(positionRect: newRect)
|
|
|
}
|
|
|
|
|
|
+ // 文本区块 选中文本已经变化
|
|
|
func pdfViewEditingSelectionDidChanged(_ pdfView: CPDFView!) {
|
|
|
// self.viewC?.rightSideViewController != nil &&
|
|
|
if self.subViewType == .EditPDFAddText {
|
|
@@ -358,41 +391,15 @@ extension KMEditPDfHanddler: CPDFViewDelegate {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- func showGuideView(_ view: NSView) {
|
|
|
- DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
|
|
|
- if KMGuideInfoWindowController.availableShow(.editPDFPopWindow) {
|
|
|
- let guideWC = KMGuideInfoWindowController.currentWC()
|
|
|
- // guard let guideWC = guideInfoWindowController else { return }
|
|
|
-
|
|
|
- guideWC.type = .editPDFPopWindow
|
|
|
- var viewFrame = view.superview?.convert(view.frame, to: view.window?.contentView) ?? .zero
|
|
|
- viewFrame.origin.x += (view.window?.frame.origin.x ?? 0)
|
|
|
- viewFrame.origin.x -= (self.viewC?.view.window?.frame.origin.x ?? 0)
|
|
|
- viewFrame.origin.y += (view.window?.frame.origin.y ?? 0)
|
|
|
- viewFrame.origin.x -= (self.viewC?.view.window?.frame.origin.y ?? 0)
|
|
|
-
|
|
|
- viewFrame.origin.x -= KMEditPDFPopGuideView.kWidth
|
|
|
- viewFrame.origin.y -= KMEditPDFPopGuideView.kHeight
|
|
|
-
|
|
|
- viewFrame.origin.y += 26
|
|
|
- guideWC.digitalBoxRect = viewFrame
|
|
|
- var beh = view.window?.collectionBehavior ?? []
|
|
|
- beh.insert(.canJoinAllSpaces)
|
|
|
- guideWC.window?.collectionBehavior = beh
|
|
|
-
|
|
|
- let view_ = self.viewC?.view
|
|
|
- var rect = view_?.window?.frame ?? .zero
|
|
|
- rect.size.height -= 20
|
|
|
- guideWC.window?.setFrame(rect, display: false)
|
|
|
- guideWC.window?.minSize = rect.size
|
|
|
- guideWC.window?.maxSize = rect.size
|
|
|
- view_?.window?.addChildWindow(guideWC.window!, ordered: .above)
|
|
|
- guideWC.show()
|
|
|
-
|
|
|
- guideWC.settingCallback = {
|
|
|
- KMPreferenceController.shared.showWindow(nil)
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ func pdfViewMobileEditingBegan(_ point: CGPoint, for pdfView: CPDFView!, forEditing editingAreas: [CPDFEditArea]!) {
|
|
|
+ KMPrint("pdfViewMobileEditingBegan")
|
|
|
+ }
|
|
|
+
|
|
|
+ func pdfViewMobileEditingMove(_ point: CGPoint, for pdfView: CPDFView!, forEditing editingAreas: [CPDFEditArea]!) {
|
|
|
+ KMPrint("pdfViewMobileEditingMove")
|
|
|
+ }
|
|
|
+
|
|
|
+ func pdfViewMobileEditingEnd(_ point: CGPoint, for pdfView: CPDFView!, forEditing editingAreas: [CPDFEditArea]!) {
|
|
|
+ KMPrint("pdfViewMobileEditingEnd")
|
|
|
}
|
|
|
}
|