diff --git a/main/ui/main_app_window.py b/main/ui/main_app_window.py index b3375ba7..27bfc25e 100644 --- a/main/ui/main_app_window.py +++ b/main/ui/main_app_window.py @@ -8,6 +8,9 @@ from . import Gtk, Gdk from .satellites_dialog import show_satellites_dialog from .settings_dialog import show_settings_dialog +SERVICE_LIST_NAME = "services_list_store" +FAV_LIST_NAME = "fav_list_store" + __main_window = None __status_bar = None __options = get_config() @@ -52,8 +55,7 @@ def get_handlers(): "on_services_tree_view_drag_data_get": on_services_tree_view_drag_data_get, "on_fav_tree_view_drag_data_get": on_fav_tree_view_drag_data_get, "on_fav_tree_view_drag_data_received": on_fav_tree_view_drag_data_received, - "on_view_popup_menu": on_view_popup_menu, - "on_fav_list_changed": on_fav_list_changed + "on_view_popup_menu": on_view_popup_menu } @@ -121,14 +123,13 @@ def receive_selection(*, view, drop_info, data): dest_index = 0 if drop_info: path, position = drop_info - print(path, position) dest_iter = model.get_iter(path) if dest_iter: dest_index = model.get_value(dest_iter, 0) itr_str, sep, source = data.partition(":") itrs = itr_str.split(",") try: - if source == "services_list_store": + if source == SERVICE_LIST_NAME: ext_model = __services_view.get_model() ext_itrs = [ext_model.get_iter_from_string(itr) for itr in itrs] ext_rows = [ext_model.get(ext_itr, *[x for x in range(__services_view.get_n_columns())]) for ext_itr in @@ -137,13 +138,15 @@ def receive_selection(*, view, drop_info, data): fav_id = ext_row[11] channel = __channels[fav_id] model.insert(dest_index, (0, channel.service, channel.service_type, channel.pos)) - elif source == "fav_list_store": + elif source == FAV_LIST_NAME: in_itrs = [model.get_iter_from_string(itr) for itr in itrs] in_rows = [model.get(in_itr, *[x for x in range(view.get_n_columns())]) for in_itr in in_itrs] for row in in_rows: model.insert(dest_index, row) for in_itr in in_itrs: model.remove(in_itr) + # Iterate through model and updates values for Num column + model.foreach(lambda store, pth, itr: store.set_value(itr, 0, int(pth[0]) + 1)) # iter , column, value except ValueError as e: __status_bar.push(1, getattr(e, "message", repr(e))) @@ -163,11 +166,6 @@ def on_fav_tree_view_drag_data_received(view, drag_context, x, y, data, info, ti receive_selection(view=view, drop_info=view.get_dest_row_at_pos(x, y), data=data.get_text()) -def on_fav_list_changed(*args): - """ """ - print("Changed") - - def on_view_popup_menu(menu, event): """ Shows popup menu for any view """ if event.get_event_type() == Gdk.EventType.BUTTON_PRESS and event.button == Gdk.BUTTON_SECONDARY: @@ -237,16 +235,19 @@ def on_preferences(item): show_settings_dialog(__main_window, __options) -def on_tree_view_key_release(widget, event): +def on_tree_view_key_release(view, event): + """ Handling keystrokes """ key = event.keyval - if key == Gdk.KEY_Tab: - print("Tab") + # print(event.state) if key == Gdk.KEY_Delete: - on_delete(widget) + on_delete(view) if key == Gdk.KEY_Up: print("Up") if key == Gdk.KEY_Down: print("Down") + if key == Gdk.KEY_Insert and view.get_model().get_name() == SERVICE_LIST_NAME: + # Move items from main to fav list + on_to_fav_move(view) def on_upload(item): diff --git a/main/ui/main_window.glade b/main/ui/main_window.glade index dc011374..d1e75a5a 100644 --- a/main/ui/main_window.glade +++ b/main/ui/main_window.glade @@ -42,7 +42,6 @@ - True @@ -629,11 +628,13 @@ True True services_list_store + 0 + True both True - + @@ -846,12 +847,13 @@ True True fav_list_store + 1 both True - + @@ -925,6 +927,7 @@ True bouquets_tree_store False + False True