Patches from Jeff Ollie for filters

svn: r910
This commit is contained in:
Don Allingham
2002-04-10 00:13:19 +00:00
parent a7c2e1b439
commit 58bf39bd40
6 changed files with 132 additions and 36 deletions

View File

@@ -128,21 +128,12 @@ class EventComparison:
top =self.filterDialog.get_widget("filters")
filters = self.filterDialog.get_widget("filter_list")
myMenu = gtk.GtkMenu()
all = GenericFilter.GenericFilter()
all.set_name(_("Entire Database"))
all.add_rule(GenericFilter.Everyone([]))
flist = GenericFilter.GenericFilterList(const.custom_filters)
flist.load()
for f in [all] + flist.get_filters():
menuitem = gtk.GtkMenuItem(_(f.get_name()))
myMenu.append(menuitem)
menuitem.set_data("filter",f)
menuitem.show()
self.filter_menu = myMenu
filters.set_menu(myMenu)
self.filter_menu = GenericFilter.build_filter_menu([all])
filters.set_menu(self.filter_menu)
top.show()
def on_apply_clicked(self,obj):

View File

@@ -81,6 +81,8 @@ class FilterEditor:
def close_filter_editor(self,obj):
self.filterdb.save()
self.editor_top.destroy()
GenericFilter.reload_custom_filters()
GenericFilter.reload_system_filters()
def draw_filters(self):
row = 0
@@ -328,9 +330,17 @@ class ShowResults:
#
#
#-------------------------------------------------------------------------
def runTool(database,person,callback):
def CustomFilterEditor(database,person,callback):
FilterEditor(const.custom_filters,database)
#-------------------------------------------------------------------------
#
#
#
#-------------------------------------------------------------------------
def SystemFilterEditor(database,person,callback):
FilterEditor(const.system_filters,database)
#-------------------------------------------------------------------------
#
#
@@ -339,10 +349,24 @@ def runTool(database,person,callback):
from Plugins import register_tool
register_tool(
runTool,
CustomFilterEditor,
_("Custom Filter Editor"),
category=_("Utilities"),
description=_("The Custom Filter Editor builds custom "
"filters that can be used to select people "
"included reports, exports, and other utilities.")
)
if ((os.path.exists(const.system_filters) and
os.access(const.system_filters, os.W_OK)) or
(os.path.exists(os.path.dirname(const.system_filters)) and
os.access(os.path.dirname(const.system_filters), os.W_OK))):
register_tool(
SystemFilterEditor,
_("System Filter Editor"),
category=_("Utilities"),
description=_("The System Filter Editor builds custom "
"filters that can be used by anyone on the system "
"to select people included reports, exports, "
"and other utilities.")
)

View File

@@ -309,7 +309,6 @@ class GedcomWriter:
})
filter_obj = self.topDialog.get_widget("filter")
myMenu = gtk.GtkMenu()
all = GenericFilter.GenericFilter()
all.set_name(_("Entire Database"))
@@ -323,15 +322,8 @@ class GedcomWriter:
ans.set_name(_("Ancestors of %s") % person.getPrimaryName().getName())
ans.add_rule(GenericFilter.IsAncestorOf([person.getId()]))
flist = GenericFilter.GenericFilterList(const.custom_filters)
flist.load()
for f in [all,des,ans] + flist.get_filters():
menuitem = gtk.GtkMenuItem(_(f.get_name()))
myMenu.append(menuitem)
menuitem.set_data("filter",f)
menuitem.show()
filter_obj.set_menu(myMenu)
self.filter_menu = myMenu
self.filter_menu = GenericFilter.build_filter_menu([all,des,ans])
filter_obj.set_menu(self.filter_menu)
gedmap = GedcomInfoDB()