mirror of
https://github.com/DYefremov/DemonEditor.git
synced 2026-02-02 12:50:20 +01:00
skeleton for picon remove
This commit is contained in:
@@ -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():
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user