GTK3: pedigreeview, fix drag and drop partially, fix popup menus not showing
svn: r20114
This commit is contained in:
parent
bdaee91064
commit
371f34bb75
@ -114,9 +114,14 @@ class _PersonWidgetBase(Gtk.DrawingArea):
|
|||||||
self.connect("drag_begin", self.cb_drag_begin)
|
self.connect("drag_begin", self.cb_drag_begin)
|
||||||
# Enable drag
|
# Enable drag
|
||||||
self.drag_source_set(Gdk.ModifierType.BUTTON1_MASK,
|
self.drag_source_set(Gdk.ModifierType.BUTTON1_MASK,
|
||||||
[DdTargets.PERSON_LINK.target()] +
|
[],
|
||||||
list(DdTargets.all_text_targets()),
|
|
||||||
Gdk.DragAction.COPY)
|
Gdk.DragAction.COPY)
|
||||||
|
tglist = Gtk.TargetList.new([])
|
||||||
|
tglist.add(DdTargets.PERSON_LINK.atom_drag_type,
|
||||||
|
DdTargets.PERSON_LINK.target_flags,
|
||||||
|
DdTargets.PERSON_LINK.app_id)
|
||||||
|
tglist.add_text_targets(0L)
|
||||||
|
self.drag_source_set_target_list(tglist)
|
||||||
|
|
||||||
def cb_drag_begin(self, widget, data):
|
def cb_drag_begin(self, widget, data):
|
||||||
"""Set up some inital conditions for drag. Set up icon."""
|
"""Set up some inital conditions for drag. Set up icon."""
|
||||||
@ -127,6 +132,7 @@ class _PersonWidgetBase(Gtk.DrawingArea):
|
|||||||
Returned parameters after drag.
|
Returned parameters after drag.
|
||||||
Specified for 'person-link', for others return text info about person.
|
Specified for 'person-link', for others return text info about person.
|
||||||
"""
|
"""
|
||||||
|
#TODO GTK3 Still to convert when pedigreeview works again
|
||||||
if sel_data.target == DdTargets.PERSON_LINK.drag_type:
|
if sel_data.target == DdTargets.PERSON_LINK.drag_type:
|
||||||
data = (DdTargets.PERSON_LINK.drag_type,
|
data = (DdTargets.PERSON_LINK.drag_type,
|
||||||
id(self), self.person.get_handle(), 0)
|
id(self), self.person.get_handle(), 0)
|
||||||
@ -1519,10 +1525,10 @@ class PedigreeView(NavigationView):
|
|||||||
|
|
||||||
def cb_on_show_option_menu(self, obj, event, data=None):
|
def cb_on_show_option_menu(self, obj, event, data=None):
|
||||||
"""Right click option menu."""
|
"""Right click option menu."""
|
||||||
menu = Gtk.Menu()
|
self.menu = Gtk.Menu()
|
||||||
self.add_nav_portion_to_menu(menu)
|
self.add_nav_portion_to_menu(self.menu)
|
||||||
self.add_settings_to_menu(menu)
|
self.add_settings_to_menu(self.menu)
|
||||||
menu.popup(None, None, None, None, 0, event.time)
|
self.menu.popup(None, None, None, None, 0, event.time)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def cb_bg_button_press(self, widget, event):
|
def cb_bg_button_press(self, widget, event):
|
||||||
@ -1642,7 +1648,7 @@ class PedigreeView(NavigationView):
|
|||||||
if child:
|
if child:
|
||||||
self.change_active(childlist[0])
|
self.change_active(childlist[0])
|
||||||
elif len(childlist) > 1:
|
elif len(childlist) > 1:
|
||||||
my_menu = Gtk.Menu()
|
self.my_menu = Gtk.Menu()
|
||||||
for child_handle in childlist:
|
for child_handle in childlist:
|
||||||
child = self.dbstate.db.get_person_from_handle(child_handle)
|
child = self.dbstate.db.get_person_from_handle(child_handle)
|
||||||
cname = escape(name_displayer.display(child))
|
cname = escape(name_displayer.display(child))
|
||||||
@ -1659,11 +1665,11 @@ class PedigreeView(NavigationView):
|
|||||||
go_image.show()
|
go_image.show()
|
||||||
menuitem.set_image(go_image)
|
menuitem.set_image(go_image)
|
||||||
menuitem.add(label)
|
menuitem.add(label)
|
||||||
my_menu.append(menuitem)
|
self.my_menu.append(menuitem)
|
||||||
menuitem.connect("activate", self.cb_childmenu_changed,
|
menuitem.connect("activate", self.cb_childmenu_changed,
|
||||||
child_handle)
|
child_handle)
|
||||||
menuitem.show()
|
menuitem.show()
|
||||||
my_menu.popup(None, None, None, None, 0, 0)
|
self.my_menu.popup(None, None, None, None, 0, 0)
|
||||||
return 1
|
return 1
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
@ -1801,24 +1807,24 @@ class PedigreeView(NavigationView):
|
|||||||
def cb_build_missing_parent_nav_menu(self, obj, event,
|
def cb_build_missing_parent_nav_menu(self, obj, event,
|
||||||
person_handle, family_handle):
|
person_handle, family_handle):
|
||||||
"""Builds the menu for a missing parent."""
|
"""Builds the menu for a missing parent."""
|
||||||
menu = Gtk.Menu()
|
self.menu = Gtk.Menu()
|
||||||
menu.set_title(_('People Menu'))
|
self.menu.set_title(_('People Menu'))
|
||||||
|
|
||||||
add_item = Gtk.ImageMenuItem.new_from_stock(Gtk.STOCK_ADD, None)
|
add_item = Gtk.ImageMenuItem.new_from_stock(Gtk.STOCK_ADD, None)
|
||||||
add_item.connect("activate", self.cb_add_parents, person_handle,
|
add_item.connect("activate", self.cb_add_parents, person_handle,
|
||||||
family_handle)
|
family_handle)
|
||||||
add_item.show()
|
add_item.show()
|
||||||
menu.append(add_item)
|
self.menu.append(add_item)
|
||||||
|
|
||||||
# Add a separator line
|
# Add a separator line
|
||||||
add_item = Gtk.SeparatorMenuItem()
|
add_item = Gtk.SeparatorMenuItem()
|
||||||
add_item.show()
|
add_item.show()
|
||||||
menu.append(add_item)
|
self.menu.append(add_item)
|
||||||
|
|
||||||
# Add history-based navigation
|
# Add history-based navigation
|
||||||
self.add_nav_portion_to_menu(menu)
|
self.add_nav_portion_to_menu(self.menu)
|
||||||
self.add_settings_to_menu(menu)
|
self.add_settings_to_menu(self.menu)
|
||||||
menu.popup(None, None, None, None, 0, event.time)
|
self.menu.popup(None, None, None, None, 0, event.time)
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
def cb_build_full_nav_menu(self, obj, event, person_handle, family_handle):
|
def cb_build_full_nav_menu(self, obj, event, person_handle, family_handle):
|
||||||
@ -1827,8 +1833,8 @@ class PedigreeView(NavigationView):
|
|||||||
and Parents) with navigation.
|
and Parents) with navigation.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
menu = Gtk.Menu()
|
self.menu = Gtk.Menu()
|
||||||
menu.set_title(_('People Menu'))
|
self.menu.set_title(_('People Menu'))
|
||||||
|
|
||||||
person = self.dbstate.db.get_person_from_handle(person_handle)
|
person = self.dbstate.db.get_person_from_handle(person_handle)
|
||||||
if not person:
|
if not person:
|
||||||
@ -1841,18 +1847,18 @@ class PedigreeView(NavigationView):
|
|||||||
go_item.set_image(go_image)
|
go_item.set_image(go_image)
|
||||||
go_item.connect("activate", self.cb_childmenu_changed, person_handle)
|
go_item.connect("activate", self.cb_childmenu_changed, person_handle)
|
||||||
go_item.show()
|
go_item.show()
|
||||||
menu.append(go_item)
|
self.menu.append(go_item)
|
||||||
|
|
||||||
edit_item = Gtk.ImageMenuItem.new_from_stock(Gtk.STOCK_EDIT, None)
|
edit_item = Gtk.ImageMenuItem.new_from_stock(Gtk.STOCK_EDIT, None)
|
||||||
edit_item.connect("activate", self.cb_edit_person, person_handle)
|
edit_item.connect("activate", self.cb_edit_person, person_handle)
|
||||||
edit_item.show()
|
edit_item.show()
|
||||||
menu.append(edit_item)
|
self.menu.append(edit_item)
|
||||||
|
|
||||||
clipboard_item = Gtk.ImageMenuItem.new_from_stock(Gtk.STOCK_COPY, None)
|
clipboard_item = Gtk.ImageMenuItem.new_from_stock(Gtk.STOCK_COPY, None)
|
||||||
clipboard_item.connect("activate", self.cb_copy_person_to_clipboard,
|
clipboard_item.connect("activate", self.cb_copy_person_to_clipboard,
|
||||||
person_handle)
|
person_handle)
|
||||||
clipboard_item.show()
|
clipboard_item.show()
|
||||||
menu.append(clipboard_item)
|
self.menu.append(clipboard_item)
|
||||||
|
|
||||||
# collect all spouses, parents and children
|
# collect all spouses, parents and children
|
||||||
linked_persons = []
|
linked_persons = []
|
||||||
@ -1890,7 +1896,7 @@ class PedigreeView(NavigationView):
|
|||||||
item.set_sensitive(0)
|
item.set_sensitive(0)
|
||||||
|
|
||||||
item.show()
|
item.show()
|
||||||
menu.append(item)
|
self.menu.append(item)
|
||||||
|
|
||||||
# Go over siblings and build their menu
|
# Go over siblings and build their menu
|
||||||
item = Gtk.MenuItem(label=_("Siblings"))
|
item = Gtk.MenuItem(label=_("Siblings"))
|
||||||
@ -1935,7 +1941,7 @@ class PedigreeView(NavigationView):
|
|||||||
if no_siblings:
|
if no_siblings:
|
||||||
item.set_sensitive(0)
|
item.set_sensitive(0)
|
||||||
item.show()
|
item.show()
|
||||||
menu.append(item)
|
self.menu.append(item)
|
||||||
|
|
||||||
# Go over children and build their menu
|
# Go over children and build their menu
|
||||||
item = Gtk.MenuItem(label=_("Children"))
|
item = Gtk.MenuItem(label=_("Children"))
|
||||||
@ -1975,7 +1981,7 @@ class PedigreeView(NavigationView):
|
|||||||
if no_children:
|
if no_children:
|
||||||
item.set_sensitive(0)
|
item.set_sensitive(0)
|
||||||
item.show()
|
item.show()
|
||||||
menu.append(item)
|
self.menu.append(item)
|
||||||
|
|
||||||
# Go over parents and build their menu
|
# Go over parents and build their menu
|
||||||
item = Gtk.MenuItem(label=_("Parents"))
|
item = Gtk.MenuItem(label=_("Parents"))
|
||||||
@ -2023,7 +2029,7 @@ class PedigreeView(NavigationView):
|
|||||||
else:
|
else:
|
||||||
item.set_sensitive(0)
|
item.set_sensitive(0)
|
||||||
item.show()
|
item.show()
|
||||||
menu.append(item)
|
self.menu.append(item)
|
||||||
|
|
||||||
# Go over parents and build their menu
|
# Go over parents and build their menu
|
||||||
item = Gtk.MenuItem(label=_("Related"))
|
item = Gtk.MenuItem(label=_("Related"))
|
||||||
@ -2059,23 +2065,23 @@ class PedigreeView(NavigationView):
|
|||||||
if no_related:
|
if no_related:
|
||||||
item.set_sensitive(0)
|
item.set_sensitive(0)
|
||||||
item.show()
|
item.show()
|
||||||
menu.append(item)
|
self.menu.append(item)
|
||||||
|
|
||||||
# Add separator line
|
# Add separator line
|
||||||
item = Gtk.SeparatorMenuItem()
|
item = Gtk.SeparatorMenuItem()
|
||||||
item.show()
|
item.show()
|
||||||
menu.append(item)
|
self.menu.append(item)
|
||||||
|
|
||||||
# Add history-based navigation
|
# Add history-based navigation
|
||||||
self.add_nav_portion_to_menu(menu)
|
self.add_nav_portion_to_menu(self.menu)
|
||||||
self.add_settings_to_menu(menu)
|
self.add_settings_to_menu(self.menu)
|
||||||
menu.popup(None, None, None, None, 0, event.time)
|
self.menu.popup(None, None, None, None, 0, event.time)
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
def cb_build_relation_nav_menu(self, obj, event, family_handle):
|
def cb_build_relation_nav_menu(self, obj, event, family_handle):
|
||||||
"""Builds the menu for a parents-child relation line."""
|
"""Builds the menu for a parents-child relation line."""
|
||||||
menu = Gtk.Menu()
|
self.menu = Gtk.Menu()
|
||||||
menu.set_title(_('Family Menu'))
|
self.menu.set_title(_('Family Menu'))
|
||||||
|
|
||||||
family = self.dbstate.db.get_family_from_handle(family_handle)
|
family = self.dbstate.db.get_family_from_handle(family_handle)
|
||||||
if not family:
|
if not family:
|
||||||
@ -2084,23 +2090,23 @@ class PedigreeView(NavigationView):
|
|||||||
edit_item = Gtk.ImageMenuItem.new_from_stock(Gtk.STOCK_EDIT, None)
|
edit_item = Gtk.ImageMenuItem.new_from_stock(Gtk.STOCK_EDIT, None)
|
||||||
edit_item.connect("activate", self.cb_edit_family, family_handle)
|
edit_item.connect("activate", self.cb_edit_family, family_handle)
|
||||||
edit_item.show()
|
edit_item.show()
|
||||||
menu.append(edit_item)
|
self.menu.append(edit_item)
|
||||||
|
|
||||||
clipboard_item = Gtk.ImageMenuItem.new_from_stock(Gtk.STOCK_COPY, None)
|
clipboard_item = Gtk.ImageMenuItem.new_from_stock(Gtk.STOCK_COPY, None)
|
||||||
clipboard_item.connect("activate", self.cb_copy_family_to_clipboard,
|
clipboard_item.connect("activate", self.cb_copy_family_to_clipboard,
|
||||||
family_handle)
|
family_handle)
|
||||||
clipboard_item.show()
|
clipboard_item.show()
|
||||||
menu.append(clipboard_item)
|
self.menu.append(clipboard_item)
|
||||||
|
|
||||||
# Add separator
|
# Add separator
|
||||||
item = Gtk.SeparatorMenuItem()
|
item = Gtk.SeparatorMenuItem()
|
||||||
item.show()
|
item.show()
|
||||||
menu.append(item)
|
self.menu.append(item)
|
||||||
|
|
||||||
# Add history-based navigation
|
# Add history-based navigation
|
||||||
self.add_nav_portion_to_menu(menu)
|
self.add_nav_portion_to_menu(self.menu)
|
||||||
self.add_settings_to_menu(menu)
|
self.add_settings_to_menu(self.menu)
|
||||||
menu.popup(None, None, None, None, 0, event.time)
|
self.menu.popup(None, None, None, None, 0, event.time)
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
def cb_update_show_images(self, client, cnxn_id, entry, data):
|
def cb_update_show_images(self, client, cnxn_id, entry, data):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user