From f40c352aa47427c7af63e218b14ad841f6f6dbde Mon Sep 17 00:00:00 2001 From: Don Allingham Date: Sat, 3 Jun 2006 19:08:09 +0000 Subject: [PATCH] 2006-06-03 Don Allingham * src/FilterEditor/_ShowResults.py: move glade functions to ManagedWindow * src/FilterEditor/_EditFilter.py: move glade functions to ManagedWindow * src/FilterEditor/_FilterEditor.py: move glade functions to ManagedWindow * src/FilterEditor/_EditRule.py: move glade functions to ManagedWindow * src/ManagedWindow.py: move glade functions to ManagedWindow svn: r6852 --- ChangeLog | 11 ++++++++ src/FilterEditor/_EditFilter.py | 41 ++++++++++++++------------- src/FilterEditor/_EditRule.py | 24 ++++++++-------- src/FilterEditor/_FilterEditor.py | 46 +++++++++++++------------------ src/FilterEditor/_ShowResults.py | 21 ++++++-------- src/ManagedWindow.py | 16 +++++++++++ src/glade/rule.glade | 7 ++--- 7 files changed, 90 insertions(+), 76 deletions(-) diff --git a/ChangeLog b/ChangeLog index 32fa1564a..b3168d222 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2006-06-03 Don Allingham + * src/FilterEditor/_ShowResults.py: move glade functions to + ManagedWindow + * src/FilterEditor/_EditFilter.py: move glade functions to + ManagedWindow + * src/FilterEditor/_FilterEditor.py: move glade functions to + ManagedWindow + * src/FilterEditor/_EditRule.py: move glade functions to + ManagedWindow + * src/ManagedWindow.py: move glade functions to ManagedWindow + 2006-06-02 Brian Matherly * src/docgen/*: use IndexMark * src/plugins/DetDecendantReport: use IndexMark diff --git a/src/FilterEditor/_EditFilter.py b/src/FilterEditor/_EditFilter.py index 5f1c1eaf5..a1fea0fa7 100644 --- a/src/FilterEditor/_EditFilter.py +++ b/src/FilterEditor/_EditFilter.py @@ -48,7 +48,6 @@ log = logging.getLogger(".FilterEdit") # #------------------------------------------------------------------------- import gtk -import gtk.glade import GrampsDisplay #------------------------------------------------------------------------- @@ -70,7 +69,8 @@ import ManagedWindow #------------------------------------------------------------------------- class EditFilter(ManagedWindow.ManagedWindow): - def __init__(self, space, dbstate, uistate, track, gfilter, filterdb, update): + def __init__(self, space, dbstate, uistate, track, gfilter, + filterdb, update): ManagedWindow.ManagedWindow.__init__(self, uistate, track, self) @@ -81,36 +81,36 @@ class EditFilter(ManagedWindow.ManagedWindow): self.filter = gfilter self.filterdb = filterdb - self.glade = gtk.glade.XML(const.rule_glade,'define_filter',"gramps") - self.define_title = self.glade.get_widget('title') - + self.define_glade('define_filter', const.rule_glade) + self.set_window( - self.glade.get_widget('define_filter'), - self.define_title, + self.get_widget('define_filter'), + self.get_widget('title'), _('Define filter')) - self.rule_list = self.glade.get_widget('rule_list') self.rlist = ListModel.ListModel( - self.rule_list, + self.get_widget('rule_list'), [(_('Name'),-1,150),(_('Values'),-1,150)], self.select_row, self.on_edit_clicked) - self.fname = self.glade.get_widget('filter_name') - self.logical = self.glade.get_widget('rule_apply') - self.comment = self.glade.get_widget('comment') - self.ok = self.glade.get_widget('ok') - self.edit_btn = self.glade.get_widget('edit') - self.del_btn = self.glade.get_widget('delete') - self.add_btn = self.glade.get_widget('add') + self.fname = self.get_widget('filter_name') + self.logical = self.get_widget('rule_apply') + self.comment = self.get_widget('comment') + self.ok_btn = self.get_widget('ok') + self.edit_btn = self.get_widget('edit') + self.del_btn = self.get_widget('delete') + self.add_btn = self.get_widget('add') - self.ok.connect('clicked', self.on_ok_clicked) + self.ok_btn.connect('clicked', self.on_ok_clicked) self.edit_btn.connect('clicked', self.on_edit_clicked) self.del_btn.connect('clicked', self.on_delete_clicked) self.add_btn.connect('clicked', self.on_add_clicked) - self.glade.get_widget('help').connect('clicked', self.on_help_clicked) - self.glade.get_widget('cancel').connect('clicked', self.close_window) + self.get_widget('help').connect('clicked', + self.on_help_clicked) + self.get_widget('cancel').connect('clicked', + self.close_window) self.fname.connect('changed', self.filter_name_changed) if self.filter.get_logical_op() == 'or': @@ -135,7 +135,7 @@ class EditFilter(ManagedWindow.ManagedWindow): def filter_name_changed(self,obj): name = unicode(self.fname.get_text()) - self.ok.set_sensitive(len(name) != 0) + self.ok_btn.set_sensitive(len(name) != 0) def select_row(self,obj): store,node = self.rlist.get_selected() @@ -180,7 +180,6 @@ class EditFilter(ManagedWindow.ManagedWindow): self.filterdb, None, _('Add Rule'), self.update_rule) def on_edit_clicked(self,obj): - print "ON EDIT" store, node = self.rlist.get_selected() if node: from _EditRule import EditRule diff --git a/src/FilterEditor/_EditRule.py b/src/FilterEditor/_EditRule.py index d5580224e..1ef0cfd5d 100644 --- a/src/FilterEditor/_EditRule.py +++ b/src/FilterEditor/_EditRule.py @@ -48,7 +48,6 @@ log = logging.getLogger(".FilterEdit") # #------------------------------------------------------------------------- import gtk -import gtk.glade import gobject import GrampsDisplay @@ -335,13 +334,14 @@ class EditRule(ManagedWindow.ManagedWindow): self.update_rule = update self.active_rule = val - self.rule = gtk.glade.XML(const.rule_glade,'rule_editor',"gramps") - self.set_window(self.rule.get_widget('rule_editor'), - self.rule.get_widget('title'),label) + self.define_glade('rule_editor', const.rule_glade) + + self.set_window(self.get_widget('rule_editor'), + self.get_widget('title'),label) self.window.hide() - self.valuebox = self.rule.get_widget('valuebox') - self.rname = self.rule.get_widget('ruletree') - self.rule_name = self.rule.get_widget('rulename') + self.valuebox = self.get_widget('valuebox') + self.rname = self.get_widget('ruletree') + self.rule_name = self.get_widget('rulename') self.notebook = gtk.Notebook() self.notebook.set_show_tabs(0) @@ -470,9 +470,9 @@ class EditRule(ManagedWindow.ManagedWindow): tlist[i].set_text(r[i]) self.selection.connect('changed', self.on_node_selected) - self.rule.get_widget('ok').connect('clicked',self.rule_ok) - self.rule.get_widget('cancel').connect('clicked', self.close_window) - self.rule.get_widget('help').connect('clicked',self.on_help_clicked) + self.get_widget('ok').connect('clicked',self.rule_ok) + self.get_widget('cancel').connect('clicked', self.close_window) + self.get_widget('help').connect('clicked',self.on_help_clicked) self.show() @@ -495,14 +495,14 @@ class EditRule(ManagedWindow.ManagedWindow): except: self.valuebox.set_sensitive(0) self.rule_name.set_text(_('No rule selected')) - self.rule.get_widget('description').set_text('') + self.get_widget('description').set_text('') def display_values(self,class_obj): page = self.class2page[class_obj] self.notebook.set_current_page(page) self.valuebox.set_sensitive(1) self.rule_name.set_text(class_obj.name) - self.rule.get_widget('description').set_text(class_obj.description) + self.get_widget('description').set_text(class_obj.description) def rule_ok(self,obj): if self.rule_name.get_text() == _('No rule selected'): diff --git a/src/FilterEditor/_FilterEditor.py b/src/FilterEditor/_FilterEditor.py index b815764c4..230f2ddfb 100644 --- a/src/FilterEditor/_FilterEditor.py +++ b/src/FilterEditor/_FilterEditor.py @@ -48,7 +48,6 @@ log = logging.getLogger(".FilterEdit") # #------------------------------------------------------------------------- import gtk -import gtk.glade import GrampsDisplay #------------------------------------------------------------------------- @@ -58,7 +57,7 @@ import GrampsDisplay #------------------------------------------------------------------------- import const import RelLib -from Filters import GenericFilter, FilterList, Rules, \ +from Filters import GenericFilter, FilterList, \ reload_custom_filters, reload_system_filters import ListModel import ManagedWindow @@ -71,7 +70,8 @@ import ManagedWindow class FilterEditor(ManagedWindow.ManagedWindow): def __init__(self, space, filterdb, dbstate, uistate): - ManagedWindow.ManagedWindow.__init__(self, uistate, [], FilterEditor) + ManagedWindow.ManagedWindow.__init__(self, uistate, [], + FilterEditor) self.dbstate = dbstate self.db = dbstate.db @@ -79,30 +79,28 @@ class FilterEditor(ManagedWindow.ManagedWindow): self.filterdb.load() self.space = space - self.editor = gtk.glade.XML(const.rule_glade,'filter_list',"gramps") - self.filter_list = self.editor.get_widget('filters') - self.edit = self.editor.get_widget('edit') - self.delete = self.editor.get_widget('delete') - self.test = self.editor.get_widget('test') + self.define_glade('filter_list', const.rule_glade) + self.filter_list = self.get_widget('filters') + self.edit = self.get_widget('edit') + self.delete = self.get_widget('delete') + self.test = self.get_widget('test') self.edit.set_sensitive(False) self.delete.set_sensitive(False) self.test.set_sensitive(False) - self.set_window(self.editor.get_widget('filter_list'), - self.editor.get_widget('title'), + self.set_window(self.get_widget('filter_list'), + self.get_widget('title'), _('%s filters') % _(self.space)) - self.editor.signal_autoconnect({ - 'on_add_clicked' : self.add_new_filter, - 'on_edit_clicked' : self.edit_filter, - 'on_test_clicked' : self.test_clicked, - 'on_close_clicked' : self.close_filter_editor, - "on_help_filters_clicked" : self.on_help_clicked, - 'on_delete_clicked' : self.delete_filter, - 'on_filter_list_delete_event' : self.on_delete_event, - }) + self.edit.connect('clicked', self.edit_filter) + self.test.connect('clicked', self.test_clicked) + self.delete.connect('clicked', self.delete_filter) + self.connect_button('help', self.help_clicked) + self.connect_button('close', self.close_window) + self.connect_button('add', self.add_new_filter) + self.clist = ListModel.ListModel( self.filter_list, [(_('Filter'),0,150),(_('Comment'),1,150)], @@ -114,16 +112,10 @@ class FilterEditor(ManagedWindow.ManagedWindow): def build_menu_names(self, obj): return (_("Custom Filter Editor"), _("Custom Filter Editor")) - def on_help_clicked(self,obj): + def help_clicked(self,obj): """Display the relevant portion of GRAMPS manual""" GrampsDisplay.help('tools-util-cfe') - def on_delete_event(self,obj,b): - self.filterdb.save() - reload_custom_filters() - reload_system_filters() - self.close() - def filter_select_row(self,obj): store,node = self.clist.get_selected() if node: @@ -135,7 +127,7 @@ class FilterEditor(ManagedWindow.ManagedWindow): self.delete.set_sensitive(False) self.test.set_sensitive(False) - def close_filter_editor(self,obj): + def close_window(self,obj): self.filterdb.save() reload_custom_filters() reload_system_filters() diff --git a/src/FilterEditor/_ShowResults.py b/src/FilterEditor/_ShowResults.py index e02cdfce1..38e0e0d22 100644 --- a/src/FilterEditor/_ShowResults.py +++ b/src/FilterEditor/_ShowResults.py @@ -48,7 +48,6 @@ log = logging.getLogger(".FilterEdit") # #------------------------------------------------------------------------- import gtk -import gtk.glade #------------------------------------------------------------------------- # @@ -70,30 +69,28 @@ class ShowResults(ManagedWindow.ManagedWindow): ManagedWindow.ManagedWindow.__init__(self, uistate, track, self) self.filtname = filtname - self.glade = gtk.glade.XML(const.rule_glade,'test',"gramps") - + self.define_glade('test', const.rule_glade,) self.set_window( - self.glade.get_widget('test'), - self.glade.get_widget('title'), + self.get_widget('test'), + self.get_widget('title'), _('Filter Test')) nd = NameDisplay.displayer + render = gtk.CellRendererText() - tree = self.glade.get_widget('list') + tree = self.get_widget('list') model = gtk.ListStore(str, str) tree.set_model(model) - column_n = gtk.TreeViewColumn( - _('Name'), gtk.CellRendererText(), text=0) + column_n = gtk.TreeViewColumn(_('Name'), render, text=0) tree.append_column(column_n) - column_n = gtk.TreeViewColumn( - _('ID'), gtk.CellRendererText(), text=1) + column_n = gtk.TreeViewColumn(_('ID'), render, text=1) tree.append_column(column_n) - self.glade.get_widget('close').connect('clicked',self.close_window) + self.get_widget('close').connect('clicked',self.close_window) - new_list = [ self.sort_val_from_handle(db, h) for h in handle_list ] + new_list = [self.sort_val_from_handle(db, h) for h in handle_list] new_list.sort() handle_list = [ h[1] for h in new_list ] diff --git a/src/ManagedWindow.py b/src/ManagedWindow.py index 344a67220..97d1824b6 100644 --- a/src/ManagedWindow.py +++ b/src/ManagedWindow.py @@ -33,6 +33,7 @@ from cStringIO import StringIO # #------------------------------------------------------------------------- import gtk +import gtk.glade #------------------------------------------------------------------------- # @@ -305,6 +306,7 @@ class ManagedWindow: """ window_key = self.build_window_key(obj) menu_label,submenu_label = self.build_menu_names(obj) + self._gladeobj = None if uistate.gwm.get_item_from_id(window_key): uistate.gwm.get_item_from_id(window_key).present() @@ -347,6 +349,20 @@ class ManagedWindow: def build_window_key(self,obj): return id(obj) + def define_glade(self, top_module, glade_file=None): + if glade_file == None: + glade_file = const.gladeFile + self._gladeobj = gtk.glade.XML(glade_file, top_module, "gramps") + return self._gladeobj + + def get_widget(self, name): + assert(self._gladeobj) + return self._gladeobj.get_widget(name) + + def connect_button(self, button_name, function): + assert(self._gladeobj) + self.get_widget(button_name).connect('clicked',function) + def show(self): assert self.window, "ManagedWindow: self.window does not exist!" self.window.set_transient_for(self.parent_window) diff --git a/src/glade/rule.glade b/src/glade/rule.glade index b0c5b8a6d..c53649cd0 100644 --- a/src/glade/rule.glade +++ b/src/glade/rule.glade @@ -509,7 +509,6 @@ Exactly one rule must apply - True GTK_WINDOW_TOPLEVEL GTK_WIN_POS_NONE @@ -540,7 +539,7 @@ Exactly one rule must apply GTK_BUTTONBOX_END - + True True True @@ -554,7 +553,7 @@ Exactly one rule must apply - + True True True @@ -649,7 +648,7 @@ Exactly one rule must apply 6 - + True Add a new filter True