* src/DataViews/_MediaView.py: slightly improve dnd

* src/DisplayModels/_BaseModel.py: handle sort column map
	* src/DisplayModels/_MediaModel.py: handle sort column map
	* src/DisplayModels/_RepositoryModel.py: handle sort column map
	* src/DisplayModels/_SourceModel.py: handle sort column map
	* src/DisplayModels/_EventModel.py: handle sort column map
	* src/DisplayModels/_FamilyModel.py: handle sort column map
	* src/DisplayModels/_PlaceModel.py: handle sort column map
	* src/PageView.py: handle sort column map
	


svn: r7153
This commit is contained in:
Don Allingham
2006-08-11 22:14:18 +00:00
parent 9901bae55a
commit b4a6202a31
12 changed files with 125 additions and 25 deletions

View File

@@ -52,13 +52,18 @@ from Filters import SearchFilter
class BaseModel(gtk.GenericTreeModel):
def __init__(self, db, scol=0, order=gtk.SORT_ASCENDING,
tooltip_column=None, search=None, skip=set()):
tooltip_column=None, search=None, skip=set(),
sort_map=None):
gtk.GenericTreeModel.__init__(self)
self.prev_handle = None
self.prev_data = None
self.set_property("leak_references",False)
self.db = db
self.sort_func = self.smap[scol]
if sort_map:
col = sort_map[scol][1]
self.sort_func = self.smap[col]
else:
self.sort_func = self.smap[scol]
self.sort_col = scol
self.skip = skip

View File

@@ -59,7 +59,7 @@ from _BaseModel import BaseModel
class EventModel(BaseModel):
def __init__(self, db, scol=0, order=gtk.SORT_ASCENDING, search=None,
skip=set()):
skip=set(), sort_map=None):
self.gen_cursor = db.get_event_cursor
self.map = db.get_raw_event_data
@@ -78,7 +78,7 @@ class EventModel(BaseModel):
self.column_description,
self.column_id,
self.column_type,
self.column_date,
self.sort_date,
self.column_place,
self.column_cause,
self.sort_change,
@@ -86,7 +86,7 @@ class EventModel(BaseModel):
self.column_tooltip,
]
BaseModel.__init__(self, db, scol, order, tooltip_column=8,
search=search, skip=skip)
search=search, skip=skip, sort_map=sort_map)
def on_get_n_columns(self):
return len(self.fmap)+1
@@ -116,6 +116,13 @@ class EventModel(BaseModel):
return DateHandler.get_date(event)
return u''
def sort_date(self,data):
if data[3]:
event = RelLib.Event()
event.unserialize(data)
return "%09d" % event.get_date_object().get_sort_value()
return u''
def column_handle(self,data):
return unicode(data[0])

View File

@@ -61,7 +61,7 @@ from _BaseModel import BaseModel
class FamilyModel(BaseModel):
def __init__(self, db, scol=0, order=gtk.SORT_ASCENDING, search=None,
skip=set()):
skip=set(), sort_map=None):
self.gen_cursor = db.get_family_cursor
self.map = db.get_raw_family_data
self.fmap = [
@@ -83,7 +83,7 @@ class FamilyModel(BaseModel):
self.column_tooltip
]
BaseModel.__init__(self, db, scol, order, tooltip_column=6,
search=search, skip=skip)
search=search, skip=skip, sort_map=sort_map)
def on_get_n_columns(self):
return len(self.fmap)+1

View File

@@ -61,7 +61,7 @@ from _BaseModel import BaseModel
class MediaModel(BaseModel):
def __init__(self, db, scol=0, order=gtk.SORT_ASCENDING, search=None,
skip=set()):
skip=set(), sort_map=None):
self.gen_cursor = db.get_media_cursor
self.map = db.get_raw_object_data
@@ -85,7 +85,7 @@ class MediaModel(BaseModel):
self.column_handle,
]
BaseModel.__init__(self, db, scol, order, tooltip_column=7,
search=search, skip=skip)
search=search, skip=skip, sort_map=sort_map)
def on_get_n_columns(self):
return len(self.fmap)+1

View File

@@ -58,7 +58,7 @@ from _BaseModel import BaseModel
class PlaceModel(BaseModel):
def __init__(self,db,scol=0,order=gtk.SORT_ASCENDING,search=None,
skip=set()):
skip=set(), sort_map=None):
self.gen_cursor = db.get_place_cursor
self.map = db.get_raw_place_data
self.fmap = [
@@ -91,7 +91,7 @@ class PlaceModel(BaseModel):
self.column_handle,
]
BaseModel.__init__(self, db, scol, order, tooltip_column=12,
search=search, skip=skip)
search=search, skip=skip, sort_map=sort_map)
def on_get_n_columns(self):
return len(self.fmap)+1

View File

@@ -55,7 +55,7 @@ from _BaseModel import BaseModel
class RepositoryModel(BaseModel):
def __init__(self, db, scol=0, order=gtk.SORT_ASCENDING, search=None,
skip=set()):
skip=set(), sort_map=None):
self.gen_cursor = db.get_repository_cursor
self.get_handles = db.get_repository_handles
self.map = db.get_raw_repository_data
@@ -93,7 +93,7 @@ class RepositoryModel(BaseModel):
]
BaseModel.__init__(self, db, scol, order, tooltip_column=12,
search=search, skip=skip)
search=search, skip=skip, sort_map=sort_map)
def on_get_n_columns(self):
return len(self.fmap)+1

View File

@@ -58,7 +58,7 @@ from _BaseModel import BaseModel
class SourceModel(BaseModel):
def __init__(self,db,scol=0,order=gtk.SORT_ASCENDING,search=None,
skip=set()):
skip=set(), sort_map=None):
self.map = db.get_raw_source_data
self.gen_cursor = db.get_source_cursor
self.fmap = [
@@ -80,7 +80,7 @@ class SourceModel(BaseModel):
self.sort_change,
]
BaseModel.__init__(self,db,scol,order,tooltip_column=7,search=search,
skip=skip)
skip=skip, sort_map=sort_map)
def on_get_n_columns(self):
return len(self.fmap)+1