diff options
| author | Joris Guyonvarch | 2026-01-16 19:02:53 +0100 |
|---|---|---|
| committer | Joris Guyonvarch | 2026-01-16 19:02:53 +0100 |
| commit | f2656765a27a38b1a9e5602c3430dde1cbc361f1 (patch) | |
| tree | a103135f5155e5132bf5366a3fdee5c93575a9d4 /src/book_detail.py | |
| parent | ef6087b36a4726663a1c475952dc0898ab7d0abd (diff) | |
Transfer book by book instead of all books
Diffstat (limited to 'src/book_detail.py')
| -rw-r--r-- | src/book_detail.py | 40 |
1 files changed, 26 insertions, 14 deletions
diff --git a/src/book_detail.py b/src/book_detail.py index 49ee8a7..9c36d9b 100644 --- a/src/book_detail.py +++ b/src/book_detail.py @@ -10,14 +10,18 @@ import pathlib import src.utils as utils import src.book_files as book_files import src.str_format as str_format +from src.book_transfer import BookTransfer class BookDetail(Gtk.Window): - def __init__(self, parent_window, library, book_id, data): + def __init__(self, parent_window, library, ereader, book_id, data): Gtk.Window.__init__(self) utils.configure_dialog(self, parent_window, data['title'], height=800) + self._library = library + self._ereader = ereader + scrolled_window = Gtk.ScrolledWindow() self.set_child(scrolled_window) @@ -44,24 +48,32 @@ class BookDetail(Gtk.Window): box.append(utils.label(data['summary'])) for path in book_files.get(library, book_id): - box.append(book_line(book_id, data, path)) + box.append(self._book_line(book_id, data, path)) -def has_info(data, key): - return key in data and data[key] + def _book_line(self, book_id, data, path): + box = Gtk.Box(spacing=20) + box.append(utils.label(os.path.basename(path))) + + open_button = Gtk.Button(label='Ouvrir') + open_button.connect('clicked', lambda _: open_book(path)) + box.append(open_button) -def book_line(book_id, data, path): - box = Gtk.Box(spacing=20) - box.append(utils.label(os.path.basename(path))) + download_button = Gtk.Button(label='Télécharger') + download_button.connect('clicked', lambda _: download_book(book_id, data, path)) + box.append(download_button) - open_button = Gtk.Button(label='Ouvrir') - open_button.connect('clicked', lambda _: open_book(path)) - box.append(open_button) + if self._ereader and os.path.exists(self._ereader): + transfer_button = Gtk.Button(label='Transférer') + transfer_button.connect('clicked', lambda _: self._transfer_book(book_id, data, path)) + box.append(transfer_button) - download_button = Gtk.Button(label='Télécharger') - download_button.connect('clicked', lambda _: download_book(book_id, data, path)) - box.append(download_button) + return box - return box + def _transfer_book(self, book_id, data, path): + BookTransfer(self, self._ereader, book_id, data, path).present() + +def has_info(data, key): + return key in data and data[key] def open_book(path): subprocess.run(['xdg-open', path]) |
