Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions src/tagstudio/qt/widgets/item_thumb.py
Original file line number Diff line number Diff line change
Expand Up @@ -205,11 +205,11 @@ def __init__(
self.thumb_button = ThumbButton(self.thumb_container, thumb_size)
self.renderer = ThumbRenderer(self.lib)
self.renderer.updated.connect(
lambda timestamp, image, size, filename, ext: (
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(ext), # type: ignore
self.set_extension(filename),
)
)
self.thumb_button.setFlat(True)
Expand Down Expand Up @@ -365,13 +365,13 @@ def set_mode(self, mode: ItemType | None) -> None:
self.item_type_badge.setHidden(False)
self.mode = mode

def set_extension(self, ext: str) -> None:
def set_extension(self, filename: Path) -> None:
ext = filename.suffix
if ext and ext.startswith(".") is False:
ext = "." + ext
media_types: set[MediaType] = MediaCategories.get_types(ext)
if (
ext
and not MediaCategories.is_ext_in_category(ext, MediaCategories.IMAGE_TYPES)
not MediaCategories.is_ext_in_category(ext, MediaCategories.IMAGE_TYPES)
or MediaCategories.is_ext_in_category(ext, MediaCategories.IMAGE_RAW_TYPES)
or MediaCategories.is_ext_in_category(ext, MediaCategories.IMAGE_VECTOR_TYPES)
or MediaCategories.is_ext_in_category(ext, MediaCategories.ADOBE_PHOTOSHOP_TYPES)
Expand All @@ -386,7 +386,7 @@ def set_extension(self, ext: str) -> None:
]
):
self.ext_badge.setHidden(False)
self.ext_badge.setText(ext.upper()[1:])
self.ext_badge.setText(ext.upper()[1:] or filename.stem.upper())
if MediaType.VIDEO in media_types or MediaType.AUDIO in media_types:
self.count_badge.setHidden(False)
else:
Expand Down
6 changes: 3 additions & 3 deletions src/tagstudio/qt/widgets/preview/file_attributes.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ def update_date_label(self, filepath: Path | None = None) -> None:
self.date_created_label.setHidden(True)
self.date_modified_label.setHidden(True)

def update_stats(self, filepath: Path | None = None, ext: str = ".", stats: dict | None = None):
def update_stats(self, filepath: Path | None = None, stats: dict | None = None):
"""Render the panel widgets with the newest data from the Library."""
if not stats:
stats = {}
Expand All @@ -145,6 +145,7 @@ def update_stats(self, filepath: Path | None = None, ext: str = ".", stats: dict
self.dimensions_label.setText("")
self.dimensions_label.setHidden(True)
else:
ext = filepath.suffix.lower()
self.library_path = self.library.library_dir
display_path = filepath
if self.driver.settings.show_filepath == ShowFilepathOption.SHOW_FULL_PATHS:
Expand Down Expand Up @@ -188,8 +189,7 @@ def update_stats(self, filepath: Path | None = None, ext: str = ".", stats: dict
height_px_text = stats.get("height", "")
duration_text = stats.get("duration", "")
font_family = stats.get("font_family", "")
if ext:
ext_display = ext.upper()[1:]
ext_display = ext.upper()[1:] or filepath.stem.upper()
if filepath:
try:
file_size = format_size(filepath.stat().st_size)
Expand Down
12 changes: 7 additions & 5 deletions src/tagstudio/qt/widgets/preview/preview_thumb.py
Original file line number Diff line number Diff line change
Expand Up @@ -242,11 +242,12 @@ def _display_fallback_image(self, filepath: Path, ext: str) -> dict[str, int]:
self.devicePixelRatio(),
update_on_ratio_change=True,
)
return self._update_image(filepath, ext)
return self._update_image(filepath)

def _update_image(self, filepath: Path, ext: str) -> dict[str, int]:
def _update_image(self, filepath: Path) -> dict[str, int]:
"""Update the static image preview from a filepath."""
stats: dict[str, int] = {}
ext = filepath.suffix.lower()
self.switch_preview("image")

image: Image.Image | None = None
Expand Down Expand Up @@ -380,8 +381,9 @@ def _update_media(self, filepath: Path, type: MediaType) -> dict[str, int]:
stats["duration"] = self.media_player.player.duration() * 1000
return stats

def update_preview(self, filepath: Path, ext: str) -> dict[str, int]:
def update_preview(self, filepath: Path) -> dict[str, int]:
"""Render a single file preview."""
ext = filepath.suffix.lower()
stats: dict[str, int] = {}

# Video
Expand All @@ -394,7 +396,7 @@ def update_preview(self, filepath: Path, ext: str) -> dict[str, int]:
elif MediaCategories.is_ext_in_category(
ext, MediaCategories.AUDIO_TYPES, mime_fallback=True
):
self._update_image(filepath, ext)
self._update_image(filepath)
stats = self._update_media(filepath, MediaType.AUDIO)
self.thumb_renderer.render(
time.time(),
Expand All @@ -413,7 +415,7 @@ def update_preview(self, filepath: Path, ext: str) -> dict[str, int]:
# Other Types (Including Images)
else:
# TODO: Get thumb renderer to return this stuff to pass on
stats = self._update_image(filepath, ext)
stats = self._update_image(filepath)

self.thumb_renderer.render(
time.time(),
Expand Down
5 changes: 2 additions & 3 deletions src/tagstudio/qt/widgets/preview_panel.py
Original file line number Diff line number Diff line change
Expand Up @@ -145,11 +145,10 @@ def update_widgets(self, update_preview: bool = True) -> bool:
entry: Entry = self.lib.get_entry(self.driver.selected[0])
entry_id = self.driver.selected[0]
filepath: Path = self.lib.library_dir / entry.path
ext: str = filepath.suffix.lower()

if update_preview:
stats: dict = self.thumb.update_preview(filepath, ext)
self.file_attrs.update_stats(filepath, ext, stats)
stats: dict = self.thumb.update_preview(filepath)
self.file_attrs.update_stats(filepath, stats)
self.file_attrs.update_date_label(filepath)
self.fields.update_from_entry(entry_id)
self.update_add_tag_button(entry_id)
Expand Down
4 changes: 1 addition & 3 deletions src/tagstudio/qt/widgets/thumb_renderer.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ class ThumbRenderer(QObject):

rm: ResourceManager = ResourceManager()
cache: CacheManager = CacheManager()
updated = Signal(float, QPixmap, QSize, Path, str)
updated = Signal(float, QPixmap, QSize, Path)
updated_ratio = Signal(float)

cached_img_res: int = 256 # TODO: Pull this from config
Expand Down Expand Up @@ -1300,15 +1300,13 @@ def fetch_cached_image(folder: Path):
math.ceil(image.size[1] / pixel_ratio),
),
filepath,
filepath.suffix.lower(),
)
else:
self.updated.emit(
timestamp,
QPixmap(),
QSize(*base_size),
filepath,
filepath.suffix.lower(),
)

def _render(
Expand Down