From 177c14d082f0f9f913ea7f357507e6914981718b Mon Sep 17 00:00:00 2001 From: Don Allingham Date: Wed, 12 Mar 2003 03:02:08 +0000 Subject: [PATCH] Faster loading of pages, Improvements to filters svn: r1340 --- src/GenericFilter.py | 90 ++++++------- src/gramps_main.py | 71 +++++++--- src/plugins/Desbrowser.py | 4 + src/plugins/EventCmp.py | 30 ++++- src/plugins/FilterEditor.py | 20 ++- src/plugins/IndivComplete.py | 2 +- src/plugins/IndivSummary.py | 2 +- src/plugins/Merge.py | 13 +- src/plugins/ReadGedcom.py | 2 +- src/plugins/TimeLine.py | 16 ++- src/plugins/desbrowse.glade | 238 +++++++++++++++------------------ src/plugins/eventcmp.glade | 194 +++++++++++++++------------ src/plugins/merge.glade | 246 ++++++++++++++--------------------- src/rule.glade | 25 +++- 14 files changed, 499 insertions(+), 454 deletions(-) diff --git a/src/GenericFilter.py b/src/GenericFilter.py index f0321f59e..6f1ccd06b 100644 --- a/src/GenericFilter.py +++ b/src/GenericFilter.py @@ -50,6 +50,7 @@ import gtk import const import RelLib import Date +import Calendar from intl import gettext as _ from Utils import for_each_ancestor @@ -61,9 +62,9 @@ from Utils import for_each_ancestor def date_cmp(rule,value): sd = rule.get_start_date() s = sd.mode - if s == Date.SingleDate.before: + if s == Calendar.BEFORE: return Date.compare_dates(rule,value) == 1 - elif s == Date.SingleDate.after: + elif s == Calendar.AFTER: return Date.compare_dates(rule,value) == -1 elif sd.month == Date.UNDEF and sd.year != Date.UNDEF: return sd.year == value.get_start_date().year @@ -325,13 +326,16 @@ class HasEvent(Rule): val = 1 if self.list[0] and event.getName() != self.list[0]: val = 0 - if self.list[3] and find(event.getDescription(),self.list[3])==-1: + if self.list[3] and find(event.getDescription().upper(), + self.list[3].upper())==-1: val = 0 if self.date: if date_cmp(self.date,event.getDateObj()): val = 0 - if self.list[2] and find(p.getPlaceName(),self.list[2]) == -1: - val = 0 + if self.list[2]: + pn = event.getPlaceName() + if find(pn.upper(),self.list[2].upper()) == -1: + val = 0 if val == 1: return 1 return 0 @@ -365,12 +369,13 @@ class HasFamilyEvent(Rule): if self.list[0] and event.getName() != self.list[0]: val = 0 v = self.list[3] - if v and find(event.getDescription(),v)==-1: + if v and find(event.getDescription().upper(),v.upper())==-1: val = 0 if self.date: if date_cmp(self.date,event.getDateObj()): val = 0 - if self.list[2] and find(p.getPlaceName(),self.list[2]) == -1: + pn = event.getPlaceName().upper() + if self.list[2] and find(pn,self.list[2].upper()) == -1: val = 0 if val == 1: return 1 @@ -449,12 +454,14 @@ class HasBirth(Rule): def apply(self,db,p): event = p.getBirth() - if len(self.list) > 2 and find(event.getDescription(),self.list[2])==-1: + ed = event.getDescription().upper() + if len(self.list) > 2 and find(ed,self.list[2].upper())==-1: return 0 if self.date: if date_cmp(self.date,event.getDateObj()) == 0: return 0 - if len(self.list) > 1 and find(event.getPlaceName(),self.list[1]) == -1: + pn = event.getPlaceName().upper() + if len(self.list) > 1 and find(pn,self.list[1].upper()) == -1: return 0 return 1 @@ -481,12 +488,14 @@ class HasDeath(Rule): def apply(self,db,p): event = p.getDeath() - if self.list[2] and find(event.getDescription(),self.list[2])==-1: + ed = event.getDescription().upper() + if self.list[2] and find(ed,self.list[2].upper())==-1: return 0 if self.date: if date_cmp(self.date,event.getDateObj()) == 0: return 0 - if self.list[1] and find(p.getPlaceName(),self.list[1]) == -1: + pn = p.getPlaceName().upper() + if self.list[1] and find(pn,self.list[1].upper()) == -1: return 0 return 1 @@ -507,7 +516,8 @@ class HasAttribute(Rule): for event in p.getAttributes(): if self.list[0] and event.getType() != self.list[0]: return 0 - if self.list[1] and find(event.getValue(),self.list[1])==-1: + ev = event.getValue().upper() + if self.list[1] and find(ev,self.list[1].upper())==-1: return 0 return 1 @@ -530,7 +540,8 @@ class HasFamilyAttribute(Rule): val = 1 if self.list[0] and event.getType() != self.list[0]: val = 0 - if self.list[1] and find(event.getValue(),self.list[1])==-1: + ev = event.getValue().upper() + if self.list[1] and find(ev,self.list[1].upper())==-1: val = 0 if val == 1: return 1 @@ -556,13 +567,13 @@ class HasNameOf(Rule): self.t = self.list[3] for name in [p.getPrimaryName()] + p.getAlternateNames(): val = 1 - if self.f and find(name.getFirstName(),self.f) == -1: + if self.f and find(name.getFirstName().upper(),self.f.upper()) == -1: val = 0 - if self.l and find(name.getSurname(),self.l) == -1: + if self.l and find(name.getSurname().upper(),self.l.upper()) == -1: val = 0 - if self.s and find(name.getSuffix(),self.s) == -1: + if self.s and find(name.getSuffix().upper(),self.s.upper()) == -1: val = 0 - if self.t and find(name.getTitle(),self.t) == -1: + if self.t and find(name.getTitle().upper(),self.t.upper()) == -1: val = 0 if val == 1: return 1 @@ -638,6 +649,9 @@ class GenericFilter: def add_rule(self,rule): self.flist.append(rule) + def delete_rule(self,rule): + self.flist.remove(rule) + def set_rules(self,rules): self.flist = rules @@ -756,8 +770,9 @@ class GenericFilterList: parser = make_parser() parser.setContentHandler(FilterParser(self)) if self.file[0:7] != "file://": - self.file = "file://" + self.file - parser.parse(self.file) + parser.parse("file://" + self.file) + else: + parser.parse(self.file) except (IOError,OSError,SAXParseException): pass @@ -769,10 +784,12 @@ class GenericFilterList: return replace(l,'"','"') def save(self): - try: - f = open(self.file,'w') - except: - return +# try: +# f = open(self.file,'w') +# except: +# return + + f = open(self.file,'w') f.write("\n") f.write('\n') @@ -878,45 +895,18 @@ if not CustomFilters: def build_filter_menu(local_filters = []): menu = gtk.Menu() - menuitem = gtk.MenuItem(_("Local Filters")) - menu.append(menuitem) - menuitem.show() - menuitem.set_sensitive(0) - - menuitem = gtk.MenuItem() - menuitem.show() - menu.append(menuitem) - for filter in local_filters: menuitem = gtk.MenuItem(filter.get_name()) menuitem.show() menu.append(menuitem) menuitem.set_data("filter", filter) - menuitem = gtk.MenuItem(_("System Filters")) - menuitem.show() - menu.append(menuitem) - menuitem.set_sensitive(0) - - menuitem = gtk.MenuItem() - menuitem.show() - menu.append(menuitem) - for filter in SystemFilters.get_filters(): menuitem = gtk.MenuItem(_(filter.get_name())) menuitem.show() menu.append(menuitem) menuitem.set_data("filter", filter) - menuitem = gtk.MenuItem(_("Custom Filters")) - menu.append(menuitem) - menuitem.show() - menuitem.set_sensitive(0) - - menuitem = gtk.MenuItem() - menuitem.show() - menu.append(menuitem) - for filter in CustomFilters.get_filters(): menuitem = gtk.MenuItem(_(filter.get_name())) menuitem.show() diff --git a/src/gramps_main.py b/src/gramps_main.py index eb91fafa9..d0bdfcd78 100755 --- a/src/gramps_main.py +++ b/src/gramps_main.py @@ -84,13 +84,13 @@ except: # Constants # #------------------------------------------------------------------------- -_HOMEPAGE = "http://gramps.sourceforge.net" -_MAILLIST = "http://sourceforge.net/mail/?group_id=25770" +_HOMEPAGE = "http://gramps.sourceforge.net" +_MAILLIST = "http://sourceforge.net/mail/?group_id=25770" _BUGREPORT = "http://sourceforge.net/tracker/?group_id=25770&atid=385137" -pl_titles = [ (_('Name'),5,250), (_('ID'),1,50),(_('Gender'),2,70), - (_('Birth date'),6,150),(_('Death date'),7,150), ('',5,0), - ('',6,0), ('',7,0) ] +pl_titles = [ (_('Name'),5,250), (_('ID'),1,50),(_('Gender'),2,70), + (_('Birth date'),6,150),(_('Death date'),7,150), ('',5,0), + ('',6,0), ('',7,0) ] _sel_mode = gtk.SELECTION_MULTIPLE @@ -103,6 +103,8 @@ class Gramps: def __init__(self,arg): + import sys + self.program = gnome.program_init("gramps",const.version) self.DataFilter = Filter.Filter("") @@ -199,6 +201,7 @@ class Gramps: self.alpha_page = {} self.model2page = {} + self.model_used = {} self.tab_list = [] self.filter_list = self.gtop.get_widget("filter_list") @@ -315,14 +318,13 @@ class Gramps: self.enable_sidebar(self.use_sidebar) self.enable_filter(self.use_filter) -# WarningDialog("This is a non-stable, prerelease version of GRAMPS.\n" -# "Significant bugs may exist in this version, so please " -# "use at your own risk.") - def change_alpha_page(self,obj,junk,page): self.person_tree = self.pl_page[page] self.person_list = self.pl_page[page].tree self.person_model = self.pl_page[page].model + if not self.model_used.has_key(self.person_tree) or self.model_used[self.person_tree] == 0: + self.model_used[self.person_tree] = 1 + self.apply_filter(self.person_tree) def edit_button_clicked(self,obj): cpage = self.notebook.get_current_page() @@ -564,7 +566,7 @@ class Gramps: """Prompt for permission to close the current database""" QuestionDialog(_('Create a New Database'), - _('Creating a new database will close the existing database, ', + _('Creating a new database will close the existing database, ' 'discarding any unsaved changes. You will then be prompted ' 'to create a new database'), _('Create New Database'), @@ -589,6 +591,7 @@ class Gramps: self.tab_list = [] self.alpha_page = {} self.model2page = {} + self.model_used = {} self.person_tree = self.pl_page[-1] self.person_list = self.pl_page[-1].tree @@ -717,6 +720,7 @@ class Gramps: _('Load saved database'), self.loadsaved_file) else: + self.active_person = None self.read_file(filename) def autosave_query(self): @@ -939,12 +943,19 @@ class Gramps: def goto_active_person(self): if not self.active_person: + self.person_tree = self.pl_page[0] + self.person_list = self.pl_page[0].tree + self.person_model = self.pl_page[0].model self.ptabs.set_current_page(0) return id = self.active_person.getId() if self.id2col.has_key(id): (model,iter) = self.id2col[id] self.ptabs.set_current_page(self.model2page[model]) + if self.model_used[model] == 0: + self.model_used[model] = 1 + self.apply_filter(model) + model.selection.unselect_all() model.selection.select_iter(iter); itpath = model.model.get_path(iter) @@ -958,6 +969,7 @@ class Gramps: val = 1 else: val = 0 + self.report_menu.set_sensitive(val) self.tools_menu.set_sensitive(val) self.report_button.set_sensitive(val) @@ -1328,13 +1340,33 @@ class Gramps: for key in keys: self.alpha_page[key].new_model() self.id2col = {} - self.apply_filter() + self.model_used = {} + + for key in self.db.getPersonKeys(): + person = self.db.getPerson(key) + val = self.db.getPersonDisplay(key) + pg = val[5] + if pg: + pg = pg[0] + else: + pg = '' + if pg != '@': + if not self.alpha_page.has_key(pg): + self.create_new_panel(pg) + model = self.alpha_page[pg] + else: + model = self.default_list + +# self.apply_filter() for key in keys: self.alpha_page[key].connect_model() - + + self.goto_active_person() self.modify_statusbar() - def apply_filter(self): + def apply_filter(self,current_model=None): + self.status_text(_('Updating display...')) + datacomp = self.DataFilter.compare for key in self.db.getPersonKeys(): @@ -1356,15 +1388,18 @@ class Gramps: else: model = self.default_list - iter = model.add([val[0],val[1],val[2],val[3],val[4],val[5], - val[6],val[7]],key) - self.id2col[key] = (model,iter) + if current_model == None or current_model == model: + iter = model.add([val[0],val[1],val[2],val[3],val[4],val[5], + val[6],val[7]],key) + self.id2col[key] = (model,iter) else: if self.id2col.has_key(key): (model,iter) = self.id2col[key] - model.remove(iter) + if current_model == None or current_model == model: + model.remove(iter) for i in self.pl_page: i.sort() + self.modify_statusbar() def create_new_panel(self,pg): display = gtk.ScrolledWindow() @@ -1395,7 +1430,9 @@ class Gramps: for index in range(0,len(self.tab_list)): model = self.alpha_page[self.tab_list[index]] self.model2page[model] = index + self.model_used[model] = 0 self.model2page[self.default_list] = len(self.tab_list) + self.model_used[self.default_list] = 0 def on_home_clicked(self,obj): temp = self.db.getDefaultPerson() diff --git a/src/plugins/Desbrowser.py b/src/plugins/Desbrowser.py index 18470aa25..2c3702fd7 100644 --- a/src/plugins/Desbrowser.py +++ b/src/plugins/Desbrowser.py @@ -71,6 +71,10 @@ class DesBrowse: "destroy_passed_object" : Utils.destroy_passed_object, }) top = self.glade.get_widget("top") + + Utils.set_titles(top,self.glade.get_widget('title'), + _("Descendant Browser")) + self.tree= self.glade.get_widget("tree1") col = gtk.TreeViewColumn('',gtk.CellRendererText(),text=0) self.tree.append_column(col) diff --git a/src/plugins/EventCmp.py b/src/plugins/EventCmp.py index d3184fd3e..8d2de8bc0 100644 --- a/src/plugins/EventCmp.py +++ b/src/plugins/EventCmp.py @@ -46,6 +46,7 @@ import sort import Utils import TextDoc import OpenSpreadSheet +import const from QuestionDialog import WarningDialog from intl import gettext as _ @@ -131,20 +132,34 @@ class EventComparison: self.filterDialog = gtk.glade.XML(self.glade_file,"filters") self.filterDialog.signal_autoconnect({ "on_apply_clicked" : self.on_apply_clicked, + "on_editor_clicked" : self.filter_editor_clicked, + "on_filter_list_enter" : self.filter_list_enter, "destroy_passed_object" : Utils.destroy_passed_object }) top =self.filterDialog.get_widget("filters") - filters = self.filterDialog.get_widget("filter_list") + self.filters = self.filterDialog.get_widget("filter_list") - all = GenericFilter.GenericFilter() - all.set_name(_("Entire Database")) - all.add_rule(GenericFilter.Everyone([])) + Utils.set_titles(top,self.filterDialog.get_widget('title'), + _('Event comparison filter selection')) - self.filter_menu = GenericFilter.build_filter_menu([all]) - filters.set_menu(self.filter_menu) + self.all = GenericFilter.GenericFilter() + self.all.set_name(_("Entire Database")) + self.all.add_rule(GenericFilter.Everyone([])) + + self.filter_menu = GenericFilter.build_filter_menu([self.all]) + self.filters.set_menu(self.filter_menu) top.show() + def filter_editor_clicked(self,obj): + import FilterEditor + + FilterEditor.FilterEditor(const.custom_filters,self.db) + + def filter_list_enter(self,obj): + self.filter_menu = GenericFilter.build_filter_menu([self.all]) + self.filters.set_menu(self.filter_menu) + def on_apply_clicked(self,obj): cfilter = self.filter_menu.get_active().get_data("filter") @@ -201,6 +216,9 @@ class DisplayChart: self.top = self.topDialog.get_widget("view") self.eventlist = self.topDialog.get_widget('treeview') + + Utils.set_titles(self.top, self.topDialog.get_widget('title'), + _('Event Comparison')) self.my_list.sort(sort.by_last_name) diff --git a/src/plugins/FilterEditor.py b/src/plugins/FilterEditor.py index 2c3d4c412..7b1402df6 100644 --- a/src/plugins/FilterEditor.py +++ b/src/plugins/FilterEditor.py @@ -114,7 +114,7 @@ class FilterEditor: def delete_filter(self,obj): store,iter = self.clist.get_selected() if iter: - fil = self.clist.get_object(iter) + filter = self.clist.get_object(iter) self.filterdb.get_filters().remove(filter) self.draw_filters() @@ -313,8 +313,11 @@ class FilterEditor: self.draw_rules() def rule_changed(self,obj): - page = self.name2page[obj.get_text()] - self.notebook.set_current_page(page) + try: + page = self.name2page[obj.get_text()] + self.notebook.set_current_page(page) + except: + pass def rule_ok(self,obj): name = self.rname.entry.get_text() @@ -325,9 +328,9 @@ class FilterEditor: value_list.append(x.get_text()) new_rule = c(value_list) store,iter = self.rlist.get_selected() - if iter: - rule = self.rlist.get_object(iter) - self.filter.delete_rule(rule) +# if iter: +# rule = self.rlist.get_object(iter) +# self.filter.delete_rule(rule) self.filter.add_rule(new_rule) self.draw_rules() self.rule_top.destroy() @@ -339,8 +342,11 @@ class ShowResults: def __init__(self,plist): self.glade = gtk.glade.XML(const.filterFile,'test') self.top = self.glade.get_widget('test') - self.top.set_title('%s - GRAMPS' % _('Test Filter')) text = self.glade.get_widget('text') + + Utils.set_titles(self.top, self.glade.get_widget('title'), + _('Filter Test')) + self.glade.signal_autoconnect({ 'on_close_clicked' : self.close, }) diff --git a/src/plugins/IndivComplete.py b/src/plugins/IndivComplete.py index 45a0b1034..1d1b84993 100644 --- a/src/plugins/IndivComplete.py +++ b/src/plugins/IndivComplete.py @@ -525,7 +525,7 @@ class IndivSummaryDialog(Report.TextReportDialog): font.set_size(12) p = TextDoc.ParagraphStyle() p.set_font(font) - para.set_description(_('The basic style used for the text display.')) + p.set_description(_('The basic style used for the text display.')) self.default_style.add_style("Normal",p) def setup_report_options(self): diff --git a/src/plugins/IndivSummary.py b/src/plugins/IndivSummary.py index 5003f39a9..66d2fc776 100644 --- a/src/plugins/IndivSummary.py +++ b/src/plugins/IndivSummary.py @@ -368,7 +368,7 @@ class IndivSummaryDialog(Report.TextReportDialog): font.set_size(12) p = TextDoc.ParagraphStyle() p.set_font(font) - para.set_description(_('The basic style used for the text display.')) + p.set_description(_('The basic style used for the text display.')) self.default_style.add_style("Normal",p) def setup_report_options(self): diff --git a/src/plugins/Merge.py b/src/plugins/Merge.py index b35bc73dc..e0632375d 100644 --- a/src/plugins/Merge.py +++ b/src/plugins/Merge.py @@ -121,6 +121,9 @@ class Merge: self.menu = top.get_widget("menu") self.menu.set_menu(my_menu) + Utils.set_titles(top.get_widget('dialog'), top.get_widget('title'), + _('Merge people')) + top.signal_autoconnect({ "on_merge_ok_clicked" : self.on_merge_ok_clicked, "destroy_passed_object" : Utils.destroy_passed_object @@ -134,7 +137,7 @@ class Merge: self.show() def progress_update(self,val): - self.progress.update(val/100.0) + self.progress.set_fraction(val/100.0) while gtk.events_pending(): gtk.mainiteration() @@ -142,8 +145,10 @@ class Merge: top = gtk.glade.XML(self.glade_file,"message") self.topWin = top.get_widget("message") self.progress = top.get_widget("progressbar1") - self.topWin.show() + Utils.set_titles(self.topWin,top.get_widget('title'), + _('Determining possible merges')) + index = 0 males = {} @@ -205,6 +210,10 @@ class Merge: def show(self): top = gtk.glade.XML(self.glade_file,"mergelist") self.window = top.get_widget("mergelist") + + Utils.set_titles(self.window, top.get_widget('title'), + _('Potential Merges')) + self.mlist = top.get_widget("mlist") top.signal_autoconnect({ "destroy_passed_object" : Utils.destroy_passed_object, diff --git a/src/plugins/ReadGedcom.py b/src/plugins/ReadGedcom.py index e37e40e33..fd8327c44 100644 --- a/src/plugins/ReadGedcom.py +++ b/src/plugins/ReadGedcom.py @@ -147,7 +147,7 @@ def importData(database, filename, cb=None): except Errors.GedcomError, val: msg = str(val) Utils.destroy_passed_object(statusWindow) - gnome.ui.GnomeErrorDialog(msg) + ErrorDialog(msg) return except: import DisplayTrace diff --git a/src/plugins/TimeLine.py b/src/plugins/TimeLine.py index 833196fbc..adab79d37 100644 --- a/src/plugins/TimeLine.py +++ b/src/plugins/TimeLine.py @@ -147,6 +147,7 @@ class TimeLine: def write_report(self): (low,high) = self.find_year_range() + st_size = self.name_size() font = self.d.style_list['Name'].get_font() @@ -273,12 +274,17 @@ class TimeLine: high = max(high,b) if d != Date.UNDEF: - low = min(low,b) - high = max(high,b) - + low = min(low,d) + high = max(high,d) + low = (low/10)*10 high = ((high+9)/10)*10 + if low == Date.UNDEF: + low = high + if high == Date.UNDEF: + high = low + return (low,high) def name_size(self): @@ -370,7 +376,7 @@ class TimeLineDialog(Report.DrawReportDialog): f.set_type_face(TextDoc.FONT_SANS_SERIF) p = TextDoc.ParagraphStyle() p.set_font(f) - para.set_description(_("The style used for the person's name.")) + p.set_description(_("The style used for the person's name.")) self.default_style.add_style("Name",p) f = TextDoc.FontStyle() @@ -378,7 +384,7 @@ class TimeLineDialog(Report.DrawReportDialog): f.set_type_face(TextDoc.FONT_SANS_SERIF) p = TextDoc.ParagraphStyle() p.set_font(f) - para.set_description(_("The style used for the year labels.")) + p.set_description(_("The style used for the year labels.")) self.default_style.add_style("Label",p) f = TextDoc.FontStyle() diff --git a/src/plugins/desbrowse.glade b/src/plugins/desbrowse.glade index 6ac7589fc..9ac1359bb 100644 --- a/src/plugins/desbrowse.glade +++ b/src/plugins/desbrowse.glade @@ -1,147 +1,119 @@ - + - - Descendant Browser - GRAMPS - GTK_WINDOW_TOPLEVEL - no - yes - yes - yes - GTK_WIN_POS_NONE - - - no - 0 - yes + + True + + GTK_WINDOW_TOPLEVEL + GTK_WIN_POS_NONE + False + 450 + 400 + True + False + True - - - 10 - yes - 5 - yes + + + True + False + 0 - - - GTK_BUTTONBOX_END - 30 - yes + + + True + GTK_BUTTONBOX_END - - - yes - yes - yes - gtk-close - yes - yes + + + True + GTK_BUTTONBOX_END + 30 - - - - - - 0 - yes - yes - - - - - 0 - no - yes - GTK_PACK_END - - + + + True + True + True + gtk-close + True + GTK_RELIEF_NORMAL + + + + + + + + 0 + False + True + GTK_PACK_END + + - - - no - 0 - yes + + + True + False + 0 - - - Descendant Browser - GTK_JUSTIFY_CENTER - no - 0.5 - 0.5 - 0 - 0 - yes - - - 10 - no - no - - + + + True + + False + False + GTK_JUSTIFY_CENTER + False + False + 0.5 + 0.5 + 0 + 0 + + + 10 + False + False + + - - - yes - - - 10 - no - yes - - + + + True + GTK_POLICY_AUTOMATIC + GTK_POLICY_AUTOMATIC + GTK_SHADOW_IN + GTK_CORNER_TOP_LEFT - - - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - 350 - 350 - yes + + + True + True + False + False + True + + + + + 0 + True + True + + + + + 0 + True + True + + + + + - - - GTK_SHADOW_IN - yes - - - - yes - - - - - - - - GTK_UPDATE_CONTINUOUS - yes - - - - - - GTK_UPDATE_CONTINUOUS - yes - - - - - 0 - yes - yes - - - - - 0 - yes - yes - - - - - diff --git a/src/plugins/eventcmp.glade b/src/plugins/eventcmp.glade index 37210d029..56f3bc99d 100644 --- a/src/plugins/eventcmp.glade +++ b/src/plugins/eventcmp.glade @@ -284,7 +284,7 @@ True - Event Comparison - GRAMPS + GTK_WINDOW_TOPLEVEL GTK_WIN_POS_NONE False @@ -292,7 +292,7 @@ 400 True False - True + False @@ -349,9 +349,9 @@ 0 - + True - Event Comparison + False False GTK_JUSTIFY_CENTER @@ -378,7 +378,7 @@ True GTK_POLICY_AUTOMATIC GTK_POLICY_AUTOMATIC - GTK_SHADOW_NONE + GTK_SHADOW_IN GTK_CORNER_TOP_LEFT @@ -412,13 +412,14 @@ True - Event Comparison - GRAMPS + GTK_WINDOW_TOPLEVEL GTK_WIN_POS_NONE False + 400 True False - True + False @@ -449,10 +450,10 @@ True True True - gtk-cancel + gtk-close True GTK_RELIEF_NORMAL - 0 + -7 @@ -466,15 +467,109 @@ - + + 12 True + 3 + 3 False - 0 + 12 + 12 + + + + True + _Filter: + True + False + GTK_JUSTIFY_CENTER + False + False + 1 + 0.5 + 5 + 0 + filter_list + + + 0 + 1 + 1 + 2 + fill + + + + + + + True + The event comparison utility uses the filters defined in the Custom Filter Editor. + False + False + GTK_JUSTIFY_LEFT + True + False + 0.5 + 0.5 + 0 + 0 + + + 1 + 2 + 2 + 3 + fill + + + + + + + True + True + _Custom filter editor + True + GTK_RELIEF_NORMAL + + + + 2 + 3 + 2 + 3 + fill + + + + + + + True + True + -1 + + + + + True + + + + + 1 + 3 + 1 + 2 + + + True - Event Comparison + False False GTK_JUSTIFY_CENTER @@ -486,79 +581,18 @@ 0 - 0 - False - False - - - - - - True - - - 5 - False - True + 0 + 3 + 0 + 1 + fill + 0 - False - True - - - - - - True - False - 0 - - - - True - Filter - False - False - GTK_JUSTIFY_CENTER - False - False - 1 - 0.5 - 5 - 0 - - - 0 - False - False - - - - - - True - True - -1 - - - - True - - - - - 0 - True - True - - - - - 0 - False + True True diff --git a/src/plugins/merge.glade b/src/plugins/merge.glade index 863889699..ced8a4e0f 100644 --- a/src/plugins/merge.glade +++ b/src/plugins/merge.glade @@ -19,7 +19,7 @@ 0 - + True Determining Possible Merges False @@ -39,17 +39,6 @@ - - - True - - - 0 - False - True - - - True @@ -115,15 +104,15 @@ True - Merge List - GRAMPS + GTK_WINDOW_TOPLEVEL GTK_WIN_POS_NONE False - 450 + 500 350 True False - True + False @@ -141,7 +130,7 @@ True True True - Merge + _Merge True GTK_RELIEF_NORMAL 0 @@ -172,14 +161,15 @@ + 6 True False - 0 + 12 - + True - Potential Merges + False False GTK_JUSTIFY_CENTER @@ -197,17 +187,6 @@ - - - True - - - 10 - False - True - - - True @@ -246,13 +225,14 @@ True - Merge People - GRAMPS + GTK_WINDOW_TOPLEVEL GTK_WIN_POS_NONE False + 350 True False - True + False @@ -301,14 +281,15 @@ + 6 True False - 0 + 6 - + True - Merge People + False False GTK_JUSTIFY_CENTER @@ -320,30 +301,90 @@ 0 - 0 + 6 False False - + + 12 True - - - 5 - True - True - - + 5 + 2 + False + 6 + 12 - - - 8 - True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN + + + True + <b>Match Threshold</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + 0 + 2 + 0 + 1 + fill + + + + + + + True + <b>Options</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + + + 0 + 2 + 3 + 4 + fill + + + + + + + True + True + Use soundex codes + True + GTK_RELIEF_NORMAL + True + False + True + + + 1 + 2 + 4 + 5 + fill + + + @@ -358,105 +399,12 @@ - - - - - True - Match Threshold - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - - label_item - - - - - 0 - True - True - - - - - - 8 - True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN - - - - True - False - 0 - - - - True - True - Use SoundEx codes for name matches - True - GTK_RELIEF_NORMAL - True - False - True - - - 0 - False - False - - - - - - True - (Recommended only for English) - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - - - 0 - False - False - - - - - - - - True - Options - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - - - label_item + 1 + 2 + 1 + 2 + diff --git a/src/rule.glade b/src/rule.glade index 02610309d..51e39aefc 100644 --- a/src/rule.glade +++ b/src/rule.glade @@ -9,8 +9,8 @@ GTK_WINDOW_TOPLEVEL GTK_WIN_POS_NONE False - 450 - 400 + 600 + 450 True False gramps.png @@ -953,6 +953,27 @@ + + + True + + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 6 + + + 0 + False + False + + + True