diff --git a/app/ui/main_app_window.py b/app/ui/main_app_window.py index 8fee851b..ea054cdd 100644 --- a/app/ui/main_app_window.py +++ b/app/ui/main_app_window.py @@ -191,8 +191,7 @@ class MainAppWindow: self._filter_info_bar = builder.get_object("filter_info_bar") # Search self._search_info_bar = builder.get_object("search_info_bar") - self._search_provider = SearchProvider(self._services_view, self._fav_view, self._bouquets_view, - self._services, self._bouquets, + self._search_provider = SearchProvider((self._services_view, self._fav_view, self._bouquets_view), builder.get_object("search_down_button"), builder.get_object("search_up_button")) self._main_window.show() diff --git a/app/ui/satellites_dialog.glade b/app/ui/satellites_dialog.glade index fdc30ffb..b8fa7323 100644 --- a/app/ui/satellites_dialog.glade +++ b/app/ui/satellites_dialog.glade @@ -1618,12 +1618,67 @@ False True - + True - True - edit-find-symbolic - False - False + False + + + 200 + True + True + edit-find-symbolic + False + False + + + + False + True + 0 + + + + + True + False + True + True + + + + True + False + down + + + + + False + False + 1 + + + + + True + False + True + True + + + + True + False + up + + + + + False + False + 2 + + False @@ -1820,7 +1875,9 @@ True update_sat_list_model_sort - + + multiple + diff --git a/app/ui/satellites_dialog.py b/app/ui/satellites_dialog.py index 876fe259..5d94bafb 100644 --- a/app/ui/satellites_dialog.py +++ b/app/ui/satellites_dialog.py @@ -6,6 +6,7 @@ from math import fabs from app.commons import run_idle, run_task from app.eparser import get_satellites, write_satellites, Satellite, Transponder from app.tools.satellites import SatellitesParser +from .search import SearchProvider from .uicommons import Gtk, Gdk, UI_RESOURCES_PATH, TEXT_DOMAIN, MOVE_KEYS from .dialogs import show_dialog, DialogType, WaitDialog from .main_helper import move_items, scroll_to, append_text_to_tview, get_base_model @@ -447,6 +448,9 @@ class SatellitesUpdateDialog: "on_filter_toggled": self.on_filter_toggled, "on_find_toggled": self.on_find_toggled, "on_filter": self.on_filter, + "on_search": self.on_search, + "on_search_down": self.on_search_down, + "on_search_up": self.on_search_up, "on_quit": self.on_quit} builder = Gtk.Builder() @@ -467,7 +471,7 @@ class SatellitesUpdateDialog: self._receive_button = builder.get_object("receive_sat_list_tool_button") self._sat_update_info_bar = builder.get_object("sat_update_info_bar") self._info_bar_message_label = builder.get_object("info_bar_message_label") - self._search_info_bar = builder.get_object("sat_update_search_info_bar") + # Filter self._filter_info_bar = builder.get_object("sat_update_filter_info_bar") self._from_pos_button = builder.get_object("from_pos_button") self._to_pos_button = builder.get_object("to_pos_button") @@ -476,6 +480,12 @@ class SatellitesUpdateDialog: self._filter_model = builder.get_object("update_sat_list_model_filter") self._filter_model.set_visible_func(self.filter_function) self._filter_positions = (0, 0) + # Search + self._search_info_bar = builder.get_object("sat_update_search_info_bar") + self._search_provider = SearchProvider((self._sat_view,), + builder.get_object("sat_update_search_down_button"), + builder.get_object("sat_update_search_up_button")) + self._download_task = False self._parser = None @@ -594,7 +604,6 @@ class SatellitesUpdateDialog: def on_filter(self, item): self._filter_positions = self.get_positions() self._filter_model.refilter() - print("Satellites count: ", len(self._sat_view.get_model())) def filter_function(self, model, iter, data): if self._filter_model is None or self._filter_model == "None": @@ -614,6 +623,15 @@ class SatellitesUpdateDialog: to_pos = round(self._to_pos_button.get_value(), 1) * (-1 if self._filter_to_combo_box.get_active() else 1) return from_pos, to_pos + def on_search(self, entry): + self._search_provider.search(entry.get_text()) + + def on_search_down(self, item): + self._search_provider.on_search_down() + + def on_search_up(self, item): + self._search_provider.on_search_up() + def on_quit(self): self._download_task = False diff --git a/app/ui/search.py b/app/ui/search.py index 5d1d106d..31bd60cd 100644 --- a/app/ui/search.py +++ b/app/ui/search.py @@ -2,22 +2,18 @@ class SearchProvider: - def __init__(self, srv_view, fav_view, bqs_view, services, bouquets, down_button, up_button): + def __init__(self, views, down_button, up_button): self._paths = [] self._current_index = -1 self._max_indexes = 0 - self._srv_view = srv_view - self._fav_view = fav_view - self._bqs_view = bqs_view - self._services = services - self._bouquets = bouquets + self._views = views self._up_button = up_button self._down_button = down_button - def search(self, text, ): + def search(self, text): self._current_index = -1 self._paths.clear() - for view in self._srv_view, self._fav_view: + for view in self._views: model = view.get_model() selection = view.get_selection() selection.unselect_all()