From 2965d2056bcbcf801e3a94e64bf9c32439f8f401 Mon Sep 17 00:00:00 2001 From: TheBobBobs <84781603+TheBobBobs@users.noreply.github.com> Date: Mon, 6 Jul 2026 01:26:41 +0000 Subject: [PATCH] fix: Thumbnail Grid not resizing to fill width (#1433) * fix: update thumb_grid when row width changes * fix: prevent index error in thumb_grid --- src/tagstudio/qt/thumb_grid_layout.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/tagstudio/qt/thumb_grid_layout.py b/src/tagstudio/qt/thumb_grid_layout.py index 42fac679..3f60698d 100644 --- a/src/tagstudio/qt/thumb_grid_layout.py +++ b/src/tagstudio/qt/thumb_grid_layout.py @@ -48,8 +48,8 @@ class ThumbGridLayout(QLayout): self._renderer.updated.connect(self._on_rendered) self._render_cutoff: float = 0.0 - # _entry_ids[StartIndex:EndIndex] - self._last_page_update: tuple[int, int] | None = None + # _entry_ids[StartIndex:EndIndex], per_row + self._last_page_update: tuple[int, int, int] | None = None self._scroll_to: int | None = None @@ -215,7 +215,8 @@ class ThumbGridLayout(QLayout): start = offset * per_row end = start + (visible_rows * per_row) - self.visible_changed.emit(self._entry_ids[start]) + first_visible = self._entry_ids[start] if 0 <= start < len(self._entry_ids) else None + self.visible_changed.emit(first_visible) # Load closest off screen rows start -= per_row * 3 @@ -223,9 +224,9 @@ class ThumbGridLayout(QLayout): start = max(0, start) end = min(len(self._entry_ids), end) - if (start, end) == self._last_page_update: + if (start, end, per_row) == self._last_page_update: return - self._last_page_update = (start, end) + self._last_page_update = (start, end, per_row) # Clear render queue if len > 2 pages if len(self.driver.thumb_job_queue.queue) > (per_row * visible_rows * 2):