From 31187ac5210c36d10e169e9fdebcd50ffa9f9185 Mon Sep 17 00:00:00 2001 From: Gerald Britton Date: Sat, 18 Apr 2009 03:10:50 +0000 Subject: [PATCH] Merge modules: convert from libglade to gtkbuilder svn: r12472 --- src/Merge/_MergePerson.py | 118 +- src/Merge/_MergePlace.py | 44 +- src/Merge/_MergeSource.py | 63 +- src/glade/mergedata.glade | 2594 ++++++++++++++++--------------------- 4 files changed, 1259 insertions(+), 1560 deletions(-) diff --git a/src/Merge/_MergePerson.py b/src/Merge/_MergePerson.py index 51b9f458b..c92f642c7 100644 --- a/src/Merge/_MergePerson.py +++ b/src/Merge/_MergePerson.py @@ -26,7 +26,6 @@ # #------------------------------------------------------------------------- import gtk -from gtk import glade import pango #------------------------------------------------------------------------- @@ -61,24 +60,26 @@ class PersonCompare(ManagedWindow.ManagedWindow): ManagedWindow.ManagedWindow.__init__(self, uistate, [], self.__class__) - self.glade = glade.XML(const.MERGE_GLADE, "merge") - window = self.glade.get_widget('merge') - self.text1 = self.glade.get_widget('text1') - self.text2 = self.glade.get_widget('text2') + self.glade = gtk.Builder() + self.glade.add_from_file(const.MERGE_GLADE) + window = self.glade.get_object('merge') + window.show() + self.text1 = self.glade.get_object('text1') + self.text2 = self.glade.get_object('text2') self.db = dbstate.db self.p1 = person1 self.p2 = person2 self.update = update - self.set_window(window, self.glade.get_widget('title'), + self.set_window(window, self.glade.get_object('merge_title'), _("Compare People")) self.display(self.text1.get_buffer(), person1) self.display(self.text2.get_buffer(), person2) - self.glade.get_widget('cancel').connect('clicked', self.close) - self.glade.get_widget('close').connect('clicked', self.merge) - self.glade.get_widget('help').connect('clicked', self.help) + self.glade.get_object('merge_cancel').connect('clicked', self.close) + self.glade.get_object('close').connect('clicked', self.merge) + self.glade.get_object('merge_help').connect('clicked', self.help) def help(self, obj): """Display the relevant portion of GRAMPS manual""" @@ -97,7 +98,7 @@ class PersonCompare(ManagedWindow.ManagedWindow): "people, you must first break the relationship between " "them.")) 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) else: 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('scale', pango.SCALE_LARGE) 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" % (_('Gender'), sex[person.get_gender()])) + self.add(tobj, normal, "%s:\t%s" % (_('ID'), + person.get_gramps_id())) + self.add(tobj, normal, "%s:\t%s" % (_('Gender'), + sex[person.get_gender()])) bref = person.get_birth_ref() 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() 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() if len(nlist) > 0: self.add(tobj, title, _("Alternate Names")) 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() if len(elist) > 0: @@ -145,7 +151,8 @@ class PersonCompare(ManagedWindow.ManagedWindow): event_handle = event_ref.ref name = str( 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() if len(plist) > 0: @@ -170,16 +177,19 @@ class PersonCompare(ManagedWindow.ManagedWindow): spouse_id = ReportUtils.find_spouse(person, family) if 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()) self.add(tobj, indent, "%s:\t%s" % (_('Type'), relstr)) event = ReportUtils.find_marriage(self.db, family) if event: 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(): 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: self.add(tobj, normal, _("No spouses or children found")) @@ -216,15 +226,9 @@ class PersonCompare(ManagedWindow.ManagedWindow): date = DateHandler.get_date(event) place = self.place_name(event) if date: - if place: - return "%s, %s" % (date, place) - else: - return date + return "%s, %s" % (date, place) if place else date else: - if place: - return place - else: - return "" + return place if place else "" else: return "" @@ -280,20 +284,21 @@ class MergePeopleUI(ManagedWindow.ManagedWindow): ManagedWindow.ManagedWindow.__init__(self, uistate, [], self.__class__) - glade_xml = glade.XML(const.MERGE_GLADE, 'merge_people') - window = glade_xml.get_widget('merge_people') + glade_xml = gtk.Builder() + 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') - p2 = glade_xml.get_widget('person2') + p1 = glade_xml.get_object('person1') + p2 = glade_xml.get_object('person2') n1 = name_of(person1) n2 = name_of(person2) p1.set_label(n1) 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 while ret == gtk.RESPONSE_HELP: @@ -433,13 +438,16 @@ class MergePeople: self.p2.get_attribute_list()) # 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 - 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 - 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 new.set_privacy(self.p1.get_privacy() or self.p2.get_privacy()) @@ -455,7 +463,8 @@ class MergePeople: new.add_media_reference(photo) # 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): """ @@ -491,7 +500,8 @@ class MergePeople: if not p2_name.is_equal(p1_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): break for item in new.get_alternate_names(): @@ -641,10 +651,12 @@ class MergePeople: if tgt_family: # The target family is already a family in the person's # 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__: 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 # 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 # 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) self.db.remove_family(src_handle, trans) @@ -740,7 +753,9 @@ class MergePeople: while node: # data[2] == father_handle field, data[2] == mother_handle field (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.unserialize(data) break @@ -768,12 +783,14 @@ class MergePeople: if father and src_family_handle in father.get_family_handle_list(): father.remove_family_handle(src_family_handle) 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) if mother and src_family_handle in mother.get_family_handle_list(): mother.remove_family_handle(src_family_handle) 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.merge_family_pair(tgt_family, src_family, trans) @@ -799,8 +816,8 @@ class MergePeople: def merge_family_pair(self, tgt_family, src_family, trans): - tgt_family_child_handles = [ref.ref - for ref in tgt_family.get_child_ref_list()] + tgt_family_child_handles = \ + [ref.ref for ref in tgt_family.get_child_ref_list()] # copy children from source to target for child_ref in src_family.get_child_ref_list(): child_handle = child_ref.ref @@ -813,7 +830,8 @@ class MergePeople: i = 0 for fam in parents[:]: 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 self.db.commit_person(child, trans) @@ -833,7 +851,8 @@ class MergePeople: tgt_family.add_attribute(xdata) # 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 @@ -891,7 +910,8 @@ class MergePeople: def remove_marriage(self, family, person, trans): if person: 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) def delete_empty_family(self, family, trans): diff --git a/src/Merge/_MergePlace.py b/src/Merge/_MergePlace.py index b1607830b..36025909b 100644 --- a/src/Merge/_MergePlace.py +++ b/src/Merge/_MergePlace.py @@ -33,7 +33,8 @@ # GNOME # #------------------------------------------------------------------------- -from gtk import glade +import gtk + #------------------------------------------------------------------------- # # GRAMPS modules @@ -71,22 +72,23 @@ class MergePlaces(ManagedWindow.ManagedWindow): self.p1 = self.db.get_place_from_handle(self.new_handle) self.p2 = self.db.get_place_from_handle(self.old_handle) - self.glade = glade.XML(const.MERGE_GLADE,"merge_places","gramps") - self.set_window(self.glade.get_widget("merge_places"), - self.glade.get_widget('title'), + self.glade = gtk.Builder() + self.glade.add_from_file(const.MERGE_GLADE) + self.set_window(self.glade.get_object('merge_places'), + self.glade.get_object('place_title'), _("Merge Places")) - title1_text = self.glade.get_widget("title1_text") - title2_text = self.glade.get_widget("title2_text") - self.title3_entry = self.glade.get_widget("title3_text") + title1_text = self.glade.get_object("title1_text") + title2_text = self.glade.get_object("title2_text") + self.title3_entry = self.glade.get_object("title3_text") title1_text.set_text(self.p1.get_title()) title2_text.set_text(self.p2.get_title()) self.title3_entry.set_text(self.p1.get_title()) - self.glade.get_widget('cancel').connect('clicked', self.close_window) - self.glade.get_widget('ok').connect('clicked', self.merge) - self.glade.get_widget('help').connect('clicked', self.help) + self.glade.get_object('place_cancel').connect('clicked', self.close_window) + self.glade.get_object('place_ok').connect('clicked', self.merge) + self.glade.get_object('place_help').connect('clicked', self.help) self.show() @@ -104,11 +106,11 @@ class MergePlaces(ManagedWindow.ManagedWindow): """ 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: 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())) # Set longitude @@ -132,16 +134,19 @@ class MergePlaces(ManagedWindow.ManagedWindow): self.p1.add_source_reference(source) # 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: - 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()) for l in lst: if not l.is_empty(): self.p1.add_alternate_locations(l) 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: if not l.is_empty(): 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): person = self.db.get_person_from_handle(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) # families for handle in self.db.get_family_handles(): family = self.db.get_family_from_handle(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) # events for handle in self.db.get_event_handles(): event = self.db.get_event_from_handle(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.transaction_commit(trans,_("Merge Places")) diff --git a/src/Merge/_MergeSource.py b/src/Merge/_MergeSource.py index 272182614..0df709d61 100644 --- a/src/Merge/_MergeSource.py +++ b/src/Merge/_MergeSource.py @@ -31,7 +31,7 @@ # 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.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.glade.get_widget('title'), + self.set_window(self.glade.get_object('merge_sources'), + self.glade.get_object('source_title'), _("Merge Sources")) - self.title1 = self.glade.get_widget("title1") - self.title2 = self.glade.get_widget("title2") + self.title1 = self.glade.get_object("title1") + self.title2 = self.glade.get_object("title2") self.title1.set_text(self.s1.get_title()) self.title2.set_text(self.s2.get_title()) - self.author1 = self.glade.get_widget("author1") - self.author2 = self.glade.get_widget("author2") + self.author1 = self.glade.get_object("author1") + self.author2 = self.glade.get_object("author2") self.author1.set_text(self.s1.get_author()) self.author2.set_text(self.s2.get_author()) - self.abbrev1 = self.glade.get_widget("abbrev1") - self.abbrev2 = self.glade.get_widget("abbrev2") + self.abbrev1 = self.glade.get_object("abbrev1") + self.abbrev2 = self.glade.get_object("abbrev2") self.abbrev1.set_text(self.s1.get_abbreviation()) self.abbrev2.set_text(self.s2.get_abbreviation()) - self.pub1 = self.glade.get_widget("pub1") - self.pub2 = self.glade.get_widget("pub2") + self.pub1 = self.glade.get_object("pub1") + self.pub2 = self.glade.get_object("pub2") self.pub1.set_text(self.s1.get_publication_info()) self.pub2.set_text(self.s2.get_publication_info()) - self.gramps1 = self.glade.get_widget("gramps1") - self.gramps2 = self.glade.get_widget("gramps2") + self.gramps1 = self.glade.get_object("gramps1") + self.gramps2 = self.glade.get_object("gramps2") self.gramps1.set_text(self.s1.get_gramps_id()) self.gramps2.set_text(self.s2.get_gramps_id()) - self.glade.get_widget('ok').connect('clicked',self.merge) - self.glade.get_widget('cancel').connect('clicked',self.close_window) - self.glade.get_widget('help').connect('clicked',self.help) + self.glade.get_object('source_ok').connect('clicked',self.merge) + self.glade.get_object('source_cancel').connect('clicked',self.close_window) + self.glade.get_object('source_help').connect('clicked',self.help) self.show() 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. """ - use_title1 = self.glade.get_widget("title_btn1").get_active() - use_author1 = self.glade.get_widget("author_btn1").get_active() - use_abbrev1 = self.glade.get_widget("abbrev_btn1").get_active() - use_pub1 = self.glade.get_widget("pub_btn1").get_active() - use_gramps1 = self.glade.get_widget("gramps_btn1").get_active() + use_title1 = self.glade.get_object("title_btn1").get_active() + use_author1 = self.glade.get_object("author_btn1").get_active() + use_abbrev1 = self.glade.get_object("abbrev_btn1").get_active() + use_pub1 = self.glade.get_object("pub_btn1").get_active() + use_gramps1 = self.glade.get_object("gramps_btn1").get_active() if not use_title1: 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): person = self.db.get_person_from_handle(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) # family for handle in self.db.get_family_handles(): family = self.db.get_family_from_handle(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) # events for handle in self.db.get_event_handles(): event = self.db.get_event_from_handle(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) # sources for handle in self.db.get_source_handles(): source = self.db.get_source_from_handle(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) # places for handle in self.db.get_place_handles(): place = self.db.get_place_from_handle(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) # media for handle in self.db.get_media_object_handles(): obj = self.db.get_object_from_handle(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.transaction_commit(trans,_("Merge Sources")) diff --git a/src/glade/mergedata.glade b/src/glade/mergedata.glade index 932946459..ba6ba120d 100644 --- a/src/glade/mergedata.glade +++ b/src/glade/mergedata.glade @@ -1,1465 +1,1129 @@ - - - - - - - - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - True - 450 - True - False - True - False - False - GDK_WINDOW_TYPE_HINT_DIALOG - GDK_GRAVITY_NORTH_WEST - True - False - False - - - - True - False - 8 - - - - True - GTK_BUTTONBOX_END - - - - True - True - True - gtk-cancel - True - GTK_RELIEF_NORMAL - True - 0 - - - - - - - True - True - True - gtk-ok - True - GTK_RELIEF_NORMAL - True - 0 - - - - - - - True - True - True - gtk-help - True - GTK_RELIEF_NORMAL - True - -11 - - - - - - 0 - False - True - GTK_PACK_END - - - - - - True - False - 0 - - - - True - - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 6 - False - False - - - - - - 6 - True - 4 - 3 - False - 6 - 6 - - - - True - True - True - True - 0 - - True - * - False - - - 2 - 3 - 3 - 4 - - - - - - - True - - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 1 - 2 - fill - - - - - - - True - - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 2 - 3 - fill - - - - - - - True - <b>Title selection</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 3 - 0 - 1 - fill - - - - - - - True - True - Place 1 - True - GTK_RELIEF_NORMAL - True - True - False - True - - - 1 - 2 - 1 - 2 - fill - - - - - - - True - True - Place 2 - True - GTK_RELIEF_NORMAL - True - False - False - True - title1 - - - 1 - 2 - 2 - 3 - fill - - - - - - - True - True - Other - True - GTK_RELIEF_NORMAL - True - False - False - True - title1 - - - 1 - 2 - 3 - 4 - fill - - - - - - 0 - True - True - - - - - 0 - True - True - - - - - - - - True - - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - True - 700 - 500 - True - False - True - False - False - GDK_WINDOW_TYPE_HINT_DIALOG - GDK_GRAVITY_NORTH_WEST - True - False - False - - - - True - False - 8 - - - - True - GTK_BUTTONBOX_END - - - - True - True - True - gtk-cancel - True - GTK_RELIEF_NORMAL - True - 0 - - - - - - - True - False - True - True - Merge and _edit - True - GTK_RELIEF_NORMAL - True - 0 - - - - - - - True - True - True - _Merge and close - True - GTK_RELIEF_NORMAL - True - 0 - - - - - - - True - True - True - gtk-help - True - GTK_RELIEF_NORMAL - True - -11 - - - - - - 0 - False - True - GTK_PACK_END - - - - - - True - False - 0 - - - - True - - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 10 - False - False - - - - - - True - 2 - 2 - False - 0 - 5 - - - - True - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - True - False - False - True - GTK_JUSTIFY_LEFT - GTK_WRAP_NONE - True - 10 - 10 - 0 - 10 - 10 - 0 - - - - - - 0 - 1 - 0 - 1 - - - - - - True - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - True - False - False - True - GTK_JUSTIFY_LEFT - GTK_WRAP_NONE - True - 10 - 10 - 0 - 10 - 10 - 0 - - - - - - 1 - 2 - 0 - 1 - fill - - - - - - True - True - Select - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 1 - 2 - 1 - 2 - - - - - - - - True - True - Select - True - GTK_RELIEF_NORMAL - True - True - False - True - select2 - - - 0 - 1 - 1 - 2 - - - - - - - 0 - True - True - - - - - 0 - True - True - - - - - - - - True - - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - 500 - True - False - True - False - False - GDK_WINDOW_TYPE_HINT_DIALOG - GDK_GRAVITY_NORTH_WEST - True - False - False - - - - True - False - 0 - - - - True - GTK_BUTTONBOX_END - - - - True - True - True - gtk-cancel - True - GTK_RELIEF_NORMAL - True - -6 - - - - - - True - True - True - gtk-ok - True - GTK_RELIEF_NORMAL - True - -5 - - - - - - True - True - True - gtk-help - True - GTK_RELIEF_NORMAL - True - -11 - - - - - 0 - False - True - GTK_PACK_END - - - - - - 6 - True - 7 - 7 - False - 6 - 6 - - - - True - <b>Source 1</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 3 - 1 - 2 - fill - - - - - - - True - <b>Source 2</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 4 - 7 - 1 - 2 - fill - - - - - - - True - True - Title: - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 1 - 2 - 2 - 3 - fill - - - - - - - True - True - Title: - True - GTK_RELIEF_NORMAL - True - False - False - True - title_btn1 - - - 5 - 6 - 2 - 3 - fill - - - - - - - True - True - Author: - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 1 - 2 - 3 - 4 - fill - - - - - - - True - True - Author: - True - GTK_RELIEF_NORMAL - True - False - False - True - author_btn1 - - - 5 - 6 - 3 - 4 - fill - - - - - - - True - True - Abbreviation: - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 1 - 2 - 4 - 5 - fill - - - - - - - True - True - Abbreviation: - True - GTK_RELIEF_NORMAL - True - False - False - True - abbrev_btn1 - - - 5 - 6 - 4 - 5 - fill - - - - - - - True - True - Publication: - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 1 - 2 - 5 - 6 - fill - - - - - - - True - True - Publication: - True - GTK_RELIEF_NORMAL - True - False - False - True - pub_btn1 - - - 5 - 6 - 5 - 6 - fill - - - - - - - True - True - GRAMPS ID: - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 1 - 2 - 6 - 7 - fill - - - - - - - True - True - GRAMPS ID: - True - GTK_RELIEF_NORMAL - True - False - False - True - gramps_btn1 - - - 5 - 6 - 6 - 7 - fill - - - - - - - True - - False - True - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 7 - 0 - 1 - - - - - - - True - True - False - True - 0 - - True - - False - - - 2 - 3 - 2 - 3 - - - - - - - True - True - False - True - 0 - - True - - False - - - 6 - 7 - 2 - 3 - - - - - - - True - True - False - True - 0 - - True - - False - - - 2 - 3 - 3 - 4 - - - - - - - True - True - False - True - 0 - - True - - False - - - 6 - 7 - 3 - 4 - - - - - - - True - True - False - True - 0 - - True - - False - - - 2 - 3 - 4 - 5 - - - - - - - True - True - False - True - 0 - - True - - False - - - 6 - 7 - 4 - 5 - - - - - - - True - True - False - True - 0 - - True - - False - - - 2 - 3 - 5 - 6 - - - - - - - True - True - False - True - 0 - - True - - False - - - 6 - 7 - 5 - 6 - - - - - - - True - True - False - True - 0 - - True - - False - - - 2 - 3 - 6 - 7 - - - - - - - True - True - False - True - 0 - - True - - False - - - 6 - 7 - 6 - 7 - - - - - - 0 - True - True - - - - - - - - True - - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - True - 300 - True - False - True - False - False - GDK_WINDOW_TYPE_HINT_DIALOG - GDK_GRAVITY_NORTH_WEST - True - False - False - - - - True - False - 8 - - - - True - GTK_BUTTONBOX_END - - - - True - True - True - gtk-cancel - True - GTK_RELIEF_NORMAL - True - -6 - - - - - - True - True - True - gtk-ok - True - GTK_RELIEF_NORMAL - True - -5 - - - - - - True - True - True - gtk-help - True - GTK_RELIEF_NORMAL - True - -11 - - - - - 0 - False - True - GTK_PACK_END - - - - - - 12 - True - False - 6 - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - Select the person that will provide the primary data for the merged person. - False - False - GTK_JUSTIFY_LEFT - True - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 6 - False - False - - - - - - True - 2 - 2 - False - 0 - 0 - - - - True - - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 0 - 1 - fill - - - - - - - True - - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 1 - 2 - fill - - - - - - - True - True - - True - GTK_RELIEF_NORMAL - True - True - False - True - - - 0 - 1 - 0 - 1 - 5 - 5 - fill - - - - - - - True - True - - True - GTK_RELIEF_NORMAL - True - False - False - True - person1 - - - 0 - 1 - 1 - 2 - 5 - 5 - fill - - - - - - 0 - True - True - - - - - 0 - True - True - - - - - - - + + + + + + True + 450 + dialog + False + + + True + 8 + + + True + + + True + center + + + False + False + 6 + 0 + + + + + True + 6 + 4 + 3 + 6 + 6 + + + True + True + + + 2 + 3 + 3 + 4 + + + + + + True + 0 + center + + + 2 + 3 + 1 + 2 + GTK_FILL + + + + + + True + 0 + center + + + 2 + 3 + 2 + 3 + GTK_FILL + + + + + + True + 0 + <b>Title selection</b> + True + + + 3 + GTK_FILL + + + + + + Place 1 + True + True + False + True + True + True + + + 1 + 2 + 1 + 2 + GTK_FILL + + + + + + Place 2 + True + True + False + True + True + place1 + + + 1 + 2 + 2 + 3 + GTK_FILL + + + + + + Other + True + True + False + True + True + place1 + + + 1 + 2 + 3 + 4 + GTK_FILL + + + + + + + + + + + + + + + 1 + + + + + 1 + + + + + True + end + + + gtk-cancel + True + True + True + False + True + + + + False + False + 0 + + + + + gtk-ok + True + True + True + False + True + + + + False + False + 1 + + + + + gtk-help + True + True + True + False + True + + + + False + False + 2 + + + + + False + end + 0 + + + + + + place_cancel + place_ok + place_help + + + + True + 700 + 500 + dialog + False + + + True + 8 + + + True + + + True + center + + + False + False + 10 + 0 + + + + + True + 2 + 2 + 5 + + + True + True + automatic + automatic + in + + + True + True + 10 + 10 + False + 10 + 10 + + + + + + + True + True + automatic + automatic + in + + + True + True + 10 + 10 + False + 10 + 10 + + + + + 1 + 2 + GTK_FILL + + + + + Select + True + True + False + True + True + + + 1 + 2 + 1 + 2 + + + + + + + Select + True + True + False + True + True + True + select2 + + + 1 + 2 + + + + + + + 1 + + + + + 1 + + + + + True + end + + + gtk-cancel + True + True + True + False + True + + + + False + False + 0 + + + + + Merge and _edit + True + False + True + True + False + True + + + + False + False + 1 + + + + + _Merge and close + True + True + True + False + True + + + + False + False + 2 + + + + + gtk-help + True + True + True + False + True + + + + False + False + 3 + + + + + False + end + 0 + + + + + + merge_cancel + edit + close + merge_help + + + + 500 + dialog + False + + + True + + + True + 6 + 7 + 7 + 6 + 6 + + + True + 0 + <b>Source 1</b> + True + + + 3 + 1 + 2 + GTK_FILL + + + + + + True + 0 + <b>Source 2</b> + True + + + 4 + 7 + 1 + 2 + GTK_FILL + + + + + + Title: + True + True + False + True + True + + + 1 + 2 + 2 + 3 + GTK_FILL + + + + + + Title: + True + True + False + True + True + title_btn1 + + + 5 + 6 + 2 + 3 + GTK_FILL + + + + + + Author: + True + True + False + True + True + + + 1 + 2 + 3 + 4 + GTK_FILL + + + + + + Author: + True + True + False + True + True + author_btn1 + + + 5 + 6 + 3 + 4 + GTK_FILL + + + + + + Abbreviation: + True + True + False + True + True + + + 1 + 2 + 4 + 5 + GTK_FILL + + + + + + Abbreviation: + True + True + False + True + True + abbrev_btn1 + + + 5 + 6 + 4 + 5 + GTK_FILL + + + + + + Publication: + True + True + False + True + True + + + 1 + 2 + 5 + 6 + GTK_FILL + + + + + + Publication: + True + True + False + True + True + pub_btn1 + + + 5 + 6 + 5 + 6 + GTK_FILL + + + + + + GRAMPS ID: + True + True + False + True + True + + + 1 + 2 + 6 + 7 + GTK_FILL + + + + + + GRAMPS ID: + True + True + False + True + True + gramps_btn1 + + + 5 + 6 + 6 + 7 + GTK_FILL + + + + + + True + True + + + 7 + + + + + + True + True + False + + + + 2 + 3 + 2 + 3 + + + + + + True + True + False + + + + 6 + 7 + 2 + 3 + + + + + + True + True + False + + + + 2 + 3 + 3 + 4 + + + + + + True + True + False + + + + 6 + 7 + 3 + 4 + + + + + + True + True + False + + + + 2 + 3 + 4 + 5 + + + + + + True + True + False + + + + 6 + 7 + 4 + 5 + + + + + + True + True + False + + + + 2 + 3 + 5 + 6 + + + + + + True + True + False + + + + 6 + 7 + 5 + 6 + + + + + + True + True + False + + + + 2 + 3 + 6 + 7 + + + + + + True + True + False + + + + 6 + 7 + 6 + 7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + True + end + + + gtk-cancel + True + True + True + False + True + + + False + False + 0 + + + + + gtk-ok + True + True + True + False + True + + + False + False + 1 + + + + + gtk-help + True + True + True + False + True + + + False + False + 2 + + + + + False + end + 0 + + + + + + source_cancel + source_ok + source_help + + + + True + 300 + dialog + False + + + True + 8 + + + True + 12 + 6 + + + True + + + False + False + 0 + + + + + True + Select the person that will provide the primary data for the merged person. + True + + + False + False + 6 + 1 + + + + + True + 2 + 2 + + + True + 0 + center + + + 1 + 2 + GTK_FILL + + + + + + True + 0 + center + + + 1 + 2 + 1 + 2 + GTK_FILL + + + + + + True + True + False + True + True + True + + + GTK_FILL + + 5 + 5 + + + + + True + True + False + True + True + person1 + + + 1 + 2 + GTK_FILL + + 5 + 5 + + + + + 2 + + + + + 1 + + + + + True + end + + + gtk-cancel + True + True + True + False + True + + + False + False + 0 + + + + + gtk-ok + True + True + True + False + True + + + False + False + 1 + + + + + gtk-help + True + True + True + False + True + + + False + False + 2 + + + + + False + end + 0 + + + + + + button15 + button16 + people_help + + +