* src/EditFamily.py: monitor for changed people and update if needed,

CellRendererCombo for child relations


svn: r5791
This commit is contained in:
Don Allingham
2006-01-18 22:33:27 +00:00
parent a25c241b8e
commit 307c50c456
3 changed files with 73 additions and 8 deletions

View File

@@ -90,13 +90,15 @@ class AttrEmbedList(EmbeddedList):
class ChildEmbedList(EmbeddedList):
_HANDLE_COL = 8
_HANDLE_COL = 10
column_names = [
(_('#'),0) ,
(_('ID'),1) ,
(_('Name'),9),
(_('Gender'),3),
(_('Paternal'),12),
(_('Maternal'),13),
(_('Birth Date'),10),
(_('Death Date'),11),
(_('Birth Place'),6),
@@ -108,14 +110,51 @@ class ChildEmbedList(EmbeddedList):
EmbeddedList.__init__(self, dbstate, uistate, track,
_('Children'), ChildModel)
def build_columns(self):
for column in self.columns:
self.tree.remove_column(column)
self.columns = []
for pair in self.column_order():
if not pair[0]:
continue
name = self.column_names[pair[1]][0]
if pair[1] == 4 or pair[1] == 5:
model = gtk.ListStore(str,int)
for x in Utils.child_relations.keys():
model.append(row=[Utils.child_relations[x],x])
render = gtk.CellRendererCombo()
render.set_property('editable',True)
render.set_property('model',model)
render.set_property('text-column',0)
else:
render = gtk.CellRendererText()
column = gtk.TreeViewColumn(name, render, text=pair[1])
column = gtk.TreeViewColumn(name, render, text=pair[1])
column.set_resizable(True)
column.set_min_width(40)
column.set_sort_column_id(self.column_names[pair[1]][1])
self.columns.append(column)
self.tree.append_column(column)
def get_icon_name(self):
return 'gramps-person'
def set_label(self):
if len(self.family.get_child_handle_list()):
self.tab_image.show()
self.label.set_text("<b>%s</b>" % self.tab_name)
self.label.set_use_markup(True)
else:
self.tab_image.hide()
self.label.set_text(self.tab_name)
def get_data(self):
return self.family.get_child_handle_list()
return self.family
def column_order(self):
return self.dbstate.db.get_child_column_order()
return [(1,0),(1,1),(1,2),(1,3),(1,4),(1,5),(1,6),(0,8),(0,9)]
def add_button_clicked(self,obj):
print "Add Button Clicked"