aboutsummaryrefslogtreecommitdiff
path: root/src/remove_paths_dialog.py
diff options
context:
space:
mode:
authorJoris Guyonvarch2026-01-17 13:21:52 +0100
committerJoris Guyonvarch2026-01-17 13:21:52 +0100
commitf641c5b987b35f63ad066c0fa634c0a9f11bc7ab (patch)
tree85508f3210d8983c9e62f99369682cfaa3ebf605 /src/remove_paths_dialog.py
parentf2656765a27a38b1a9e5602c3430dde1cbc361f1 (diff)
Show dialog to keep or remove book sources
Diffstat (limited to 'src/remove_paths_dialog.py')
-rw-r--r--src/remove_paths_dialog.py45
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()