skeleton of popup menus for views

This commit is contained in:
DYefremov
2017-10-18 00:54:09 +03:00
parent 08fd98257d
commit 2f6fc89b0e
2 changed files with 102 additions and 10 deletions

View File

@@ -49,7 +49,8 @@ def get_handlers():
"on_delete": on_delete,
"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_fav_tree_view_drag_data_received": on_fav_tree_view_drag_data_received,
"on_view_popup_menu": on_view_popup_menu
}
@@ -76,19 +77,17 @@ def on_paste(item):
def on_delete(item):
""" Delete selected items from views """
for view in [__services_view, __fav_view, __bouquets_view]:
selection = view.get_selection()
model, paths = selection.get_selected_rows()
itrs = [model.get_iter(path) for path in paths]
for itr in itrs:
model.remove(itr)
if view.is_focus():
selection = view.get_selection()
model, paths = selection.get_selected_rows()
itrs = [model.get_iter(path) for path in paths]
for itr in itrs:
model.remove(itr)
def on_services_tree_view_drag_data_get(view, drag_context, data, info, time):
""" DnD """
# rows = [model.get(itr, *[x for x in range(view.get_n_columns())]) for itr in itrs]
text = get_dnd_selection(view)
# print(text)
data.set_text(text, -1)
data.set_text(get_dnd_selection(view), -1)
def on_fav_tree_view_drag_data_get(view, drag_context, data, info, time):
@@ -137,6 +136,12 @@ 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_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:
menu.popup(None, None, None, None, event.button, event.time)
def on_satellite_editor_show(model):
""" Shows satellites editor dialog """
show_satellites_dialog(__main_window, __options["data_dir_path"])

View File

@@ -2,6 +2,29 @@
<!-- Generated with glade 3.18.3 -->
<interface>
<requires lib="gtk+" version="3.12"/>
<object class="GtkMenu" id="bouquets_popup_menu">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkImageMenuItem" id="menuitem6">
<property name="label">gtk-add</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="menuitem7">
<property name="label">gtk-remove</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_delete" swapped="no"/>
</object>
</child>
</object>
<object class="GtkTreeStore" id="bouquets_tree_store">
<columns>
<!-- column-name bouquet -->
@@ -20,6 +43,44 @@
<column type="gchararray"/>
</columns>
</object>
<object class="GtkMenu" id="fav_popup_menu">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkImageMenuItem" id="fav_cut_popoup_menuitem">
<property name="label">gtk-cut</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="imagemenuitem4">
<property name="label">gtk-paste</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem" id="separatormenuitem3">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="imagemenuitem9">
<property name="label">gtk-remove</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_delete" swapped="no"/>
</object>
</child>
</object>
<object class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -554,6 +615,7 @@
<property name="model">services_list_store</property>
<property name="enable_grid_lines">both</property>
<property name="activate_on_single_click">True</property>
<signal name="button-press-event" handler="on_view_popup_menu" object="services_popup_menu" swapped="no"/>
<signal name="drag-data-get" handler="on_services_tree_view_drag_data_get" swapped="no"/>
<signal name="key-release-event" handler="on_tree_view_key_release" object="services_list_store" swapped="no"/>
<signal name="row-activated" handler="on_services_selection" object="services_list_store" swapped="no"/>
@@ -770,6 +832,7 @@
<property name="model">fav_list_store</property>
<property name="enable_grid_lines">both</property>
<property name="activate_on_single_click">True</property>
<signal name="button-press-event" handler="on_view_popup_menu" object="fav_popup_menu" swapped="no"/>
<signal name="drag-data-get" handler="on_fav_tree_view_drag_data_get" swapped="no"/>
<signal name="drag-data-received" handler="on_fav_tree_view_drag_data_received" swapped="no"/>
<signal name="key-release-event" handler="on_tree_view_key_release" object="fav_list_store" swapped="no"/>
@@ -847,6 +910,7 @@
<property name="model">bouquets_tree_store</property>
<property name="headers_clickable">False</property>
<property name="activate_on_single_click">True</property>
<signal name="button-press-event" handler="on_view_popup_menu" object="bouquets_popup_menu" swapped="no"/>
<signal name="row-activated" handler="on_bouquets_selection" object="bouquets_tree_store" swapped="no"/>
<child internal-child="selection">
<object class="GtkTreeSelection" id="bouquets_selection"/>
@@ -979,4 +1043,27 @@
</object>
</child>
</object>
<object class="GtkMenu" id="services_popup_menu">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkImageMenuItem" id="imagemenuitem1">
<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>
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="imagemenuitem2">
<property name="label">gtk-remove</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_delete" swapped="no"/>
</object>
</child>
</object>
</interface>