* src/FamilyList.py: new family list view
* src/DisplayModels.py: model for family list * src/GrampsDb/_GrampsDbBase.py: column order for family view svn: r5694
This commit is contained in:
parent
1f7c1c4f4a
commit
b9b276742a
@ -1,4 +1,7 @@
|
||||
2006-01-07 Don Allingham <don@gramps-project.org>
|
||||
* src/FamilyList.py: new family list view
|
||||
* src/DisplayModels.py: model for family list
|
||||
* src/GrampsDb/_GrampsDbBase.py: column order for family view
|
||||
* src/PageView.py: support for ctrl-j for jump to person by gramps id
|
||||
* src/PersonView.py: support for ctrl-j for jump to person by gramps id
|
||||
* src/ToolTips.py: fix spacing
|
||||
|
@ -340,6 +340,9 @@ class SourceModel(BaseModel):
|
||||
DisplayTrace.DisplayTrace()
|
||||
return t
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# PlaceModel
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
class PlaceModel(BaseModel):
|
||||
@ -446,6 +449,96 @@ class PlaceModel(BaseModel):
|
||||
DisplayTrace.DisplayTrace()
|
||||
return t
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# FamilyModel
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
class FamilyModel(BaseModel):
|
||||
|
||||
def __init__(self,db,scol=0,order=gtk.SORT_ASCENDING):
|
||||
self.gen_cursor = db.get_family_cursor
|
||||
self.map = db.get_raw_family_data
|
||||
self.fmap = [
|
||||
self.column_father,
|
||||
self.column_mother,
|
||||
self.column_id,
|
||||
self.column_type,
|
||||
self.column_change,
|
||||
self.column_handle,
|
||||
self.column_tooltip
|
||||
]
|
||||
self.smap = [
|
||||
self.sort_father,
|
||||
self.sort_mother,
|
||||
self.column_id,
|
||||
self.column_type,
|
||||
self.sort_change,
|
||||
self.column_handle,
|
||||
self.column_tooltip
|
||||
]
|
||||
BaseModel.__init__(self,db,scol,order,tooltip_column=6)
|
||||
|
||||
def on_get_n_columns(self):
|
||||
return len(self.fmap)+1
|
||||
|
||||
def column_handle(self,data):
|
||||
return unicode(data[0])
|
||||
|
||||
def column_father(self,data):
|
||||
if data[2]:
|
||||
person = self.db.get_person_from_handle(data[2])
|
||||
return unicode(NameDisplay.displayer.sorted_name(person.primary_name))
|
||||
else:
|
||||
return u""
|
||||
|
||||
def sort_father(self,data):
|
||||
if data[2]:
|
||||
person = self.db.get_person_from_handle(data[2])
|
||||
return person.primary_name.get_sort_name()
|
||||
else:
|
||||
return u""
|
||||
|
||||
def column_mother(self,data):
|
||||
if data[3]:
|
||||
person = self.db.get_person_from_handle(data[3])
|
||||
return unicode(NameDisplay.displayer.sorted_name(person.primary_name))
|
||||
else:
|
||||
return u""
|
||||
|
||||
def sort_mother(self,data):
|
||||
if data[3]:
|
||||
person = self.db.get_person_from_handle(data[3])
|
||||
return person.primary_name.get_sort_name()
|
||||
else:
|
||||
return u""
|
||||
|
||||
def column_type(self,data):
|
||||
t = data[5]
|
||||
if t[0] == RelLib.Family.CUSTOM:
|
||||
val = t[1]
|
||||
else:
|
||||
val = Utils.family_relations[t[0]]
|
||||
return unicode(val)
|
||||
|
||||
def column_id(self,data):
|
||||
return unicode(data[1])
|
||||
|
||||
def sort_change(self,data):
|
||||
return time.localtime(data[13])
|
||||
|
||||
def column_change(self,data):
|
||||
return unicode(time.strftime('%x %X',time.localtime(data[13])),
|
||||
_codeset)
|
||||
|
||||
def column_tooltip(self,data):
|
||||
try:
|
||||
t = ToolTips.TipFromFunction(self.db, lambda: self.db.get_family_from_handle(data[0]))
|
||||
except:
|
||||
DisplayTrace.DisplayTrace()
|
||||
return t
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# MediaModel
|
||||
|
120
src/FamilyList.py
Normal file
120
src/FamilyList.py
Normal file
@ -0,0 +1,120 @@
|
||||
# Gramps - a GTK+/GNOME based genealogy program
|
||||
#
|
||||
# Copyright (C) 2001-2005 Donald N. Allingham
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
|
||||
# $Id$
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# GTK/Gnome modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
import gtk
|
||||
import gtk.gdk
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# gramps modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
import RelLib
|
||||
import PageView
|
||||
#import EditPlace
|
||||
import DisplayModels
|
||||
import const
|
||||
import Utils
|
||||
from QuestionDialog import QuestionDialog, ErrorDialog
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# internationalization
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from gettext import gettext as _
|
||||
|
||||
column_names = [
|
||||
_('Father'),
|
||||
_('Mother'),
|
||||
_('ID'),
|
||||
_('Relationship'),
|
||||
_('Last Changed'),
|
||||
]
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# FamilyListView
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
class FamilyListView(PageView.ListView):
|
||||
def __init__(self,dbstate,uistate):
|
||||
|
||||
signal_map = {
|
||||
'family-add' : self.row_add,
|
||||
'family-update' : self.row_update,
|
||||
'family-delete' : self.row_delete,
|
||||
'family-rebuild' : self.build_tree,
|
||||
}
|
||||
|
||||
PageView.ListView.__init__(self,'Family List View',dbstate,uistate,
|
||||
column_names,len(column_names),
|
||||
DisplayModels.FamilyModel,
|
||||
signal_map)
|
||||
|
||||
def column_order(self):
|
||||
return self.dbstate.db.get_family_list_column_order()
|
||||
|
||||
def get_stock(self):
|
||||
return 'gramps-family-list'
|
||||
|
||||
def ui_definition(self):
|
||||
return '''<ui>
|
||||
<menubar name="MenuBar">
|
||||
<menu action="EditMenu">
|
||||
<placeholder name="CommonEdit">
|
||||
<menuitem action="Add"/>
|
||||
<menuitem action="Edit"/>
|
||||
<menuitem action="Remove"/>
|
||||
</placeholder>
|
||||
</menu>
|
||||
</menubar>
|
||||
<toolbar name="ToolBar">
|
||||
<placeholder name="CommonEdit">
|
||||
<toolitem action="Add"/>
|
||||
<toolitem action="Edit"/>
|
||||
<toolitem action="Remove"/>
|
||||
</placeholder>
|
||||
</toolbar>
|
||||
<popup name="Popup">
|
||||
<menuitem action="Add"/>
|
||||
<menuitem action="Edit"/>
|
||||
<menuitem action="Remove"/>
|
||||
</popup>
|
||||
</ui>'''
|
||||
|
||||
def on_double_click(self,obj,event):
|
||||
return
|
||||
|
||||
def add(self,obj):
|
||||
return
|
||||
|
||||
def remove(self,obj):
|
||||
return
|
||||
|
||||
def edit(self,obj):
|
||||
return
|
||||
|
@ -72,6 +72,7 @@ SOURCE_COL_KEY = 'source_columns'
|
||||
MEDIA_COL_KEY = 'media_columns'
|
||||
REPOSITORY_COL_KEY = 'repository_columns'
|
||||
EVENT_COL_KEY = 'event_columns'
|
||||
FAMILY_COL_KEY = 'family_columns'
|
||||
|
||||
|
||||
# The following two dictionaries provide fast translation
|
||||
@ -1463,6 +1464,13 @@ class GrampsDbBase(GrampsDBCallback):
|
||||
"""
|
||||
self._set_column_order(col_list,PERSON_COL_KEY)
|
||||
|
||||
def set_family_list_column_order(self,col_list):
|
||||
"""
|
||||
Stores the Person display common information in the
|
||||
database's metadata.
|
||||
"""
|
||||
self._set_column_order(col_list,FAMILY_COL_KEY)
|
||||
|
||||
def set_child_column_order(self,col_list):
|
||||
"""
|
||||
Stores the Person display common information in the
|
||||
@ -1523,6 +1531,14 @@ class GrampsDbBase(GrampsDBCallback):
|
||||
default = [(1,1),(1,2),(1,3),(0,4),(1,5),(0,6),(0,7),(0,8),(0,9,)]
|
||||
return self._get_column_order(PERSON_COL_KEY,default)
|
||||
|
||||
def get_family_list_column_order(self):
|
||||
"""
|
||||
Returns the Person display common information stored in the
|
||||
database's metadata.
|
||||
"""
|
||||
default = [(1,1),(1,2),(1,3),(1,4),(0,5)]
|
||||
return self._get_column_order(FAMILY_COL_KEY,default)
|
||||
|
||||
def get_child_column_order(self):
|
||||
"""
|
||||
Returns the Person display common information stored in the
|
||||
|
@ -37,6 +37,7 @@ log = logging.getLogger(".")
|
||||
#-------------------------------------------------------------------------
|
||||
import ViewManager
|
||||
import PersonView
|
||||
import FamilyList
|
||||
import RepositoryView
|
||||
import GrampsDisplay
|
||||
import RelLib
|
||||
@ -67,6 +68,7 @@ def register_stock_icons ():
|
||||
items = [
|
||||
('people48.png',('gramps-person','Person',gtk.gdk.CONTROL_MASK,0,'')),
|
||||
('family48.png',('gramps-family','Family',gtk.gdk.CONTROL_MASK,0,'')),
|
||||
('family48.png',('gramps-family-list','Family List',gtk.gdk.CONTROL_MASK,0,'')),
|
||||
('media.png',('gramps-media','Media',gtk.gdk.CONTROL_MASK,0,'')),
|
||||
('ped24.png',('gramps-pedigree','Pedigree',gtk.gdk.CONTROL_MASK,0,'')),
|
||||
('repos.png',('gramps-repository','Repositories',
|
||||
@ -146,6 +148,7 @@ class Gramps:
|
||||
vm = ViewManager.ViewManager(state)
|
||||
vm.register_view(PersonView.PersonView)
|
||||
vm.register_view(FamilyView.FamilyView)
|
||||
vm.register_view(FamilyList.FamilyListView)
|
||||
vm.register_view(PedView.PedView)
|
||||
vm.register_view(EventView.EventView)
|
||||
vm.register_view(SourceView.SourceView)
|
||||
|
Loading…
Reference in New Issue
Block a user