* src/PedView.py: Add new submenu showing people that share the same event. This for example lists witnesses.
svn: r5638
This commit is contained in:
parent
e8cc3b5c0d
commit
f21a0c8fcb
@ -1,3 +1,7 @@
|
|||||||
|
2005-12-29 Martin Hawlisch <Martin.Hawlisch@gmx.de>
|
||||||
|
* src/PedView.py: Add new submenu showing people that share
|
||||||
|
the same event. This for example lists witnesses.
|
||||||
|
|
||||||
2005-12-28 Don Allingham <don@gramps-project.org>
|
2005-12-28 Don Allingham <don@gramps-project.org>
|
||||||
* src/Makefile.am: add PythonMime and GnomeMime
|
* src/Makefile.am: add PythonMime and GnomeMime
|
||||||
* src/GnomeMime.py: GNOME based mime handling
|
* src/GnomeMime.py: GNOME based mime handling
|
||||||
|
@ -621,6 +621,9 @@ class PedView(PageView.PersonNavView):
|
|||||||
edit_item.show()
|
edit_item.show()
|
||||||
menu.append(edit_item)
|
menu.append(edit_item)
|
||||||
|
|
||||||
|
# collect all spouses, parents and children
|
||||||
|
linked_persons = []
|
||||||
|
|
||||||
# Go over spouses and build their menu
|
# Go over spouses and build their menu
|
||||||
item = gtk.MenuItem(_("Spouses"))
|
item = gtk.MenuItem(_("Spouses"))
|
||||||
fam_list = person.get_family_handle_list()
|
fam_list = person.get_family_handle_list()
|
||||||
@ -645,6 +648,7 @@ class PedView(PageView.PersonNavView):
|
|||||||
sp_item = gtk.ImageMenuItem(NameDisplay.displayer.display(spouse))
|
sp_item = gtk.ImageMenuItem(NameDisplay.displayer.display(spouse))
|
||||||
sp_item.set_image(go_image)
|
sp_item.set_image(go_image)
|
||||||
sp_item.set_data(_PERSON,sp_id)
|
sp_item.set_data(_PERSON,sp_id)
|
||||||
|
linked_persons.append(sp_id)
|
||||||
sp_item.connect("activate",self.on_childmenu_changed)
|
sp_item.connect("activate",self.on_childmenu_changed)
|
||||||
sp_item.show()
|
sp_item.show()
|
||||||
sp_menu.append(sp_item)
|
sp_menu.append(sp_item)
|
||||||
@ -679,6 +683,7 @@ class PedView(PageView.PersonNavView):
|
|||||||
sib_item = gtk.ImageMenuItem(NameDisplay.displayer.display(sib))
|
sib_item = gtk.ImageMenuItem(NameDisplay.displayer.display(sib))
|
||||||
sib_item.set_image(go_image)
|
sib_item.set_image(go_image)
|
||||||
sib_item.set_data(_PERSON,sib_id)
|
sib_item.set_data(_PERSON,sib_id)
|
||||||
|
linked_persons.append(sib_id)
|
||||||
sib_item.connect("activate",self.on_childmenu_changed)
|
sib_item.connect("activate",self.on_childmenu_changed)
|
||||||
sib_item.show()
|
sib_item.show()
|
||||||
sib_menu.append(sib_item)
|
sib_menu.append(sib_item)
|
||||||
@ -716,6 +721,7 @@ class PedView(PageView.PersonNavView):
|
|||||||
label.set_alignment(0,0)
|
label.set_alignment(0,0)
|
||||||
child_item.add(label)
|
child_item.add(label)
|
||||||
child_item.set_data(_PERSON,child_handle)
|
child_item.set_data(_PERSON,child_handle)
|
||||||
|
linked_persons.append(child_handle)
|
||||||
child_item.connect("activate",self.on_childmenu_changed)
|
child_item.connect("activate",self.on_childmenu_changed)
|
||||||
child_item.show()
|
child_item.show()
|
||||||
child_menu.append(child_item)
|
child_menu.append(child_item)
|
||||||
@ -753,6 +759,7 @@ class PedView(PageView.PersonNavView):
|
|||||||
label.set_alignment(0,0)
|
label.set_alignment(0,0)
|
||||||
par_item.add(label)
|
par_item.add(label)
|
||||||
par_item.set_data(_PERSON,par_id)
|
par_item.set_data(_PERSON,par_id)
|
||||||
|
linked_persons.append(par_id)
|
||||||
par_item.connect("activate",self.on_childmenu_changed)
|
par_item.connect("activate",self.on_childmenu_changed)
|
||||||
par_item.show()
|
par_item.show()
|
||||||
par_menu.append(par_item)
|
par_menu.append(par_item)
|
||||||
@ -762,6 +769,43 @@ class PedView(PageView.PersonNavView):
|
|||||||
item.show()
|
item.show()
|
||||||
menu.append(item)
|
menu.append(item)
|
||||||
|
|
||||||
|
# Go over parents and build their menu
|
||||||
|
item = gtk.MenuItem(_("Related"))
|
||||||
|
no_related = 1
|
||||||
|
for p_id in find_witnessed_people(self.db,person):
|
||||||
|
#if p_id in linked_persons:
|
||||||
|
# continue # skip already listed family members
|
||||||
|
|
||||||
|
per = self.db.get_person_from_handle(p_id)
|
||||||
|
if not per:
|
||||||
|
continue
|
||||||
|
|
||||||
|
if no_related:
|
||||||
|
no_related = 0
|
||||||
|
item.set_submenu(gtk.Menu())
|
||||||
|
per_menu = item.get_submenu()
|
||||||
|
|
||||||
|
label = gtk.Label(escape(NameDisplay.displayer.display(per)))
|
||||||
|
|
||||||
|
go_image = gtk.image_new_from_stock(gtk.STOCK_JUMP_TO,gtk.ICON_SIZE_MENU)
|
||||||
|
go_image.show()
|
||||||
|
per_item = gtk.ImageMenuItem(None)
|
||||||
|
per_item.set_image(go_image)
|
||||||
|
label.set_use_markup(True)
|
||||||
|
label.show()
|
||||||
|
label.set_alignment(0,0)
|
||||||
|
per_item.add(label)
|
||||||
|
per_item.set_data(_PERSON,p_id)
|
||||||
|
per_item.connect("activate",self.on_childmenu_changed)
|
||||||
|
per_item.show()
|
||||||
|
per_menu.append(per_item)
|
||||||
|
|
||||||
|
if no_related:
|
||||||
|
item.set_sensitive(0)
|
||||||
|
item.show()
|
||||||
|
menu.append(item)
|
||||||
|
|
||||||
|
|
||||||
# Add separator
|
# Add separator
|
||||||
item = gtk.MenuItem(None)
|
item = gtk.MenuItem(None)
|
||||||
item.show()
|
item.show()
|
||||||
@ -867,6 +911,35 @@ def find_parents(db,p):
|
|||||||
parentlist.append(mother_handle)
|
parentlist.append(mother_handle)
|
||||||
return parentlist
|
return parentlist
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Function to return persons, that share the same event.
|
||||||
|
# This for example links witnesses to the tree
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
def find_witnessed_people(db,p):
|
||||||
|
people = []
|
||||||
|
for event_ref in p.get_event_ref_list():
|
||||||
|
for l in db.find_backlink_handles( event_ref.ref):
|
||||||
|
if l[0] == 'Person' and l[1] != p.get_handle():
|
||||||
|
people.append(l[1])
|
||||||
|
if l[0] == 'Family':
|
||||||
|
fam = db.get_family_from_handle(l[1])
|
||||||
|
if fam:
|
||||||
|
father_handle = fam.get_father_handle()
|
||||||
|
if father_handle and father_handle != p.get_handle():
|
||||||
|
people.append(father_handle)
|
||||||
|
mother_handle = fam.get_mother_handle()
|
||||||
|
if mother_handle and mother_handle != p.get_handle():
|
||||||
|
people.append(mother_handle)
|
||||||
|
for f in p.get_family_handle_list():
|
||||||
|
family = db.get_family_from_handle(f)
|
||||||
|
for event_ref in family.get_event_ref_list():
|
||||||
|
for l in db.find_backlink_handles( event_ref.ref):
|
||||||
|
if l[0] == 'Person' and l[1] != p.get_handle():
|
||||||
|
people.append(l[1])
|
||||||
|
return people
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# Functions to build the text displayed in the details view of a DispBox
|
# Functions to build the text displayed in the details view of a DispBox
|
||||||
|
Loading…
Reference in New Issue
Block a user