add B/S keybinds to popout, refactor toggle_save
This commit is contained in:
parent
28c40bc1f5
commit
d7b3c304d7
@ -33,6 +33,8 @@
|
|||||||
| `,` / `.` | Seek 3s (video) |
|
| `,` / `.` | Seek 3s (video) |
|
||||||
| `Space` | Play / pause (video) |
|
| `Space` | Play / pause (video) |
|
||||||
| Scroll wheel | Volume up / down (video) |
|
| Scroll wheel | Volume up / down (video) |
|
||||||
|
| `B` / `F` | Toggle bookmark on selected post |
|
||||||
|
| `S` | Toggle save to library (Unfiled) |
|
||||||
| `F11` | Toggle fullscreen / windowed |
|
| `F11` | Toggle fullscreen / windowed |
|
||||||
| `Ctrl+H` | Hide / show UI |
|
| `Ctrl+H` | Hide / show UI |
|
||||||
| `Ctrl+P` | Privacy screen |
|
| `Ctrl+P` | Privacy screen |
|
||||||
|
|||||||
@ -1075,11 +1075,7 @@ class BooruApp(QMainWindow):
|
|||||||
self._post_actions.toggle_bookmark(idx)
|
self._post_actions.toggle_bookmark(idx)
|
||||||
return
|
return
|
||||||
if key == Qt.Key.Key_S and self._preview._current_post:
|
if key == Qt.Key.Key_S and self._preview._current_post:
|
||||||
post = self._preview._current_post
|
self._post_actions.toggle_save_from_preview()
|
||||||
if self._post_actions.is_post_saved(post.id):
|
|
||||||
self._post_actions.unsave_from_preview()
|
|
||||||
else:
|
|
||||||
self._post_actions.save_from_preview("")
|
|
||||||
return
|
return
|
||||||
elif key == Qt.Key.Key_I:
|
elif key == Qt.Key.Key_I:
|
||||||
self._toggle_info()
|
self._toggle_info()
|
||||||
|
|||||||
@ -113,6 +113,7 @@ class FullscreenPreview(QMainWindow):
|
|||||||
# Unfiled (root of saved_dir).
|
# Unfiled (root of saved_dir).
|
||||||
save_to_folder = Signal(str)
|
save_to_folder = Signal(str)
|
||||||
unsave_requested = Signal()
|
unsave_requested = Signal()
|
||||||
|
toggle_save_requested = Signal()
|
||||||
blacklist_tag_requested = Signal(str) # tag name
|
blacklist_tag_requested = Signal(str) # tag name
|
||||||
blacklist_post_requested = Signal()
|
blacklist_post_requested = Signal()
|
||||||
open_in_default = Signal()
|
open_in_default = Signal()
|
||||||
@ -1366,6 +1367,12 @@ class FullscreenPreview(QMainWindow):
|
|||||||
elif key in (Qt.Key.Key_Down, Qt.Key.Key_J):
|
elif key in (Qt.Key.Key_Down, Qt.Key.Key_J):
|
||||||
self._dispatch_and_apply(NavigateRequested(direction=self._grid_cols))
|
self._dispatch_and_apply(NavigateRequested(direction=self._grid_cols))
|
||||||
return True
|
return True
|
||||||
|
elif key in (Qt.Key.Key_B, Qt.Key.Key_F):
|
||||||
|
self.bookmark_requested.emit()
|
||||||
|
return True
|
||||||
|
elif key == Qt.Key.Key_S:
|
||||||
|
self.toggle_save_requested.emit()
|
||||||
|
return True
|
||||||
elif key == Qt.Key.Key_F11:
|
elif key == Qt.Key.Key_F11:
|
||||||
self._dispatch_and_apply(FullscreenToggled())
|
self._dispatch_and_apply(FullscreenToggled())
|
||||||
return True
|
return True
|
||||||
|
|||||||
@ -97,6 +97,7 @@ class PopoutController:
|
|||||||
self._fullscreen_window.set_folders_callback(library_folders)
|
self._fullscreen_window.set_folders_callback(library_folders)
|
||||||
self._fullscreen_window.save_to_folder.connect(self._app._post_actions.save_from_preview)
|
self._fullscreen_window.save_to_folder.connect(self._app._post_actions.save_from_preview)
|
||||||
self._fullscreen_window.unsave_requested.connect(self._app._post_actions.unsave_from_preview)
|
self._fullscreen_window.unsave_requested.connect(self._app._post_actions.unsave_from_preview)
|
||||||
|
self._fullscreen_window.toggle_save_requested.connect(self._app._post_actions.toggle_save_from_preview)
|
||||||
if show_actions:
|
if show_actions:
|
||||||
self._fullscreen_window.bookmark_requested.connect(self._app._post_actions.bookmark_from_preview)
|
self._fullscreen_window.bookmark_requested.connect(self._app._post_actions.bookmark_from_preview)
|
||||||
self._fullscreen_window.set_bookmark_folders_callback(self._app._db.get_folders)
|
self._fullscreen_window.set_bookmark_folders_callback(self._app._db.get_folders)
|
||||||
|
|||||||
@ -159,6 +159,16 @@ class PostActionsController:
|
|||||||
target = folder if folder else None
|
target = folder if folder else None
|
||||||
self.save_to_library(post, target)
|
self.save_to_library(post, target)
|
||||||
|
|
||||||
|
def toggle_save_from_preview(self) -> None:
|
||||||
|
"""Toggle library save: unsave if already saved, save to Unfiled otherwise."""
|
||||||
|
post, _ = self.get_preview_post()
|
||||||
|
if not post:
|
||||||
|
return
|
||||||
|
if self.is_post_saved(post.id):
|
||||||
|
self.unsave_from_preview()
|
||||||
|
else:
|
||||||
|
self.save_from_preview("")
|
||||||
|
|
||||||
def unsave_from_preview(self) -> None:
|
def unsave_from_preview(self) -> None:
|
||||||
post, idx = self.get_preview_post()
|
post, idx = self.get_preview_post()
|
||||||
if not post:
|
if not post:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user