|
@@ -24,7 +24,7 @@ import Cocoa
|
|
|
class KMPDFThumbnailView: NSView {
|
|
|
open weak var delegate: KMPDFThumbnailViewDelegate?
|
|
|
|
|
|
- var document : CPDFDocument = CPDFDocument()
|
|
|
+ var document : CPDFDocument?
|
|
|
var isShowPageSize : Bool = false
|
|
|
var backgroundColor : NSColor = NSColor.white
|
|
|
var highlightColor : NSColor = NSColor.blue
|
|
@@ -155,21 +155,22 @@ extension KMPDFThumbnailView : NSCollectionViewDataSource {
|
|
|
}
|
|
|
|
|
|
func collectionView(_ collectionView: NSCollectionView, numberOfItemsInSection section: Int) -> Int {
|
|
|
- if self.document.isLocked {
|
|
|
- return 0
|
|
|
+ if let count = self.document?.pageCount {
|
|
|
+ return Int(count)
|
|
|
}
|
|
|
- return Int(self.document.pageCount)
|
|
|
+ return 0
|
|
|
}
|
|
|
|
|
|
func collectionView(_ collectionView: NSCollectionView, itemForRepresentedObjectAt indexPath: IndexPath) -> NSCollectionViewItem {
|
|
|
- let view = self.delegate?.thumbnailView?(thumbanView: self, itemForRepresentedObjectAt: indexPath)
|
|
|
- if (view != nil) {
|
|
|
- return view!
|
|
|
+ if let view = self.delegate?.thumbnailView?(thumbanView: self, itemForRepresentedObjectAt: indexPath) {
|
|
|
+ return view
|
|
|
}
|
|
|
|
|
|
let cellView: KMPDFThumbnailItem = collectionView.makeItem(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "KMPDFThumbnailItem"), for: indexPath) as! KMPDFThumbnailItem
|
|
|
cellView.thumbnailView = self
|
|
|
- cellView.page = self.document.page(at: UInt(indexPath.item))
|
|
|
+ if let page_ = self.document?.page(at: UInt(indexPath.item)) {
|
|
|
+ cellView.page = page_
|
|
|
+ }
|
|
|
cellView.annotationShowState = self.annotationShowState
|
|
|
if indexPath.item == hoverIndex {
|
|
|
cellView.hover = true
|
|
@@ -207,19 +208,12 @@ extension KMPDFThumbnailView : NSCollectionViewDataSource {
|
|
|
}
|
|
|
|
|
|
extension KMPDFThumbnailView: NSCollectionViewDelegateFlowLayout {
|
|
|
- /**
|
|
|
- * MARK: item大小
|
|
|
- */
|
|
|
func collectionView(_ collectionView: NSCollectionView, layout collectionViewLayout: NSCollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> NSSize {
|
|
|
- if (self.delegate != nil) {
|
|
|
- let size = self.delegate!.thumbnailView?(thumbanView: self, sizeForItemAt: indexPath)
|
|
|
- if (size != nil) {
|
|
|
-// self.thumbnailSzie = size!
|
|
|
- return size!
|
|
|
- }
|
|
|
+ if let size_ = self.delegate?.thumbnailView?(thumbanView: self, sizeForItemAt: indexPath) {
|
|
|
+ return size_
|
|
|
}
|
|
|
|
|
|
- let page = self.document.page(at: UInt(indexPath.item))
|
|
|
+ let page = self.document?.page(at: UInt(indexPath.item))
|
|
|
let height = KMPDFThumbnailItem.sizeToFit(size: self.thumbnailSzie, page: page!, isShow: self.isShowPageSize)
|
|
|
|
|
|
return NSMakeSize(collectionView.frame.size.width - 20, CGFloat(height))
|
|
@@ -329,10 +323,10 @@ extension KMPDFThumbnailView: NSCollectionViewDelegate {
|
|
|
}
|
|
|
let dragIndex = dragIndexPath!.item
|
|
|
let toIndex = max(0, indexPath.item)
|
|
|
- if dragIndex < 0 || dragIndex > self.document.pageCount {
|
|
|
+ if dragIndex < 0 || dragIndex > self.document!.pageCount {
|
|
|
return false
|
|
|
}
|
|
|
- if (toIndex >= self.document.pageCount) {
|
|
|
+ if (toIndex >= self.document!.pageCount) {
|
|
|
return false
|
|
|
}
|
|
|
|