@@ -204,10 +204,10 @@ def __init__(
204204 self .renderer = ThumbRenderer (self .lib )
205205 self .renderer .updated .connect (
206206 lambda timestamp , image , size , filename : (
207- self .update_thumb (timestamp , image = image ),
208- self .update_size (timestamp , size = size ),
209- self .set_filename_text (filename ),
210- self .set_extension (filename ),
207+ self .update_thumb (image , timestamp ),
208+ self .update_size (size , timestamp ),
209+ self .set_filename_text (filename , timestamp ),
210+ self .set_extension (filename , timestamp ),
211211 )
212212 )
213213 self .thumb_button .setFlat (True )
@@ -372,8 +372,11 @@ def set_mode(self, mode: ItemType | None) -> None:
372372 self .item_type_badge .setHidden (False )
373373 self .mode = mode
374374
375- def set_extension (self , filename : Path ) -> None :
376- ext = filename .suffix
375+ def set_extension (self , filename : Path , timestamp : float | None = None ) -> None :
376+ if timestamp and timestamp < ItemThumb .update_cutoff :
377+ return
378+
379+ ext = filename .suffix .lower ()
377380 if ext and ext .startswith ("." ) is False :
378381 ext = "." + ext
379382 media_types : set [MediaType ] = MediaCategories .get_types (ext )
@@ -392,12 +395,13 @@ def set_extension(self, filename: Path) -> None:
392395 ".webp" ,
393396 ]
394397 ):
395- self .ext_badge .setHidden (False )
396398 self .ext_badge .setText (ext .upper ()[1 :] or filename .stem .upper ())
399+ if ext or filename .stem :
400+ self .ext_badge .setHidden (False )
397401 if MediaType .VIDEO in media_types or MediaType .AUDIO in media_types :
398402 self .count_badge .setHidden (False )
399403 else :
400- if self .mode == ItemType .ENTRY :
404+ if self .mode == ItemType .ENTRY or self . mode is None :
401405 self .ext_badge .setHidden (True )
402406 self .count_badge .setHidden (True )
403407
@@ -410,7 +414,10 @@ def set_count(self, count: str) -> None:
410414 self .ext_badge .setHidden (True )
411415 self .count_badge .setHidden (True )
412416
413- def set_filename_text (self , filename : Path ):
417+ def set_filename_text (self , filename : Path , timestamp : float | None = None ):
418+ if timestamp and timestamp < ItemThumb .update_cutoff :
419+ return
420+
414421 self .set_item_path (filename )
415422 self .file_label .setText (str (filename .name ))
416423
@@ -429,12 +436,14 @@ def set_filename_visibility(self, set_visible: bool):
429436 self .setFixedHeight (self .thumb_size [1 ])
430437 self .show_filename_label = set_visible
431438
432- def update_thumb (self , timestamp : float , image : QPixmap | None = None ):
439+ def update_thumb (self , image : QPixmap | None = None , timestamp : float | None = None ):
433440 """Update attributes of a thumbnail element."""
434- if timestamp > ItemThumb .update_cutoff :
435- self .thumb_button .setIcon (image if image else QPixmap ())
441+ if timestamp and timestamp < ItemThumb .update_cutoff :
442+ return
443+
444+ self .thumb_button .setIcon (image if image else QPixmap ())
436445
437- def update_size (self , timestamp : float , size : QSize ):
446+ def update_size (self , size : QSize , timestamp : float | None = None ):
438447 """Updates attributes of a thumbnail element.
439448
440449 Args:
@@ -443,11 +452,13 @@ def update_size(self, timestamp: float, size: QSize):
443452
444453 size (QSize): The new thumbnail size to set.
445454 """
446- if timestamp > ItemThumb .update_cutoff :
447- self .thumb_size = size .width (), size .height ()
448- self .thumb_button .setIconSize (size )
449- self .thumb_button .setMinimumSize (size )
450- self .thumb_button .setMaximumSize (size )
455+ if timestamp and timestamp < ItemThumb .update_cutoff :
456+ return
457+
458+ self .thumb_size = size .width (), size .height ()
459+ self .thumb_button .setIconSize (size )
460+ self .thumb_button .setMinimumSize (size )
461+ self .thumb_button .setMaximumSize (size )
451462
452463 def set_item_id (self , item_id : int ):
453464 self .item_id = item_id
0 commit comments