fix(ui): show correct thumb labels (#1010)

* fix(ui): show correct thumb labels

* fix(ui): use timestamp cutoff for thumb filename and ext
This commit is contained in:
Travis Abendshien
2025-08-07 12:33:38 -07:00
committed by GitHub
parent c71032ff51
commit 78e29a9a69
2 changed files with 31 additions and 19 deletions

View File

@@ -1418,7 +1418,6 @@ class QtDriver(DriverMixin, QObject):
def update_thumbs(self):
"""Update search thumbnails."""
self._update_thumb_count()
# logger.info(f'Current Page: {self.cur_page_idx}, Stack Length:{len(self.nav_stack)}')
with self.thumb_job_queue.mutex:
# Cancels all thumb jobs waiting to be started
self.thumb_job_queue.queue.clear()
@@ -1444,6 +1443,8 @@ class QtDriver(DriverMixin, QObject):
logger.info("[QtDriver] Done! Processing ItemThumbs...")
for index, item_thumb in enumerate(self.item_thumbs, start=0):
entry = None
item_thumb.set_mode(None)
try:
entry = entries[index]
except IndexError:

View File

@@ -204,10 +204,10 @@ class ItemThumb(FlowWidget):
self.renderer = ThumbRenderer(self.lib)
self.renderer.updated.connect(
lambda timestamp, image, size, filename: (
self.update_thumb(timestamp, image=image),
self.update_size(timestamp, size=size),
self.set_filename_text(filename),
self.set_extension(filename),
self.update_thumb(image, timestamp),
self.update_size(size, timestamp),
self.set_filename_text(filename, timestamp),
self.set_extension(filename, timestamp),
)
)
self.thumb_button.setFlat(True)
@@ -372,8 +372,11 @@ class ItemThumb(FlowWidget):
self.item_type_badge.setHidden(False)
self.mode = mode
def set_extension(self, filename: Path) -> None:
ext = filename.suffix
def set_extension(self, filename: Path, timestamp: float | None = None) -> None:
if timestamp and timestamp < ItemThumb.update_cutoff:
return
ext = filename.suffix.lower()
if ext and ext.startswith(".") is False:
ext = "." + ext
media_types: set[MediaType] = MediaCategories.get_types(ext)
@@ -392,12 +395,13 @@ class ItemThumb(FlowWidget):
".webp",
]
):
self.ext_badge.setHidden(False)
self.ext_badge.setText(ext.upper()[1:] or filename.stem.upper())
if ext or filename.stem:
self.ext_badge.setHidden(False)
if MediaType.VIDEO in media_types or MediaType.AUDIO in media_types:
self.count_badge.setHidden(False)
else:
if self.mode == ItemType.ENTRY:
if self.mode == ItemType.ENTRY or self.mode is None:
self.ext_badge.setHidden(True)
self.count_badge.setHidden(True)
@@ -410,7 +414,10 @@ class ItemThumb(FlowWidget):
self.ext_badge.setHidden(True)
self.count_badge.setHidden(True)
def set_filename_text(self, filename: Path):
def set_filename_text(self, filename: Path, timestamp: float | None = None):
if timestamp and timestamp < ItemThumb.update_cutoff:
return
self.set_item_path(filename)
self.file_label.setText(str(filename.name))
@@ -429,12 +436,14 @@ class ItemThumb(FlowWidget):
self.setFixedHeight(self.thumb_size[1])
self.show_filename_label = set_visible
def update_thumb(self, timestamp: float, image: QPixmap | None = None):
def update_thumb(self, image: QPixmap | None = None, timestamp: float | None = None):
"""Update attributes of a thumbnail element."""
if timestamp > ItemThumb.update_cutoff:
self.thumb_button.setIcon(image if image else QPixmap())
if timestamp and timestamp < ItemThumb.update_cutoff:
return
def update_size(self, timestamp: float, size: QSize):
self.thumb_button.setIcon(image if image else QPixmap())
def update_size(self, size: QSize, timestamp: float | None = None):
"""Updates attributes of a thumbnail element.
Args:
@@ -443,11 +452,13 @@ class ItemThumb(FlowWidget):
size (QSize): The new thumbnail size to set.
"""
if timestamp > ItemThumb.update_cutoff:
self.thumb_size = size.width(), size.height()
self.thumb_button.setIconSize(size)
self.thumb_button.setMinimumSize(size)
self.thumb_button.setMaximumSize(size)
if timestamp and timestamp < ItemThumb.update_cutoff:
return
self.thumb_size = size.width(), size.height()
self.thumb_button.setIconSize(size)
self.thumb_button.setMinimumSize(size)
self.thumb_button.setMaximumSize(size)
def set_item_id(self, item_id: int):
self.item_id = item_id