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()) delete_button.add_css_class('g-DangerButton') 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()