skeleton for picon remove

This commit is contained in:
Dmitriy Yefremov
2018-02-01 13:10:06 +03:00
parent 5d68ec8176
commit dbe18b345f
2 changed files with 39 additions and 4 deletions

View File

@@ -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():

View File

@@ -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()