aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/book_flow.py7
-rw-r--r--src/filters.py13
-rw-r--r--src/main_window.py14
3 files changed, 14 insertions, 20 deletions
diff --git a/src/book_flow.py b/src/book_flow.py
index dc9cad6..25dfa73 100644
--- a/src/book_flow.py
+++ b/src/book_flow.py
@@ -21,7 +21,7 @@ import src.str_format as str_format
class BookFlow(Gtk.ScrolledWindow):
- def __init__(self, window, resources, library, ereader, conn, books, progress, genre, search, msg):
+ def __init__(self, window, resources, library, ereader, conn, books, filters, msg):
Gtk.ScrolledWindow.__init__(self)
self.set_vexpand(True)
@@ -38,7 +38,7 @@ class BookFlow(Gtk.ScrolledWindow):
self._picture_cache = PictureCache()
self._flowbox_children = {}
- self.update_filters(progress, genre, search)
+ self.update_filters(filters)
self._flowbox.set_sort_func(self._sort_books)
for book_id, data in books.items():
self.add(book_id, data)
@@ -50,7 +50,8 @@ class BookFlow(Gtk.ScrolledWindow):
if book_id in self._flowbox_children:
self._flowbox.select_child(self._flowbox_children[book_id])
- def update_filters(self, progress, genre, search):
+ def update_filters(self, filters):
+ [progress, genre, search] = filters
def f(flow_box_child):
book_id = flow_box_child.get_name()
data = self._books[book_id]
diff --git a/src/filters.py b/src/filters.py
index 07c0e0e..bac725c 100644
--- a/src/filters.py
+++ b/src/filters.py
@@ -6,13 +6,11 @@ import src.models as models
class Filters(Gtk.Box):
- def __init__(self, init_books, init_progress, init_genre, init_search, msg):
+ def __init__(self, init_books, init_filters, msg):
Gtk.Box.__init__(self, spacing=10)
genres = models.get_genres(init_books)
- self._progress = init_progress
- self._genre = init_genre
- self._search = init_search
+ [self._progress, self._genre, self._search] = init_filters
self._msg = msg
self._progress_dropdown = Gtk.DropDown.new_from_strings(models.all_progress)
@@ -27,8 +25,8 @@ class Filters(Gtk.Box):
self._search.connect('changed', self._on_update_search)
self.append(self._search)
- def get_progress(self):
- return self._progress
+ def get(self):
+ return [self._progress, self._genre, self._search.get_text()]
def get_genre(self):
return self._genre
@@ -36,9 +34,6 @@ class Filters(Gtk.Box):
def set_genre(self, genre):
self._genre = genre
- def get_search(self):
- return self._search.get_text()
-
def select_progress(self, progress):
self._progress = progress
self._progress_dropdown.set_selected(models.all_progress.index(progress))
diff --git a/src/main_window.py b/src/main_window.py
index bc9fde2..d050932 100644
--- a/src/main_window.py
+++ b/src/main_window.py
@@ -19,34 +19,32 @@ class MainWindow(Gtk.ApplicationWindow):
utils.set_header_bar(self, 'Books')
init_books = db.get_books(conn)
- init_progress = 'Reading'
- init_genre = models.all_genres
- init_search = ''
+ init_filters = [ 'Reading', models.all_genres, '' ]
add_book_button = Gtk.Button(label='Ajouter un livre')
add_book_button.connect('clicked', lambda _: BookForm(self, resources, library, conn, self._msg).present())
header = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL)
utils.set_margin(header, 20)
- self._filters = Filters(init_books, init_progress, init_genre, init_search, self._msg)
+ self._filters = Filters(init_books, init_filters, self._msg)
self._filters.set_hexpand(True)
header.append(self._filters)
header.append(add_book_button)
box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=0)
box.append(header)
- self._books = BookFlow(self, resources, library, ereader, conn, init_books, init_progress, init_genre, init_search, self._msg)
+ self._books = BookFlow(self, resources, library, ereader, conn, init_books, init_filters, self._msg)
box.append(self._books)
self.set_child(box)
def _msg(self, msg):
match msg:
case ['progress-selected', progress]:
- self._books.update_filters(self._filters.get_progress(), self._filters.get_genre(), self._filters.get_search())
+ self._books.update_filters(self._filters.get())
case ['genre-selected', genre]:
- self._books.update_filters(self._filters.get_progress(), self._filters.get_genre(), self._filters.get_search())
+ self._books.update_filters(self._filters.get())
case ['search-updated', search]:
- self._books.update_filters(self._filters.get_progress(), self._filters.get_genre(), self._filters.get_search())
+ self._books.update_filters(self._filters.get())
case ['book-saved', book_id, data]:
self._filters.select_progress(data['progress'])
if not self._filters.get_genre() in data['genres']: