mirror of
https://github.com/TagStudioDev/TagStudio.git
synced 2026-02-01 15:49:09 +00:00
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:
committed by
GitHub
parent
c71032ff51
commit
78e29a9a69
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user