diff options
| author | Joris Guyonvarch | 2026-01-17 13:21:52 +0100 |
|---|---|---|
| committer | Joris Guyonvarch | 2026-01-17 13:21:52 +0100 |
| commit | f641c5b987b35f63ad066c0fa634c0a9f11bc7ab (patch) | |
| tree | 85508f3210d8983c9e62f99369682cfaa3ebf605 /src/remove_paths_dialog.py | |
| parent | f2656765a27a38b1a9e5602c3430dde1cbc361f1 (diff) | |
Show dialog to keep or remove book sources
Diffstat (limited to 'src/remove_paths_dialog.py')
| -rw-r--r-- | src/remove_paths_dialog.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/remove_paths_dialog.py b/src/remove_paths_dialog.py new file mode 100644 index 0000000..2444067 --- /dev/null +++ b/src/remove_paths_dialog.py @@ -0,0 +1,45 @@ +import gi +gi.require_version('Gtk', '4.0') +from gi.repository import Gtk +import os +import logging +import pathlib + +import src.utils as utils +import src.book_files as book_files + +logger = logging.getLogger(__name__) + +class RemovePathsDialog(Gtk.Window): + + def __init__(self, parent_window, title, paths): + Gtk.Window.__init__(self) + + self._paths = paths + + utils.configure_dialog(self, parent_window, title, width=None, height=None) + + box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=20) + self.set_child(box) + utils.set_margin(box, 20) + + for path in paths: + box.append(utils.label(path.as_posix())) + + buttons_box = Gtk.Box(spacing=20) + buttons_box.set_halign(Gtk.Align.END) + box.append(buttons_box) + + keep_button = Gtk.Button(label='Conserver') + keep_button.connect('clicked', lambda _: self.close()) + buttons_box.append(keep_button) + + delete_button = Gtk.Button(label='Supprimer') + delete_button.connect('clicked', lambda _: self._on_delete()) + buttons_box.append(delete_button) + + def _on_delete(self): + for path in self._paths: + logger.info('Removing source: %s', path) + pathlib.Path.unlink(path) + self.close() |
