aboutsummaryrefslogtreecommitdiff
path: root/src/book_detail.py
diff options
context:
space:
mode:
authorJoris Guyonvarch2026-01-16 19:02:53 +0100
committerJoris Guyonvarch2026-01-16 19:02:53 +0100
commitf2656765a27a38b1a9e5602c3430dde1cbc361f1 (patch)
treea103135f5155e5132bf5366a3fdee5c93575a9d4 /src/book_detail.py
parentef6087b36a4726663a1c475952dc0898ab7d0abd (diff)
Transfer book by book instead of all books
Diffstat (limited to 'src/book_detail.py')
-rw-r--r--src/book_detail.py40
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])