Use the new view plugin structure to offer a flat list person view
svn: r14195
This commit is contained in:
@@ -45,7 +45,8 @@ import gtk
|
||||
#-------------------------------------------------------------------------
|
||||
from gen.display.name import displayer as name_displayer
|
||||
import ManagedWindow
|
||||
from gui.views.treemodels import PeopleModel
|
||||
from gui.views.treemodels import PeopleBaseModel, PersonTreeModel
|
||||
from libpersonview import BasePersonView
|
||||
import Relationship
|
||||
|
||||
from QuestionDialog import ErrorDialog
|
||||
@@ -58,18 +59,7 @@ from glade import Glade
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
|
||||
column_names = [
|
||||
_('Name'),
|
||||
_('ID') ,
|
||||
_('Gender'),
|
||||
_('Birth Date'),
|
||||
_('Birth Place'),
|
||||
_('Death Date'),
|
||||
_('Death Place'),
|
||||
_('Spouse'),
|
||||
_('Last Change'),
|
||||
_('Cause of Death'),
|
||||
]
|
||||
column_names = BasePersonView.COLUMN_NAMES
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@@ -86,6 +76,21 @@ class RelCalc(Tool.Tool, ManagedWindow.ManagedWindow):
|
||||
Tool.Tool.__init__(self, dbstate, options_class, name)
|
||||
ManagedWindow.ManagedWindow.__init__(self,uistate,[],self.__class__)
|
||||
|
||||
#set the columns to see
|
||||
for data in BasePersonView.CONFIGSETTINGS:
|
||||
if data[0] == 'columns.order':
|
||||
colord = data[1]
|
||||
elif data[0] == 'columns.visible':
|
||||
colvis = data[1]
|
||||
elif data[0] == 'columns.sizecol':
|
||||
colsize = data[1]
|
||||
self.colord = []
|
||||
for col, size in zip(colord, colsize):
|
||||
if col in colvis:
|
||||
self.colord.append((1, col, size))
|
||||
else:
|
||||
self.colord.append((0, col, size))
|
||||
|
||||
self.dbstate = dbstate
|
||||
self.relationship = Relationship.get_relationship_calculator()
|
||||
self.relationship.connect_db_signals(dbstate)
|
||||
@@ -110,23 +115,16 @@ class RelCalc(Tool.Tool, ManagedWindow.ManagedWindow):
|
||||
self.textbuffer = gtk.TextBuffer()
|
||||
self.text.set_buffer(self.textbuffer)
|
||||
|
||||
self.model = PeopleModel(self.db)
|
||||
self.model = PersonTreeModel(self.db)
|
||||
self.tree.set_model(self.model)
|
||||
|
||||
self.tree.connect('key-press-event', self._key_press)
|
||||
self.selection = self.tree.get_selection()
|
||||
self.selection.set_mode(gtk.SELECTION_SINGLE)
|
||||
|
||||
column = gtk.TreeViewColumn(_('Name'), gtk.CellRendererText(),text=0)
|
||||
column.set_resizable(True)
|
||||
column.set_min_width(225)
|
||||
column.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
|
||||
self.tree.append_column(column)
|
||||
#keep reference of column so garbage collection works
|
||||
self.columns = [column]
|
||||
|
||||
index = 1
|
||||
for pair in self.db.get_person_column_order():
|
||||
self.columns = []
|
||||
for pair in self.colord:
|
||||
if not pair[0]:
|
||||
continue
|
||||
name = column_names[pair[1]]
|
||||
@@ -138,7 +136,6 @@ class RelCalc(Tool.Tool, ManagedWindow.ManagedWindow):
|
||||
self.tree.append_column(column)
|
||||
#keep reference of column so garbage collection works
|
||||
self.columns.append(column)
|
||||
index += 1
|
||||
|
||||
self.sel = self.tree.get_selection()
|
||||
self.changedkey = self.sel.connect('changed',self.on_apply_clicked)
|
||||
@@ -171,7 +168,7 @@ class RelCalc(Tool.Tool, ManagedWindow.ManagedWindow):
|
||||
if not node:
|
||||
return
|
||||
|
||||
handle = model.get_value(node, PeopleModel.COLUMN_INT_ID)
|
||||
handle = model.get_value(node, PeopleBaseModel.COLUMN_INT_ID)
|
||||
other_person = self.db.get_person_from_handle(handle)
|
||||
if other_person is None :
|
||||
self.textbuffer.set_text("")
|
||||
|
||||
Reference in New Issue
Block a user