aboutsummaryrefslogtreecommitdiff
path: root/src/filters.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/filters.py')
-rw-r--r--src/filters.py40
1 files changed, 28 insertions, 12 deletions
diff --git a/src/filters.py b/src/filters.py
index e81c3cf..ed3cb06 100644
--- a/src/filters.py
+++ b/src/filters.py
@@ -6,43 +6,59 @@ import src.models as models
class Filters(Gtk.Box):
- def __init__(self, init_books, progress, genres, genre, msg):
+ def __init__(self, init_books, init_progress, init_genre, msg):
Gtk.Box.__init__(self, spacing=10)
+ genres = models.get_genres(init_books)
+ self._progress = init_progress
+ self._genre = init_genre
self._msg = msg
self._progress_dropdown = Gtk.DropDown.new_from_strings(models.all_progress)
- self._progress_dropdown.set_selected(models.all_progress.index(progress))
+ self._progress_dropdown.set_selected(models.all_progress.index(self._progress))
self._progress_dropdown.connect('notify::selected-item', self._on_selected_progress)
self.append(self._progress_dropdown)
- self._genres_dropdown = self._get_genres_dropdown(genres, genre)
+ self._genres_dropdown = self._get_genres_dropdown(genres)
self.append(self._genres_dropdown)
+ def get_progress(self):
+ return self._progress
+
+ def get_genre(self):
+ return self._genre
+
+ def set_genre(self, genre):
+ self._genre = genre
+
def select_progress(self, progress):
+ self._progress = progress
self._progress_dropdown.set_selected(models.all_progress.index(progress))
# Hacky, this replaces the dropdown by a new one
- def actualize_genres(self, genres, genre):
+ def actualize_genres(self, books):
+ genres = models.get_genres(books)
+ self._genre = self._genre if self._genre in genres else models.all_genres
+
if self._last_installed_genres != genres:
- new_dropdown = self._get_genres_dropdown(genres, genre)
+ new_dropdown = self._get_genres_dropdown(genres)
self.insert_child_after(new_dropdown, self._genres_dropdown)
self.remove(self._genres_dropdown)
self._genres_dropdown = new_dropdown
else:
- self._genres_dropdown.set_selected(genres.index(genre))
+ self._genres_dropdown.set_selected(genres.index(self._genre))
- def _get_genres_dropdown(self, genres, genre):
+ def _get_genres_dropdown(self, genres):
self._last_installed_genres = genres
dropdown = Gtk.DropDown.new_from_strings(genres)
- dropdown.set_selected(genres.index(genre))
+ dropdown.set_selected(genres.index(self._genre))
dropdown.connect('notify::selected-item', self._on_selected_genre)
return dropdown
def _on_selected_progress(self, dropdown, _data):
- progress = dropdown.get_selected_item().get_string()
- self._msg(['progress-selected', progress])
+ self._progress = dropdown.get_selected_item().get_string()
+ self._msg(['progress-selected', self._progress])
def _on_selected_genre(self, dropdown, _data):
- genre = dropdown.get_selected_item().get_string()
- self._msg(['genre-selected', genre])
+ self._genre = dropdown.get_selected_item().get_string()
+ self._msg(['genre-selected', self._genre])