Fix right-click: select visually without activating preview
Right-click selects the thumbnail (border highlight) but doesn't trigger post_selected/activated, so preview stays on current post. Added hover border highlight. Removed _last_activated_index guard.
This commit is contained in:
parent
05e19ee957
commit
5c3995f5d6
@ -671,7 +671,6 @@ class BooruApp(QMainWindow):
|
|||||||
self._run_async(_search)
|
self._run_async(_search)
|
||||||
|
|
||||||
def _on_search_done(self, posts: list) -> None:
|
def _on_search_done(self, posts: list) -> None:
|
||||||
self._last_activated_index = -1
|
|
||||||
self._posts = posts
|
self._posts = posts
|
||||||
self._status.showMessage(f"{len(posts)} results")
|
self._status.showMessage(f"{len(posts)} results")
|
||||||
thumbs = self._grid.set_posts(len(posts))
|
thumbs = self._grid.set_posts(len(posts))
|
||||||
@ -769,8 +768,6 @@ class BooruApp(QMainWindow):
|
|||||||
|
|
||||||
# -- Post selection / preview --
|
# -- Post selection / preview --
|
||||||
|
|
||||||
_last_activated_index = -1
|
|
||||||
|
|
||||||
def _on_post_selected(self, index: int) -> None:
|
def _on_post_selected(self, index: int) -> None:
|
||||||
multi = self._grid.selected_indices
|
multi = self._grid.selected_indices
|
||||||
if len(multi) > 1:
|
if len(multi) > 1:
|
||||||
@ -783,8 +780,6 @@ class BooruApp(QMainWindow):
|
|||||||
)
|
)
|
||||||
if self._info_panel.isVisible():
|
if self._info_panel.isVisible():
|
||||||
self._info_panel.set_post(post)
|
self._info_panel.set_post(post)
|
||||||
if index != self._last_activated_index:
|
|
||||||
self._last_activated_index = index
|
|
||||||
self._on_post_activated(index)
|
self._on_post_activated(index)
|
||||||
|
|
||||||
def _on_post_activated(self, index: int) -> None:
|
def _on_post_activated(self, index: int) -> None:
|
||||||
@ -1270,13 +1265,11 @@ class BooruApp(QMainWindow):
|
|||||||
self._db.set_setting("blacklist_enabled", "1")
|
self._db.set_setting("blacklist_enabled", "1")
|
||||||
self._preview.clear()
|
self._preview.clear()
|
||||||
self._status.showMessage(f"Blacklisted: {tag}")
|
self._status.showMessage(f"Blacklisted: {tag}")
|
||||||
self._last_activated_index = -1
|
|
||||||
self._do_search()
|
self._do_search()
|
||||||
elif action == bl_post_action:
|
elif action == bl_post_action:
|
||||||
self._db.add_blacklisted_post(post.file_url)
|
self._db.add_blacklisted_post(post.file_url)
|
||||||
self._preview.clear()
|
self._preview.clear()
|
||||||
self._status.showMessage(f"Post #{post.id} blacklisted")
|
self._status.showMessage(f"Post #{post.id} blacklisted")
|
||||||
self._last_activated_index = -1
|
|
||||||
self._do_search()
|
self._do_search()
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
|||||||
@ -119,6 +119,8 @@ class ThumbnailWidget(QWidget):
|
|||||||
pen = QPen(highlight, BORDER_WIDTH)
|
pen = QPen(highlight, BORDER_WIDTH)
|
||||||
elif self._multi_selected:
|
elif self._multi_selected:
|
||||||
pen = QPen(highlight.darker(150), BORDER_WIDTH)
|
pen = QPen(highlight.darker(150), BORDER_WIDTH)
|
||||||
|
elif self._hover:
|
||||||
|
pen = QPen(highlight.lighter(150), 1)
|
||||||
else:
|
else:
|
||||||
pen = QPen(mid, 1)
|
pen = QPen(mid, 1)
|
||||||
p.setPen(pen)
|
p.setPen(pen)
|
||||||
@ -376,6 +378,13 @@ class ThumbnailGrid(QScrollArea):
|
|||||||
if self._multi_selected and index in self._multi_selected:
|
if self._multi_selected and index in self._multi_selected:
|
||||||
self.multi_context_requested.emit(sorted(self._multi_selected), pos)
|
self.multi_context_requested.emit(sorted(self._multi_selected), pos)
|
||||||
else:
|
else:
|
||||||
|
# Select visually but don't activate (no preview change)
|
||||||
|
self._clear_multi()
|
||||||
|
if 0 <= self._selected_index < len(self._thumbs):
|
||||||
|
self._thumbs[self._selected_index].set_selected(False)
|
||||||
|
self._selected_index = index
|
||||||
|
self._thumbs[index].set_selected(True)
|
||||||
|
self.ensureWidgetVisible(self._thumbs[index])
|
||||||
self.context_requested.emit(index, pos)
|
self.context_requested.emit(index, pos)
|
||||||
|
|
||||||
def select_all(self) -> None:
|
def select_all(self) -> None:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user