|
@@ -11,7 +11,7 @@ import KMComponentLibrary
|
|
|
@objc protocol KMCropControllerDelegate: AnyObject {
|
|
|
|
|
|
@objc optional func kmCropControllerDidCrop(_ controller: KMCropController, _ cropRect: CGRect, _ view: KMPageRangeSelectView)
|
|
|
-
|
|
|
+
|
|
|
@objc optional func kmCropControllerDidCropSeparate(_ controller: KMCropController, _ view: KMPageRangeSelectView)
|
|
|
|
|
|
@objc optional func kmCropControllerDidCropAuto(_ controller: KMCropController, _ view: KMPageRangeSelectView)
|
|
@@ -20,14 +20,14 @@ import KMComponentLibrary
|
|
|
}
|
|
|
|
|
|
class KMCropController: NSViewController {
|
|
|
-
|
|
|
+
|
|
|
@IBOutlet var contendView: NSView!
|
|
|
|
|
|
@IBOutlet var preInfoView: NSView!
|
|
|
@IBOutlet var propertyInfoView: NSView!
|
|
|
-
|
|
|
+
|
|
|
private var documentPreview: KMEditDocumentController = KMEditDocumentController.init()
|
|
|
-
|
|
|
+
|
|
|
private var coverController: KMCropCoverController?
|
|
|
|
|
|
var pdfView: CPDFListView? {
|
|
@@ -37,14 +37,14 @@ class KMCropController: NSViewController {
|
|
|
}
|
|
|
var pdfDocument: CPDFDocument?
|
|
|
var selectionRect: CGRect = .zero
|
|
|
-
|
|
|
+
|
|
|
weak open var delegate: KMCropControllerDelegate?
|
|
|
|
|
|
|
|
|
override func viewDidLoad() {
|
|
|
super.viewDidLoad()
|
|
|
// Do view setup here.
|
|
|
-
|
|
|
+
|
|
|
setup()
|
|
|
}
|
|
|
|
|
@@ -57,10 +57,10 @@ class KMCropController: NSViewController {
|
|
|
documentPreview.pdfView.pdfListViewDelegate = self
|
|
|
documentPreview.pdfView.delegate = self
|
|
|
preInfoView.addSubview(documentPreview.view)
|
|
|
-
|
|
|
+
|
|
|
hiddenPropertyView(false)
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
func reloadData() {
|
|
|
guard let pdfDocument = pdfDocument else {
|
|
|
return
|
|
@@ -69,52 +69,56 @@ class KMCropController: NSViewController {
|
|
|
documentPreview.pdfDocument = pdfDocument
|
|
|
documentPreview.reloadData()
|
|
|
|
|
|
- let page = pdfDocument.page(at: 0)
|
|
|
- let bounds = page?.bounds ?? CGRectZero
|
|
|
-
|
|
|
documentPreview.pdfView.toolMode = .CCropToolMode
|
|
|
documentPreview.pdfView.selectionPageIndex = 0
|
|
|
|
|
|
- if CGRectEqualToRect(selectionRect, CGRectZero) {
|
|
|
- selectionRect = bounds
|
|
|
- } else {
|
|
|
- documentPreview.pdfView.selectionRect = selectionRect
|
|
|
- documentPreview.pdfView.setNeedsDisplayForVisiblePages()
|
|
|
- }
|
|
|
-
|
|
|
+ reloadSelectionRect()
|
|
|
}
|
|
|
|
|
|
func hiddenPropertyView(_ hidden: Bool) {
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
|
|
|
+ func reloadSelectionRect() {
|
|
|
+ guard let pdfDocument = pdfDocument else {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if CGRectEqualToRect(selectionRect, CGRectZero) {
|
|
|
+ let page = pdfDocument.page(at: 0)
|
|
|
+ let bounds = page?.bounds ?? CGRectZero
|
|
|
+
|
|
|
+ selectionRect = bounds
|
|
|
+ } else {
|
|
|
+
|
|
|
+ }
|
|
|
+ documentPreview.pdfView.selectionRect = selectionRect
|
|
|
+ documentPreview.pdfView.selectionPageIndex = 0
|
|
|
+ documentPreview.pdfView.setNeedsDisplayForVisiblePages()
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|
|
|
//MARK: - CPDFListViewDelegate
|
|
|
extension KMCropController: CPDFListViewDelegate {
|
|
|
func pdfListViewChangedSelectionOrMagnification(_ pdfListView: CPDFListView!) {
|
|
|
-
|
|
|
+
|
|
|
delegate?.kmCropControllerDidChangedSelectionOrMagnification?(self)
|
|
|
}
|
|
|
|
|
|
func pdfListViewDidSelectionEnd(_ pdfListView: CPDFListView!) {
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|
|
|
extension KMCropController: CPDFViewDelegate {
|
|
|
func pdfViewDocumentDidLoaded(_ pdfView: CPDFView!) {
|
|
|
- DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 1) {
|
|
|
- if CGRectEqualToRect(self.selectionRect, CGRectZero) {
|
|
|
-
|
|
|
- } else {
|
|
|
- self.documentPreview.pdfView.selectionRect = self.selectionRect
|
|
|
- self.documentPreview.pdfView.setNeedsDisplayForVisiblePages()
|
|
|
- }
|
|
|
+ DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.3) {
|
|
|
+ self.reloadSelectionRect()
|
|
|
+
|
|
|
+ self.delegate?.kmCropControllerDidChangedSelectionOrMagnification?(self)
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
|
|
|
//MARK: - KMCropPropertyControllerDelegate
|