2006-06-03 Don Allingham <don@gramps-project.org>

* 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
This commit is contained in:
Don Allingham 2006-06-03 19:08:09 +00:00
parent 79921262dd
commit f40c352aa4
7 changed files with 90 additions and 76 deletions

View File

@ -1,3 +1,14 @@
2006-06-03 Don Allingham <don@gramps-project.org>
* 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 <brian@gramps-project.org> 2006-06-02 Brian Matherly <brian@gramps-project.org>
* src/docgen/*: use IndexMark * src/docgen/*: use IndexMark
* src/plugins/DetDecendantReport: use IndexMark * src/plugins/DetDecendantReport: use IndexMark

View File

@ -48,7 +48,6 @@ log = logging.getLogger(".FilterEdit")
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
import gtk import gtk
import gtk.glade
import GrampsDisplay import GrampsDisplay
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
@ -70,7 +69,8 @@ import ManagedWindow
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
class EditFilter(ManagedWindow.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) ManagedWindow.ManagedWindow.__init__(self, uistate, track, self)
@ -81,36 +81,36 @@ class EditFilter(ManagedWindow.ManagedWindow):
self.filter = gfilter self.filter = gfilter
self.filterdb = filterdb self.filterdb = filterdb
self.glade = gtk.glade.XML(const.rule_glade,'define_filter',"gramps") self.define_glade('define_filter', const.rule_glade)
self.define_title = self.glade.get_widget('title')
self.set_window( self.set_window(
self.glade.get_widget('define_filter'), self.get_widget('define_filter'),
self.define_title, self.get_widget('title'),
_('Define filter')) _('Define filter'))
self.rule_list = self.glade.get_widget('rule_list')
self.rlist = ListModel.ListModel( self.rlist = ListModel.ListModel(
self.rule_list, self.get_widget('rule_list'),
[(_('Name'),-1,150),(_('Values'),-1,150)], [(_('Name'),-1,150),(_('Values'),-1,150)],
self.select_row, self.select_row,
self.on_edit_clicked) self.on_edit_clicked)
self.fname = self.glade.get_widget('filter_name') self.fname = self.get_widget('filter_name')
self.logical = self.glade.get_widget('rule_apply') self.logical = self.get_widget('rule_apply')
self.comment = self.glade.get_widget('comment') self.comment = self.get_widget('comment')
self.ok = self.glade.get_widget('ok') self.ok_btn = self.get_widget('ok')
self.edit_btn = self.glade.get_widget('edit') self.edit_btn = self.get_widget('edit')
self.del_btn = self.glade.get_widget('delete') self.del_btn = self.get_widget('delete')
self.add_btn = self.glade.get_widget('add') 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.edit_btn.connect('clicked', self.on_edit_clicked)
self.del_btn.connect('clicked', self.on_delete_clicked) self.del_btn.connect('clicked', self.on_delete_clicked)
self.add_btn.connect('clicked', self.on_add_clicked) self.add_btn.connect('clicked', self.on_add_clicked)
self.glade.get_widget('help').connect('clicked', self.on_help_clicked) self.get_widget('help').connect('clicked',
self.glade.get_widget('cancel').connect('clicked', self.close_window) self.on_help_clicked)
self.get_widget('cancel').connect('clicked',
self.close_window)
self.fname.connect('changed', self.filter_name_changed) self.fname.connect('changed', self.filter_name_changed)
if self.filter.get_logical_op() == 'or': if self.filter.get_logical_op() == 'or':
@ -135,7 +135,7 @@ class EditFilter(ManagedWindow.ManagedWindow):
def filter_name_changed(self,obj): def filter_name_changed(self,obj):
name = unicode(self.fname.get_text()) 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): def select_row(self,obj):
store,node = self.rlist.get_selected() store,node = self.rlist.get_selected()
@ -180,7 +180,6 @@ class EditFilter(ManagedWindow.ManagedWindow):
self.filterdb, None, _('Add Rule'), self.update_rule) self.filterdb, None, _('Add Rule'), self.update_rule)
def on_edit_clicked(self,obj): def on_edit_clicked(self,obj):
print "ON EDIT"
store, node = self.rlist.get_selected() store, node = self.rlist.get_selected()
if node: if node:
from _EditRule import EditRule from _EditRule import EditRule

View File

@ -48,7 +48,6 @@ log = logging.getLogger(".FilterEdit")
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
import gtk import gtk
import gtk.glade
import gobject import gobject
import GrampsDisplay import GrampsDisplay
@ -335,13 +334,14 @@ class EditRule(ManagedWindow.ManagedWindow):
self.update_rule = update self.update_rule = update
self.active_rule = val self.active_rule = val
self.rule = gtk.glade.XML(const.rule_glade,'rule_editor',"gramps") self.define_glade('rule_editor', const.rule_glade)
self.set_window(self.rule.get_widget('rule_editor'),
self.rule.get_widget('title'),label) self.set_window(self.get_widget('rule_editor'),
self.get_widget('title'),label)
self.window.hide() self.window.hide()
self.valuebox = self.rule.get_widget('valuebox') self.valuebox = self.get_widget('valuebox')
self.rname = self.rule.get_widget('ruletree') self.rname = self.get_widget('ruletree')
self.rule_name = self.rule.get_widget('rulename') self.rule_name = self.get_widget('rulename')
self.notebook = gtk.Notebook() self.notebook = gtk.Notebook()
self.notebook.set_show_tabs(0) self.notebook.set_show_tabs(0)
@ -470,9 +470,9 @@ class EditRule(ManagedWindow.ManagedWindow):
tlist[i].set_text(r[i]) tlist[i].set_text(r[i])
self.selection.connect('changed', self.on_node_selected) self.selection.connect('changed', self.on_node_selected)
self.rule.get_widget('ok').connect('clicked',self.rule_ok) self.get_widget('ok').connect('clicked',self.rule_ok)
self.rule.get_widget('cancel').connect('clicked', self.close_window) self.get_widget('cancel').connect('clicked', self.close_window)
self.rule.get_widget('help').connect('clicked',self.on_help_clicked) self.get_widget('help').connect('clicked',self.on_help_clicked)
self.show() self.show()
@ -495,14 +495,14 @@ class EditRule(ManagedWindow.ManagedWindow):
except: except:
self.valuebox.set_sensitive(0) self.valuebox.set_sensitive(0)
self.rule_name.set_text(_('No rule selected')) 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): def display_values(self,class_obj):
page = self.class2page[class_obj] page = self.class2page[class_obj]
self.notebook.set_current_page(page) self.notebook.set_current_page(page)
self.valuebox.set_sensitive(1) self.valuebox.set_sensitive(1)
self.rule_name.set_text(class_obj.name) 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): def rule_ok(self,obj):
if self.rule_name.get_text() == _('No rule selected'): if self.rule_name.get_text() == _('No rule selected'):

View File

@ -48,7 +48,6 @@ log = logging.getLogger(".FilterEdit")
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
import gtk import gtk
import gtk.glade
import GrampsDisplay import GrampsDisplay
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
@ -58,7 +57,7 @@ import GrampsDisplay
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
import const import const
import RelLib import RelLib
from Filters import GenericFilter, FilterList, Rules, \ from Filters import GenericFilter, FilterList, \
reload_custom_filters, reload_system_filters reload_custom_filters, reload_system_filters
import ListModel import ListModel
import ManagedWindow import ManagedWindow
@ -71,7 +70,8 @@ import ManagedWindow
class FilterEditor(ManagedWindow.ManagedWindow): class FilterEditor(ManagedWindow.ManagedWindow):
def __init__(self, space, filterdb, dbstate, uistate): def __init__(self, space, filterdb, dbstate, uistate):
ManagedWindow.ManagedWindow.__init__(self, uistate, [], FilterEditor) ManagedWindow.ManagedWindow.__init__(self, uistate, [],
FilterEditor)
self.dbstate = dbstate self.dbstate = dbstate
self.db = dbstate.db self.db = dbstate.db
@ -79,29 +79,27 @@ class FilterEditor(ManagedWindow.ManagedWindow):
self.filterdb.load() self.filterdb.load()
self.space = space self.space = space
self.editor = gtk.glade.XML(const.rule_glade,'filter_list',"gramps") self.define_glade('filter_list', const.rule_glade)
self.filter_list = self.editor.get_widget('filters') self.filter_list = self.get_widget('filters')
self.edit = self.editor.get_widget('edit') self.edit = self.get_widget('edit')
self.delete = self.editor.get_widget('delete') self.delete = self.get_widget('delete')
self.test = self.editor.get_widget('test') self.test = self.get_widget('test')
self.edit.set_sensitive(False) self.edit.set_sensitive(False)
self.delete.set_sensitive(False) self.delete.set_sensitive(False)
self.test.set_sensitive(False) self.test.set_sensitive(False)
self.set_window(self.editor.get_widget('filter_list'), self.set_window(self.get_widget('filter_list'),
self.editor.get_widget('title'), self.get_widget('title'),
_('%s filters') % _(self.space)) _('%s filters') % _(self.space))
self.editor.signal_autoconnect({ self.edit.connect('clicked', self.edit_filter)
'on_add_clicked' : self.add_new_filter, self.test.connect('clicked', self.test_clicked)
'on_edit_clicked' : self.edit_filter, self.delete.connect('clicked', self.delete_filter)
'on_test_clicked' : self.test_clicked,
'on_close_clicked' : self.close_filter_editor, self.connect_button('help', self.help_clicked)
"on_help_filters_clicked" : self.on_help_clicked, self.connect_button('close', self.close_window)
'on_delete_clicked' : self.delete_filter, self.connect_button('add', self.add_new_filter)
'on_filter_list_delete_event' : self.on_delete_event,
})
self.clist = ListModel.ListModel( self.clist = ListModel.ListModel(
self.filter_list, self.filter_list,
@ -114,16 +112,10 @@ class FilterEditor(ManagedWindow.ManagedWindow):
def build_menu_names(self, obj): def build_menu_names(self, obj):
return (_("Custom Filter Editor"), _("Custom Filter Editor")) 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""" """Display the relevant portion of GRAMPS manual"""
GrampsDisplay.help('tools-util-cfe') 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): def filter_select_row(self,obj):
store,node = self.clist.get_selected() store,node = self.clist.get_selected()
if node: if node:
@ -135,7 +127,7 @@ class FilterEditor(ManagedWindow.ManagedWindow):
self.delete.set_sensitive(False) self.delete.set_sensitive(False)
self.test.set_sensitive(False) self.test.set_sensitive(False)
def close_filter_editor(self,obj): def close_window(self,obj):
self.filterdb.save() self.filterdb.save()
reload_custom_filters() reload_custom_filters()
reload_system_filters() reload_system_filters()

View File

@ -48,7 +48,6 @@ log = logging.getLogger(".FilterEdit")
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
import gtk import gtk
import gtk.glade
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
@ -70,28 +69,26 @@ class ShowResults(ManagedWindow.ManagedWindow):
ManagedWindow.ManagedWindow.__init__(self, uistate, track, self) ManagedWindow.ManagedWindow.__init__(self, uistate, track, self)
self.filtname = filtname self.filtname = filtname
self.glade = gtk.glade.XML(const.rule_glade,'test',"gramps") self.define_glade('test', const.rule_glade,)
self.set_window( self.set_window(
self.glade.get_widget('test'), self.get_widget('test'),
self.glade.get_widget('title'), self.get_widget('title'),
_('Filter Test')) _('Filter Test'))
nd = NameDisplay.displayer nd = NameDisplay.displayer
render = gtk.CellRendererText()
tree = self.glade.get_widget('list') tree = self.get_widget('list')
model = gtk.ListStore(str, str) model = gtk.ListStore(str, str)
tree.set_model(model) tree.set_model(model)
column_n = gtk.TreeViewColumn( column_n = gtk.TreeViewColumn(_('Name'), render, text=0)
_('Name'), gtk.CellRendererText(), text=0)
tree.append_column(column_n) tree.append_column(column_n)
column_n = gtk.TreeViewColumn( column_n = gtk.TreeViewColumn(_('ID'), render, text=1)
_('ID'), gtk.CellRendererText(), text=1)
tree.append_column(column_n) 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() new_list.sort()

View File

@ -33,6 +33,7 @@ from cStringIO import StringIO
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
import gtk import gtk
import gtk.glade
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
@ -305,6 +306,7 @@ class ManagedWindow:
""" """
window_key = self.build_window_key(obj) window_key = self.build_window_key(obj)
menu_label,submenu_label = self.build_menu_names(obj) menu_label,submenu_label = self.build_menu_names(obj)
self._gladeobj = None
if uistate.gwm.get_item_from_id(window_key): if uistate.gwm.get_item_from_id(window_key):
uistate.gwm.get_item_from_id(window_key).present() uistate.gwm.get_item_from_id(window_key).present()
@ -347,6 +349,20 @@ class ManagedWindow:
def build_window_key(self,obj): def build_window_key(self,obj):
return id(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): def show(self):
assert self.window, "ManagedWindow: self.window does not exist!" assert self.window, "ManagedWindow: self.window does not exist!"
self.window.set_transient_for(self.parent_window) self.window.set_transient_for(self.parent_window)

View File

@ -509,7 +509,6 @@ Exactly one rule must apply</property>
</widget> </widget>
<widget class="GtkDialog" id="filter_list"> <widget class="GtkDialog" id="filter_list">
<property name="visible">True</property>
<property name="title" translatable="yes"></property> <property name="title" translatable="yes"></property>
<property name="type">GTK_WINDOW_TOPLEVEL</property> <property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_NONE</property> <property name="window_position">GTK_WIN_POS_NONE</property>
@ -540,7 +539,7 @@ Exactly one rule must apply</property>
<property name="layout_style">GTK_BUTTONBOX_END</property> <property name="layout_style">GTK_BUTTONBOX_END</property>
<child> <child>
<widget class="GtkButton" id="button1"> <widget class="GtkButton" id="close">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_default">True</property> <property name="can_default">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
@ -554,7 +553,7 @@ Exactly one rule must apply</property>
</child> </child>
<child> <child>
<widget class="GtkButton" id="button10"> <widget class="GtkButton" id="help">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_default">True</property> <property name="can_default">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
@ -649,7 +648,7 @@ Exactly one rule must apply</property>
<property name="spacing">6</property> <property name="spacing">6</property>
<child> <child>
<widget class="GtkButton" id="button3"> <widget class="GtkButton" id="add">
<property name="visible">True</property> <property name="visible">True</property>
<property name="tooltip" translatable="yes">Add a new filter</property> <property name="tooltip" translatable="yes">Add a new filter</property>
<property name="can_default">True</property> <property name="can_default">True</property>