* 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
e878549bfd
commit
71f8f5476b
16
ChangeLog
16
ChangeLog
@ -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>
|
||||
* src/EditPerson.py: Use parent class. Add/remove itself from/to
|
||||
the Windows menu.
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# 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
|
||||
# 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
|
||||
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.
|
||||
|
||||
@ -74,6 +74,7 @@ class AddSpouse:
|
||||
update - function that updates the family display
|
||||
addperson - function that adds a person to the person view
|
||||
"""
|
||||
self.parent = parent
|
||||
self.db = db
|
||||
self.update = update
|
||||
self.person = person
|
||||
@ -152,7 +153,7 @@ class AddSpouse:
|
||||
|
||||
person = RelLib.Person()
|
||||
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):
|
||||
"""
|
||||
|
@ -66,7 +66,7 @@ class ChooseParents:
|
||||
Displays the Choose Parents dialog box, allowing the parents
|
||||
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.
|
||||
|
||||
@ -76,6 +76,7 @@ class ChooseParents:
|
||||
family_update - task that updates the family display
|
||||
full_update - task that updates the main display
|
||||
"""
|
||||
self.parent = parent
|
||||
self.db = db
|
||||
self.person = person
|
||||
self.family = family
|
||||
@ -85,7 +86,11 @@ class ChooseParents:
|
||||
self.type = ""
|
||||
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:
|
||||
self.father = self.family.get_father_id()
|
||||
@ -166,8 +171,16 @@ class ChooseParents:
|
||||
else:
|
||||
father_id = None
|
||||
|
||||
bday = self.person.get_birth().get_date_object()
|
||||
dday = self.person.get_death().get_date_object()
|
||||
birth_event = self.db.find_event_from_id(self.person.get_birth_id())
|
||||
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 = []
|
||||
for key in self.db.sort_person_keys():
|
||||
@ -180,11 +193,20 @@ class ChooseParents:
|
||||
|
||||
if not self.showallf.get_active():
|
||||
|
||||
pdday = person.get_death().get_date_object()
|
||||
pbday = person.get_birth().get_date_object()
|
||||
|
||||
if bday.getYearValid():
|
||||
if pbday.getYearValid():
|
||||
birth_event = self.db.find_event_from_id(person.get_birth_id())
|
||||
if birth_event:
|
||||
pbday = birth_event.get_date_object()
|
||||
else:
|
||||
pbday = None
|
||||
|
||||
death_event = self.db.find_event_from_id(person.get_death_id())
|
||||
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
|
||||
if pbday.getLowYear()+10 > bday.getHighYear():
|
||||
continue
|
||||
@ -193,18 +215,18 @@ class ChooseParents:
|
||||
if pbday.getHighYear()+90 < bday.getLowYear():
|
||||
continue
|
||||
|
||||
if pdday.getYearValid():
|
||||
if pdday and pdday.getYearValid():
|
||||
# reject if parents birthdate + 10 > child deathdate
|
||||
if pbday.getLowYear()+10 > dday.getHighYear():
|
||||
if dday and pbday.getLowYear()+10 > dday.getHighYear():
|
||||
continue
|
||||
|
||||
if dday.getYearValid():
|
||||
if pbday.getYearValid():
|
||||
if dday and dday.getYearValid():
|
||||
if pbday and pbday.getYearValid():
|
||||
# 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
|
||||
|
||||
if pdday.getYearValid():
|
||||
if pdday and pdday.getYearValid():
|
||||
# reject if parents deathday + 150 < childs death date
|
||||
if pdday.getHighYear() + 150 < dday.getLowYear():
|
||||
continue
|
||||
@ -240,8 +262,16 @@ class ChooseParents:
|
||||
else:
|
||||
mid = None
|
||||
|
||||
bday = self.person.get_birth().get_date_object()
|
||||
dday = self.person.get_death().get_date_object()
|
||||
birth_event = self.db.find_event_from_id(self.person.get_birth_id())
|
||||
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 = []
|
||||
for key in self.db.sort_person_keys():
|
||||
@ -256,11 +286,20 @@ class ChooseParents:
|
||||
|
||||
if not self.showallm.get_active():
|
||||
|
||||
pdday = person.get_death().get_date_object()
|
||||
pbday = person.get_birth().get_date_object()
|
||||
birth_event = self.db.find_event_from_id(person.get_birth_id())
|
||||
if birth_event:
|
||||
pbday = birth_event.get_date_object()
|
||||
else:
|
||||
pbday = None
|
||||
|
||||
death_event = self.db.find_event_from_id(person.get_death_id())
|
||||
if death_event:
|
||||
pdday = death_event.get_date_object()
|
||||
else:
|
||||
pdday = None
|
||||
|
||||
if bday.getYearValid():
|
||||
if pbday.getYearValid():
|
||||
if bday and bday.getYearValid():
|
||||
if pbday and pbday.getYearValid():
|
||||
# reject if parents birthdate + 10 > child birthdate
|
||||
if pbday.getLowYear()+10 > bday.getHighYear():
|
||||
continue
|
||||
@ -269,18 +308,18 @@ class ChooseParents:
|
||||
if pbday.getHighYear()+90 < bday.getLowYear():
|
||||
continue
|
||||
|
||||
if pdday.getYearValid():
|
||||
if pdday and pdday.getYearValid():
|
||||
# reject if parents birthdate + 10 > child deathdate
|
||||
if pbday.getLowYear()+10 > dday.getHighYear():
|
||||
continue
|
||||
|
||||
if dday.getYearValid():
|
||||
if pbday.getYearValid():
|
||||
if dday and dday.getYearValid():
|
||||
if pbday and pbday.getYearValid():
|
||||
# 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
|
||||
|
||||
if pdday.getYearValid():
|
||||
if pdday and pdday.getYearValid():
|
||||
# reject if parents deathday + 150 < childs death date
|
||||
if pdday.getHighYear() + 150 < dday.getLowYear():
|
||||
continue
|
||||
@ -463,7 +502,7 @@ class ChooseParents:
|
||||
|
||||
try:
|
||||
import EditPerson
|
||||
EditPerson.EditPerson(person,self.db,self.add_new_parent)
|
||||
EditPerson.EditPerson(self.parent, person,self.db,self.add_new_parent)
|
||||
except:
|
||||
import DisplayTrace
|
||||
DisplayTrace.DisplayTrace()
|
||||
|
@ -528,11 +528,14 @@ class EditPerson:
|
||||
flist = [self.person.get_main_parents_family_id()]
|
||||
for (fam,mrel,frel) in self.person.get_parent_family_id_list():
|
||||
flist.append(fam)
|
||||
for fam in flist:
|
||||
for fam_id in flist:
|
||||
fam = self.db.find_family_from_id(fam_id)
|
||||
if fam == None:
|
||||
continue
|
||||
f = fam.get_father_id()
|
||||
m = fam.get_mother_id()
|
||||
f_id = fam.get_father_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:
|
||||
name = _("%(father)s and %(mother)s") % {
|
||||
'father' : GrampsCfg.nameof(f),
|
||||
@ -1223,10 +1226,11 @@ class EditPerson:
|
||||
self.event_cause_field.set_text(event.get_cause())
|
||||
self.event_descr_field.set_text(short(event.get_description()))
|
||||
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)
|
||||
self.event_src_field.set_text(short(psrc.get_base_id().get_title()))
|
||||
self.event_conf_field.set_text(const.confidence[psrc.get_confidence_level()])
|
||||
self.event_src_field.set_text(short(psrc.get_title()))
|
||||
self.event_conf_field.set_text(const.confidence[psrc_ref.get_confidence_level()])
|
||||
else:
|
||||
self.event_src_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_phone.set_text(addr.get_phone())
|
||||
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)
|
||||
self.addr_conf_field.set_text(const.confidence[psrc.get_confidence_level()])
|
||||
self.addr_src_field.set_text(short(psrc.get_base_id().get_title()))
|
||||
self.addr_conf_field.set_text(const.confidence[psrc_ref.get_confidence_level()])
|
||||
self.addr_src_field.set_text(short(psrc.get_title()))
|
||||
else:
|
||||
self.addr_src_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_value.set_text(short(attr.get_value()))
|
||||
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)
|
||||
self.attr_src_field.set_text(short(psrc.get_base_id().get_title()))
|
||||
self.attr_conf_field.set_text(const.confidence[psrc.get_confidence_level()])
|
||||
self.attr_src_field.set_text(short(psrc.get_title()))
|
||||
self.attr_conf_field.set_text(const.confidence[psrc_ref.get_confidence_level()])
|
||||
else:
|
||||
self.attr_src_field.set_text('')
|
||||
self.attr_conf_field.set_text('')
|
||||
|
@ -49,15 +49,17 @@ from gettext import gettext as _
|
||||
|
||||
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.db = db
|
||||
self.parent = parent
|
||||
self.child_windows = []
|
||||
self.callback = func
|
||||
self.path = db.get_save_path()
|
||||
self.not_loaded = 1
|
||||
self.ref_not_loaded = 1
|
||||
self.lists_changed = 0
|
||||
self.gallery_ok = 0
|
||||
self.gallery_ok = 0
|
||||
|
||||
self.top_window = gtk.glade.XML(const.gladeFile,"sourceEditor","gramps")
|
||||
self.top = self.top_window.get_widget("sourceEditor")
|
||||
@ -90,7 +92,7 @@ class EditSource:
|
||||
self.notes_buffer.set_text(source.get_note())
|
||||
Utils.bold_label(self.notes_label)
|
||||
if source.get_note_format() == 1:
|
||||
self.preform.set_active(1)
|
||||
self.preform.set_active(1)
|
||||
else:
|
||||
self.flowed.set_active(1)
|
||||
|
||||
@ -105,6 +107,9 @@ class EditSource:
|
||||
"on_editphoto_clicked" : self.gallery.on_edit_photo_clicked,
|
||||
"on_edit_properties_clicked": self.gallery.popup_change_description,
|
||||
"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() == "":
|
||||
@ -115,21 +120,57 @@ class EditSource:
|
||||
self.top.set_transient_for(parent_window)
|
||||
|
||||
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.val = self.top.run()
|
||||
if self.val == gtk.RESPONSE_OK:
|
||||
self.on_source_apply_clicked()
|
||||
self.top.destroy()
|
||||
|
||||
def on_delete_event(self,obj,b):
|
||||
self.close_child_windows()
|
||||
self.remove_itself_from_menu()
|
||||
|
||||
def on_help_clicked(self,obj):
|
||||
"""Display the relevant portion of GRAMPS manual"""
|
||||
gnome.help_display('gramps-manual','gramps-edit-complete')
|
||||
self.val = self.top.run()
|
||||
|
||||
def close(self,obj):
|
||||
self.gallery.close(self.gallery_ok)
|
||||
self.close_child_windows()
|
||||
self.remove_itself_from_menu()
|
||||
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):
|
||||
p_event_list = []
|
||||
p_attr_list = []
|
||||
@ -148,7 +189,12 @@ class EditSource:
|
||||
for key in self.db.get_person_keys():
|
||||
p = self.db.get_person(key)
|
||||
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():
|
||||
if sref.get_base_id() == self.source.get_id():
|
||||
p_event_list.append((name,v.get_name()))
|
||||
@ -170,8 +216,10 @@ class EditSource:
|
||||
if sref.get_base_id() == self.source.get_id():
|
||||
m_list.append(name)
|
||||
for p in self.db.get_family_id_map().values():
|
||||
f = p.get_father_id()
|
||||
m = p.get_mother_id()
|
||||
f_id = p.get_father_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:
|
||||
name = _("%(father)s and %(mother)s") % {
|
||||
"father" : GrampsCfg.nameof(f),
|
||||
@ -180,7 +228,10 @@ class EditSource:
|
||||
name = GrampsCfg.nameof(f)
|
||||
else:
|
||||
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():
|
||||
if sref.get_base_id() == self.source.get_id():
|
||||
f_event_list.append((name,v.get_name()))
|
||||
@ -235,7 +286,7 @@ class EditSource:
|
||||
|
||||
self.ref_not_loaded = 0
|
||||
|
||||
def on_source_apply_clicked(self):
|
||||
def on_source_apply_clicked(self,obj):
|
||||
|
||||
title = unicode(self.title.get_text())
|
||||
author = unicode(self.author.get_text())
|
||||
@ -269,14 +320,14 @@ class EditSource:
|
||||
self.source.set_note_format(format)
|
||||
Utils.modified()
|
||||
|
||||
if self.lists_changed:
|
||||
if self.lists_changed:
|
||||
Utils.modified()
|
||||
|
||||
self.gallery_ok = 1
|
||||
self.close(None)
|
||||
self.gallery_ok = 1
|
||||
|
||||
if self.callback:
|
||||
self.callback(self.source)
|
||||
self.close(obj)
|
||||
|
||||
def on_switch_page(self,obj,a,page):
|
||||
if page == 2 and self.not_loaded:
|
||||
|
@ -467,7 +467,7 @@ class FamilyView:
|
||||
return
|
||||
child = self.parent.db.get_person(self.child_model.get_value(iter,2))
|
||||
try:
|
||||
EditPerson.EditPerson(child, self.parent.db, self.spouse_after_edit)
|
||||
EditPerson.EditPerson(self.parent, child, self.parent.db, self.spouse_after_edit)
|
||||
except:
|
||||
DisplayTrace.DisplayTrace()
|
||||
|
||||
@ -536,7 +536,7 @@ class FamilyView:
|
||||
def edit_spouse_callback(self,obj):
|
||||
if self.selected_spouse:
|
||||
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:
|
||||
DisplayTrace.DisplayTrace()
|
||||
|
||||
@ -564,7 +564,7 @@ class FamilyView:
|
||||
self.parent.new_after_edit,
|
||||
self.load_family)
|
||||
else:
|
||||
AddSpouse.AddSpouse(self.parent.db,self.person,
|
||||
AddSpouse.AddSpouse(self.parent,self.parent.db,self.person,
|
||||
self.load_family,
|
||||
self.parent.people_view.redisplay_person_list,
|
||||
self.family)
|
||||
@ -575,7 +575,7 @@ class FamilyView:
|
||||
if not self.person:
|
||||
return
|
||||
try:
|
||||
AddSpouse.AddSpouse(self.parent.db, self.person,
|
||||
AddSpouse.AddSpouse(self.parent, self.parent.db, self.person,
|
||||
self.load_family,
|
||||
self.parent.people_view.redisplay_person_list)
|
||||
except:
|
||||
@ -588,7 +588,7 @@ class FamilyView:
|
||||
else:
|
||||
person.set_gender(RelLib.Person.male)
|
||||
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:
|
||||
DisplayTrace.DisplayTrace()
|
||||
|
||||
@ -648,7 +648,7 @@ class FamilyView:
|
||||
person.get_primary_name().set_surname_prefix(name[0])
|
||||
|
||||
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:
|
||||
DisplayTrace.DisplayTrace()
|
||||
|
||||
@ -1175,7 +1175,7 @@ class FamilyView:
|
||||
if not person:
|
||||
return
|
||||
try:
|
||||
ChooseParents.ChooseParents(self.parent.db,person,None,
|
||||
ChooseParents.ChooseParents(self.parent, self.parent.db,person,None,
|
||||
self.load_family,
|
||||
self.parent.full_update)
|
||||
except:
|
||||
|
@ -260,10 +260,11 @@ class Gallery(ImageSelect):
|
||||
|
||||
def close(self,ok=0):
|
||||
self.iconlist.hide()
|
||||
for a in self.canvas_list.values():
|
||||
a[0].destroy()
|
||||
a[1].destroy()
|
||||
a[2].destroy()
|
||||
if self.canvas_list:
|
||||
for a in self.canvas_list.values():
|
||||
a[0].destroy()
|
||||
a[1].destroy()
|
||||
a[2].destroy()
|
||||
self.p_map = None
|
||||
self.canvas_list = None
|
||||
# restore old photo list, in case we removed some and then
|
||||
|
@ -51,7 +51,8 @@ from gettext import gettext as _
|
||||
#-------------------------------------------------------------------------
|
||||
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.p1 = person1
|
||||
self.p2 = person2
|
||||
@ -213,7 +214,7 @@ class MergePeople:
|
||||
import EditPerson
|
||||
self.on_merge_clicked(obj)
|
||||
# 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):
|
||||
if one.get_note() != two.get_note():
|
||||
|
@ -46,7 +46,6 @@ class NoteEditor:
|
||||
|
||||
self.data = data
|
||||
self.parent_window = parent_window
|
||||
self.child_windows = []
|
||||
self.parent = parent
|
||||
self.draw()
|
||||
|
||||
|
@ -1695,6 +1695,21 @@ class Event(DataObj):
|
||||
return 0
|
||||
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
|
||||
|
||||
def set_name(self,name):
|
||||
@ -2237,8 +2252,10 @@ class GenderStats:
|
||||
|
||||
return Person.unknown
|
||||
|
||||
|
||||
from bsddb3 import dbshelve, db
|
||||
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
|
||||
|
||||
class GrampsDB:
|
||||
"""GRAMPS database object. This object is a base class for other
|
||||
|
@ -341,7 +341,7 @@ class SourceEditor:
|
||||
|
||||
def close_child_windows(self):
|
||||
for child_window in self.child_windows:
|
||||
child_window.close()
|
||||
child_window.close(None)
|
||||
self.child_windows = []
|
||||
|
||||
def add_itself_to_menu(self):
|
||||
@ -482,7 +482,7 @@ class SourceEditor:
|
||||
|
||||
def add_src_clicked(self,obj):
|
||||
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):
|
||||
|
@ -28,6 +28,7 @@
|
||||
import gobject
|
||||
import gtk
|
||||
import gtk.glade
|
||||
import gnome
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@ -89,10 +90,10 @@ class WitnessTab:
|
||||
if iter:
|
||||
objs = self.model.get_selected_objects()
|
||||
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):
|
||||
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):
|
||||
self.parent.lists_changed = 1
|
||||
@ -113,7 +114,7 @@ class WitnessTab:
|
||||
#-------------------------------------------------------------------------
|
||||
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.parent = parent
|
||||
@ -122,6 +123,10 @@ class WitnessEditor:
|
||||
self.show_witness = gtk.glade.XML(const.dialogFile, "witness_edit","gramps")
|
||||
self.show_witness.signal_autoconnect({
|
||||
"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')
|
||||
@ -136,7 +141,7 @@ class WitnessEditor:
|
||||
if self.ref.get_type():
|
||||
self.in_db.set_active(1)
|
||||
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())
|
||||
else:
|
||||
self.name.set_text(self.ref.get_value())
|
||||
@ -150,11 +155,33 @@ class WitnessEditor:
|
||||
|
||||
if parent_window:
|
||||
self.window.set_transient_for(parent_window)
|
||||
val = self.window.run()
|
||||
if val == gtk.RESPONSE_OK:
|
||||
self.ok_clicked()
|
||||
self.parent.parent.child_windows.append(self)
|
||||
self.add_itself_to_menu()
|
||||
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()
|
||||
|
||||
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):
|
||||
import SelectPerson
|
||||
sel_person = SelectPerson.SelectPerson(self.db,_('Select Person'),parent_window=self.window)
|
||||
@ -163,8 +190,8 @@ class WitnessEditor:
|
||||
self.new_person = new_person
|
||||
self.idval = new_person.get_id()
|
||||
new_name = new_person.get_primary_name().get_regular_name()
|
||||
if new_name:
|
||||
self.name.set_text(new_name)
|
||||
if new_name:
|
||||
self.name.set_text(new_name)
|
||||
|
||||
def on_toggled(self,obj):
|
||||
if self.in_db.get_active():
|
||||
@ -176,7 +203,7 @@ class WitnessEditor:
|
||||
self.name.set_sensitive(1)
|
||||
self.select.set_sensitive(0)
|
||||
|
||||
def ok_clicked(self):
|
||||
def ok_clicked(self,obj):
|
||||
if not self.ref:
|
||||
if self.in_db.get_active():
|
||||
self.ref = RelLib.Witness(RelLib.Event.ID)
|
||||
@ -186,10 +213,13 @@ class WitnessEditor:
|
||||
|
||||
if self.in_db.get_active():
|
||||
self.ref.set_value(self.idval)
|
||||
self.ref.set_type(RelLib.Event.ID)
|
||||
else:
|
||||
self.ref.set_value(unicode(self.name.get_text()))
|
||||
self.ref.set_type(RelLib.Event.NAME)
|
||||
|
||||
c = self.comment.get_buffer()
|
||||
self.ref.set_comment(unicode(c.get_text(c.get_start_iter(),c.get_end_iter(),gtk.FALSE)))
|
||||
if self.update:
|
||||
self.update()
|
||||
self.close(obj)
|
||||
|
@ -4154,6 +4154,7 @@
|
||||
<property name="destroy_with_parent">False</property>
|
||||
<property name="icon">gramps.png</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">
|
||||
<widget class="GtkVBox" id="dialog-vbox2">
|
||||
@ -4175,6 +4176,7 @@
|
||||
<property name="use_stock">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</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>
|
||||
</child>
|
||||
|
||||
@ -4187,6 +4189,7 @@
|
||||
<property name="use_stock">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</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>
|
||||
</child>
|
||||
|
||||
|
@ -5548,6 +5548,7 @@
|
||||
<property name="destroy_with_parent">False</property>
|
||||
<property name="icon">gramps.png</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">
|
||||
<widget class="GtkVBox" id="dialog-vbox11">
|
||||
@ -5570,6 +5571,7 @@
|
||||
<property name="use_stock">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</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>
|
||||
</child>
|
||||
|
||||
@ -5584,6 +5586,7 @@
|
||||
<property name="use_stock">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</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>
|
||||
</child>
|
||||
|
||||
|
@ -751,7 +751,7 @@ class Gramps:
|
||||
import MergeData
|
||||
p1 = self.db.get_person(mlist[0])
|
||||
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)
|
||||
elif page == PLACE_VIEW:
|
||||
self.place_view.merge()
|
||||
|
Loading…
Reference in New Issue
Block a user