Auto-select first/last post after page turn from navigation

When navigating past the last post (next page) or before the first
post (prev page), the new page loads and automatically selects and
previews the first or last post. Works in both preview and slideshow.
This commit is contained in:
pax 2026-04-04 19:49:52 -05:00
parent 148c1c3a26
commit 94405cfa85

View File

@ -608,6 +608,17 @@ class BooruApp(QMainWindow):
if post.preview_url:
self._fetch_thumbnail(i, post.preview_url)
# Auto-select first/last post if page turn was triggered by navigation
turn = getattr(self, "_nav_page_turn", None)
if turn and posts:
self._nav_page_turn = None
if turn == "first":
idx = 0
else:
idx = len(posts) - 1
self._grid._select(idx)
self._on_post_activated(idx)
self._grid.setFocus()
def _fetch_thumbnail(self, index: int, url: str) -> None:
@ -788,8 +799,10 @@ class BooruApp(QMainWindow):
self._grid._select(idx)
self._on_post_activated(idx)
elif idx >= len(self._posts) and direction == 1 and len(self._posts) > 0:
self._nav_page_turn = "first"
self._next_page()
elif idx < 0 and direction == -1 and self._current_page > 1:
self._nav_page_turn = "last"
self._prev_page()
def _favorite_from_preview(self) -> None: