added move

This commit is contained in:
Dmitriy Yefremov
2017-10-18 12:57:14 +03:00
parent 2f6fc89b0e
commit a15b7261a5
2 changed files with 55 additions and 20 deletions

View File

@@ -47,10 +47,12 @@ def get_handlers():
"on_copy": on_copy,
"on_paste": on_paste,
"on_delete": on_delete,
"on_to_fav_move": on_to_fav_move,
"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_view_popup_menu": on_view_popup_menu,
"on_fav_list_changed": on_fav_list_changed
}
@@ -85,35 +87,33 @@ def on_delete(item):
model.remove(itr)
def on_services_tree_view_drag_data_get(view, drag_context, data, info, time):
""" DnD """
data.set_text(get_dnd_selection(view), -1)
def on_to_fav_move(view):
""" Move items from main to fav list """
selection = get_selection(view)
if selection:
receive_selection(view=__fav_view, drop_info=None, data=selection)
def on_fav_tree_view_drag_data_get(view, drag_context, data, info, time):
""" DnD """
data.set_text(get_dnd_selection(view), -1)
def get_dnd_selection(view):
def get_selection(view):
""" Creates a string from the iterators of the selected rows """
selection = view.get_selection()
model, paths = selection.get_selected_rows()
itrs = [model.get_iter(path) for path in paths]
return "{}:{}".format(",".join([model.get_string_from_iter(itr) for itr in itrs]), model.get_name())
if len(paths) > 0:
itrs = [model.get_iter(path) for path in paths]
return "{}:{}".format(",".join([model.get_string_from_iter(itr) for itr in itrs]), model.get_name())
def on_fav_tree_view_drag_data_received(view, drag_context, x, y, data, info, time):
""" DnD """
def receive_selection(*, view, drop_info, data):
""" Update fav view after data received """
model = view.get_model()
dest_index = 0
drop_info = view.get_dest_row_at_pos(x, y)
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.get_text().partition(":")
itr_str, sep, source = data.partition(":")
itrs = itr_str.split(",")
try:
if source == "services_list_store":
@@ -136,6 +136,26 @@ def on_fav_tree_view_drag_data_received(view, drag_context, x, y, data, info, ti
__status_bar.push(1, getattr(e, "message", repr(e)))
def on_services_tree_view_drag_data_get(view, drag_context, data, info, time):
""" DnD """
data.set_text(get_selection(view), -1)
def on_fav_tree_view_drag_data_get(view, drag_context, data, info, time):
""" DnD """
data.set_text(get_selection(view), -1)
def on_fav_tree_view_drag_data_received(view, drag_context, x, y, data, info, time):
""" DnD """
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:
@@ -210,7 +230,6 @@ def on_tree_view_key_release(widget, event):
if key == Gdk.KEY_Tab:
print("Tab")
if key == Gdk.KEY_Delete:
print("Delete")
on_delete(widget)
if key == Gdk.KEY_Up:
print("Up")

View File

@@ -42,6 +42,7 @@
<!-- column-name pos -->
<column type="gchararray"/>
</columns>
<signal name="rows-reordered" handler="on_fav_list_changed" swapped="no"/>
</object>
<object class="GtkMenu" id="fav_popup_menu">
<property name="visible">True</property>
@@ -146,7 +147,7 @@
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkMenuBar" id="menubar1">
<object class="GtkMenuBar" id="menubar">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
@@ -341,7 +342,7 @@
</packing>
</child>
<child>
<object class="GtkToolbar" id="toolbar1">
<object class="GtkToolbar" id="toolbar">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
@@ -431,6 +432,20 @@
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToolButton" id="to_fav_tool_button">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Move</property>
<property name="use_underline">True</property>
<property name="stock_id">gtk-go-forward</property>
<signal name="clicked" handler="on_to_fav_move" object="services_tree_view" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToolButton" id="up_tool_button">
<property name="visible">True</property>
@@ -1047,12 +1062,13 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkImageMenuItem" id="imagemenuitem1">
<object class="GtkImageMenuItem" id="to_fav_move_popup_menu_item">
<property name="label">gtk-go-forward</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="on_to_fav_move" object="services_tree_view" swapped="no"/>
</object>
</child>
<child>