Skip to content

Commit f126036

Browse files
committed
feat(ui): add thumbnail caching
1 parent fce9785 commit f126036

File tree

6 files changed

+204
-98
lines changed

6 files changed

+204
-98
lines changed

tagstudio/src/core/constants.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
TS_FOLDER_NAME: str = ".TagStudio"
1010
BACKUP_FOLDER_NAME: str = "backups"
1111
COLLAGE_FOLDER_NAME: str = "collages"
12+
THUMB_CACHE_NAME: str = "thumbs"
1213

1314
FONT_SAMPLE_TEXT: str = (
1415
"""ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!?@$%(){}[]"""

tagstudio/src/core/library/alchemy/library.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ class Library:
166166
def close(self):
167167
if self.engine:
168168
self.engine.dispose()
169-
self.library_dir = None
169+
self.library_dir: Path | None = None
170170
self.storage_path = None
171171
self.folder = None
172172
self.included_files = set()

tagstudio/src/qt/helpers/gradient.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77

88
def four_corner_gradient(
9-
image: Image.Image, size: tuple[int, int], mask: Image.Image
9+
image: Image.Image, size: tuple[int, int], mask: Image.Image | None = None
1010
) -> Image.Image:
1111
if image.size != size:
1212
# Four-Corner Gradient Background.
@@ -29,11 +29,17 @@ def four_corner_gradient(
2929
)
3030

3131
final = Image.new("RGBA", bg.size, (0, 0, 0, 0))
32-
final.paste(bg, mask=mask.getchannel(0))
32+
if mask:
33+
final.paste(bg, mask=mask.getchannel(0))
34+
else:
35+
final = bg
3336

3437
else:
3538
final = Image.new("RGBA", size, (0, 0, 0, 0))
36-
final.paste(image, mask=mask.getchannel(0))
39+
if mask:
40+
final.paste(image, mask=mask.getchannel(0))
41+
else:
42+
final = image
3743

3844
if final.mode != "RGBA":
3945
final = final.convert("RGBA")

tagstudio/src/qt/widgets/item_thumb.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ def __init__(
202202
self.thumb_layout.addWidget(self.bottom_container)
203203

204204
self.thumb_button = ThumbButton(self.thumb_container, thumb_size)
205-
self.renderer = ThumbRenderer()
205+
self.renderer = ThumbRenderer(self.lib)
206206
self.renderer.updated.connect(
207207
lambda timestamp, image, size, filename, ext: (
208208
self.update_thumb(timestamp, image=image),

tagstudio/src/qt/widgets/preview/preview_thumb.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ def __init__(self, library: Library, driver: "QtDriver"):
7474

7575
self.preview_vid = VideoPlayer(driver)
7676
self.preview_vid.hide()
77-
self.thumb_renderer = ThumbRenderer()
77+
self.thumb_renderer = ThumbRenderer(self.lib)
7878
self.thumb_renderer.updated.connect(lambda ts, i, s: (self.preview_img.setIcon(i)))
7979
self.thumb_renderer.updated_ratio.connect(
8080
lambda ratio: (

0 commit comments

Comments
 (0)