From a45235950b2cde23205fa91e0d1add7c8567d9c1 Mon Sep 17 00:00:00 2001 From: Nate Levesque Date: Sat, 8 Feb 2025 16:29:37 -0500 Subject: [PATCH] delete key removes screenshot (#225) * delete key removes screenshot * unused var * missed commit * test * test? * test? * fine --- .../frontend/gtk/dialogs/confirm_dialog.py | 4 +++- src/gscreenshot/frontend/gtk/main.py | 2 ++ src/gscreenshot/frontend/gtk/presenter.py | 22 +++++++++++++++---- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/gscreenshot/frontend/gtk/dialogs/confirm_dialog.py b/src/gscreenshot/frontend/gtk/dialogs/confirm_dialog.py index b6eb556..d8b96b0 100644 --- a/src/gscreenshot/frontend/gtk/dialogs/confirm_dialog.py +++ b/src/gscreenshot/frontend/gtk/dialogs/confirm_dialog.py @@ -26,7 +26,9 @@ def __init__(self, message, parent=None): label = Gtk.Label(label=message) label.set_line_wrap(True) label.set_max_width_chars(60) - label.set_padding(20, 20) + label.set_margin_end(20) + label.set_margin_start(20) + label.set_margin_top(20) box = self.get_content_area() box.add(label) diff --git a/src/gscreenshot/frontend/gtk/main.py b/src/gscreenshot/frontend/gtk/main.py index cad21e3..63889ab 100644 --- a/src/gscreenshot/frontend/gtk/main.py +++ b/src/gscreenshot/frontend/gtk/main.py @@ -101,6 +101,8 @@ def main(app: typing.Optional[Gscreenshot] = None): presenter.on_preview_next_clicked, Gdk.keyval_to_lower(Gdk.keyval_from_name('Left')): presenter.on_preview_prev_clicked, + Gdk.keyval_to_lower(Gdk.keyval_from_name('Delete')): + presenter.on_delete, # Handled in Glade - just here for reference #Gtk.gdk.keyval_to_lower(Gtk.gdk.keyval_from_name('Insert')): # presenter.overwrite_mode_toggled diff --git a/src/gscreenshot/frontend/gtk/presenter.py b/src/gscreenshot/frontend/gtk/presenter.py index b00958a..903c766 100644 --- a/src/gscreenshot/frontend/gtk/presenter.py +++ b/src/gscreenshot/frontend/gtk/presenter.py @@ -228,6 +228,20 @@ def on_preview_drag(self, _widget, _drag_context, data, _info, _time): data.set_uris([f"file://{fname}"]) + def on_delete(self, *_): + """ + remove the current screenshot + """ + screenshots = self._app.get_screenshot_collection() + current = screenshots.cursor_current() + if current: + screenshots.remove(current) + + self._view.update_gallery_controls(screenshots) + self._show_preview() + + return True + def on_use_last_region_clicked(self, *_): ''' Take a screenshot with the same region as the @@ -491,16 +505,16 @@ def quit(self, *_, skip_warning=False): return # not strictly needed most of the time screenshot_collection = self._app.get_screenshot_collection() - if len(screenshot_collection) > 1 and self._app.get_screenshot_collection().has_unsaved(): + + if len(screenshot_collection) > 1 and screenshot_collection.has_unsaved(): confirm_dialogue = ConfirmationDialog( message=i18n("There are unsaved screenshots. Quit without saving?") ) self._view.run_dialog(confirm_dialogue) - if confirm_dialogue.confirmed: - self._app.quit() - return + if not confirm_dialogue.confirmed: + return self._app.quit()