Browse Source

综合-KMPDFThumbnailView类整理代码

tangchao 1 year ago
parent
commit
e59937e8db

+ 6 - 6
PDF Office/PDF Master/Class/PDFTools/PageEdit/Controller/KMPDFEditViewController.swift

@@ -225,7 +225,7 @@ class KMPDFEditViewController: NSViewController {
             if indexs.count > 0 {
                 self.copysPages = []
                 for i in indexs {
-                    let page = self.thumbnailView.document.page(at: UInt(i)).copy() as? CPDFPage
+                    let page = self.pdfDocument?.page(at: UInt(i)).copy() as? CPDFPage
                     if (page == nil) {
                         continue
                     }
@@ -250,7 +250,7 @@ class KMPDFEditViewController: NSViewController {
                 }
                 self.copysPages = []
                 for i in indexs {
-                    let page = self.thumbnailView.document.page(at: UInt(i)).copy() as? CPDFPage
+                    let page = self.pdfDocument?.page(at: UInt(i)).copy() as? CPDFPage
                     if (page == nil) {
                         continue
                     }
@@ -1217,7 +1217,7 @@ extension KMPDFEditViewController: KMNewToolbarDelegate {
         let item = menu.parent!
         let index = (item.representedObject as! IndexSet).first ?? -1
         if Int(index) >= 0 {
-            let doucument = self.thumbnailView.document
+            let doucument = self.pdfDocument!
             let page = doucument.page(at: UInt(index))
             let filename : String = doucument.documentURL.lastPathComponent
             let folderPath = (NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.applicationSupportDirectory, FileManager.SearchPathDomainMask.userDomainMask, true).last?.stringByAppendingPathComponent(filename))!
@@ -1592,8 +1592,8 @@ extension KMPDFEditViewController: KMPDFThumbnailViewDelegate {
     func thumbnailView(thumbanView: KMPDFThumbnailView, itemForRepresentedObjectAt indexpath: IndexPath) -> NSCollectionViewItem {
         let cellView: KMPageEditThumbnailItem = thumbanView.collectionView.makeItem(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "KMPageEditThumbnailItem"), for: indexpath) as! KMPageEditThumbnailItem
         cellView.isShowPageSize = self.thumbnailView.isShowPageSize
-        cellView.page = self.thumbnailView.document.page(at: UInt(indexpath.item))
-        cellView.setPage(page: self.thumbnailView.document.page(at: UInt(indexpath.item)))
+        cellView.page = (self.pdfDocument?.page(at: UInt(indexpath.item)))!
+        cellView.setPage(page: (self.pdfDocument?.page(at: UInt(indexpath.item)))!)
         
         cellView.doubleClickAction = { [unowned self] _ in
             guard let callback = self.itemClick else {
@@ -1635,7 +1635,7 @@ extension KMPDFEditViewController: KMEditMenuProtocol {
     }
     
     @IBAction func paste(_ sender: Any) {
-        var index: Int = Int(self.thumbnailView.document.pageCount-1)
+        var index: Int = Int(self.pdfDocument!.pageCount-1)
         let indexSet = self.thumbnailView.collectionView.selectionIndexes
         if (indexSet.isEmpty == false) {
             index = indexSet.last!

+ 14 - 20
PDF Office/PDF Master/Class/PDFWindowController/Side/LeftSide/Thumbnail/KMPDFThumbnailView.swift

@@ -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
             }
             

+ 9 - 9
PDF Office/PDF Master/Class/PDFWindowController/Side/LeftSide/Thumbnail/KMThumbnailViewController.swift

@@ -448,7 +448,7 @@ class KMThumbnailViewController: NSViewController {
                 var pageItems: [KMThumbnailPageItem] = []
                 let newDocument = self.thumbnailView.document
                 for index in indexs {
-                    let page : CPDFPage = newDocument.page(at: UInt(index))
+                    let page : CPDFPage = (newDocument?.page(at: UInt(index)))!
                     var rotation = page.rotation
                     if rotation == 0 {
                         rotation = 90
@@ -484,7 +484,7 @@ class KMThumbnailViewController: NSViewController {
                 var pageItems: [KMThumbnailPageItem] = []
                 let newDocument = self.thumbnailView.document
                 for index in indexs {
-                    let page : CPDFPage = newDocument.page(at: UInt(index))
+                    let page : CPDFPage = (newDocument?.page(at: UInt(index)))!
                     var rotation = page.rotation
                     if rotation == 0 {
                         rotation = 270
@@ -510,9 +510,9 @@ class KMThumbnailViewController: NSViewController {
         let index = (self.thumbnailView.collectionView.selectionIndexes).first ?? -1
         if Int(index) >= 0 {
             let newDocument = self.thumbnailView.document
-            var page : CPDFPage = newDocument.page(at: UInt(index))
-            let filename : String = newDocument.documentURL.lastPathComponent
-            let pageIndex = newDocument.index(for: page) + 1
+            var page : CPDFPage = (newDocument?.page(at: UInt(index)))!
+            let filename : String = (newDocument?.documentURL.lastPathComponent)!
+            let pageIndex = newDocument!.index(for: page) + 1
             var newfileName : String = "\(NSString(string: filename).deletingPathExtension)  page  \(pageIndex)"
             newfileName = "\(newfileName)\(filename.extension)"
             let panel = NSSavePanel()
@@ -566,8 +566,8 @@ class KMThumbnailViewController: NSViewController {
         let index = (self.thumbnailView.collectionView.selectionIndexes).first ?? -1
         if Int(index) >= 0 {
             let doucument = self.thumbnailView.document
-            let page = doucument.page(at: UInt(index))
-            let filename : String = doucument.documentURL.lastPathComponent
+            let page = doucument?.page(at: UInt(index))
+            let filename : String = (doucument?.documentURL.lastPathComponent)!
             let folderPath = (NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.applicationSupportDirectory, FileManager.SearchPathDomainMask.userDomainMask, true).last?.stringByAppendingPathComponent(filename))!
             try? FileManager.default.removeItem(atPath: folderPath)
             let pdfdocument = CPDFDocument()
@@ -598,7 +598,7 @@ class KMThumbnailViewController: NSViewController {
         if indexs.count >= 0 {
             self.copysPages = []
             for i in indexs {
-                let page = self.thumbnailView.document.page(at: UInt(i)).copy() as? CPDFPage
+                let page = self.thumbnailView.document?.page(at: UInt(i)).copy() as? CPDFPage
                 self.copysPages.append(page ?? CPDFPage())
             }
         }
@@ -615,7 +615,7 @@ class KMThumbnailViewController: NSViewController {
             if indexs.count >= 0 {
                 self.copysPages = []
                 for i in indexs {
-                    let page = self.thumbnailView.document.page(at: UInt(i)).copy() as? CPDFPage
+                    let page = self.thumbnailView.document?.page(at: UInt(i)).copy() as? CPDFPage
                     self.copysPages.append(page ?? CPDFPage())
                 }