From dbe18b345f4e96fe9e83127b95b35b04620c0f29 Mon Sep 17 00:00:00 2001 From: Dmitriy Yefremov Date: Thu, 1 Feb 2018 13:10:06 +0300 Subject: [PATCH] skeleton for picon remove --- app/ui/main_app_window.py | 13 +++++++++---- app/ui/main_helper.py | 30 ++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/app/ui/main_app_window.py b/app/ui/main_app_window.py index 9ba85660..897860c5 100644 --- a/app/ui/main_app_window.py +++ b/app/ui/main_app_window.py @@ -12,7 +12,7 @@ from . import Gtk, Gdk, UI_RESOURCES_PATH, LOCKED_ICON, HIDE_ICON from .dialogs import show_dialog, DialogType, get_chooser_dialog from .download_dialog import show_download_dialog from .main_helper import edit_marker, insert_marker, move_items, edit, ViewTarget, set_flags, locate_in_services, \ - scroll_to, get_base_model, update_picons, copy_picon_reference, assign_picon + scroll_to, get_base_model, update_picons, copy_picon_reference, assign_picon, remove_picon from .picons_dialog import PiconsDialog from .satellites_dialog import show_satellites_dialog from .settings_dialog import show_settings_dialog @@ -861,13 +861,18 @@ class MainAppWindow: assign_picon(view, self.__main_window, self.__options.get(self.__profile)) def on_remove_picon(self, view): - pass + remove_picon(self.get_target_view(view), + self.__services_view, + self.__fav_view, self.__picons, + self.__options.get(self.__profile)) @run_idle def on_reference_picon(self, view): """ Copying picon id to clipboard """ - target = ViewTarget.SERVICES if Gtk.Buildable.get_name(view) == "services_tree_view" else ViewTarget.FAV - copy_picon_reference(target, view, self.__services, self.__clipboard, self.__main_window) + copy_picon_reference(self.get_target_view(view), view, self.__services, self.__clipboard, self.__main_window) + + def get_target_view(self, view): + return ViewTarget.SERVICES if Gtk.Buildable.get_name(view) == "services_tree_view" else ViewTarget.FAV def start_app(): diff --git a/app/ui/main_helper.py b/app/ui/main_helper.py index da9b26c2..e3e2df02 100644 --- a/app/ui/main_helper.py +++ b/app/ui/main_helper.py @@ -307,6 +307,36 @@ def assign_picon(view, transient, options): print(response) +def remove_picon(target, srv_view, fav_view, picons, options): + view = srv_view if target is ViewTarget.SERVICES else fav_view + model, paths = view.get_selection().get_selected_rows() + model = get_base_model(model) + + fav_ids = [] + picon_ids = [] + picon_pos = 8 # picon position is equal for services and fav + for path in paths: + itr = model.get_iter(path) + model.set_value(itr, picon_pos, None) + if target is ViewTarget.SERVICES: + fav_ids.append(model.get_value(itr, 18)) + picon_ids.append(model.get_value(itr, 9)) + else: + fav_ids.append(model.get_value(itr, 7)) + + def remove(md, path, itr): + if md.get_value(itr, 7 if target is ViewTarget.SERVICES else 18) in fav_ids: + md.set_value(itr, picon_pos, None) + if target is ViewTarget.FAV: + picon_ids.append(md.get_value(itr, 9)) + + fav_view.get_model().foreach(remove) if target is ViewTarget.SERVICES else get_base_model( + srv_view.get_model()).foreach(remove) + + for p_id in picon_ids: + picons[p_id] = None + + def copy_picon_reference(target, view, services, clipboard, transient): """ Copying picon id to clipboard """ model, paths = view.get_selection().get_selected_rows()