import gi gi.require_version("Gtk", "4.0") from gi.repository import Gtk import src.utils as utils import src.models as models class Filters(Gtk.Box): def __init__(self, init_progress, on_progress_updated): Gtk.Box.__init__(self) self._progress = init_progress self._on_progress_updated = on_progress_updated self._dropdown = Gtk.DropDown.new_from_strings(models.all_progress) self._dropdown.set_selected(models.all_progress.index(init_progress)) self._dropdown.connect('notify::selected-item', self._on_selected_item) self.append(self._dropdown) def get_progress(self): return self._progress def update_progress(self, progress): self._progress = progress self._dropdown.set_selected(models.all_progress.index(progress)) def _on_selected_item(self, _dropdown, _data): self._progress = self._dropdown.get_selected_item().get_string() self._on_progress_updated(self._progress)