diff --git a/main/editor_ui.glade b/main/editor_ui.glade index 4188e30b..5cd27bc6 100644 --- a/main/editor_ui.glade +++ b/main/editor_ui.glade @@ -220,12 +220,13 @@ - + gtk-delete True False True True + @@ -400,6 +401,7 @@ Up True gtk-go-up + False @@ -413,6 +415,7 @@ Down True gtk-go-down + False @@ -420,12 +423,13 @@ - + True False Cut True gtk-cut + False @@ -439,6 +443,7 @@ Copy True gtk-copy + False @@ -465,6 +470,7 @@ Remove True gtk-remove + False @@ -571,9 +577,11 @@ True services_list_store both + True + - + multiple @@ -582,6 +590,8 @@ True autosize Service + True + 0 @@ -595,6 +605,8 @@ True autosize Package + True + 1 @@ -607,6 +619,8 @@ True Type + True + 2 @@ -620,6 +634,8 @@ True autosize Ssid + True + 3 @@ -633,6 +649,8 @@ True autosize Freq + True + 4 @@ -646,6 +664,8 @@ True autosize Rate + True + 5 @@ -659,6 +679,8 @@ True autosize Pol + True + 6 @@ -672,6 +694,8 @@ True autosize FEC + True + 7 @@ -685,6 +709,8 @@ True autosize System + True + 8 @@ -697,6 +723,8 @@ True Pos + True + 9 @@ -708,6 +736,7 @@ False + autosize data_id @@ -720,6 +749,7 @@ False + autosize fav_id @@ -753,9 +783,11 @@ True fav_list_store both + True + - + multiple @@ -829,7 +861,7 @@ True - + diff --git a/main/ui.py b/main/ui.py index dccba632..0ebe57ee 100644 --- a/main/ui.py +++ b/main/ui.py @@ -16,6 +16,9 @@ __options = get_config() __services_model = None __bouquets_model = None __fav_model = None +__services_view = None +__fav_view = None +__bouquets_view = None __DATA_FILES_LIST = ("tv", "radio", "lamedb") __channels = {} @@ -40,10 +43,50 @@ def get_handlers(): "on_tree_view_key_release": on_tree_view_key_release, "on_bouquets_selection": on_bouquets_selection, "on_satellite_editor_show": on_satellite_editor_show, - "on_satellites_list_load": on_satellites_list_load + "on_satellites_list_load": on_satellites_list_load, + "on_services_selection": on_services_selection, + "on_fav_selection": on_fav_selection, + "on_up": on_up, + "on_down": on_down, + "on_cut": on_cut, + "on_copy": on_copy, + "on_paste": on_paste, + "on_delete": on_delete } +def on_up(item): + pass + + +def on_down(item): + pass + + +def on_cut(item): + pass + + +def on_copy(item): + pass + + +def on_paste(item): + pass + + +def on_delete(item): + """ Delete selected items from views """ + for view in [__services_view, __fav_view, __bouquets_view]: + selection = view.get_selection() + store, paths = selection.get_selected_rows() + itrs = [] + for path in paths: + itrs.append(store.get_iter(path)) + for itr in itrs: + store.remove(itr) + + def on_satellite_editor_show(model): """ Shows satellites editor dialog """ builder = Gtk.Builder() @@ -91,8 +134,17 @@ def on_data_open(model): task.start() +def on_services_selection(model, path, column): + delete_selection(__fav_view, __bouquets_view) + + +def on_fav_selection(model, path, column): + delete_selection(__services_view, __bouquets_view) + + def on_bouquets_selection(model, path, column): if len(path) > 1: + delete_selection(__services_view) tree_iter = model.get_iter(path) name = model.get_value(tree_iter, 0) # 'tv' Temporary! It is necessary to implement a row type attribute. @@ -103,6 +155,12 @@ def on_bouquets_selection(model, path, column): __fav_model.append((num + 1, channel[0], channel[2], channel[9])) +def delete_selection(view, *args): + """ Used for clear selection on given view(s) """ + for v in [view, *args]: + v.get_selection().unselect_all() + + def on_path_open(*args): builder = Gtk.Builder() builder.add_from_file("editor_ui.glade") @@ -154,13 +212,12 @@ def on_tree_view_key_release(widget, event): print("Tab") if key == Gdk.KEY_Delete: print("Delete") + on_delete(widget) if key == Gdk.KEY_Up: print("Up") if key == Gdk.KEY_Down: print("Down") - print(widget.get_name()) - def on_upload(item): connect(__options, False) @@ -220,6 +277,16 @@ def init_ui(): builder = Gtk.Builder() builder.add_from_file("editor_ui.glade") main_window = builder.get_object("main_window") + global __services_view + __services_view = builder.get_object("services_tree_view") + global __fav_view + __fav_view = builder.get_object("fav_tree_view") + global __bouquets_view + __bouquets_view = builder.get_object("bouquets_tree_view") + # global __services_model + # __services_model = builder.get_object("services_list_store") + # global __bouquets_model + # __bouquets_model = builder.get_object("bouquets_tree_store") global __fav_model __fav_model = builder.get_object("fav_list_store") global __status_bar