* 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>
|
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/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/PersonView.py: support for ctrl-j for jump to person by gramps id
|
||||||
* src/ToolTips.py: fix spacing
|
* src/ToolTips.py: fix spacing
|
||||||
|
@ -340,6 +340,9 @@ class SourceModel(BaseModel):
|
|||||||
DisplayTrace.DisplayTrace()
|
DisplayTrace.DisplayTrace()
|
||||||
return t
|
return t
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# PlaceModel
|
||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
class PlaceModel(BaseModel):
|
class PlaceModel(BaseModel):
|
||||||
@ -446,6 +449,96 @@ class PlaceModel(BaseModel):
|
|||||||
DisplayTrace.DisplayTrace()
|
DisplayTrace.DisplayTrace()
|
||||||
return t
|
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
|
# 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'
|
MEDIA_COL_KEY = 'media_columns'
|
||||||
REPOSITORY_COL_KEY = 'repository_columns'
|
REPOSITORY_COL_KEY = 'repository_columns'
|
||||||
EVENT_COL_KEY = 'event_columns'
|
EVENT_COL_KEY = 'event_columns'
|
||||||
|
FAMILY_COL_KEY = 'family_columns'
|
||||||
|
|
||||||
|
|
||||||
# The following two dictionaries provide fast translation
|
# The following two dictionaries provide fast translation
|
||||||
@ -1463,6 +1464,13 @@ class GrampsDbBase(GrampsDBCallback):
|
|||||||
"""
|
"""
|
||||||
self._set_column_order(col_list,PERSON_COL_KEY)
|
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):
|
def set_child_column_order(self,col_list):
|
||||||
"""
|
"""
|
||||||
Stores the Person display common information in the
|
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,)]
|
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)
|
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):
|
def get_child_column_order(self):
|
||||||
"""
|
"""
|
||||||
Returns the Person display common information stored in the
|
Returns the Person display common information stored in the
|
||||||
|
@ -37,6 +37,7 @@ log = logging.getLogger(".")
|
|||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
import ViewManager
|
import ViewManager
|
||||||
import PersonView
|
import PersonView
|
||||||
|
import FamilyList
|
||||||
import RepositoryView
|
import RepositoryView
|
||||||
import GrampsDisplay
|
import GrampsDisplay
|
||||||
import RelLib
|
import RelLib
|
||||||
@ -67,6 +68,7 @@ def register_stock_icons ():
|
|||||||
items = [
|
items = [
|
||||||
('people48.png',('gramps-person','Person',gtk.gdk.CONTROL_MASK,0,'')),
|
('people48.png',('gramps-person','Person',gtk.gdk.CONTROL_MASK,0,'')),
|
||||||
('family48.png',('gramps-family','Family',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,'')),
|
('media.png',('gramps-media','Media',gtk.gdk.CONTROL_MASK,0,'')),
|
||||||
('ped24.png',('gramps-pedigree','Pedigree',gtk.gdk.CONTROL_MASK,0,'')),
|
('ped24.png',('gramps-pedigree','Pedigree',gtk.gdk.CONTROL_MASK,0,'')),
|
||||||
('repos.png',('gramps-repository','Repositories',
|
('repos.png',('gramps-repository','Repositories',
|
||||||
@ -146,6 +148,7 @@ class Gramps:
|
|||||||
vm = ViewManager.ViewManager(state)
|
vm = ViewManager.ViewManager(state)
|
||||||
vm.register_view(PersonView.PersonView)
|
vm.register_view(PersonView.PersonView)
|
||||||
vm.register_view(FamilyView.FamilyView)
|
vm.register_view(FamilyView.FamilyView)
|
||||||
|
vm.register_view(FamilyList.FamilyListView)
|
||||||
vm.register_view(PedView.PedView)
|
vm.register_view(PedView.PedView)
|
||||||
vm.register_view(EventView.EventView)
|
vm.register_view(EventView.EventView)
|
||||||
vm.register_view(SourceView.SourceView)
|
vm.register_view(SourceView.SourceView)
|
||||||
|
Loading…
Reference in New Issue
Block a user