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)
|
||||
|
||||
def _on_search_done(self, posts: list) -> None:
|
||||
self._last_activated_index = -1
|
||||
self._posts = posts
|
||||
self._status.showMessage(f"{len(posts)} results")
|
||||
thumbs = self._grid.set_posts(len(posts))
|
||||
@ -769,8 +768,6 @@ class BooruApp(QMainWindow):
|
||||
|
||||
# -- Post selection / preview --
|
||||
|
||||
_last_activated_index = -1
|
||||
|
||||
def _on_post_selected(self, index: int) -> None:
|
||||
multi = self._grid.selected_indices
|
||||
if len(multi) > 1:
|
||||
@ -783,8 +780,6 @@ class BooruApp(QMainWindow):
|
||||
)
|
||||
if self._info_panel.isVisible():
|
||||
self._info_panel.set_post(post)
|
||||
if index != self._last_activated_index:
|
||||
self._last_activated_index = index
|
||||
self._on_post_activated(index)
|
||||
|
||||
def _on_post_activated(self, index: int) -> None:
|
||||
@ -1270,13 +1265,11 @@ class BooruApp(QMainWindow):
|
||||
self._db.set_setting("blacklist_enabled", "1")
|
||||
self._preview.clear()
|
||||
self._status.showMessage(f"Blacklisted: {tag}")
|
||||
self._last_activated_index = -1
|
||||
self._do_search()
|
||||
elif action == bl_post_action:
|
||||
self._db.add_blacklisted_post(post.file_url)
|
||||
self._preview.clear()
|
||||
self._status.showMessage(f"Post #{post.id} blacklisted")
|
||||
self._last_activated_index = -1
|
||||
self._do_search()
|
||||
|
||||
@staticmethod
|
||||
|
||||
@ -119,6 +119,8 @@ class ThumbnailWidget(QWidget):
|
||||
pen = QPen(highlight, BORDER_WIDTH)
|
||||
elif self._multi_selected:
|
||||
pen = QPen(highlight.darker(150), BORDER_WIDTH)
|
||||
elif self._hover:
|
||||
pen = QPen(highlight.lighter(150), 1)
|
||||
else:
|
||||
pen = QPen(mid, 1)
|
||||
p.setPen(pen)
|
||||
@ -376,6 +378,13 @@ class ThumbnailGrid(QScrollArea):
|
||||
if self._multi_selected and index in self._multi_selected:
|
||||
self.multi_context_requested.emit(sorted(self._multi_selected), pos)
|
||||
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)
|
||||
|
||||
def select_all(self) -> None:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user