Skip to content

Commit 78e29a9

Browse files
authored
fix(ui): show correct thumb labels (#1010)
* fix(ui): show correct thumb labels * fix(ui): use timestamp cutoff for thumb filename and ext
1 parent c71032f commit 78e29a9

File tree

2 files changed

+31
-19
lines changed

2 files changed

+31
-19
lines changed

src/tagstudio/qt/ts_qt.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1418,7 +1418,6 @@ def update_completions_list(self, text: str) -> None:
14181418
def update_thumbs(self):
14191419
"""Update search thumbnails."""
14201420
self._update_thumb_count()
1421-
# logger.info(f'Current Page: {self.cur_page_idx}, Stack Length:{len(self.nav_stack)}')
14221421
with self.thumb_job_queue.mutex:
14231422
# Cancels all thumb jobs waiting to be started
14241423
self.thumb_job_queue.queue.clear()
@@ -1444,6 +1443,8 @@ def update_thumbs(self):
14441443
logger.info("[QtDriver] Done! Processing ItemThumbs...")
14451444
for index, item_thumb in enumerate(self.item_thumbs, start=0):
14461445
entry = None
1446+
item_thumb.set_mode(None)
1447+
14471448
try:
14481449
entry = entries[index]
14491450
except IndexError:

src/tagstudio/qt/widgets/item_thumb.py

Lines changed: 29 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)