From bb6b86ed0130d88fd65e481ffae822c6ca767b73 Mon Sep 17 00:00:00 2001 From: Richard Taylor Date: Thu, 19 Jan 2006 16:52:29 +0000 Subject: [PATCH] ground work for filters svn: r5799 --- ChangeLog | 7 +- src/ObjectSelector/_FamilyFilterFrame.py | 65 ++--- src/ObjectSelector/_FilterFrameBase.py | 73 ++++++ src/ObjectSelector/_ObjectSelectorWindow.py | 2 +- src/ObjectSelector/_PersonFilterFrame.py | 254 ++++++++++---------- 5 files changed, 228 insertions(+), 173 deletions(-) create mode 100644 src/ObjectSelector/_FilterFrameBase.py diff --git a/ChangeLog b/ChangeLog index 6939ae980..ee386f087 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,9 +1,14 @@ +2006-01-17 Richard Taylor + * src/ObjectSelector/_FamilyFilterFrame.py, src/ObjectSelector/_ObjectSelectorWindow.py + src/ObjectSelector/_PersonFilterFrame.py: ground work for filters + * src/ObjectSelector/_FilterFrameBase.py: new file + 2006-01-19 Alex Roitman * src/GrampsDb/_GrampsBSDDB.py (transaction_begin): Disconnect unneeded secondary indices; (transaction_commit): Create new secondary indices to replace the ones removed. -2006-01-17 Richard Taylor +2006-01-19 Richard Taylor * src/ListBox.py: added import for gettext * src/ObjectSelector/_Factories.py, src/ObjectSelector/_FamilyFrame.py src/ObjectSelector/_ObjectFrameBase.py, src/ObjectSelector/_ObjectSelectorWindow.py diff --git a/src/ObjectSelector/_FamilyFilterFrame.py b/src/ObjectSelector/_FamilyFilterFrame.py index cd1395b5a..bbef6c192 100644 --- a/src/ObjectSelector/_FamilyFilterFrame.py +++ b/src/ObjectSelector/_FamilyFilterFrame.py @@ -2,8 +2,9 @@ import gtk import gobject from GrampsWidgets import IntEdit +from _FilterFrameBase import FilterFrameBase -class FamilyFilterFrame(gtk.Frame): +class FamilyFilterFrame(FilterFrameBase): __gproperties__ = {} @@ -13,9 +14,7 @@ class FamilyFilterFrame(gtk.Frame): __default_border_width = 5 def __init__(self,dbstate,label="Filter"): - gtk.Frame.__init__(self,label) - - align = gtk.Alignment() + FilterFrameBase.__init__(self,label) # Gramps ID id_check = gtk.CheckButton() @@ -86,65 +85,39 @@ class FamilyFilterFrame(gtk.Frame): # table layout - table = gtk.Table(3,6,False) - table.set_row_spacings(5) - table.set_col_spacings(5) - - label_col = 0 - check_col = 1 - control_col = 2 current_row = 0 - table.attach(id_check,check_col,check_col+1,current_row,current_row+1,xoptions=False,yoptions=False) - table.attach(id_label,label_col,label_col+1,current_row,current_row+1,xoptions=gtk.FILL,yoptions=False) - table.attach(id_edit,control_col,control_col+1,current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) + self._table.attach(id_check,self._check_col,self._check_col+1,current_row,current_row+1,xoptions=False,yoptions=False) + self._table.attach(id_label,self._label_col,self._label_col+1,current_row,current_row+1,xoptions=gtk.FILL,yoptions=False) + self._table.attach(id_edit,self._control_col,self._control_col+1,current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) current_row +=1 - table.attach(name_check,check_col,check_col+1,current_row,current_row+1,xoptions=False,yoptions=False) - table.attach(name_label,label_col,label_col+1,current_row,current_row+1,xoptions=gtk.FILL,yoptions=False) - table.attach(name_edit,control_col,control_col+1,current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) + self._table.attach(name_check,self._check_col,self._check_col+1,current_row,current_row+1,xoptions=False,yoptions=False) + self._table.attach(name_label,self._label_col,self._label_col+1,current_row,current_row+1,xoptions=gtk.FILL,yoptions=False) + self._table.attach(name_edit,self._control_col,self._control_col+1,current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) current_row +=1 - table.attach(mar_check,check_col,check_col+1,current_row,current_row+1,xoptions=False,yoptions=False) - table.attach(m_label,label_col,label_col+1,current_row,current_row+1,xoptions=gtk.FILL,yoptions=False) - table.attach(m_edit,control_col,control_col+1,current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) + self._table.attach(mar_check,self._check_col,self._check_col+1,current_row,current_row+1,xoptions=False,yoptions=False) + self._table.attach(m_label,self._label_col,self._label_col+1,current_row,current_row+1,xoptions=gtk.FILL,yoptions=False) + self._table.attach(m_edit,self._control_col,self._control_col+1,current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) current_row +=1 - table.attach(m_inner_box,control_col,control_col+1,current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) + self._table.attach(m_inner_box,self._control_col,self._control_col+1,current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) current_row +=1 - table.attach(m_unknown,control_col,control_col+1,current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) + self._table.attach(m_unknown,self._control_col,self._control_col+1,current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) current_row +=1 - table.attach(filter_check,check_col,check_col+1,current_row,current_row+1,xoptions=False,yoptions=False) - table.attach(filter_label,label_col,label_col+1,current_row,current_row+1,xoptions=gtk.FILL,yoptions=False) - table.attach(filter_combo,control_col,control_col+1,current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) + self._table.attach(filter_check,self._check_col,self._check_col+1,current_row,current_row+1,xoptions=False,yoptions=False) + self._table.attach(filter_label,self._label_col,self._label_col+1,current_row,current_row+1,xoptions=gtk.FILL,yoptions=False) + self._table.attach(filter_combo,self._control_col,self._control_col+1,current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) - # Apply - apply_button = gtk.Button(stock=gtk.STOCK_APPLY) - - # Outer box - - outer_box = gtk.VBox() - outer_box.pack_start(table,True,True) - outer_box.pack_start(apply_button,False,False) - outer_box.set_border_width(self.__class__.__default_border_width/2) - outer_box.set_spacing(self.__class__.__default_border_width/2) - - align.add(outer_box) - align.set_padding(self.__class__.__default_border_width, - self.__class__.__default_border_width, - self.__class__.__default_border_width, - self.__class__.__default_border_width) - - - self.add(align) - - + def on_apply(self,button): + pass if gtk.pygtk_version < (2,8,0): gobject.type_register(FamilyFilterFrame) diff --git a/src/ObjectSelector/_FilterFrameBase.py b/src/ObjectSelector/_FilterFrameBase.py new file mode 100644 index 000000000..f36a9fe25 --- /dev/null +++ b/src/ObjectSelector/_FilterFrameBase.py @@ -0,0 +1,73 @@ +import gtk +import gobject + +from GrampsWidgets import IntEdit +import GenericFilter + +class FilterFrameBase(gtk.Frame): + + __gproperties__ = {} + + __gsignals__ = { + 'apply-filter': (gobject.SIGNAL_RUN_LAST, + gobject.TYPE_NONE, + (gobject.TYPE_PYOBJECT,)) + } + + __default_border_width = 5 + + def __init__(self,dbstate,label="Filter"): + gtk.Frame.__init__(self,label) + + align = gtk.Alignment() + + # table layout + + self._table = gtk.Table(3,6,False) + self._table.set_row_spacings(5) + self._table.set_col_spacings(5) + + self._label_col = 0 + self._check_col = 1 + self._control_col = 2 + + + # Apply + + apply_button = gtk.Button(stock=gtk.STOCK_APPLY) + apply_button.connect('clicked',self.on_apply) + + # Outer box + + outer_box = gtk.VBox() + outer_box.pack_start(self._table,True,True) + outer_box.pack_start(apply_button,False,False) + outer_box.set_border_width(self.__class__.__default_border_width/2) + outer_box.set_spacing(self.__class__.__default_border_width/2) + + align.add(outer_box) + align.set_padding(self.__class__.__default_border_width, + self.__class__.__default_border_width, + self.__class__.__default_border_width, + self.__class__.__default_border_width) + + + self.add(align) + + def on_apply(self,button): + """Build a GenericFilter object from the settings in the filter controls and + emit a 'apply-filter' signal with the GenericFilter object as the parameter.""" + + pass + +if gtk.pygtk_version < (2,8,0): + gobject.type_register(FilterFrameBase) + +if __name__ == "__main__": + + w = gtk.Window() + f = PersonFilterFrame() + w.add(f) + w.show_all() + + gtk.main() diff --git a/src/ObjectSelector/_ObjectSelectorWindow.py b/src/ObjectSelector/_ObjectSelectorWindow.py index 008c3a316..e62030db1 100644 --- a/src/ObjectSelector/_ObjectSelectorWindow.py +++ b/src/ObjectSelector/_ObjectSelectorWindow.py @@ -336,7 +336,7 @@ if __name__ == "__main__": w = ObjectSelectorWindow(dbstate=dbstate, uistate=vm.uistate, default_object_type = ObjectTypes.PERSON, - object_list=[ObjectTypes.PERSON]) + object_list=[ObjectTypes.PERSON,ObjectTypes.FAMILY]) w.show() w.connect("destroy", gtk.main_quit) diff --git a/src/ObjectSelector/_PersonFilterFrame.py b/src/ObjectSelector/_PersonFilterFrame.py index 63f773211..2cae6dcd1 100644 --- a/src/ObjectSelector/_PersonFilterFrame.py +++ b/src/ObjectSelector/_PersonFilterFrame.py @@ -2,8 +2,10 @@ import gtk import gobject from GrampsWidgets import IntEdit +from _FilterFrameBase import FilterFrameBase +import GenericFilter -class PersonFilterFrame(gtk.Frame): +class PersonFilterFrame(FilterFrameBase): __gproperties__ = {} @@ -13,198 +15,199 @@ class PersonFilterFrame(gtk.Frame): __default_border_width = 5 def __init__(self,dbstate,label="Filter"): - gtk.Frame.__init__(self,label) - - align = gtk.Alignment() + FilterFrameBase.__init__(self,label) # Gramps ID - id_check = gtk.CheckButton() + self._id_check = gtk.CheckButton() id_label = gtk.Label("Gramps ID") id_label.set_alignment(xalign=0,yalign=0.5) - id_edit = gtk.Entry() - id_edit.set_sensitive(False) + self._id_edit = gtk.Entry() + self._id_edit.set_sensitive(False) - id_check.connect('toggled',lambda b: id_edit.set_sensitive(id_check.get_active())) + self._id_check.connect('toggled',lambda b: self._id_edit.set_sensitive(self._id_check.get_active())) # Name - name_check = gtk.CheckButton() + self._name_check = gtk.CheckButton() name_label = gtk.Label("Name") name_label.set_alignment(xalign=0,yalign=0.5) - name_edit = gtk.Entry() - name_edit.set_sensitive(False) + self._name_edit = gtk.Entry() + self._name_edit.set_sensitive(False) - name_check.connect('toggled',lambda b: name_edit.set_sensitive(name_check.get_active())) + self._name_check.connect('toggled',lambda b: self._name_edit.set_sensitive(self._name_check.get_active())) # Gender - gender_check = gtk.CheckButton() + self._gender_check = gtk.CheckButton() gender_label = gtk.Label("Gender") gender_label.set_alignment(xalign=0,yalign=0.5) - gender_combo = gtk.combo_box_new_text() - gender_combo.append_text("Male") - gender_combo.append_text("Female") - gender_combo.append_text("Unknown") - gender_combo.set_active(2) - gender_combo.set_sensitive(False) + self._gender_combo = gtk.combo_box_new_text() + self._gender_combo.append_text("Male") + self._gender_combo.append_text("Female") + self._gender_combo.append_text("Unknown") + self._gender_combo.set_active(2) + self._gender_combo.set_sensitive(False) - gender_check.connect('toggled',lambda b: gender_combo.set_sensitive(gender_check.get_active())) + self._gender_check.connect('toggled',lambda b: self._gender_combo.set_sensitive(self._gender_check.get_active())) # Birth - birth_check = gtk.CheckButton() - birth_check.set_alignment(xalign=0,yalign=0) + self._birth_check = gtk.CheckButton() + self._birth_check.set_alignment(xalign=0,yalign=0) b_label = gtk.Label("Birth Year") b_label.set_alignment(xalign=0,yalign=0) - b_edit = IntEdit() - b_edit.set_sensitive(False) + self._b_edit = IntEdit() + self._b_edit.set_sensitive(False) - b_before = gtk.RadioButton(group=None,label="Before") - b_before.set_sensitive(False) + self._b_before = gtk.RadioButton(group=None,label="Before") + self._b_before.set_sensitive(False) - b_after = gtk.RadioButton(b_before,"After") - b_after.set_sensitive(False) - b_before.set_active(True) + self._b_after = gtk.RadioButton(self._b_before,"After") + self._b_after.set_sensitive(False) + self._b_before.set_active(True) - b_unknown = gtk.CheckButton("Include Unknown") - b_unknown.set_sensitive(False) - b_unknown.set_active(True) + self._b_unknown = gtk.CheckButton("Include Unknown") + self._b_unknown.set_sensitive(False) + self._b_unknown.set_active(True) - birth_check.connect('toggled',lambda b: b_edit.set_sensitive(birth_check.get_active())) - birth_check.connect('toggled',lambda b: b_before.set_sensitive(birth_check.get_active())) - birth_check.connect('toggled',lambda b: b_after.set_sensitive(birth_check.get_active())) - birth_check.connect('toggled',lambda b: b_unknown.set_sensitive(birth_check.get_active())) + self._birth_check.connect('toggled',lambda b: self._b_edit.set_sensitive(self._birth_check.get_active())) + self._birth_check.connect('toggled',lambda b: self._b_before.set_sensitive(self._birth_check.get_active())) + self._birth_check.connect('toggled',lambda b: self._b_after.set_sensitive(self._birth_check.get_active())) + self._birth_check.connect('toggled',lambda b: self._b_unknown.set_sensitive(self._birth_check.get_active())) - b_inner_box = gtk.HBox() - b_inner_box.pack_start(b_before) - b_inner_box.pack_start(b_after) + self._b_inner_box = gtk.HBox() + self._b_inner_box.pack_start(self._b_before) + self._b_inner_box.pack_start(self._b_after) # Death - death_check = gtk.CheckButton() + self._death_check = gtk.CheckButton() d_label = gtk.Label("Death Year") d_label.set_alignment(xalign=0,yalign=0) - d_edit = IntEdit() - d_edit.set_sensitive(False) + self._d_edit = IntEdit() + self._d_edit.set_sensitive(False) - d_before = gtk.RadioButton(group=None,label="Before") - d_before.set_sensitive(False) + self._d_before = gtk.RadioButton(group=None,label="Before") + self._d_before.set_sensitive(False) - d_after = gtk.RadioButton(d_before,"After") - d_after.set_sensitive(False) + self._d_after = gtk.RadioButton(self._d_before,"After") + self._d_after.set_sensitive(False) - d_before.set_active(True) - d_before.set_sensitive(False) + self._d_before.set_active(True) + self._d_before.set_sensitive(False) - d_unknown = gtk.CheckButton("Include Unknown") - d_unknown.set_sensitive(False) - d_unknown.set_active(True) + self._d_unknown = gtk.CheckButton("Include Unknown") + self._d_unknown.set_sensitive(False) + self._d_unknown.set_active(True) - death_check.connect('toggled',lambda b: d_edit.set_sensitive(death_check.get_active())) - death_check.connect('toggled',lambda b: d_before.set_sensitive(death_check.get_active())) - death_check.connect('toggled',lambda b: d_after.set_sensitive(death_check.get_active())) - death_check.connect('toggled',lambda b: d_unknown.set_sensitive(death_check.get_active())) + self._death_check.connect('toggled',lambda b: self._d_edit.set_sensitive(self._death_check.get_active())) + self._death_check.connect('toggled',lambda b: self._d_before.set_sensitive(self._death_check.get_active())) + self._death_check.connect('toggled',lambda b: self._d_after.set_sensitive(self._death_check.get_active())) + self._death_check.connect('toggled',lambda b: self._d_unknown.set_sensitive(self._death_check.get_active())) d_inner_box = gtk.HBox() - d_inner_box.pack_start(d_before) - d_inner_box.pack_start(d_after) + d_inner_box.pack_start(self._d_before) + d_inner_box.pack_start(self._d_after) # Filter - filter_check = gtk.CheckButton() + self._filter_check = gtk.CheckButton() filter_label = gtk.Label("Filter") filter_label.set_alignment(xalign=0,yalign=0.5) - filter_combo = gtk.combo_box_new_text() - filter_combo.append_text("Male") - filter_combo.append_text("Female") - filter_combo.append_text("Unknown") - filter_combo.set_active(2) - filter_combo.set_sensitive(False) + self._filter_combo = gtk.combo_box_new_text() + self._filter_combo.append_text("Male") + self._filter_combo.append_text("Female") + self._filter_combo.append_text("Unknown") + self._filter_combo.set_active(2) + self._filter_combo.set_sensitive(False) - filter_check.connect('toggled',lambda b: filter_combo.set_sensitive(filter_check.get_active())) + self._filter_check.connect('toggled',lambda b: self._filter_combo.set_sensitive(self._filter_check.get_active())) # table layout - table = gtk.Table(3,6,False) - table.set_row_spacings(5) - table.set_col_spacings(5) - - label_col = 0 - check_col = 1 - control_col = 2 - current_row = 0 - table.attach(id_check,check_col,check_col+1,current_row,current_row+1,xoptions=False,yoptions=False) - table.attach(id_label,label_col,label_col+1,current_row,current_row+1,xoptions=gtk.FILL,yoptions=False) - table.attach(id_edit,control_col,control_col+1,current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) + self._table.attach(self._id_check,self._check_col,self._check_col+1, + current_row,current_row+1,xoptions=False,yoptions=False) + self._table.attach(id_label,self._label_col,self._label_col+1, + current_row,current_row+1,xoptions=gtk.FILL,yoptions=False) + self._table.attach(self._id_edit,self._control_col,self._control_col+1, + current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) current_row +=1 - table.attach(name_check,check_col,check_col+1,current_row,current_row+1,xoptions=False,yoptions=False) - table.attach(name_label,label_col,label_col+1,current_row,current_row+1,xoptions=gtk.FILL,yoptions=False) - table.attach(name_edit,control_col,control_col+1,current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) + self._table.attach(self._name_check,self._check_col,self._check_col+1, + current_row,current_row+1,xoptions=False,yoptions=False) + self._table.attach(name_label,self._label_col,self._label_col+1, + current_row,current_row+1,xoptions=gtk.FILL,yoptions=False) + self._table.attach(self._name_edit,self._control_col,self._control_col+1, + current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) current_row +=1 - table.attach(gender_check,check_col,check_col+1,current_row,current_row+1,xoptions=False,yoptions=False) - table.attach(gender_label,label_col,label_col+1,current_row,current_row+1,xoptions=gtk.FILL,yoptions=False) - table.attach(gender_combo,control_col,control_col+1,current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) + self._table.attach(self._gender_check,self._check_col,self._check_col+1, + current_row,current_row+1,xoptions=False,yoptions=False) + self._table.attach(gender_label,self._label_col,self._label_col+1, + current_row,current_row+1,xoptions=gtk.FILL,yoptions=False) + self._table.attach(self._gender_combo,self._control_col,self._control_col+1, + current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) current_row +=1 - table.attach(birth_check,check_col,check_col+1,current_row,current_row+1,xoptions=False,yoptions=False) - table.attach(b_label,label_col,label_col+1,current_row,current_row+1,xoptions=gtk.FILL,yoptions=False) - table.attach(b_edit,control_col,control_col+1,current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) - current_row +=1 - table.attach(b_inner_box,control_col,control_col+1,current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) - current_row +=1 - table.attach(b_unknown,control_col,control_col+1,current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) - - current_row +=1 - - table.attach(death_check,check_col,check_col+1,current_row,current_row+1,xoptions=False,yoptions=False) - table.attach(d_label,label_col,label_col+1,current_row,current_row+1,xoptions=gtk.FILL,yoptions=False) - table.attach(d_edit,control_col,control_col+1,current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) - current_row +=1 - table.attach(d_inner_box,control_col,control_col+1,current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) - current_row +=1 - table.attach(d_unknown,control_col,control_col+1,current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) - - current_row +=1 - - table.attach(filter_check,check_col,check_col+1,current_row,current_row+1,xoptions=False,yoptions=False) - table.attach(filter_label,label_col,label_col+1,current_row,current_row+1,xoptions=gtk.FILL,yoptions=False) - table.attach(filter_combo,control_col,control_col+1,current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) - - # Apply - - apply_button = gtk.Button(stock=gtk.STOCK_APPLY) - - # Outer box - - outer_box = gtk.VBox() - outer_box.pack_start(table,True,True) - outer_box.pack_start(apply_button,False,False) - outer_box.set_border_width(self.__class__.__default_border_width/2) - outer_box.set_spacing(self.__class__.__default_border_width/2) + self._table.attach(self._birth_check,self._check_col,self._check_col+1, + current_row,current_row+1,xoptions=False,yoptions=False) + self._table.attach(b_label,self._label_col,self._label_col+1, + current_row,current_row+1,xoptions=gtk.FILL,yoptions=False) + self._table.attach(self._b_edit,self._control_col,self._control_col+1, + current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) - align.add(outer_box) - align.set_padding(self.__class__.__default_border_width, - self.__class__.__default_border_width, - self.__class__.__default_border_width, - self.__class__.__default_border_width) - + current_row +=1 + self._table.attach(self._b_inner_box,self._control_col,self._control_col+1, + current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) + + current_row +=1 + self._table.attach(self._b_unknown,self._control_col,self._control_col+1, + current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) - self.add(align) + current_row +=1 - + self._table.attach(self._death_check,self._check_col,self._check_col+1, + current_row,current_row+1,xoptions=False,yoptions=False) + self._table.attach(d_label,self._label_col,self._label_col+1,current_row, + current_row+1,xoptions=gtk.FILL,yoptions=False) + self._table.attach(self._d_edit,self._control_col,self._control_col+1, + current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) + + current_row +=1 + self._table.attach(d_inner_box,self._control_col,self._control_col+1, + current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) + + current_row +=1 + self._table.attach(self._d_unknown,self._control_col,self._control_col+1, + current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) + + current_row +=1 + + self._table.attach(self._filter_check,self._check_col,self._check_col+1, + current_row,current_row+1,xoptions=False,yoptions=False) + self._table.attach(filter_label,self._label_col,self._label_col+1, + current_row,current_row+1,xoptions=gtk.FILL,yoptions=False) + self._table.attach(self._filter_combo,self._control_col,self._control_col+1, + current_row,current_row+1,xoptions=gtk.EXPAND|gtk.FILL,yoptions=False) + + def on_apply(self,button): + filter = GenericFilter.GenericFilter() + + if self._id_check.get_active(): + filter.add_rule(GenericFilter.HasIdOf([self._id_edit.get_text()])) + + self.emit('apply-filter',filter) if gtk.pygtk_version < (2,8,0): gobject.type_register(PersonFilterFrame) @@ -214,6 +217,7 @@ if __name__ == "__main__": w = gtk.Window() f = PersonFilterFrame() w.add(f) + w.show_all() gtk.main()