diff --git a/gramps2/ChangeLog b/gramps2/ChangeLog index d71a5aeea..b5b3434f8 100644 --- a/gramps2/ChangeLog +++ b/gramps2/ChangeLog @@ -1,5 +1,8 @@ 2005-04-04 Don Allingham - * src/MedaiView.py: pass handle instead of GRAMPS ID during drag-n-drop + * src/ChooseParents.py: fix father/mother relationship + * src/FamilyView.py: fix update of child pointers after add + * src/PeopleView.py: unselect previous entry on new goto_active_person + * src/MediaView.py: pass handle instead of GRAMPS ID during drag-n-drop * src/GrampsBSDDB.py: remove transaction.batch in favor of signal suppression * src/GrampsDbBase.py: remove transaction.batch in favor of signal suppression * src/GrampsInMemDB.py: remove transaction.batch in favor of signal suppression diff --git a/gramps2/src/ChooseParents.py b/gramps2/src/ChooseParents.py index 88e464768..3b868e709 100644 --- a/gramps2/src/ChooseParents.py +++ b/gramps2/src/ChooseParents.py @@ -163,8 +163,6 @@ class ChooseParents: self.glade.signal_autoconnect({ "on_add_parent_clicked" : self.add_parent_clicked, "on_prel_changed" : self.parent_relation_changed, - #"on_showallf_toggled" : self.showallf_toggled, - #"on_showallm_toggled" : self.showallm_toggled, "destroy_passed_object" : self.close, "on_save_parents_clicked" : self.save_parents_clicked, "on_help_familyDialog_clicked" : self.on_help_clicked, @@ -287,7 +285,8 @@ class ChooseParents: """Called everytime the parent relationship information is changed""" self.old_type = self.type self.type = self.prel.get_active() - if self.old_type == RelLib.Family.CIVIL_UNION or self.type == RelLib.Family.CIVIL_UNION: + if (self.old_type == RelLib.Family.CIVIL_UNION or + self.type == RelLib.Family.CIVIL_UNION): self.redrawf() self.redrawm() @@ -315,11 +314,13 @@ class ChooseParents: for family_handle in self.db.get_family_handles(): family = self.db.get_family_from_handle(family_handle) - if family.get_father_handle() == father_handle and family.get_mother_handle() == mother_handle: + if (family.get_father_handle() == father_handle and + family.get_mother_handle() == mother_handle): family.add_child_handle(self.person.get_handle()) self.db.commit_family(family,trans) return family - elif family.get_father_handle() == mother_handle and family.get_mother_handle() == father_handle: + elif (family.get_father_handle() == mother_handle and + family.get_mother_handle() == father_handle): family.add_child_handle(self.person.get_handle()) self.db.commit_family(family,trans) return family @@ -379,12 +380,12 @@ class ChooseParents: family_handle_list = self.father.get_family_handle_list() if len(family_handle_list) >= 1: family = self.db.get_family_from_handle(family_handle_list[0]) - mother_handle = family.get_mother_handle() - mother = self.db.get_person_from_handle(mother_handle) + handle = family.get_mother_handle() + mother = self.db.get_person_from_handle(handle) sname = mother.get_primary_name().get_surname() tpath = self.mother_model.on_get_path(sname) self.mother_list.expand_row(tpath,0) - path = self.mother_model.on_get_path(mother_handle) + path = self.mother_model.on_get_path(handle) self.mother_selection.select_path(path) self.mother_list.scroll_to_cell(path,None,1,0.5,0) @@ -403,12 +404,12 @@ class ChooseParents: family_handle_list = self.mother.get_family_handle_list() if len(family_handle_list) >= 1: family = self.db.get_family_from_handle(family_handle_list[0]) - father_handle = family.get_mother_handle() - father = self.db.get_person_from_handle(father_handle) + handle = family.get_father_handle() + father = self.db.get_person_from_handle(handle) sname = father.get_primary_name().get_surname() tpath = self.father_model.on_get_path(sname) self.father_list.expand_row(tpath,0) - path = self.father_model.on_get_path(father_handle) + path = self.father_model.on_get_path(handle) self.father_selection.select_path(path) self.father_list.scroll_to_cell(path,None,1,0.5,0) @@ -529,10 +530,12 @@ class ChooseParents: return if mother_rel != fam[1] or father_rel != fam[2]: self.person.remove_parent_family_handle(family_handle) - self.person.add_parent_family_handle(family_handle,mother_rel,father_rel) + self.person.add_parent_family_handle(family_handle, + mother_rel,father_rel) break else: - self.person.add_parent_family_handle(family_handle,mother_rel,father_rel) + self.person.add_parent_family_handle(family_handle, + mother_rel,father_rel) trans = self.db.transaction_begin() self.db.commit_person(self.person,trans) diff --git a/gramps2/src/FamilyView.py b/gramps2/src/FamilyView.py index d1e21d87d..aa85e96b4 100644 --- a/gramps2/src/FamilyView.py +++ b/gramps2/src/FamilyView.py @@ -768,30 +768,31 @@ class FamilyView: self.parent.db.transaction_commit(trans,_("Modify family")) def new_child_after_edit(self,epo,value): - if not self.family: + family = self.family + person = self.person + new_person = epo.person + trans = self.parent.db.transaction_begin() + if not family: # Add family to active person, # if it does not exist yet (child with no spouse) - trans = self.parent.db.transaction_begin() - self.family = RelLib.Family() - self.parent.db.add_family(self.family,trans) - self.person.add_family_handle(self.family.get_handle()) - if self.person.get_gender() == RelLib.Person.MALE: - self.family.set_father_handle(self.person.get_handle()) + family = RelLib.Family() + self.parent.db.add_family(family,trans) + person.add_family_handle(family.get_handle()) + if person.get_gender() == RelLib.Person.MALE: + family.set_father_handle(person.get_handle()) else: - self.family.set_mother_handle(self.person.get_handle()) - self.parent.db.commit_family(self.family,trans) - self.parent.db.commit_person(self.person,trans) - self.parent.db.transaction_commit(trans,_("Add Family")) + family.set_mother_handle(person.get_handle()) + self.parent.db.commit_family(family,trans) + self.parent.db.commit_person(person,trans) - trans = self.parent.db.transaction_begin() - self.family.add_child_handle(epo.person.get_handle()) - epo.person.add_parent_family_handle(self.family.get_handle(), + family.add_child_handle(new_person.get_handle()) + new_person.add_parent_family_handle(family.get_handle(), RelLib.Person.CHILD_REL_BIRTH, RelLib.Person.CHILD_REL_BIRTH) - self.parent.db.commit_person(epo.person,trans) - self.parent.db.commit_family(self.family,trans) + self.parent.db.commit_person(new_person,trans) + self.parent.db.commit_family(family,trans) self.parent.db.transaction_commit(trans,_("Add Child to Family")) - self.display_marriage(self.family) + self.display_marriage(family) def select_child_clicked(self,obj): if not self.person: diff --git a/gramps2/src/PeopleView.py b/gramps2/src/PeopleView.py index af4084301..8748675b1 100644 --- a/gramps2/src/PeopleView.py +++ b/gramps2/src/PeopleView.py @@ -218,6 +218,7 @@ class PeopleView: top_name = self.parent.db.get_name_group_mapping(group_name) top_path = self.person_model.on_get_path(top_name) self.person_tree.expand_row(top_path,0) + self.person_selection.unselect_all() self.person_selection.select_path(path) self.person_tree.scroll_to_cell(path,None,1,0.5,0) except KeyError: