allow adding people from family editor and relview

svn: r16042
This commit is contained in:
Benny Malengier
2010-10-24 20:21:37 +00:00
parent e5f62ee933
commit 2fa5470b34
5 changed files with 106 additions and 52 deletions

View File

@@ -36,7 +36,6 @@ from libpersonview import BasePersonView
from gui.views.treemodels.peoplemodel import PersonListModel
import gen.lib
import Errors
from gui.editors import EditPerson
#-------------------------------------------------------------------------
#

View File

@@ -37,6 +37,7 @@ from gui.views.treemodels.peoplemodel import PersonTreeModel
import gen.lib
import Errors
from gui.editors import EditPerson
from Utils import preset_name
#-------------------------------------------------------------------------
#
@@ -171,17 +172,9 @@ class PersonTreeView(BasePersonView):
handle = model.get_value(node, self.handle_col)
basepers = self.dbstate.db.get_person_from_handle(handle)
if basepers:
surnlist = []
primname = basepers.get_primary_name()
for surn in primname.get_surname_list():
surnlist.append(gen.lib.Surname(source=surn))
name.set_surname_list(surnlist)
name.set_family_nick_name(primname.get_family_nick_name())
name.set_group_as(primname.get_group_as())
name.set_sort_as(primname.get_sort_as())
preset_name(basepers, name)
person.set_primary_name(name)
try:
person.set_primary_name(name)
EditPerson(self.dbstate, self.uistate, [], person)
except Errors.WindowActiveError:
pass

View File

@@ -60,7 +60,7 @@ from gui.selectors import SelectorFactory
import Errors
import Bookmarks
import const
from Utils import preset_name
from gen.utils import get_birth_or_fallback, get_death_or_fallback
_GenderCode = {
@@ -1477,12 +1477,16 @@ class RelationshipView(NavigationView):
if button_activated(event, _LEFT_BUTTON):
callback = lambda x: self.callback_add_child(x, handle)
person = gen.lib.Person()
name = gen.lib.Name()
#the editor requires a surname
name.add_surname(gen.lib.Surname())
name.set_primary_surname(0)
family = self.dbstate.db.get_family_from_handle(handle)
father = self.dbstate.db.get_person_from_handle(
family.get_father_handle())
if father:
name = father.get_primary_name().get_surname()
person.get_primary_name().set_surname(name)
preset_name(father, name)
person.set_primary_name(name)
try:
EditPerson(self.dbstate, self.uistate, [], person,
callback=callback)