Browse Source

【优化】缩图显示刷新逻辑调整

lizhe 7 months ago
parent
commit
7d84f61635

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

@@ -59,7 +59,7 @@ class KMPDFThumbnialPageView: NSView {
         pendingWordItem = newWorkItem
     }
     
-    func updateThumbnial(needReset: Bool = false) {
+    func updateThumbnial(needReset: Bool = true) {
         let image = KMThumbnailCache.shared.thumbnail(for: Int(self.page?.pageIndex() ?? UInt(Int.max)))
         if image != nil {
             self.pageImageIv.image = image

+ 5 - 3
PDF Office/PDF Master/Class/PDFTools/Redact/Controller/KMPDFRedactViewController.swift

@@ -167,9 +167,11 @@ class KMPDFRedactViewController: NSViewController {
             return
         }
 
-        let returnCode = KMAlertTool.runModelForMainThread_r(message: "", informative: KMLocalizedString("This will permanently remove the redacted information from this document. Once you save this document, you won’t be able to retrieve the redacted information.", nil), buttons: [KMLocalizedString("Apply", nil), KMLocalizedString("Cancel", nil)])
-        if returnCode == .alertFirstButtonReturn {
-            self.saveAsPath()
+        DispatchQueue.global().async {
+            let returnCode = KMAlertTool.runModelForMainThread_r(message: "", informative: KMLocalizedString("This will permanently remove the redacted information from this document. Once you save this document, you won’t be able to retrieve the redacted information.", nil), buttons: [KMLocalizedString("Apply", nil), KMLocalizedString("Cancel", nil)])
+            if returnCode == .alertFirstButtonReturn {
+                self.saveAsPath()
+            }
         }
      }
     

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

@@ -74,6 +74,9 @@ extension KMLeftSideViewController {
         if index < self.thumbnails.count {
             self.thumbnails[index].dirty = true
             self.thumbnailTableView.reloadData(forRowIndexes: IndexSet(integer: index), columnIndexes: IndexSet(integer: 0))
+            
+            let thumbailTabCell = self.thumbnailTableView.view(atColumn: 0, row: index, makeIfNecessary: true) as? KMThumbnailTableviewCell
+            thumbailTabCell?.pageView.updateThumbnial(needReset: true)
             /*
              原问题:CrashKit - SKMainWindowController updateThumbnailAtPageIndex:] ([__NSArrayM objectAtIndex:]: index 9223372036854775807 beyond bounds [0 .. 17])
              注释原因:缩略图高亮为自定义后,刷新会将高亮刷新到0行

+ 11 - 0
PDF Office/PDF Master/Class/PDFWindowController/Side/LeftSide/Thumbnail/Base/KMPDFThumbViewBaseController.swift

@@ -779,6 +779,8 @@ class KMPDFThumbViewBaseController: KMBaseViewController {
             return IndexSet()
         }
         
+        KMThumbnailCache.shared.clearCache()
+        
         var count: Int = 0
         var newIndexs = IndexSet()
         for index in indexs {
@@ -806,6 +808,8 @@ class KMPDFThumbViewBaseController: KMBaseViewController {
             return IndexSet()
         }
         
+        KMThumbnailCache.shared.clearCache()
+        
         var newIndexs = IndexSet()
         for i in indexs {
             if let _ = self.thumbnailView.document?.page(at: UInt(i)) as? CPDFPage {
@@ -813,6 +817,7 @@ class KMPDFThumbViewBaseController: KMBaseViewController {
             }
         }
         self.thumbnailView.document?.removePage(at: newIndexs)
+        
         return newIndexs
     }
     
@@ -822,6 +827,8 @@ class KMPDFThumbViewBaseController: KMBaseViewController {
             return IndexSet()
         }
         
+        KMThumbnailCache.shared.clearCache()
+        
         var newIndexs = IndexSet()
         for i in 0 ..< self.thumbnailView.document!.pageCount {
             if (indexs.contains(IndexSet.Element(i))) {
@@ -841,6 +848,8 @@ class KMPDFThumbViewBaseController: KMBaseViewController {
             return IndexSet()
         }
         
+        KMThumbnailCache.shared.clearCache()
+        
         var newIndexs = IndexSet()
         for i in 0 ..< self.thumbnailView.document!.pageCount {
             if (indexs.contains(IndexSet.Element(i))) {
@@ -857,6 +866,8 @@ class KMPDFThumbViewBaseController: KMBaseViewController {
     private func _replacePages(of targetIndexs: IndexSet, with pages: [CPDFPage], at index: Int) {
         self.thumbnailView.document?.removePage(at: targetIndexs)
         
+        KMThumbnailCache.shared.clearCache()
+        
         var insertIndex = index
         for page in pages {
             self.thumbnailView.document?.insertPageObject(page, at:UInt(insertIndex))