From 62c98e70aa0cbae260e02d086307c982a8332171 Mon Sep 17 00:00:00 2001 From: Don Allingham Date: Tue, 7 Mar 2006 03:35:46 +0000 Subject: [PATCH] initialize families properly svn: r6093 --- gramps2/ChangeLog | 3 ++ gramps2/src/DataViews/_FamilyView.py | 43 ++++++++++++++++++++++------ gramps2/src/DataViews/_PersonView.py | 2 +- 3 files changed, 39 insertions(+), 9 deletions(-) diff --git a/gramps2/ChangeLog b/gramps2/ChangeLog index 3f94c80c3..358898a1f 100644 --- a/gramps2/ChangeLog +++ b/gramps2/ChangeLog @@ -1,4 +1,7 @@ 2006-03-06 Don Allingham + * src/DataViews/_FamilyView.py: put the person in the correct spot + when adding a new family + * src/DataViews/_PersonView.py: remove DataFilter * src/GrampsDb/_GrampsDbBase.py: handle the default argument of no_magic * src/Editors/_EditFamily.py: handle the fact that family diff --git a/gramps2/src/DataViews/_FamilyView.py b/gramps2/src/DataViews/_FamilyView.py index 9cf56cf92..445072b49 100644 --- a/gramps2/src/DataViews/_FamilyView.py +++ b/gramps2/src/DataViews/_FamilyView.py @@ -199,7 +199,7 @@ class FamilyView(PageView.PersonNavView): if family_handle: self.write_parents(family_handle) else: - self.write_label("%s:" % _('Parents'),None) + self.write_label("%s:" % _('Parents'),None,True) self.row += 1 family_handle_list = person.get_family_handle_list() @@ -208,7 +208,7 @@ class FamilyView(PageView.PersonNavView): if family_handle: self.write_family(family_handle) else: - self.write_label("%s:" % _('Family'),None) + self.write_label("%s:" % _('Family'),None,False) self.row += 1 self.row = 1 @@ -336,7 +336,7 @@ class FamilyView(PageView.PersonNavView): self.row,self.row+1) self.row += 1 - def write_label(self,title,family): + def write_label(self,title,family,is_parent): msg = "%s" % cgi.escape(title) self.attach.attach(GrampsWidgets.MarkupLabel(msg),_LABEL_START,_LABEL_STOP, self.row,self.row+1,gtk.SHRINK|gtk.FILL) @@ -350,12 +350,19 @@ class FamilyView(PageView.PersonNavView): hbox = gtk.HBox() hbox.set_spacing(6) - add = GrampsWidgets.IconButton(self.add_family,None,gtk.STOCK_ADD) + if is_parent: + call_fcn = self.add_parent_family + else: + call_fcn = self.add_family + + add = GrampsWidgets.IconButton(call_fcn,None,gtk.STOCK_ADD) hbox.pack_start(add,False) if family: - edit = GrampsWidgets.IconButton(self.edit_family,family.handle,gtk.STOCK_EDIT) + edit = GrampsWidgets.IconButton(self.edit_family,family.handle, + gtk.STOCK_EDIT) hbox.pack_start(edit,False) - delete = GrampsWidgets.IconButton(self.delete_family,family.handle,gtk.STOCK_REMOVE) + delete = GrampsWidgets.IconButton(self.delete_family,family.handle, + gtk.STOCK_REMOVE) hbox.pack_start(delete,False) self.attach.attach(hbox,_BTN_START,_BTN_STOP,self.row,self.row+1) self.row += 1 @@ -364,7 +371,7 @@ class FamilyView(PageView.PersonNavView): def write_parents(self,family_handle): family = self.dbstate.db.get_family_from_handle(family_handle) - self.write_label("%s:" % _('Parents'),family), + self.write_label("%s:" % _('Parents'),family,True), self.write_person(_('Father'),family.get_father_handle()) if self.show_details: value = self.info_string(family.get_father_handle()) @@ -534,7 +541,7 @@ class FamilyView(PageView.PersonNavView): else: handle = father_handle - self.write_label("%s:" % _('Family'),family), + self.write_label("%s:" % _('Family'),family,False) if handle: self.write_person(_('Spouse'),handle) @@ -585,6 +592,26 @@ class FamilyView(PageView.PersonNavView): if event.type == gtk.gdk.BUTTON_PRESS and event.button == 1: from Editors import EditFamily family = RelLib.Family() + person = self.dbstate.active + + if person.gender == RelLib.Person.MALE: + family.set_father_handle(person.handle) + else: + family.set_mother_handle(person.handle) + + try: + EditFamily(self.dbstate,self.uistate,[],family) + except Errors.WindowActiveError: + pass + + def add_parent_family(self,obj,event,handle): + if event.type == gtk.gdk.BUTTON_PRESS and event.button == 1: + from Editors import EditFamily + family = RelLib.Family() + person = self.dbstate.active + + family.add_child_handle(person.handle) + try: EditFamily(self.dbstate,self.uistate,[],family) except Errors.WindowActiveError: diff --git a/gramps2/src/DataViews/_PersonView.py b/gramps2/src/DataViews/_PersonView.py index 71e4a807e..bd30f8037 100644 --- a/gramps2/src/DataViews/_PersonView.py +++ b/gramps2/src/DataViews/_PersonView.py @@ -564,7 +564,7 @@ class PersonView(PageView.PersonNavView): if oldpath[0] == surname: self.model.build_sub_entry(surname) else: - self.model.calculate_data(self.DataFilter) + self.model.calculate_data() # find the path of the person in the new data build newpath = self.model.temp_iter2path[node]