2006-05-22 Don Allingham <don@gramps-project.org>

* src/DataViews/_FamilyView.py: start shading of data



svn: r6752
This commit is contained in:
Don Allingham 2006-05-23 03:50:37 +00:00
parent 396dee3b9e
commit fee7d2c445
2 changed files with 78 additions and 22 deletions

View File

@ -1,3 +1,6 @@
2006-05-22 Don Allingham <don@gramps-project.org>
* src/DataViews/_FamilyView.py: start shading of data
2006-05-22 Alex Roitman <shura@gramps-project.org>
* src/GrampsDb/_WriteGedcom.py: Multiple improvements.
* various: Replace get/set_base_handle with get/set_reference_handle.

View File

@ -167,6 +167,7 @@ class FamilyView(PageView.PersonNavView):
self.scroll.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
self.scroll.show()
self.vbox = gtk.VBox()
self.vbox.set_border_width(12)
self.vbox.show()
self.child = None
self.scroll.add_with_viewport(self.vbox)
@ -272,15 +273,18 @@ class FamilyView(PageView.PersonNavView):
return False
self.redrawing = True
old_child = self.child
self.attach = AttachList()
for old_child in self.vbox.get_children():
self.vbox.remove(old_child)
person = self.dbstate.db.get_person_from_handle(obj)
if not person:
self.redrawing = False
return
self.row = 5
self.write_title(person)
self.attach = AttachList()
self.row = 1
family_handle_list = person.get_parent_family_handle_list()
if family_handle_list:
for family_handle in family_handle_list:
@ -300,7 +304,6 @@ class FamilyView(PageView.PersonNavView):
self.row += 1
self.row = 1
self.write_title(person)
# Here it is necessary to beat GTK into submission. For some
# bizzare reason, if you have an empty column that is spanned,
@ -334,8 +337,6 @@ class FamilyView(PageView.PersonNavView):
self.child.attach(d[0], x0, x1, d[3], d[4], d[5], d[6])
self.child.show_all()
if old_child:
self.vbox.remove(old_child)
self.vbox.pack_start(self.child, False)
self.redrawing = False
@ -343,41 +344,61 @@ class FamilyView(PageView.PersonNavView):
def write_title(self, person):
table = gtk.Table(2,3)
table.set_col_spacings(12)
table.set_row_spacings(6)
# name and edit button
name = NameDisplay.displayer.display(person)
fmt = '<span size="larger" weight="bold">%s %s</span>'
text = fmt % (cgi.escape(name), _GenderCode[person.gender])
label = GrampsWidgets.MarkupLabel(text)
button = GrampsWidgets.IconButton(self.edit_button_press, person.handle)
hbox = GrampsWidgets.LinkBox(label, button)
table.attach(hbox, 0, 2, 0, 1)
eventbox = gtk.EventBox()
eventbox.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse('#ffffff'))
table.attach(eventbox, 1, 2, 1, 2)
subtbl = gtk.Table(3, 3)
subtbl.set_col_spacings(12)
subtbl.set_row_spacings(6)
eventbox.add(subtbl)
# GRAMPS ID
self.row = 1
self.write_person_data("%s:" % _('ID'), person.gramps_id)
# birth/death events
subtbl.attach(GrampsWidgets.BasicLabel("%s:" % _('ID')),
1, 2, 0, 1, xoptions=gtk.FILL, yoptions=0)
subtbl.attach(GrampsWidgets.BasicLabel(person.gramps_id),
2, 3, 0, 1, yoptions=0)
# Birth event.
birth_ref = person.get_birth_ref()
if birth_ref:
birth = self.dbstate.db.get_event_from_handle(birth_ref.ref)
else:
birth = None
self.write_person_event("%s:" % _('Birth'), birth)
subtbl.attach(GrampsWidgets.BasicLabel("%s:" % _('Birth')),
1, 2, 1, 2, xoptions=gtk.FILL, yoptions=0)
subtbl.attach(GrampsWidgets.BasicLabel(self.format_event(birth)),
2, 3, 1, 2, yoptions=0)
death_ref = person.get_death_ref()
if death_ref:
death = self.dbstate.db.get_event_from_handle(death_ref.ref)
else:
death = None
self.write_person_event("%s:" % _('Death'), death)
# separator
end = self.attach.max_x
sep = gtk.HSeparator()
sep.show()
self.attach.attach(hbox, _NAME_START, end, 0, 1, gtk.FILL|gtk.EXPAND)
subtbl.attach(GrampsWidgets.BasicLabel("%s:" % _('Death')),
1, 2, 2, 3, xoptions=gtk.FILL, yoptions=0)
subtbl.attach(GrampsWidgets.BasicLabel(self.format_event(death)),
2, 3, 2, 3, yoptions=0)
mbox = gtk.HBox()
mbox.add(table)
# image
image_list = person.get_media_list()
@ -388,10 +409,15 @@ class FamilyView(PageView.PersonNavView):
image = gtk.Image()
image.set_from_pixbuf(pixbuf)
image.show()
self.attach.attach(image, end, end+1, 0, 4,
xoptions=gtk.SHRINK|gtk.FILL)
mbox.pack_end(image,False)
self.attach.attach(sep, 0, self.attach.max_x, 4, 5)
mbox.show_all()
self.vbox.pack_start(mbox,False)
# separator
sep = gtk.HSeparator()
sep.show()
self.vbox.pack_start(sep, False)
def write_person_event(self, ename, event):
if event:
@ -421,6 +447,33 @@ class FamilyView(PageView.PersonNavView):
else:
self.write_person_data(ename, '')
def format_event(self, event):
if event:
dobj = event.get_date_object()
phandle = event.get_place_handle()
if phandle:
pname = self.place_name(phandle)
else:
pname = None
value = {
'date' : DateHandler.displayer.display(dobj),
'place' : pname,
}
else:
pname = None
dobj = None
if dobj:
if pname:
return _('%(date)s in %(place)s') % value
else:
return '%(date)s' % value
elif pname:
return pname
else:
return ''
def write_person_data(self, title, data):
self.attach.attach(GrampsWidgets.BasicLabel(title), _ALABEL_START,
_ALABEL_STOP, self.row, self.row+1,