Browse Source

【优化】BOTA缩图刷新优化

lizhe 7 months ago
parent
commit
1f62d5a499

+ 5 - 4
PDF Office/PDF Master/Class/PDFTools/Merge/View/KMPDFThumbnialPageView.swift

@@ -39,6 +39,7 @@ class KMPDFThumbnialPageView: NSView {
         self.layer?.shadowRadius = 3.0
         self.layer?.shadowOffset = CGSize(width: 0, height: -3)
         
+        pageImageIv.wantsLayer = true;
         self.addSubview(self.pageImageIv)
         self.pageImageIv.autoresizingMask = [.width, .height];
         self.pageImageIv.frame = self.bounds
@@ -49,14 +50,14 @@ class KMPDFThumbnialPageView: NSView {
         let newWorkItem = DispatchWorkItem {
             self.updateThumbnial()
         }
-        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.3, execute:newWorkItem)
+        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.01, execute:newWorkItem)
         pendingWordItem = newWorkItem
     }
     
-    func updateThumbnial() {
-        self.page?.thumbnail(of: self.bounds.size, needReset: false, completion: { [unowned self] image in
+    func updateThumbnial(needReset: Bool = false) {
+        print(self.bounds.size);
+        self.page?.thumbnail(of: self.bounds.size, needReset: needReset, completion: { [unowned self] image in
             self.pageImageIv.image = image
         })
     }
-    
 }

+ 1 - 0
PDF Office/PDF Master/Class/PDFWindowController/Side/LeftSide/KMLeftSideViewController+Note.swift

@@ -693,6 +693,7 @@ extension KMLeftSideViewController {
         if need == false {
             return
         }
+        self.updateThumbnail(at: Int(anno?.page?.pageIndex() ?? 0))
         if let data = anno {
             self.note_reloadDataForAnnoIfNeed(anno: data)
         }

+ 1 - 1
PDF Office/PDF Master/Class/PDFWindowController/Side/LeftSide/KMLeftSideViewController+Thumbnail.swift

@@ -73,7 +73,7 @@ extension KMLeftSideViewController {
     func updateThumbnail(at index: Int) {
         if index < self.thumbnails.count {
             self.thumbnails[index].dirty = true
-            
+            self.thumbnailTableView.reloadData(forRowIndexes: IndexSet(integer: index), columnIndexes: IndexSet(integer: 0))
             /*
              原问题:CrashKit - SKMainWindowController updateThumbnailAtPageIndex:] ([__NSArrayM objectAtIndex:]: index 9223372036854775807 beyond bounds [0 .. 17])
              注释原因:缩略图高亮为自定义后,刷新会将高亮刷新到0行

+ 4 - 0
PDF Office/PDF Master/Class/PDFWindowController/Side/LeftSide/KMLeftSideViewController.swift

@@ -1062,6 +1062,10 @@ extension KMLeftSideViewController: NSTableViewDelegate, NSTableViewDataSource {
             cell.pageNumLabel.stringValue = thumbnail.label
             cell.pageView.isThumb = true
             cell.pageView.page = self.pdfDocument()?.page(at: UInt(row))
+            if thumbnail.dirty {
+                cell.pageView.updateThumbnial(needReset: true)
+                thumbnail.dirty = false
+            }
 
             if (self.isDisplayPageSize) {
                 cell.sizeLabel.isHidden = false