diff --git a/app/ui/satellites_dialog.glade b/app/ui/satellites_dialog.glade index fd773940..e90e90e8 100644 --- a/app/ui/satellites_dialog.glade +++ b/app/ui/satellites_dialog.glade @@ -1,4 +1,5 @@ + @@ -1386,6 +1416,7 @@ Author: Dmitriy Yefremov True False + 2 True @@ -1440,16 +1471,17 @@ Author: Dmitriy Yefremov True False - + True True True Filter - + True False + Filter gtk-select-all @@ -1461,16 +1493,17 @@ Author: Dmitriy Yefremov - + True True True Find - + True False + Search gtk-find @@ -1737,6 +1770,8 @@ Author: Dmitriy Yefremov True True update_sat_list_model_sort + + multiple diff --git a/app/ui/satellites_dialog.py b/app/ui/satellites_dialog.py index 9f6cf0f8..a7abed08 100644 --- a/app/ui/satellites_dialog.py +++ b/app/ui/satellites_dialog.py @@ -440,6 +440,9 @@ class SatellitesUpdateDialog: "on_info_bar_close": self.on_info_bar_close, "on_filter_toggled": self.on_filter_toggled, "on_find_toggled": self.on_find_toggled, + "on_popup_menu": self.on_popup_menu, + "on_select_all": self.on_select_all, + "on_unselect_all": self.on_unselect_all, "on_filter": self.on_filter, "on_search": self.on_search, "on_search_down": self.on_search_down, @@ -451,7 +454,8 @@ class SatellitesUpdateDialog: builder.add_objects_from_file(UI_RESOURCES_PATH + "satellites_dialog.glade", ("satellites_update_dialog", "update_source_store", "update_sat_list_store", "update_sat_list_model_filter", "update_sat_list_model_sort", "side_store", - "pos_adjustment", "pos_adjustment2")) + "pos_adjustment", "pos_adjustment2", "satellites_update_popup_menu", + "remove_selection_image")) builder.connect_signals(handlers) self._dialog = builder.get_object("satellites_update_dialog") @@ -647,6 +651,22 @@ class SatellitesUpdateDialog: def on_search_up(self, item): self._search_provider.on_search_up() + def on_select_all(self, view): + self.update_selection(view, True) + + def on_unselect_all(self, view): + self.update_selection(view, False) + + def update_selection(self, view, select): + model = get_base_model(view.get_model()) + view.get_model().foreach(lambda mod, path, itr: model.set_value(model.get_iter(path), 4, select)) + self.update_receive_button_state(self._filter_model) + + def on_popup_menu(self, menu, event): + """ Shows popup menu for the view """ + if event.get_event_type() == Gdk.EventType.BUTTON_PRESS and event.button == Gdk.BUTTON_SECONDARY: + menu.popup(None, None, None, None, event.button, event.time) + def on_quit(self): self._download_task = False