Merge modules: convert from libglade to gtkbuilder
svn: r12472
This commit is contained in:
@@ -26,7 +26,6 @@
|
|||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
import gtk
|
import gtk
|
||||||
from gtk import glade
|
|
||||||
import pango
|
import pango
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
@@ -61,24 +60,26 @@ class PersonCompare(ManagedWindow.ManagedWindow):
|
|||||||
|
|
||||||
ManagedWindow.ManagedWindow.__init__(self, uistate, [], self.__class__)
|
ManagedWindow.ManagedWindow.__init__(self, uistate, [], self.__class__)
|
||||||
|
|
||||||
self.glade = glade.XML(const.MERGE_GLADE, "merge")
|
self.glade = gtk.Builder()
|
||||||
window = self.glade.get_widget('merge')
|
self.glade.add_from_file(const.MERGE_GLADE)
|
||||||
self.text1 = self.glade.get_widget('text1')
|
window = self.glade.get_object('merge')
|
||||||
self.text2 = self.glade.get_widget('text2')
|
window.show()
|
||||||
|
self.text1 = self.glade.get_object('text1')
|
||||||
|
self.text2 = self.glade.get_object('text2')
|
||||||
self.db = dbstate.db
|
self.db = dbstate.db
|
||||||
|
|
||||||
self.p1 = person1
|
self.p1 = person1
|
||||||
self.p2 = person2
|
self.p2 = person2
|
||||||
self.update = update
|
self.update = update
|
||||||
|
|
||||||
self.set_window(window, self.glade.get_widget('title'),
|
self.set_window(window, self.glade.get_object('merge_title'),
|
||||||
_("Compare People"))
|
_("Compare People"))
|
||||||
self.display(self.text1.get_buffer(), person1)
|
self.display(self.text1.get_buffer(), person1)
|
||||||
self.display(self.text2.get_buffer(), person2)
|
self.display(self.text2.get_buffer(), person2)
|
||||||
|
|
||||||
self.glade.get_widget('cancel').connect('clicked', self.close)
|
self.glade.get_object('merge_cancel').connect('clicked', self.close)
|
||||||
self.glade.get_widget('close').connect('clicked', self.merge)
|
self.glade.get_object('close').connect('clicked', self.merge)
|
||||||
self.glade.get_widget('help').connect('clicked', self.help)
|
self.glade.get_object('merge_help').connect('clicked', self.help)
|
||||||
|
|
||||||
def help(self, obj):
|
def help(self, obj):
|
||||||
"""Display the relevant portion of GRAMPS manual"""
|
"""Display the relevant portion of GRAMPS manual"""
|
||||||
@@ -97,7 +98,7 @@ class PersonCompare(ManagedWindow.ManagedWindow):
|
|||||||
"people, you must first break the relationship between "
|
"people, you must first break the relationship between "
|
||||||
"them."))
|
"them."))
|
||||||
else:
|
else:
|
||||||
if self.glade.get_widget('select1').get_active():
|
if self.glade.get_object('select1').get_active():
|
||||||
merge = MergePeople(self.db, self.p1, self.p2)
|
merge = MergePeople(self.db, self.p1, self.p2)
|
||||||
else:
|
else:
|
||||||
merge = MergePeople(self.db, self.p2, self.p1)
|
merge = MergePeople(self.db, self.p2, self.p1)
|
||||||
@@ -123,20 +124,25 @@ class PersonCompare(ManagedWindow.ManagedWindow):
|
|||||||
title.set_property('weight', pango.WEIGHT_BOLD)
|
title.set_property('weight', pango.WEIGHT_BOLD)
|
||||||
title.set_property('scale', pango.SCALE_LARGE)
|
title.set_property('scale', pango.SCALE_LARGE)
|
||||||
self.add(tobj, title, name_displayer.display(person))
|
self.add(tobj, title, name_displayer.display(person))
|
||||||
self.add(tobj, normal, "%s:\t%s" % (_('ID'), person.get_gramps_id()))
|
self.add(tobj, normal, "%s:\t%s" % (_('ID'),
|
||||||
self.add(tobj, normal, "%s:\t%s" % (_('Gender'), sex[person.get_gender()]))
|
person.get_gramps_id()))
|
||||||
|
self.add(tobj, normal, "%s:\t%s" % (_('Gender'),
|
||||||
|
sex[person.get_gender()]))
|
||||||
bref = person.get_birth_ref()
|
bref = person.get_birth_ref()
|
||||||
if bref:
|
if bref:
|
||||||
self.add(tobj, normal, "%s:\t%s" % (_('Birth'), self.get_event_info(bref.ref)))
|
self.add(tobj, normal, "%s:\t%s" % (_('Birth'),
|
||||||
|
self.get_event_info(bref.ref)))
|
||||||
dref = person.get_death_ref()
|
dref = person.get_death_ref()
|
||||||
if dref:
|
if dref:
|
||||||
self.add(tobj, normal, "%s:\t%s" % (_('Death'), self.get_event_info(dref.ref)))
|
self.add(tobj, normal, "%s:\t%s" % (_('Death'),
|
||||||
|
self.get_event_info(dref.ref)))
|
||||||
|
|
||||||
nlist = person.get_alternate_names()
|
nlist = person.get_alternate_names()
|
||||||
if len(nlist) > 0:
|
if len(nlist) > 0:
|
||||||
self.add(tobj, title, _("Alternate Names"))
|
self.add(tobj, title, _("Alternate Names"))
|
||||||
for name in nlist:
|
for name in nlist:
|
||||||
self.add(tobj, normal, name_displayer.display_name(name))
|
self.add(tobj, normal,
|
||||||
|
name_displayer.display_name(name))
|
||||||
|
|
||||||
elist = person.get_event_ref_list()
|
elist = person.get_event_ref_list()
|
||||||
if len(elist) > 0:
|
if len(elist) > 0:
|
||||||
@@ -145,7 +151,8 @@ class PersonCompare(ManagedWindow.ManagedWindow):
|
|||||||
event_handle = event_ref.ref
|
event_handle = event_ref.ref
|
||||||
name = str(
|
name = str(
|
||||||
self.db.get_event_from_handle(event_handle).get_type())
|
self.db.get_event_from_handle(event_handle).get_type())
|
||||||
self.add(tobj, normal, "%s:\t%s" % (name, self.get_event_info(event_handle)))
|
self.add(tobj, normal, "%s:\t%s" %
|
||||||
|
(name, self.get_event_info(event_handle)))
|
||||||
plist = person.get_parent_family_handle_list()
|
plist = person.get_parent_family_handle_list()
|
||||||
|
|
||||||
if len(plist) > 0:
|
if len(plist) > 0:
|
||||||
@@ -170,16 +177,19 @@ class PersonCompare(ManagedWindow.ManagedWindow):
|
|||||||
spouse_id = ReportUtils.find_spouse(person, family)
|
spouse_id = ReportUtils.find_spouse(person, family)
|
||||||
if spouse_id:
|
if spouse_id:
|
||||||
spouse = self.db.get_person_from_handle(spouse_id)
|
spouse = self.db.get_person_from_handle(spouse_id)
|
||||||
self.add(tobj, indent, "%s:\t%s" % (_('Spouse'), name_of(spouse)))
|
self.add(tobj, indent, "%s:\t%s" % (_('Spouse'),
|
||||||
|
name_of(spouse)))
|
||||||
relstr = str(family.get_relationship())
|
relstr = str(family.get_relationship())
|
||||||
self.add(tobj, indent, "%s:\t%s" % (_('Type'), relstr))
|
self.add(tobj, indent, "%s:\t%s" % (_('Type'), relstr))
|
||||||
event = ReportUtils.find_marriage(self.db, family)
|
event = ReportUtils.find_marriage(self.db, family)
|
||||||
if event:
|
if event:
|
||||||
self.add(tobj, indent, "%s:\t%s" % (
|
self.add(tobj, indent, "%s:\t%s" % (
|
||||||
_('Marriage'), self.get_event_info(event.get_handle())))
|
_('Marriage'),
|
||||||
|
self.get_event_info(event.get_handle())))
|
||||||
for child_ref in family.get_child_ref_list():
|
for child_ref in family.get_child_ref_list():
|
||||||
child = self.db.get_person_from_handle(child_ref.ref)
|
child = self.db.get_person_from_handle(child_ref.ref)
|
||||||
self.add(tobj, indent, "%s:\t%s" % (_('Child'), name_of(child)))
|
self.add(tobj, indent, "%s:\t%s" % (_('Child'),
|
||||||
|
name_of(child)))
|
||||||
else:
|
else:
|
||||||
self.add(tobj, normal, _("No spouses or children found"))
|
self.add(tobj, normal, _("No spouses or children found"))
|
||||||
|
|
||||||
@@ -216,15 +226,9 @@ class PersonCompare(ManagedWindow.ManagedWindow):
|
|||||||
date = DateHandler.get_date(event)
|
date = DateHandler.get_date(event)
|
||||||
place = self.place_name(event)
|
place = self.place_name(event)
|
||||||
if date:
|
if date:
|
||||||
if place:
|
return "%s, %s" % (date, place) if place else date
|
||||||
return "%s, %s" % (date, place)
|
|
||||||
else:
|
|
||||||
return date
|
|
||||||
else:
|
else:
|
||||||
if place:
|
return place if place else ""
|
||||||
return place
|
|
||||||
else:
|
|
||||||
return ""
|
|
||||||
else:
|
else:
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
@@ -280,20 +284,21 @@ class MergePeopleUI(ManagedWindow.ManagedWindow):
|
|||||||
|
|
||||||
ManagedWindow.ManagedWindow.__init__(self, uistate, [], self.__class__)
|
ManagedWindow.ManagedWindow.__init__(self, uistate, [], self.__class__)
|
||||||
|
|
||||||
glade_xml = glade.XML(const.MERGE_GLADE, 'merge_people')
|
glade_xml = gtk.Builder()
|
||||||
window = glade_xml.get_widget('merge_people')
|
glade_xml.add_from_file(const.MERGE_GLADE)
|
||||||
|
window = glade_xml.get_object('merge_people')
|
||||||
|
|
||||||
self.set_window(window, glade_xml.get_widget('title'), _("Merge People"))
|
self.set_window(window, glade_xml.get_object('people_title'), _("Merge People"))
|
||||||
|
|
||||||
p1 = glade_xml.get_widget('person1')
|
p1 = glade_xml.get_object('person1')
|
||||||
p2 = glade_xml.get_widget('person2')
|
p2 = glade_xml.get_object('person2')
|
||||||
n1 = name_of(person1)
|
n1 = name_of(person1)
|
||||||
n2 = name_of(person2)
|
n2 = name_of(person2)
|
||||||
|
|
||||||
p1.set_label(n1)
|
p1.set_label(n1)
|
||||||
p2.set_label(n2)
|
p2.set_label(n2)
|
||||||
|
|
||||||
glade_xml.get_widget('help').connect('clicked', self.help)
|
glade_xml.get_object('people_help').connect('clicked', self.help)
|
||||||
|
|
||||||
ret = gtk.RESPONSE_HELP
|
ret = gtk.RESPONSE_HELP
|
||||||
while ret == gtk.RESPONSE_HELP:
|
while ret == gtk.RESPONSE_HELP:
|
||||||
@@ -433,13 +438,16 @@ class MergePeople:
|
|||||||
self.p2.get_attribute_list())
|
self.p2.get_attribute_list())
|
||||||
|
|
||||||
# copy addresses
|
# copy addresses
|
||||||
new.set_address_list(self.p1.get_address_list() + self.p2.get_address_list())
|
new.set_address_list(self.p1.get_address_list() +
|
||||||
|
self.p2.get_address_list())
|
||||||
|
|
||||||
# copy urls
|
# copy urls
|
||||||
new.set_url_list(self.p1.get_url_list() + self.p2.get_url_list())
|
new.set_url_list(self.p1.get_url_list() +
|
||||||
|
self.p2.get_url_list())
|
||||||
|
|
||||||
# merge LDS
|
# merge LDS
|
||||||
new.set_lds_ord_list(self.p1.get_lds_ord_list() + self.p2.get_lds_ord_list())
|
new.set_lds_ord_list(self.p1.get_lds_ord_list() +
|
||||||
|
self.p2.get_lds_ord_list())
|
||||||
|
|
||||||
# privacy
|
# privacy
|
||||||
new.set_privacy(self.p1.get_privacy() or self.p2.get_privacy())
|
new.set_privacy(self.p1.get_privacy() or self.p2.get_privacy())
|
||||||
@@ -455,7 +463,8 @@ class MergePeople:
|
|||||||
new.add_media_reference(photo)
|
new.add_media_reference(photo)
|
||||||
|
|
||||||
# note
|
# note
|
||||||
new.set_note_list(self.p1.get_note_list() + self.p2.get_note_list())
|
new.set_note_list(self.p1.get_note_list() +
|
||||||
|
self.p2.get_note_list())
|
||||||
|
|
||||||
def merge_gramps_ids(self, new):
|
def merge_gramps_ids(self, new):
|
||||||
"""
|
"""
|
||||||
@@ -491,7 +500,8 @@ class MergePeople:
|
|||||||
if not p2_name.is_equal(p1_name):
|
if not p2_name.is_equal(p1_name):
|
||||||
new.add_alternate_name(p2_name)
|
new.add_alternate_name(p2_name)
|
||||||
|
|
||||||
for name in self.p1.get_alternate_names() + self.p2.get_alternate_names():
|
for name in (self.p1.get_alternate_names() +
|
||||||
|
self.p2.get_alternate_names()):
|
||||||
if name.is_equal(p1_name):
|
if name.is_equal(p1_name):
|
||||||
break
|
break
|
||||||
for item in new.get_alternate_names():
|
for item in new.get_alternate_names():
|
||||||
@@ -641,10 +651,12 @@ class MergePeople:
|
|||||||
if tgt_family:
|
if tgt_family:
|
||||||
# The target family is already a family in the person's
|
# The target family is already a family in the person's
|
||||||
# family list.
|
# family list.
|
||||||
if tgt_family.get_handle() in self.p1.get_family_handle_list():
|
if tgt_family.get_handle() in \
|
||||||
|
self.p1.get_family_handle_list():
|
||||||
if __debug__:
|
if __debug__:
|
||||||
print "Merging existing family"
|
print "Merging existing family"
|
||||||
self.merge_existing_family(new, src_family, tgt_family, trans)
|
self.merge_existing_family(new, src_family,
|
||||||
|
tgt_family, trans)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# This is the case the family is not already in the person's
|
# This is the case the family is not already in the person's
|
||||||
@@ -656,7 +668,8 @@ class MergePeople:
|
|||||||
|
|
||||||
# change parents of the family to point to the new
|
# change parents of the family to point to the new
|
||||||
# family
|
# family
|
||||||
self.adjust_family_pointers(tgt_family, src_family, trans)
|
self.adjust_family_pointers(tgt_family, src_family,
|
||||||
|
trans)
|
||||||
|
|
||||||
new.remove_family_handle(src_handle)
|
new.remove_family_handle(src_handle)
|
||||||
self.db.remove_family(src_handle, trans)
|
self.db.remove_family(src_handle, trans)
|
||||||
@@ -740,7 +753,9 @@ class MergePeople:
|
|||||||
while node:
|
while node:
|
||||||
# data[2] == father_handle field, data[2] == mother_handle field
|
# data[2] == father_handle field, data[2] == mother_handle field
|
||||||
(thandle, data) = node
|
(thandle, data) = node
|
||||||
if data[2] == fhandle and data[3] == mhandle and thandle != family_handle:
|
if (data[2] == fhandle and
|
||||||
|
data[3] == mhandle and
|
||||||
|
thandle != family_handle):
|
||||||
myfamily = gen.lib.Family()
|
myfamily = gen.lib.Family()
|
||||||
myfamily.unserialize(data)
|
myfamily.unserialize(data)
|
||||||
break
|
break
|
||||||
@@ -768,12 +783,14 @@ class MergePeople:
|
|||||||
if father and src_family_handle in father.get_family_handle_list():
|
if father and src_family_handle in father.get_family_handle_list():
|
||||||
father.remove_family_handle(src_family_handle)
|
father.remove_family_handle(src_family_handle)
|
||||||
if __debug__:
|
if __debug__:
|
||||||
print "Removed family %s from father %s" % (src_family_handle, father_id)
|
print "Removed family %s from father %s" % \
|
||||||
|
(src_family_handle, father_id)
|
||||||
self.db.commit_person(father, trans)
|
self.db.commit_person(father, trans)
|
||||||
if mother and src_family_handle in mother.get_family_handle_list():
|
if mother and src_family_handle in mother.get_family_handle_list():
|
||||||
mother.remove_family_handle(src_family_handle)
|
mother.remove_family_handle(src_family_handle)
|
||||||
if __debug__:
|
if __debug__:
|
||||||
print "Removed family %s from mother %s" % (src_family_handle, mother_id)
|
print "Removed family %s from mother %s" % \
|
||||||
|
(src_family_handle, mother_id)
|
||||||
self.db.commit_person(mother, trans)
|
self.db.commit_person(mother, trans)
|
||||||
|
|
||||||
self.merge_family_pair(tgt_family, src_family, trans)
|
self.merge_family_pair(tgt_family, src_family, trans)
|
||||||
@@ -799,8 +816,8 @@ class MergePeople:
|
|||||||
|
|
||||||
def merge_family_pair(self, tgt_family, src_family, trans):
|
def merge_family_pair(self, tgt_family, src_family, trans):
|
||||||
|
|
||||||
tgt_family_child_handles = [ref.ref
|
tgt_family_child_handles = \
|
||||||
for ref in tgt_family.get_child_ref_list()]
|
[ref.ref for ref in tgt_family.get_child_ref_list()]
|
||||||
# copy children from source to target
|
# copy children from source to target
|
||||||
for child_ref in src_family.get_child_ref_list():
|
for child_ref in src_family.get_child_ref_list():
|
||||||
child_handle = child_ref.ref
|
child_handle = child_ref.ref
|
||||||
@@ -813,7 +830,8 @@ class MergePeople:
|
|||||||
i = 0
|
i = 0
|
||||||
for fam in parents[:]:
|
for fam in parents[:]:
|
||||||
if fam[0] == src_family.get_handle():
|
if fam[0] == src_family.get_handle():
|
||||||
parents[i] = (tgt_family.get_handle(), fam[1], fam[2])
|
parents[i] = (tgt_family.get_handle(),
|
||||||
|
fam[1], fam[2])
|
||||||
i += 1
|
i += 1
|
||||||
self.db.commit_person(child, trans)
|
self.db.commit_person(child, trans)
|
||||||
|
|
||||||
@@ -833,7 +851,8 @@ class MergePeople:
|
|||||||
tgt_family.add_attribute(xdata)
|
tgt_family.add_attribute(xdata)
|
||||||
|
|
||||||
# merge family notes
|
# merge family notes
|
||||||
tgt_family.set_note_list(tgt_family.get_note_list() + src_family.get_note_list())
|
tgt_family.set_note_list(tgt_family.get_note_list() +
|
||||||
|
src_family.get_note_list())
|
||||||
|
|
||||||
# merge family top-level sources
|
# merge family top-level sources
|
||||||
|
|
||||||
@@ -891,7 +910,8 @@ class MergePeople:
|
|||||||
def remove_marriage(self, family, person, trans):
|
def remove_marriage(self, family, person, trans):
|
||||||
if person:
|
if person:
|
||||||
person.remove_family_handle(family.get_handle())
|
person.remove_family_handle(family.get_handle())
|
||||||
if family.get_father_handle() is None and family.get_mother_handle() is None:
|
if (family.get_father_handle() is
|
||||||
|
family.get_mother_handle() is None):
|
||||||
self.delete_empty_family(family, trans)
|
self.delete_empty_family(family, trans)
|
||||||
|
|
||||||
def delete_empty_family(self, family, trans):
|
def delete_empty_family(self, family, trans):
|
||||||
|
|||||||
@@ -33,7 +33,8 @@
|
|||||||
# GNOME
|
# GNOME
|
||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
from gtk import glade
|
import gtk
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# GRAMPS modules
|
# GRAMPS modules
|
||||||
@@ -71,22 +72,23 @@ class MergePlaces(ManagedWindow.ManagedWindow):
|
|||||||
self.p1 = self.db.get_place_from_handle(self.new_handle)
|
self.p1 = self.db.get_place_from_handle(self.new_handle)
|
||||||
self.p2 = self.db.get_place_from_handle(self.old_handle)
|
self.p2 = self.db.get_place_from_handle(self.old_handle)
|
||||||
|
|
||||||
self.glade = glade.XML(const.MERGE_GLADE,"merge_places","gramps")
|
self.glade = gtk.Builder()
|
||||||
self.set_window(self.glade.get_widget("merge_places"),
|
self.glade.add_from_file(const.MERGE_GLADE)
|
||||||
self.glade.get_widget('title'),
|
self.set_window(self.glade.get_object('merge_places'),
|
||||||
|
self.glade.get_object('place_title'),
|
||||||
_("Merge Places"))
|
_("Merge Places"))
|
||||||
|
|
||||||
title1_text = self.glade.get_widget("title1_text")
|
title1_text = self.glade.get_object("title1_text")
|
||||||
title2_text = self.glade.get_widget("title2_text")
|
title2_text = self.glade.get_object("title2_text")
|
||||||
self.title3_entry = self.glade.get_widget("title3_text")
|
self.title3_entry = self.glade.get_object("title3_text")
|
||||||
|
|
||||||
title1_text.set_text(self.p1.get_title())
|
title1_text.set_text(self.p1.get_title())
|
||||||
title2_text.set_text(self.p2.get_title())
|
title2_text.set_text(self.p2.get_title())
|
||||||
self.title3_entry.set_text(self.p1.get_title())
|
self.title3_entry.set_text(self.p1.get_title())
|
||||||
|
|
||||||
self.glade.get_widget('cancel').connect('clicked', self.close_window)
|
self.glade.get_object('place_cancel').connect('clicked', self.close_window)
|
||||||
self.glade.get_widget('ok').connect('clicked', self.merge)
|
self.glade.get_object('place_ok').connect('clicked', self.merge)
|
||||||
self.glade.get_widget('help').connect('clicked', self.help)
|
self.glade.get_object('place_help').connect('clicked', self.help)
|
||||||
|
|
||||||
self.show()
|
self.show()
|
||||||
|
|
||||||
@@ -104,11 +106,11 @@ class MergePlaces(ManagedWindow.ManagedWindow):
|
|||||||
"""
|
"""
|
||||||
Performs the merge of the places when the merge button is clicked.
|
Performs the merge of the places when the merge button is clicked.
|
||||||
"""
|
"""
|
||||||
t2active = self.glade.get_widget("title2").get_active()
|
t2active = self.glade.get_object("place2").get_active()
|
||||||
|
|
||||||
if t2active:
|
if t2active:
|
||||||
self.p1.set_title(self.p2.get_title())
|
self.p1.set_title(self.p2.get_title())
|
||||||
elif self.glade.get_widget("title3").get_active():
|
elif self.glade.get_object("place3").get_active():
|
||||||
self.p1.set_title(unicode(self.title3_entry.get_text()))
|
self.p1.set_title(unicode(self.title3_entry.get_text()))
|
||||||
|
|
||||||
# Set longitude
|
# Set longitude
|
||||||
@@ -132,16 +134,19 @@ class MergePlaces(ManagedWindow.ManagedWindow):
|
|||||||
self.p1.add_source_reference(source)
|
self.p1.add_source_reference(source)
|
||||||
|
|
||||||
# Add notes from P2 to P1
|
# Add notes from P2 to P1
|
||||||
self.p1.set_note_list(self.p1.get_note_list() + self.p2.get_note_list())
|
self.p1.set_note_list(self.p1.get_note_list() +
|
||||||
|
self.p2.get_note_list())
|
||||||
|
|
||||||
if t2active:
|
if t2active:
|
||||||
lst = [self.p1.get_main_location()] + self.p1.get_alternate_locations()
|
lst = [self.p1.get_main_location()] + \
|
||||||
|
self.p1.get_alternate_locations()
|
||||||
self.p1.set_main_location(self.p2.get_main_location())
|
self.p1.set_main_location(self.p2.get_main_location())
|
||||||
for l in lst:
|
for l in lst:
|
||||||
if not l.is_empty():
|
if not l.is_empty():
|
||||||
self.p1.add_alternate_locations(l)
|
self.p1.add_alternate_locations(l)
|
||||||
else:
|
else:
|
||||||
lst = [self.p2.get_main_location()] + self.p2.get_alternate_locations()
|
lst = [self.p2.get_main_location()] + \
|
||||||
|
self.p2.get_alternate_locations()
|
||||||
for l in lst:
|
for l in lst:
|
||||||
if not l.is_empty():
|
if not l.is_empty():
|
||||||
self.p1.add_alternate_locations(l)
|
self.p1.add_alternate_locations(l)
|
||||||
@@ -157,19 +162,22 @@ class MergePlaces(ManagedWindow.ManagedWindow):
|
|||||||
for handle in self.db.get_person_handles(sort_handles=False):
|
for handle in self.db.get_person_handles(sort_handles=False):
|
||||||
person = self.db.get_person_from_handle(handle)
|
person = self.db.get_person_from_handle(handle)
|
||||||
if person.has_handle_reference('Place',self.old_handle):
|
if person.has_handle_reference('Place',self.old_handle):
|
||||||
person.replace_handle_reference('Place',self.old_handle,self.new_handle)
|
person.replace_handle_reference('Place',
|
||||||
|
self.old_handle,self.new_handle)
|
||||||
self.db.commit_person(person,trans)
|
self.db.commit_person(person,trans)
|
||||||
# families
|
# families
|
||||||
for handle in self.db.get_family_handles():
|
for handle in self.db.get_family_handles():
|
||||||
family = self.db.get_family_from_handle(handle)
|
family = self.db.get_family_from_handle(handle)
|
||||||
if family.has_handle_reference('Place',self.old_handle):
|
if family.has_handle_reference('Place',self.old_handle):
|
||||||
family.replace_handle_reference('Place',self.old_handle,self.new_handle)
|
family.replace_handle_reference('Place',
|
||||||
|
self.old_handle,self.new_handle)
|
||||||
self.db.commit_family(family,trans)
|
self.db.commit_family(family,trans)
|
||||||
# events
|
# events
|
||||||
for handle in self.db.get_event_handles():
|
for handle in self.db.get_event_handles():
|
||||||
event = self.db.get_event_from_handle(handle)
|
event = self.db.get_event_from_handle(handle)
|
||||||
if event.has_handle_reference('Place',self.old_handle):
|
if event.has_handle_reference('Place',self.old_handle):
|
||||||
event.replace_handle_reference('Place',self.old_handle,self.new_handle)
|
event.replace_handle_reference('Place',
|
||||||
|
self.old_handle,self.new_handle)
|
||||||
self.db.commit_event(event,trans)
|
self.db.commit_event(event,trans)
|
||||||
|
|
||||||
self.db.transaction_commit(trans,_("Merge Places"))
|
self.db.transaction_commit(trans,_("Merge Places"))
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
# GNOME
|
# GNOME
|
||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
from gtk import glade
|
import gtk
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
@@ -72,40 +72,41 @@ class MergeSources(ManagedWindow.ManagedWindow):
|
|||||||
self.s1 = self.db.get_source_from_handle(self.new_handle)
|
self.s1 = self.db.get_source_from_handle(self.new_handle)
|
||||||
self.s2 = self.db.get_source_from_handle(self.old_handle)
|
self.s2 = self.db.get_source_from_handle(self.old_handle)
|
||||||
|
|
||||||
self.glade = glade.XML(const.MERGE_GLADE,"merge_sources","gramps")
|
self.glade = gtk.Builder()
|
||||||
|
self.glade.add_from_file(const.MERGE_GLADE)
|
||||||
|
|
||||||
self.set_window(self.glade.get_widget("merge_sources"),
|
self.set_window(self.glade.get_object('merge_sources'),
|
||||||
self.glade.get_widget('title'),
|
self.glade.get_object('source_title'),
|
||||||
_("Merge Sources"))
|
_("Merge Sources"))
|
||||||
|
|
||||||
self.title1 = self.glade.get_widget("title1")
|
self.title1 = self.glade.get_object("title1")
|
||||||
self.title2 = self.glade.get_widget("title2")
|
self.title2 = self.glade.get_object("title2")
|
||||||
self.title1.set_text(self.s1.get_title())
|
self.title1.set_text(self.s1.get_title())
|
||||||
self.title2.set_text(self.s2.get_title())
|
self.title2.set_text(self.s2.get_title())
|
||||||
|
|
||||||
self.author1 = self.glade.get_widget("author1")
|
self.author1 = self.glade.get_object("author1")
|
||||||
self.author2 = self.glade.get_widget("author2")
|
self.author2 = self.glade.get_object("author2")
|
||||||
self.author1.set_text(self.s1.get_author())
|
self.author1.set_text(self.s1.get_author())
|
||||||
self.author2.set_text(self.s2.get_author())
|
self.author2.set_text(self.s2.get_author())
|
||||||
|
|
||||||
self.abbrev1 = self.glade.get_widget("abbrev1")
|
self.abbrev1 = self.glade.get_object("abbrev1")
|
||||||
self.abbrev2 = self.glade.get_widget("abbrev2")
|
self.abbrev2 = self.glade.get_object("abbrev2")
|
||||||
self.abbrev1.set_text(self.s1.get_abbreviation())
|
self.abbrev1.set_text(self.s1.get_abbreviation())
|
||||||
self.abbrev2.set_text(self.s2.get_abbreviation())
|
self.abbrev2.set_text(self.s2.get_abbreviation())
|
||||||
|
|
||||||
self.pub1 = self.glade.get_widget("pub1")
|
self.pub1 = self.glade.get_object("pub1")
|
||||||
self.pub2 = self.glade.get_widget("pub2")
|
self.pub2 = self.glade.get_object("pub2")
|
||||||
self.pub1.set_text(self.s1.get_publication_info())
|
self.pub1.set_text(self.s1.get_publication_info())
|
||||||
self.pub2.set_text(self.s2.get_publication_info())
|
self.pub2.set_text(self.s2.get_publication_info())
|
||||||
|
|
||||||
self.gramps1 = self.glade.get_widget("gramps1")
|
self.gramps1 = self.glade.get_object("gramps1")
|
||||||
self.gramps2 = self.glade.get_widget("gramps2")
|
self.gramps2 = self.glade.get_object("gramps2")
|
||||||
self.gramps1.set_text(self.s1.get_gramps_id())
|
self.gramps1.set_text(self.s1.get_gramps_id())
|
||||||
self.gramps2.set_text(self.s2.get_gramps_id())
|
self.gramps2.set_text(self.s2.get_gramps_id())
|
||||||
|
|
||||||
self.glade.get_widget('ok').connect('clicked',self.merge)
|
self.glade.get_object('source_ok').connect('clicked',self.merge)
|
||||||
self.glade.get_widget('cancel').connect('clicked',self.close_window)
|
self.glade.get_object('source_cancel').connect('clicked',self.close_window)
|
||||||
self.glade.get_widget('help').connect('clicked',self.help)
|
self.glade.get_object('source_help').connect('clicked',self.help)
|
||||||
self.show()
|
self.show()
|
||||||
|
|
||||||
def close_window(self, obj):
|
def close_window(self, obj):
|
||||||
@@ -120,11 +121,11 @@ class MergeSources(ManagedWindow.ManagedWindow):
|
|||||||
Performs the merge of the sources when the merge button is clicked.
|
Performs the merge of the sources when the merge button is clicked.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
use_title1 = self.glade.get_widget("title_btn1").get_active()
|
use_title1 = self.glade.get_object("title_btn1").get_active()
|
||||||
use_author1 = self.glade.get_widget("author_btn1").get_active()
|
use_author1 = self.glade.get_object("author_btn1").get_active()
|
||||||
use_abbrev1 = self.glade.get_widget("abbrev_btn1").get_active()
|
use_abbrev1 = self.glade.get_object("abbrev_btn1").get_active()
|
||||||
use_pub1 = self.glade.get_widget("pub_btn1").get_active()
|
use_pub1 = self.glade.get_object("pub_btn1").get_active()
|
||||||
use_gramps1 = self.glade.get_widget("gramps_btn1").get_active()
|
use_gramps1 = self.glade.get_object("gramps_btn1").get_active()
|
||||||
|
|
||||||
if not use_title1:
|
if not use_title1:
|
||||||
self.s1.set_title(self.s2.get_title())
|
self.s1.set_title(self.s2.get_title())
|
||||||
@@ -166,42 +167,48 @@ class MergeSources(ManagedWindow.ManagedWindow):
|
|||||||
for handle in self.db.get_person_handles(sort_handles=False):
|
for handle in self.db.get_person_handles(sort_handles=False):
|
||||||
person = self.db.get_person_from_handle(handle)
|
person = self.db.get_person_from_handle(handle)
|
||||||
if person.has_source_reference(self.old_handle):
|
if person.has_source_reference(self.old_handle):
|
||||||
person.replace_source_references(self.old_handle,self.new_handle)
|
person.replace_source_references(self.old_handle,
|
||||||
|
self.new_handle)
|
||||||
self.db.commit_person(person,trans)
|
self.db.commit_person(person,trans)
|
||||||
|
|
||||||
# family
|
# family
|
||||||
for handle in self.db.get_family_handles():
|
for handle in self.db.get_family_handles():
|
||||||
family = self.db.get_family_from_handle(handle)
|
family = self.db.get_family_from_handle(handle)
|
||||||
if family.has_source_reference(self.old_handle):
|
if family.has_source_reference(self.old_handle):
|
||||||
family.replace_source_references(self.old_handle,self.new_handle)
|
family.replace_source_references(self.old_handle,
|
||||||
|
self.new_handle)
|
||||||
self.db.commit_family(family,trans)
|
self.db.commit_family(family,trans)
|
||||||
|
|
||||||
# events
|
# events
|
||||||
for handle in self.db.get_event_handles():
|
for handle in self.db.get_event_handles():
|
||||||
event = self.db.get_event_from_handle(handle)
|
event = self.db.get_event_from_handle(handle)
|
||||||
if event.has_source_reference(self.old_handle):
|
if event.has_source_reference(self.old_handle):
|
||||||
event.replace_source_references(self.old_handle,self.new_handle)
|
event.replace_source_references(self.old_handle,
|
||||||
|
self.new_handle)
|
||||||
self.db.commit_event(event,trans)
|
self.db.commit_event(event,trans)
|
||||||
|
|
||||||
# sources
|
# sources
|
||||||
for handle in self.db.get_source_handles():
|
for handle in self.db.get_source_handles():
|
||||||
source = self.db.get_source_from_handle(handle)
|
source = self.db.get_source_from_handle(handle)
|
||||||
if source.has_source_reference(self.old_handle):
|
if source.has_source_reference(self.old_handle):
|
||||||
source.replace_source_references(self.old_handle,self.new_handle)
|
source.replace_source_references(self.old_handle,
|
||||||
|
self.new_handle)
|
||||||
self.db.commit_source(source,trans)
|
self.db.commit_source(source,trans)
|
||||||
|
|
||||||
# places
|
# places
|
||||||
for handle in self.db.get_place_handles():
|
for handle in self.db.get_place_handles():
|
||||||
place = self.db.get_place_from_handle(handle)
|
place = self.db.get_place_from_handle(handle)
|
||||||
if place.has_source_reference(self.old_handle):
|
if place.has_source_reference(self.old_handle):
|
||||||
place.replace_source_references(self.old_handle,self.new_handle)
|
place.replace_source_references(self.old_handle,
|
||||||
|
self.new_handle)
|
||||||
self.db.commit_place(place,trans)
|
self.db.commit_place(place,trans)
|
||||||
|
|
||||||
# media
|
# media
|
||||||
for handle in self.db.get_media_object_handles():
|
for handle in self.db.get_media_object_handles():
|
||||||
obj = self.db.get_object_from_handle(handle)
|
obj = self.db.get_object_from_handle(handle)
|
||||||
if obj.has_source_reference(self.old_handle):
|
if obj.has_source_reference(self.old_handle):
|
||||||
obj.replace_source_references(self.old_handle,self.new_handle)
|
obj.replace_source_references(self.old_handle,
|
||||||
|
self.new_handle)
|
||||||
self.db.commit_media_object(obj,trans)
|
self.db.commit_media_object(obj,trans)
|
||||||
|
|
||||||
self.db.transaction_commit(trans,_("Merge Sources"))
|
self.db.transaction_commit(trans,_("Merge Sources"))
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user