2006-05-26 Don Allingham <don@gramps-project.org>

* src/DataViews/_RelationView.py: build skip list for SelectFamily so that
	* a person cannot be his own parent
	* src/Editors/_EditFamily.py: don't allow a person to be his own parent
	* src/Selectors/_BaseSelector.py: Add skipping of handles
	* src/DisplayModels/_BaseModel.py: Add skipping of handles
	* src/DisplayModels/_MediaModel.py: Add skipping of handles
	* src/DisplayModels/_RepositoryModel.py: Add skipping of handles
	* src/DisplayModels/_SourceModel.py: Add skipping of handles
	* src/DisplayModels/_EventModel.py: Add skipping of handles
	* src/DisplayModels/_FamilyModel.py: Add skipping of handles
	* src/DisplayModels/_PlaceModel.py: Add skipping of handles



svn: r6790
This commit is contained in:
Don Allingham
2006-05-26 20:48:40 +00:00
parent a32ed5e6bb
commit 8ec6242dd7
11 changed files with 112 additions and 22 deletions

View File

@@ -25,7 +25,11 @@
#
#-------------------------------------------------------------------------
import locale
try:
set()
except:
from sets import Set as set
#-------------------------------------------------------------------------
#
# GNOME/GTK modules
@@ -48,7 +52,7 @@ from Filters import SearchFilter
class BaseModel(gtk.GenericTreeModel):
def __init__(self, db, scol=0, order=gtk.SORT_ASCENDING,
tooltip_column=None, search=None):
tooltip_column=None, search=None, skip=set()):
gtk.GenericTreeModel.__init__(self)
self.prev_handle = None
self.prev_data = None
@@ -56,7 +60,8 @@ class BaseModel(gtk.GenericTreeModel):
self.db = db
self.sort_func = self.smap[scol]
self.sort_col = scol
self.skip = skip
if search:
col = search[0]
text = search[1]
@@ -95,14 +100,15 @@ class BaseModel(gtk.GenericTreeModel):
if self.db.is_open():
if self.search:
self.datalist = [h for h in self.sort_keys()\
if self.search.match(h)]
if self.search.match(h) and h not in self.skip]
else:
self.datalist = self.sort_keys()
self.datalist = [h for h in self.sort_keys() if h not in self.skip]
i = 0
self.indexlist = {}
for key in self.datalist:
self.indexlist[key] = i
i += 1
if key not in self.skip:
self.indexlist[key] = i
i += 1
else:
self.datalist = []
self.indexlist = {}