diff options
| author | Joris Guyonvarch | 2025-12-31 12:21:19 +0100 |
|---|---|---|
| committer | Joris Guyonvarch | 2025-12-31 12:21:19 +0100 |
| commit | ef6087b36a4726663a1c475952dc0898ab7d0abd (patch) | |
| tree | 5e74d4d057dd0d68db24435001962c464e4e7c10 | |
| parent | e80eedef3e0d01668cab3ce0b4c3ebc247fb1e5b (diff) | |
Regroup filters
| -rw-r--r-- | src/book_flow.py | 7 | ||||
| -rw-r--r-- | src/filters.py | 13 | ||||
| -rw-r--r-- | src/main_window.py | 14 |
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']: |
