2006-07-09 Don Allingham <don@gramps-project.org>
* configure.in: up the version number * src/DataViews/_FamilyList.py: add support for sidebar filter * src/DisplayModels/_BaseModel.py: handle generic model filtering * src/PageView.py: Add support for generic modeling * src/Filters/__init__.py: generic family rule support * src/Filters/_GenericFilter.py: generic family rule support * help/C/gramps-manual.xml: updates * help/Makefile.am: remove old files svn: r7013
This commit is contained in:
@ -61,15 +61,24 @@ class BaseModel(gtk.GenericTreeModel):
|
||||
self.sort_func = self.smap[scol]
|
||||
self.sort_col = scol
|
||||
self.skip = skip
|
||||
|
||||
|
||||
if search:
|
||||
col = search[0]
|
||||
text = search[1]
|
||||
inv = search[2]
|
||||
func = lambda x: self.on_get_value(x, col) or u""
|
||||
self.search = SearchFilter(func, text, inv)
|
||||
if search[0]:
|
||||
self.search = search[1]
|
||||
self.rebuild_data = self._rebuild_filter
|
||||
else:
|
||||
if search[1]:
|
||||
col = search[1][0]
|
||||
text = search[1][1]
|
||||
inv = search[1][2]
|
||||
func = lambda x: self.on_get_value(x, col) or u""
|
||||
self.search = SearchFilter(func, text, inv)
|
||||
else:
|
||||
self.search = None
|
||||
self.rebuild_data = self._rebuild_search
|
||||
else:
|
||||
self.search = None
|
||||
self.rebuild_data = self._rebuild_search
|
||||
|
||||
self.reverse = (order == gtk.SORT_DESCENDING)
|
||||
self.tooltip_column = tooltip_column
|
||||
@ -96,7 +105,7 @@ class BaseModel(gtk.GenericTreeModel):
|
||||
|
||||
return [ x[1] for x in sarray ]
|
||||
|
||||
def rebuild_data(self):
|
||||
def _rebuild_search(self):
|
||||
if self.db.is_open():
|
||||
if self.search:
|
||||
self.datalist = [h for h in self.sort_keys()\
|
||||
@ -112,6 +121,23 @@ class BaseModel(gtk.GenericTreeModel):
|
||||
else:
|
||||
self.datalist = []
|
||||
self.indexlist = {}
|
||||
|
||||
def _rebuild_filter(self):
|
||||
if self.db.is_open():
|
||||
if self.search:
|
||||
self.datalist = self.search.apply(self.db, self.sort_keys())
|
||||
else:
|
||||
self.datalist = self.sort_keys()
|
||||
|
||||
i = 0
|
||||
self.indexlist = {}
|
||||
for key in self.datalist:
|
||||
if key not in self.skip:
|
||||
self.indexlist[key] = i
|
||||
i += 1
|
||||
else:
|
||||
self.datalist = []
|
||||
self.indexlist = {}
|
||||
|
||||
def add_row_by_handle(self,handle):
|
||||
self.datalist = self.sort_keys()
|
||||
|
Reference in New Issue
Block a user