* src/EditPerson.py: Corrections.
* src/EditSource.py: Use parent class. Use windows menu. * src/ImageSelect.py: Corrections. * src/Sources.py: Corrections. * src/gramps.glade: Add handlers. * src/NoteEdit.py: Corrections. * src/dialog.glade: Add handler. * src/Witness.py: Corrections. * src/RelLib.py: Include witnesses in comparing events. * src/FamilyView.py: Pass parent on to child classes. * src/AddSpouse.py: Pass parent on to EditPerson. * src/ChooseParents.py: Pass parent on to EditPerson. * src/gramps_main.py: Pass Gramps class to child classes. * src/MergeData.py: Pass parent on to EditPerson. svn: r2885
This commit is contained in:
parent
2d81ccd542
commit
3e6e2ea2ea
@ -1,3 +1,19 @@
|
|||||||
|
2004-02-20 Alex Roitman <shura@alex.neuro.umn.edu>
|
||||||
|
* src/EditPerson.py: Corrections.
|
||||||
|
* src/EditSource.py: Use parent class. Use windows menu.
|
||||||
|
* src/ImageSelect.py: Corrections.
|
||||||
|
* src/Sources.py: Corrections.
|
||||||
|
* src/gramps.glade: Add handlers.
|
||||||
|
* src/NoteEdit.py: Corrections.
|
||||||
|
* src/dialog.glade: Add handler.
|
||||||
|
* src/Witness.py: Corrections.
|
||||||
|
* src/RelLib.py: Include witnesses in comparing events.
|
||||||
|
* src/FamilyView.py: Pass parent on to child classes.
|
||||||
|
* src/AddSpouse.py: Pass parent on to EditPerson.
|
||||||
|
* src/ChooseParents.py: Pass parent on to EditPerson.
|
||||||
|
* src/gramps_main.py: Pass Gramps class to child classes.
|
||||||
|
* src/MergeData.py: Pass parent on to EditPerson.
|
||||||
|
|
||||||
2004-02-19 Alex Roitman <shura@alex.neuro.umn.edu>
|
2004-02-19 Alex Roitman <shura@alex.neuro.umn.edu>
|
||||||
* src/EditPerson.py: Use parent class. Add/remove itself from/to
|
* src/EditPerson.py: Use parent class. Add/remove itself from/to
|
||||||
the Windows menu.
|
the Windows menu.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# Gramps - a GTK+/GNOME based genealogy program
|
# Gramps - a GTK+/GNOME based genealogy program
|
||||||
#
|
#
|
||||||
# Copyright (C) 2000-2003 Donald N. Allingham
|
# Copyright (C) 2000-2004 Donald N. Allingham
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
@ -65,7 +65,7 @@ class AddSpouse:
|
|||||||
family with the passed person as one spouse, and another person to
|
family with the passed person as one spouse, and another person to
|
||||||
be selected.
|
be selected.
|
||||||
"""
|
"""
|
||||||
def __init__(self,db,person,update,addperson,family=None):
|
def __init__(self,parent,db,person,update,addperson,family=None):
|
||||||
"""
|
"""
|
||||||
Displays the AddSpouse dialog box.
|
Displays the AddSpouse dialog box.
|
||||||
|
|
||||||
@ -74,6 +74,7 @@ class AddSpouse:
|
|||||||
update - function that updates the family display
|
update - function that updates the family display
|
||||||
addperson - function that adds a person to the person view
|
addperson - function that adds a person to the person view
|
||||||
"""
|
"""
|
||||||
|
self.parent = parent
|
||||||
self.db = db
|
self.db = db
|
||||||
self.update = update
|
self.update = update
|
||||||
self.person = person
|
self.person = person
|
||||||
@ -152,7 +153,7 @@ class AddSpouse:
|
|||||||
|
|
||||||
person = RelLib.Person()
|
person = RelLib.Person()
|
||||||
person.set_gender(gen)
|
person.set_gender(gen)
|
||||||
EditPerson.EditPerson(person,self.db,self.update_list)
|
EditPerson.EditPerson(self.parent,person,self.db,self.update_list)
|
||||||
|
|
||||||
def update_list(self,epo):
|
def update_list(self,epo):
|
||||||
"""
|
"""
|
||||||
|
@ -66,7 +66,7 @@ class ChooseParents:
|
|||||||
Displays the Choose Parents dialog box, allowing the parents
|
Displays the Choose Parents dialog box, allowing the parents
|
||||||
to be edited.
|
to be edited.
|
||||||
"""
|
"""
|
||||||
def __init__(self,db,person,family,family_update,full_update):
|
def __init__(self,parent,db,person,family,family_update,full_update):
|
||||||
"""
|
"""
|
||||||
Creates a ChoosePerson dialog box.
|
Creates a ChoosePerson dialog box.
|
||||||
|
|
||||||
@ -76,6 +76,7 @@ class ChooseParents:
|
|||||||
family_update - task that updates the family display
|
family_update - task that updates the family display
|
||||||
full_update - task that updates the main display
|
full_update - task that updates the main display
|
||||||
"""
|
"""
|
||||||
|
self.parent = parent
|
||||||
self.db = db
|
self.db = db
|
||||||
self.person = person
|
self.person = person
|
||||||
self.family = family
|
self.family = family
|
||||||
@ -85,7 +86,11 @@ class ChooseParents:
|
|||||||
self.type = ""
|
self.type = ""
|
||||||
self.parent_selected = 0
|
self.parent_selected = 0
|
||||||
|
|
||||||
self.date = person.get_birth().get_date_object()
|
birth_event = self.db.find_event_from_id(person.get_birth_id())
|
||||||
|
if birth_event:
|
||||||
|
self.date = birth_event.get_date_object()
|
||||||
|
else:
|
||||||
|
self.date = None
|
||||||
|
|
||||||
if self.family:
|
if self.family:
|
||||||
self.father = self.family.get_father_id()
|
self.father = self.family.get_father_id()
|
||||||
@ -166,8 +171,16 @@ class ChooseParents:
|
|||||||
else:
|
else:
|
||||||
father_id = None
|
father_id = None
|
||||||
|
|
||||||
bday = self.person.get_birth().get_date_object()
|
birth_event = self.db.find_event_from_id(self.person.get_birth_id())
|
||||||
dday = self.person.get_death().get_date_object()
|
if birth_event:
|
||||||
|
bday = birth_event.get_date_object()
|
||||||
|
else:
|
||||||
|
bday = None
|
||||||
|
death_event = self.db.find_event_from_id(self.person.get_death_id())
|
||||||
|
if death_event:
|
||||||
|
dday = death_event.get_date_object()
|
||||||
|
else:
|
||||||
|
dday = None
|
||||||
|
|
||||||
person_list = []
|
person_list = []
|
||||||
for key in self.db.sort_person_keys():
|
for key in self.db.sort_person_keys():
|
||||||
@ -180,11 +193,20 @@ class ChooseParents:
|
|||||||
|
|
||||||
if not self.showallf.get_active():
|
if not self.showallf.get_active():
|
||||||
|
|
||||||
pdday = person.get_death().get_date_object()
|
birth_event = self.db.find_event_from_id(person.get_birth_id())
|
||||||
pbday = person.get_birth().get_date_object()
|
if birth_event:
|
||||||
|
pbday = birth_event.get_date_object()
|
||||||
|
else:
|
||||||
|
pbday = None
|
||||||
|
|
||||||
if bday.getYearValid():
|
death_event = self.db.find_event_from_id(person.get_death_id())
|
||||||
if pbday.getYearValid():
|
if death_event:
|
||||||
|
pdday = death_event.get_date_object()
|
||||||
|
else:
|
||||||
|
pdday = None
|
||||||
|
|
||||||
|
if bday and bday.getYearValid():
|
||||||
|
if pbday and pbday.getYearValid():
|
||||||
# reject if parents birthdate + 10 > child birthdate
|
# reject if parents birthdate + 10 > child birthdate
|
||||||
if pbday.getLowYear()+10 > bday.getHighYear():
|
if pbday.getLowYear()+10 > bday.getHighYear():
|
||||||
continue
|
continue
|
||||||
@ -193,18 +215,18 @@ class ChooseParents:
|
|||||||
if pbday.getHighYear()+90 < bday.getLowYear():
|
if pbday.getHighYear()+90 < bday.getLowYear():
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if pdday.getYearValid():
|
if pdday and pdday.getYearValid():
|
||||||
# reject if parents birthdate + 10 > child deathdate
|
# reject if parents birthdate + 10 > child deathdate
|
||||||
if pbday.getLowYear()+10 > dday.getHighYear():
|
if dday and pbday.getLowYear()+10 > dday.getHighYear():
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if dday.getYearValid():
|
if dday and dday.getYearValid():
|
||||||
if pbday.getYearValid():
|
if pbday and pbday.getYearValid():
|
||||||
# reject if parents deathday + 3 < childs birth date
|
# reject if parents deathday + 3 < childs birth date
|
||||||
if pdday.getHighYear()+3 < bday.getLowYear():
|
if pdday and bday and pdday.getHighYear()+3 < bday.getLowYear():
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if pdday.getYearValid():
|
if pdday and pdday.getYearValid():
|
||||||
# reject if parents deathday + 150 < childs death date
|
# reject if parents deathday + 150 < childs death date
|
||||||
if pdday.getHighYear() + 150 < dday.getLowYear():
|
if pdday.getHighYear() + 150 < dday.getLowYear():
|
||||||
continue
|
continue
|
||||||
@ -240,8 +262,16 @@ class ChooseParents:
|
|||||||
else:
|
else:
|
||||||
mid = None
|
mid = None
|
||||||
|
|
||||||
bday = self.person.get_birth().get_date_object()
|
birth_event = self.db.find_event_from_id(self.person.get_birth_id())
|
||||||
dday = self.person.get_death().get_date_object()
|
if birth_event:
|
||||||
|
bday = birth_event.get_date_object()
|
||||||
|
else:
|
||||||
|
bday = None
|
||||||
|
death_event = self.db.find_event_from_id(self.person.get_death_id())
|
||||||
|
if death_event:
|
||||||
|
dday = death_event.get_date_object()
|
||||||
|
else:
|
||||||
|
dday = None
|
||||||
|
|
||||||
person_list = []
|
person_list = []
|
||||||
for key in self.db.sort_person_keys():
|
for key in self.db.sort_person_keys():
|
||||||
@ -256,11 +286,20 @@ class ChooseParents:
|
|||||||
|
|
||||||
if not self.showallm.get_active():
|
if not self.showallm.get_active():
|
||||||
|
|
||||||
pdday = person.get_death().get_date_object()
|
birth_event = self.db.find_event_from_id(person.get_birth_id())
|
||||||
pbday = person.get_birth().get_date_object()
|
if birth_event:
|
||||||
|
pbday = birth_event.get_date_object()
|
||||||
|
else:
|
||||||
|
pbday = None
|
||||||
|
|
||||||
if bday.getYearValid():
|
death_event = self.db.find_event_from_id(person.get_death_id())
|
||||||
if pbday.getYearValid():
|
if death_event:
|
||||||
|
pdday = death_event.get_date_object()
|
||||||
|
else:
|
||||||
|
pdday = None
|
||||||
|
|
||||||
|
if bday and bday.getYearValid():
|
||||||
|
if pbday and pbday.getYearValid():
|
||||||
# reject if parents birthdate + 10 > child birthdate
|
# reject if parents birthdate + 10 > child birthdate
|
||||||
if pbday.getLowYear()+10 > bday.getHighYear():
|
if pbday.getLowYear()+10 > bday.getHighYear():
|
||||||
continue
|
continue
|
||||||
@ -269,18 +308,18 @@ class ChooseParents:
|
|||||||
if pbday.getHighYear()+90 < bday.getLowYear():
|
if pbday.getHighYear()+90 < bday.getLowYear():
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if pdday.getYearValid():
|
if pdday and pdday.getYearValid():
|
||||||
# reject if parents birthdate + 10 > child deathdate
|
# reject if parents birthdate + 10 > child deathdate
|
||||||
if pbday.getLowYear()+10 > dday.getHighYear():
|
if pbday.getLowYear()+10 > dday.getHighYear():
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if dday.getYearValid():
|
if dday and dday.getYearValid():
|
||||||
if pbday.getYearValid():
|
if pbday and pbday.getYearValid():
|
||||||
# reject if parents deathday + 3 < childs birth date
|
# reject if parents deathday + 3 < childs birth date
|
||||||
if pdday.getHighYear()+3 < bday.getLowYear():
|
if pdday and bday and pdday.getHighYear()+3 < bday.getLowYear():
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if pdday.getYearValid():
|
if pdday and pdday.getYearValid():
|
||||||
# reject if parents deathday + 150 < childs death date
|
# reject if parents deathday + 150 < childs death date
|
||||||
if pdday.getHighYear() + 150 < dday.getLowYear():
|
if pdday.getHighYear() + 150 < dday.getLowYear():
|
||||||
continue
|
continue
|
||||||
@ -463,7 +502,7 @@ class ChooseParents:
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
import EditPerson
|
import EditPerson
|
||||||
EditPerson.EditPerson(person,self.db,self.add_new_parent)
|
EditPerson.EditPerson(self.parent, person,self.db,self.add_new_parent)
|
||||||
except:
|
except:
|
||||||
import DisplayTrace
|
import DisplayTrace
|
||||||
DisplayTrace.DisplayTrace()
|
DisplayTrace.DisplayTrace()
|
||||||
|
@ -528,11 +528,14 @@ class EditPerson:
|
|||||||
flist = [self.person.get_main_parents_family_id()]
|
flist = [self.person.get_main_parents_family_id()]
|
||||||
for (fam,mrel,frel) in self.person.get_parent_family_id_list():
|
for (fam,mrel,frel) in self.person.get_parent_family_id_list():
|
||||||
flist.append(fam)
|
flist.append(fam)
|
||||||
for fam in flist:
|
for fam_id in flist:
|
||||||
|
fam = self.db.find_family_from_id(fam_id)
|
||||||
if fam == None:
|
if fam == None:
|
||||||
continue
|
continue
|
||||||
f = fam.get_father_id()
|
f_id = fam.get_father_id()
|
||||||
m = fam.get_mother_id()
|
m_id = fam.get_mother_id()
|
||||||
|
f = self.db.find_person_from_id(f_id)
|
||||||
|
m = self.db.find_person_from_id(m_id)
|
||||||
if f and m:
|
if f and m:
|
||||||
name = _("%(father)s and %(mother)s") % {
|
name = _("%(father)s and %(mother)s") % {
|
||||||
'father' : GrampsCfg.nameof(f),
|
'father' : GrampsCfg.nameof(f),
|
||||||
@ -1223,10 +1226,11 @@ class EditPerson:
|
|||||||
self.event_cause_field.set_text(event.get_cause())
|
self.event_cause_field.set_text(event.get_cause())
|
||||||
self.event_descr_field.set_text(short(event.get_description()))
|
self.event_descr_field.set_text(short(event.get_description()))
|
||||||
if len(event.get_source_references()) > 0:
|
if len(event.get_source_references()) > 0:
|
||||||
psrc_id = event.get_source_references()[0].get_base_id()
|
psrc_ref = event.get_source_references()[0]
|
||||||
|
psrc_id = psrc_ref.get_base_id()
|
||||||
psrc = self.db.find_source_from_id(psrc_id)
|
psrc = self.db.find_source_from_id(psrc_id)
|
||||||
self.event_src_field.set_text(short(psrc.get_base_id().get_title()))
|
self.event_src_field.set_text(short(psrc.get_title()))
|
||||||
self.event_conf_field.set_text(const.confidence[psrc.get_confidence_level()])
|
self.event_conf_field.set_text(const.confidence[psrc_ref.get_confidence_level()])
|
||||||
else:
|
else:
|
||||||
self.event_src_field.set_text('')
|
self.event_src_field.set_text('')
|
||||||
self.event_conf_field.set_text('')
|
self.event_conf_field.set_text('')
|
||||||
@ -1255,10 +1259,11 @@ class EditPerson:
|
|||||||
self.addr_postal.set_text(addr.get_postal_code())
|
self.addr_postal.set_text(addr.get_postal_code())
|
||||||
self.addr_phone.set_text(addr.get_phone())
|
self.addr_phone.set_text(addr.get_phone())
|
||||||
if len(addr.get_source_references()) > 0:
|
if len(addr.get_source_references()) > 0:
|
||||||
psrc_id = addr.get_source_references()[0].get_base_id()
|
psrc_ref = addr.get_source_references()[0]
|
||||||
|
psrc_id = psrc_ref.get_base_id()
|
||||||
psrc = self.db.find_source_from_id(psrc_id)
|
psrc = self.db.find_source_from_id(psrc_id)
|
||||||
self.addr_conf_field.set_text(const.confidence[psrc.get_confidence_level()])
|
self.addr_conf_field.set_text(const.confidence[psrc_ref.get_confidence_level()])
|
||||||
self.addr_src_field.set_text(short(psrc.get_base_id().get_title()))
|
self.addr_src_field.set_text(short(psrc.get_title()))
|
||||||
else:
|
else:
|
||||||
self.addr_src_field.set_text('')
|
self.addr_src_field.set_text('')
|
||||||
self.addr_conf_field.set_text('')
|
self.addr_conf_field.set_text('')
|
||||||
@ -1335,10 +1340,11 @@ class EditPerson:
|
|||||||
self.attr_type.set_text(const.display_pattr(attr.get_type()))
|
self.attr_type.set_text(const.display_pattr(attr.get_type()))
|
||||||
self.attr_value.set_text(short(attr.get_value()))
|
self.attr_value.set_text(short(attr.get_value()))
|
||||||
if len(attr.get_source_references()) > 0:
|
if len(attr.get_source_references()) > 0:
|
||||||
psrc_id = attr.get_source_references()[0].get_base_id()
|
psrc_ref = attr.get_source_references()[0]
|
||||||
|
psrc_id = psrc_ref.get_base_id()
|
||||||
psrc = self.db.find_source_from_id(psrc_id)
|
psrc = self.db.find_source_from_id(psrc_id)
|
||||||
self.attr_src_field.set_text(short(psrc.get_base_id().get_title()))
|
self.attr_src_field.set_text(short(psrc.get_title()))
|
||||||
self.attr_conf_field.set_text(const.confidence[psrc.get_confidence_level()])
|
self.attr_conf_field.set_text(const.confidence[psrc_ref.get_confidence_level()])
|
||||||
else:
|
else:
|
||||||
self.attr_src_field.set_text('')
|
self.attr_src_field.set_text('')
|
||||||
self.attr_conf_field.set_text('')
|
self.attr_conf_field.set_text('')
|
||||||
|
@ -49,9 +49,11 @@ from gettext import gettext as _
|
|||||||
|
|
||||||
class EditSource:
|
class EditSource:
|
||||||
|
|
||||||
def __init__(self,source,db,parent_window=None,func=None):
|
def __init__(self,source,db,parent,parent_window=None,func=None):
|
||||||
self.source = source
|
self.source = source
|
||||||
self.db = db
|
self.db = db
|
||||||
|
self.parent = parent
|
||||||
|
self.child_windows = []
|
||||||
self.callback = func
|
self.callback = func
|
||||||
self.path = db.get_save_path()
|
self.path = db.get_save_path()
|
||||||
self.not_loaded = 1
|
self.not_loaded = 1
|
||||||
@ -105,6 +107,9 @@ class EditSource:
|
|||||||
"on_editphoto_clicked" : self.gallery.on_edit_photo_clicked,
|
"on_editphoto_clicked" : self.gallery.on_edit_photo_clicked,
|
||||||
"on_edit_properties_clicked": self.gallery.popup_change_description,
|
"on_edit_properties_clicked": self.gallery.popup_change_description,
|
||||||
"on_sourceEditor_help_clicked" : self.on_help_clicked,
|
"on_sourceEditor_help_clicked" : self.on_help_clicked,
|
||||||
|
"on_sourceEditor_ok_clicked" : self.on_source_apply_clicked,
|
||||||
|
"on_sourceEditor_cancel_clicked" : self.close,
|
||||||
|
"on_sourceEditor_delete_event" : self.on_delete_event,
|
||||||
})
|
})
|
||||||
|
|
||||||
if self.source.get_id() == "":
|
if self.source.get_id() == "":
|
||||||
@ -115,21 +120,57 @@ class EditSource:
|
|||||||
self.top.set_transient_for(parent_window)
|
self.top.set_transient_for(parent_window)
|
||||||
|
|
||||||
self.display_references()
|
self.display_references()
|
||||||
|
if parent_window:
|
||||||
|
self.top.set_transient_for(parent_window)
|
||||||
|
self.parent.child_windows.append(self)
|
||||||
|
self.add_itself_to_menu()
|
||||||
self.top.show()
|
self.top.show()
|
||||||
self.val = self.top.run()
|
|
||||||
if self.val == gtk.RESPONSE_OK:
|
def on_delete_event(self,obj,b):
|
||||||
self.on_source_apply_clicked()
|
self.close_child_windows()
|
||||||
self.top.destroy()
|
self.remove_itself_from_menu()
|
||||||
|
|
||||||
def on_help_clicked(self,obj):
|
def on_help_clicked(self,obj):
|
||||||
"""Display the relevant portion of GRAMPS manual"""
|
"""Display the relevant portion of GRAMPS manual"""
|
||||||
gnome.help_display('gramps-manual','gramps-edit-complete')
|
gnome.help_display('gramps-manual','gramps-edit-complete')
|
||||||
self.val = self.top.run()
|
|
||||||
|
|
||||||
def close(self,obj):
|
def close(self,obj):
|
||||||
self.gallery.close(self.gallery_ok)
|
self.gallery.close(self.gallery_ok)
|
||||||
|
self.close_child_windows()
|
||||||
|
self.remove_itself_from_menu()
|
||||||
self.top.destroy()
|
self.top.destroy()
|
||||||
|
|
||||||
|
def close_child_windows(self):
|
||||||
|
for child_window in self.child_windows:
|
||||||
|
child_window.close(None)
|
||||||
|
self.child_windows = []
|
||||||
|
|
||||||
|
def add_itself_to_menu(self):
|
||||||
|
if not self.source:
|
||||||
|
label = _("New Source")
|
||||||
|
else:
|
||||||
|
label = self.source.get_title()
|
||||||
|
if not label.strip():
|
||||||
|
label = _("New Source")
|
||||||
|
label = "%s: %s" % (_('Source'),label)
|
||||||
|
self.parent_menu_item = gtk.MenuItem(label)
|
||||||
|
self.parent_menu_item.set_submenu(gtk.Menu())
|
||||||
|
self.parent_menu_item.show()
|
||||||
|
self.parent.menu.append(self.parent_menu_item)
|
||||||
|
self.menu = self.parent_menu_item.get_submenu()
|
||||||
|
self.menu_item = gtk.MenuItem(_('Source Editor'))
|
||||||
|
self.menu_item.connect("activate",self.present)
|
||||||
|
self.menu_item.show()
|
||||||
|
self.menu.append(self.menu_item)
|
||||||
|
|
||||||
|
def remove_itself_from_menu(self):
|
||||||
|
self.menu_item.destroy()
|
||||||
|
self.menu.destroy()
|
||||||
|
self.parent_menu_item.destroy()
|
||||||
|
|
||||||
|
def present(self,obj):
|
||||||
|
self.top.present()
|
||||||
|
|
||||||
def display_references(self):
|
def display_references(self):
|
||||||
p_event_list = []
|
p_event_list = []
|
||||||
p_attr_list = []
|
p_attr_list = []
|
||||||
@ -148,7 +189,12 @@ class EditSource:
|
|||||||
for key in self.db.get_person_keys():
|
for key in self.db.get_person_keys():
|
||||||
p = self.db.get_person(key)
|
p = self.db.get_person(key)
|
||||||
name = GrampsCfg.nameof(p)
|
name = GrampsCfg.nameof(p)
|
||||||
for v in p.get_event_list() + [p.get_birth(), p.get_death()]:
|
birth_event = self.db.find_event_from_id(p.get_birth_id())
|
||||||
|
death_event = self.db.find_event_from_id(p.get_death_id())
|
||||||
|
for v_id in p.get_event_list() + [p.get_birth_id(), p.get_death_id()]:
|
||||||
|
v = self.db.find_event_from_id(v_id)
|
||||||
|
if not v:
|
||||||
|
continue
|
||||||
for sref in v.get_source_references():
|
for sref in v.get_source_references():
|
||||||
if sref.get_base_id() == self.source.get_id():
|
if sref.get_base_id() == self.source.get_id():
|
||||||
p_event_list.append((name,v.get_name()))
|
p_event_list.append((name,v.get_name()))
|
||||||
@ -170,8 +216,10 @@ class EditSource:
|
|||||||
if sref.get_base_id() == self.source.get_id():
|
if sref.get_base_id() == self.source.get_id():
|
||||||
m_list.append(name)
|
m_list.append(name)
|
||||||
for p in self.db.get_family_id_map().values():
|
for p in self.db.get_family_id_map().values():
|
||||||
f = p.get_father_id()
|
f_id = p.get_father_id()
|
||||||
m = p.get_mother_id()
|
m_id = p.get_mother_id()
|
||||||
|
f = self.db.find_person_from_id(f_id)
|
||||||
|
m = self.db.find_person_from_id(m_id)
|
||||||
if f and m:
|
if f and m:
|
||||||
name = _("%(father)s and %(mother)s") % {
|
name = _("%(father)s and %(mother)s") % {
|
||||||
"father" : GrampsCfg.nameof(f),
|
"father" : GrampsCfg.nameof(f),
|
||||||
@ -180,7 +228,10 @@ class EditSource:
|
|||||||
name = GrampsCfg.nameof(f)
|
name = GrampsCfg.nameof(f)
|
||||||
else:
|
else:
|
||||||
name = GrampsCfg.nameof(m)
|
name = GrampsCfg.nameof(m)
|
||||||
for v in p.get_event_list():
|
for v_id in p.get_event_list():
|
||||||
|
v = self.db.find_event_from_id(v_id)
|
||||||
|
if not v:
|
||||||
|
continue
|
||||||
for sref in v.get_source_references():
|
for sref in v.get_source_references():
|
||||||
if sref.get_base_id() == self.source.get_id():
|
if sref.get_base_id() == self.source.get_id():
|
||||||
f_event_list.append((name,v.get_name()))
|
f_event_list.append((name,v.get_name()))
|
||||||
@ -235,7 +286,7 @@ class EditSource:
|
|||||||
|
|
||||||
self.ref_not_loaded = 0
|
self.ref_not_loaded = 0
|
||||||
|
|
||||||
def on_source_apply_clicked(self):
|
def on_source_apply_clicked(self,obj):
|
||||||
|
|
||||||
title = unicode(self.title.get_text())
|
title = unicode(self.title.get_text())
|
||||||
author = unicode(self.author.get_text())
|
author = unicode(self.author.get_text())
|
||||||
@ -273,10 +324,10 @@ class EditSource:
|
|||||||
Utils.modified()
|
Utils.modified()
|
||||||
|
|
||||||
self.gallery_ok = 1
|
self.gallery_ok = 1
|
||||||
self.close(None)
|
|
||||||
|
|
||||||
if self.callback:
|
if self.callback:
|
||||||
self.callback(self.source)
|
self.callback(self.source)
|
||||||
|
self.close(obj)
|
||||||
|
|
||||||
def on_switch_page(self,obj,a,page):
|
def on_switch_page(self,obj,a,page):
|
||||||
if page == 2 and self.not_loaded:
|
if page == 2 and self.not_loaded:
|
||||||
|
@ -467,7 +467,7 @@ class FamilyView:
|
|||||||
return
|
return
|
||||||
child = self.parent.db.get_person(self.child_model.get_value(iter,2))
|
child = self.parent.db.get_person(self.child_model.get_value(iter,2))
|
||||||
try:
|
try:
|
||||||
EditPerson.EditPerson(child, self.parent.db, self.spouse_after_edit)
|
EditPerson.EditPerson(self.parent, child, self.parent.db, self.spouse_after_edit)
|
||||||
except:
|
except:
|
||||||
DisplayTrace.DisplayTrace()
|
DisplayTrace.DisplayTrace()
|
||||||
|
|
||||||
@ -536,7 +536,7 @@ class FamilyView:
|
|||||||
def edit_spouse_callback(self,obj):
|
def edit_spouse_callback(self,obj):
|
||||||
if self.selected_spouse:
|
if self.selected_spouse:
|
||||||
try:
|
try:
|
||||||
EditPerson.EditPerson(self.selected_spouse, self.parent.db, self.spouse_after_edit)
|
EditPerson.EditPerson(self.parent, self.selected_spouse, self.parent.db, self.spouse_after_edit)
|
||||||
except:
|
except:
|
||||||
DisplayTrace.DisplayTrace()
|
DisplayTrace.DisplayTrace()
|
||||||
|
|
||||||
@ -564,7 +564,7 @@ class FamilyView:
|
|||||||
self.parent.new_after_edit,
|
self.parent.new_after_edit,
|
||||||
self.load_family)
|
self.load_family)
|
||||||
else:
|
else:
|
||||||
AddSpouse.AddSpouse(self.parent.db,self.person,
|
AddSpouse.AddSpouse(self.parent,self.parent.db,self.person,
|
||||||
self.load_family,
|
self.load_family,
|
||||||
self.parent.people_view.redisplay_person_list,
|
self.parent.people_view.redisplay_person_list,
|
||||||
self.family)
|
self.family)
|
||||||
@ -575,7 +575,7 @@ class FamilyView:
|
|||||||
if not self.person:
|
if not self.person:
|
||||||
return
|
return
|
||||||
try:
|
try:
|
||||||
AddSpouse.AddSpouse(self.parent.db, self.person,
|
AddSpouse.AddSpouse(self.parent, self.parent.db, self.person,
|
||||||
self.load_family,
|
self.load_family,
|
||||||
self.parent.people_view.redisplay_person_list)
|
self.parent.people_view.redisplay_person_list)
|
||||||
except:
|
except:
|
||||||
@ -588,7 +588,7 @@ class FamilyView:
|
|||||||
else:
|
else:
|
||||||
person.set_gender(RelLib.Person.male)
|
person.set_gender(RelLib.Person.male)
|
||||||
try:
|
try:
|
||||||
EditPerson.EditPerson(person, self.parent.db, self.new_spouse_after_edit)
|
EditPerson.EditPerson(self.parent, person, self.parent.db, self.new_spouse_after_edit)
|
||||||
except:
|
except:
|
||||||
DisplayTrace.DisplayTrace()
|
DisplayTrace.DisplayTrace()
|
||||||
|
|
||||||
@ -648,7 +648,7 @@ class FamilyView:
|
|||||||
person.get_primary_name().set_surname_prefix(name[0])
|
person.get_primary_name().set_surname_prefix(name[0])
|
||||||
|
|
||||||
try:
|
try:
|
||||||
EditPerson.EditPerson(person, self.parent.db, self.new_child_after_edit)
|
EditPerson.EditPerson(self.parent, person, self.parent.db, self.new_child_after_edit)
|
||||||
except:
|
except:
|
||||||
DisplayTrace.DisplayTrace()
|
DisplayTrace.DisplayTrace()
|
||||||
|
|
||||||
@ -1175,7 +1175,7 @@ class FamilyView:
|
|||||||
if not person:
|
if not person:
|
||||||
return
|
return
|
||||||
try:
|
try:
|
||||||
ChooseParents.ChooseParents(self.parent.db,person,None,
|
ChooseParents.ChooseParents(self.parent, self.parent.db,person,None,
|
||||||
self.load_family,
|
self.load_family,
|
||||||
self.parent.full_update)
|
self.parent.full_update)
|
||||||
except:
|
except:
|
||||||
|
@ -260,6 +260,7 @@ class Gallery(ImageSelect):
|
|||||||
|
|
||||||
def close(self,ok=0):
|
def close(self,ok=0):
|
||||||
self.iconlist.hide()
|
self.iconlist.hide()
|
||||||
|
if self.canvas_list:
|
||||||
for a in self.canvas_list.values():
|
for a in self.canvas_list.values():
|
||||||
a[0].destroy()
|
a[0].destroy()
|
||||||
a[1].destroy()
|
a[1].destroy()
|
||||||
|
@ -51,7 +51,8 @@ from gettext import gettext as _
|
|||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
class MergePeople:
|
class MergePeople:
|
||||||
|
|
||||||
def __init__(self,db,person1,person2,update,ep_update=None):
|
def __init__(self,parent,db,person1,person2,update,ep_update=None):
|
||||||
|
self.parent = parent
|
||||||
self.db = db
|
self.db = db
|
||||||
self.p1 = person1
|
self.p1 = person1
|
||||||
self.p2 = person2
|
self.p2 = person2
|
||||||
@ -213,7 +214,7 @@ class MergePeople:
|
|||||||
import EditPerson
|
import EditPerson
|
||||||
self.on_merge_clicked(obj)
|
self.on_merge_clicked(obj)
|
||||||
# This needs to be fixed to provide an update call
|
# This needs to be fixed to provide an update call
|
||||||
EditPerson.EditPerson(self.p1,self.db,self.ep_update)
|
EditPerson.EditPerson(self.parent,self.p1,self.db,self.ep_update)
|
||||||
|
|
||||||
def copy_note(self,one,two):
|
def copy_note(self,one,two):
|
||||||
if one.get_note() != two.get_note():
|
if one.get_note() != two.get_note():
|
||||||
|
@ -46,7 +46,6 @@ class NoteEditor:
|
|||||||
|
|
||||||
self.data = data
|
self.data = data
|
||||||
self.parent_window = parent_window
|
self.parent_window = parent_window
|
||||||
self.child_windows = []
|
|
||||||
self.parent = parent
|
self.parent = parent
|
||||||
self.draw()
|
self.draw()
|
||||||
|
|
||||||
|
@ -1695,6 +1695,21 @@ class Event(DataObj):
|
|||||||
return 0
|
return 0
|
||||||
index = index + 1
|
index = index + 1
|
||||||
|
|
||||||
|
witness_list = self.get_witness_list()
|
||||||
|
other_list = other.get_witness_list()
|
||||||
|
if (not witness_list) and (not other_list):
|
||||||
|
return 1
|
||||||
|
elif not (witness_list and other_list):
|
||||||
|
return 0
|
||||||
|
other_list = other_list[:]
|
||||||
|
for a in witness_list:
|
||||||
|
if a in other_list:
|
||||||
|
other_list.remove(a)
|
||||||
|
else:
|
||||||
|
return 0
|
||||||
|
if other_list:
|
||||||
|
return 0
|
||||||
|
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
def set_name(self,name):
|
def set_name(self,name):
|
||||||
@ -2237,7 +2252,9 @@ class GenderStats:
|
|||||||
|
|
||||||
return Person.unknown
|
return Person.unknown
|
||||||
|
|
||||||
|
try: # First try python2.3 and later: this is the future
|
||||||
|
from bsddb import dbshelve, db
|
||||||
|
except ImportError: # try python2.2
|
||||||
from bsddb3 import dbshelve, db
|
from bsddb3 import dbshelve, db
|
||||||
|
|
||||||
class GrampsDB:
|
class GrampsDB:
|
||||||
|
@ -341,7 +341,7 @@ class SourceEditor:
|
|||||||
|
|
||||||
def close_child_windows(self):
|
def close_child_windows(self):
|
||||||
for child_window in self.child_windows:
|
for child_window in self.child_windows:
|
||||||
child_window.close()
|
child_window.close(None)
|
||||||
self.child_windows = []
|
self.child_windows = []
|
||||||
|
|
||||||
def add_itself_to_menu(self):
|
def add_itself_to_menu(self):
|
||||||
@ -482,7 +482,7 @@ class SourceEditor:
|
|||||||
|
|
||||||
def add_src_clicked(self,obj):
|
def add_src_clicked(self,obj):
|
||||||
import EditSource
|
import EditSource
|
||||||
EditSource.EditSource(RelLib.Source(),self.db, self.sourceDisplay, self.update_display)
|
EditSource.EditSource(RelLib.Source(),self.db, self,self.sourceDisplay, self.update_display)
|
||||||
|
|
||||||
|
|
||||||
def by_title(first,second):
|
def by_title(first,second):
|
||||||
|
@ -28,6 +28,7 @@
|
|||||||
import gobject
|
import gobject
|
||||||
import gtk
|
import gtk
|
||||||
import gtk.glade
|
import gtk.glade
|
||||||
|
import gnome
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
@ -89,10 +90,10 @@ class WitnessTab:
|
|||||||
if iter:
|
if iter:
|
||||||
objs = self.model.get_selected_objects()
|
objs = self.model.get_selected_objects()
|
||||||
src = objs[0]
|
src = objs[0]
|
||||||
WitnessEditor(src,self.db,self.update_clist,self)
|
WitnessEditor(src,self.db,self,self.update_clist,self.window)
|
||||||
|
|
||||||
def add_clicked(self,obj):
|
def add_clicked(self,obj):
|
||||||
WitnessEditor(None,self.db,self.update_clist,self,self.window)
|
WitnessEditor(None,self.db,self,self.update_clist,self.window)
|
||||||
|
|
||||||
def add_ref(self,inst,ref):
|
def add_ref(self,inst,ref):
|
||||||
self.parent.lists_changed = 1
|
self.parent.lists_changed = 1
|
||||||
@ -113,7 +114,7 @@ class WitnessTab:
|
|||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
class WitnessEditor:
|
class WitnessEditor:
|
||||||
|
|
||||||
def __init__(self,ref,database,update=None,parent=None,parent_window=None):
|
def __init__(self,ref,database,parent,update=None,parent_window=None):
|
||||||
|
|
||||||
self.db = database
|
self.db = database
|
||||||
self.parent = parent
|
self.parent = parent
|
||||||
@ -122,6 +123,10 @@ class WitnessEditor:
|
|||||||
self.show_witness = gtk.glade.XML(const.dialogFile, "witness_edit","gramps")
|
self.show_witness = gtk.glade.XML(const.dialogFile, "witness_edit","gramps")
|
||||||
self.show_witness.signal_autoconnect({
|
self.show_witness.signal_autoconnect({
|
||||||
"on_toggled" : self.on_toggled,
|
"on_toggled" : self.on_toggled,
|
||||||
|
"on_witness_edit_delete_event" : self.on_delete_event,
|
||||||
|
"on_cancel_witness_clicked" : self.close,
|
||||||
|
"on_help_witness_clicked" : self.on_help_clicked,
|
||||||
|
"on_ok_witness_clicked" : self.ok_clicked,
|
||||||
})
|
})
|
||||||
|
|
||||||
self.window = self.show_witness.get_widget('witness_edit')
|
self.window = self.show_witness.get_widget('witness_edit')
|
||||||
@ -136,7 +141,7 @@ class WitnessEditor:
|
|||||||
if self.ref.get_type():
|
if self.ref.get_type():
|
||||||
self.in_db.set_active(1)
|
self.in_db.set_active(1)
|
||||||
self.idval = self.ref.get_value()
|
self.idval = self.ref.get_value()
|
||||||
person = self.db.get_person(self.idval)
|
person = self.db.find_person_from_id(self.idval)
|
||||||
self.name.set_text(person.get_primary_name().get_regular_name())
|
self.name.set_text(person.get_primary_name().get_regular_name())
|
||||||
else:
|
else:
|
||||||
self.name.set_text(self.ref.get_value())
|
self.name.set_text(self.ref.get_value())
|
||||||
@ -150,11 +155,33 @@ class WitnessEditor:
|
|||||||
|
|
||||||
if parent_window:
|
if parent_window:
|
||||||
self.window.set_transient_for(parent_window)
|
self.window.set_transient_for(parent_window)
|
||||||
val = self.window.run()
|
self.parent.parent.child_windows.append(self)
|
||||||
if val == gtk.RESPONSE_OK:
|
self.add_itself_to_menu()
|
||||||
self.ok_clicked()
|
self.window.show()
|
||||||
|
|
||||||
|
def on_delete_event(self,obj,b):
|
||||||
|
self.remove_itself_from_menu()
|
||||||
|
|
||||||
|
def close(self,obj):
|
||||||
|
self.remove_itself_from_menu()
|
||||||
self.window.destroy()
|
self.window.destroy()
|
||||||
|
|
||||||
|
def add_itself_to_menu(self):
|
||||||
|
self.parent_menu_item = gtk.MenuItem(_('Witness Editor'))
|
||||||
|
self.parent_menu_item.connect("activate",self.present)
|
||||||
|
self.parent_menu_item.show()
|
||||||
|
self.parent.parent.menu.append(self.parent_menu_item)
|
||||||
|
|
||||||
|
def remove_itself_from_menu(self):
|
||||||
|
self.parent_menu_item.destroy()
|
||||||
|
|
||||||
|
def present(self,obj):
|
||||||
|
self.window.present()
|
||||||
|
|
||||||
|
def on_help_clicked(self,obj):
|
||||||
|
"""Display the relevant portion of GRAMPS manual"""
|
||||||
|
gnome.help_display('gramps-manual','gramps-edit-complete')
|
||||||
|
|
||||||
def choose(self,obj):
|
def choose(self,obj):
|
||||||
import SelectPerson
|
import SelectPerson
|
||||||
sel_person = SelectPerson.SelectPerson(self.db,_('Select Person'),parent_window=self.window)
|
sel_person = SelectPerson.SelectPerson(self.db,_('Select Person'),parent_window=self.window)
|
||||||
@ -176,7 +203,7 @@ class WitnessEditor:
|
|||||||
self.name.set_sensitive(1)
|
self.name.set_sensitive(1)
|
||||||
self.select.set_sensitive(0)
|
self.select.set_sensitive(0)
|
||||||
|
|
||||||
def ok_clicked(self):
|
def ok_clicked(self,obj):
|
||||||
if not self.ref:
|
if not self.ref:
|
||||||
if self.in_db.get_active():
|
if self.in_db.get_active():
|
||||||
self.ref = RelLib.Witness(RelLib.Event.ID)
|
self.ref = RelLib.Witness(RelLib.Event.ID)
|
||||||
@ -186,10 +213,13 @@ class WitnessEditor:
|
|||||||
|
|
||||||
if self.in_db.get_active():
|
if self.in_db.get_active():
|
||||||
self.ref.set_value(self.idval)
|
self.ref.set_value(self.idval)
|
||||||
|
self.ref.set_type(RelLib.Event.ID)
|
||||||
else:
|
else:
|
||||||
self.ref.set_value(unicode(self.name.get_text()))
|
self.ref.set_value(unicode(self.name.get_text()))
|
||||||
|
self.ref.set_type(RelLib.Event.NAME)
|
||||||
|
|
||||||
c = self.comment.get_buffer()
|
c = self.comment.get_buffer()
|
||||||
self.ref.set_comment(unicode(c.get_text(c.get_start_iter(),c.get_end_iter(),gtk.FALSE)))
|
self.ref.set_comment(unicode(c.get_text(c.get_start_iter(),c.get_end_iter(),gtk.FALSE)))
|
||||||
if self.update:
|
if self.update:
|
||||||
self.update()
|
self.update()
|
||||||
|
self.close(obj)
|
||||||
|
@ -4154,6 +4154,7 @@
|
|||||||
<property name="destroy_with_parent">False</property>
|
<property name="destroy_with_parent">False</property>
|
||||||
<property name="icon">gramps.png</property>
|
<property name="icon">gramps.png</property>
|
||||||
<property name="has_separator">False</property>
|
<property name="has_separator">False</property>
|
||||||
|
<signal name="delete_event" handler="on_witness_edit_delete_event" last_modification_time="Sat, 21 Feb 2004 04:10:13 GMT"/>
|
||||||
|
|
||||||
<child internal-child="vbox">
|
<child internal-child="vbox">
|
||||||
<widget class="GtkVBox" id="dialog-vbox2">
|
<widget class="GtkVBox" id="dialog-vbox2">
|
||||||
@ -4175,6 +4176,7 @@
|
|||||||
<property name="use_stock">True</property>
|
<property name="use_stock">True</property>
|
||||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
<property name="response_id">-6</property>
|
<property name="response_id">-6</property>
|
||||||
|
<signal name="clicked" handler="on_cancel_witness_clicked" last_modification_time="Sat, 21 Feb 2004 04:10:38 GMT"/>
|
||||||
</widget>
|
</widget>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
@ -4187,6 +4189,7 @@
|
|||||||
<property name="use_stock">True</property>
|
<property name="use_stock">True</property>
|
||||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
<property name="response_id">-5</property>
|
<property name="response_id">-5</property>
|
||||||
|
<signal name="clicked" handler="on_ok_witness_clicked" last_modification_time="Sat, 21 Feb 2004 04:11:00 GMT"/>
|
||||||
</widget>
|
</widget>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
|
@ -5548,6 +5548,7 @@
|
|||||||
<property name="destroy_with_parent">False</property>
|
<property name="destroy_with_parent">False</property>
|
||||||
<property name="icon">gramps.png</property>
|
<property name="icon">gramps.png</property>
|
||||||
<property name="has_separator">False</property>
|
<property name="has_separator">False</property>
|
||||||
|
<signal name="delete_event" handler="on_sourceEditor_delete_event" last_modification_time="Sat, 21 Feb 2004 02:58:41 GMT"/>
|
||||||
|
|
||||||
<child internal-child="vbox">
|
<child internal-child="vbox">
|
||||||
<widget class="GtkVBox" id="dialog-vbox11">
|
<widget class="GtkVBox" id="dialog-vbox11">
|
||||||
@ -5570,6 +5571,7 @@
|
|||||||
<property name="use_stock">True</property>
|
<property name="use_stock">True</property>
|
||||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
<property name="response_id">-6</property>
|
<property name="response_id">-6</property>
|
||||||
|
<signal name="clicked" handler="on_sourceEditor_cancel_clicked" last_modification_time="Sat, 21 Feb 2004 02:59:20 GMT"/>
|
||||||
</widget>
|
</widget>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
@ -5584,6 +5586,7 @@
|
|||||||
<property name="use_stock">True</property>
|
<property name="use_stock">True</property>
|
||||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
<property name="response_id">-5</property>
|
<property name="response_id">-5</property>
|
||||||
|
<signal name="clicked" handler="on_sourceEditor_ok_clicked" last_modification_time="Sat, 21 Feb 2004 02:59:36 GMT"/>
|
||||||
</widget>
|
</widget>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
|
@ -751,7 +751,7 @@ class Gramps:
|
|||||||
import MergeData
|
import MergeData
|
||||||
p1 = self.db.get_person(mlist[0])
|
p1 = self.db.get_person(mlist[0])
|
||||||
p2 = self.db.get_person(mlist[1])
|
p2 = self.db.get_person(mlist[1])
|
||||||
MergeData.MergePeople(self.db,p1,p2,self.merge_update,
|
MergeData.MergePeople(self,self.db,p1,p2,self.merge_update,
|
||||||
self.update_after_edit)
|
self.update_after_edit)
|
||||||
elif page == PLACE_VIEW:
|
elif page == PLACE_VIEW:
|
||||||
self.place_view.merge()
|
self.place_view.merge()
|
||||||
|
Loading…
Reference in New Issue
Block a user