Files
gramps/src/ObjectSelector/_PersonFrame.py
Alex Roitman 74ad7b95a4 * src/TreeViews/_PersonTreeView.py: Use name_displayer.
* src/ReportBase/_ReportUtils.py: Use name_displayer.
	* src/ReportBase/_CommandLineReport.py: Use name_displayer.
	* src/ReportBase/_BareReportDialog.py: Use name_displayer.
	* src/PluginUtils/_Tool.py: Use name_displayer.
	* src/plugins/TimeLine.py: Use name_displayer.
	* src/plugins/RelCalc.py: Use name_displayer.
	* src/plugins/ReadGrdb.py: Use name_displayer.
	* src/plugins/NarrativeWeb.py: Use name_displayer.
	* src/plugins/IndivComplete.py: Use name_displayer.
	* src/plugins/GraphViz.py: Use name_displayer.
	* src/plugins/FindDupes.py: Use name_displayer.
	* src/plugins/FamilyGroup.py: Use name_displayer.
	* src/plugins/DetDescendantReport.py: Use name_displayer.
	* src/plugins/DetAncestralReport.py: Use name_displayer.
	* src/plugins/DesGraph.py: Use name_displayer.
	* src/plugins/DescendReport.py: Use name_displayer.
	* src/plugins/DescendChart.py: Use name_displayer.
	* src/plugins/Check.py: Use name_displayer.
	* src/plugins/Ancestors.py: Use name_displayer.
	* src/plugins/AncestorReport.py: Use name_displayer.
	* src/plugins/AncestorChart2.py: Use name_displayer.
	* src/ObjectSelector/_PersonTreeFrame.py: Use name_displayer.
	* src/ObjectSelector/_PersonFrame.py: Use name_displayer.
	* src/Merge/_MergePerson.py: Use name_displayer.
	* src/GrampsDbUtils/_WriteGedcom.py: Use name_displayer.
	* src/GrampsDbUtils/_ReadXML.py: Use name_displayer.
	* src/GrampsDbUtils/_GedcomParse.py: Use name_displayer.
	* src/FilterEditor/_ShowResults.py: Use name_displayer.
	* src/FilterEditor/_EditRule.py: Use name_displayer.
	* src/Editors/_EditPrimary.py: Use name_displayer.
	* src/Editors/_EditPersonRef.py: Use name_displayer.
	* src/Editors/_EditPerson.py: Use name_displayer.
	* src/Editors/_EditName.py: Use name_displayer.
	* src/Editors/_EditLdsOrd.py: Use name_displayer.
	* src/Editors/_EditFamily.py: Use name_displayer.
	* src/DisplayTabs/_PersonRefModel.py: Use name_displayer.
	* src/DisplayTabs/_NameModel.py: Use name_displayer.
	* src/DisplayTabs/_ChildModel.py: Use name_displayer.
	* src/DisplayTabs/_BackRefModel.py: Use name_displayer.
	* src/DisplayModels/_PeopleModel.py: Use name_displayer.
	* src/DisplayModels/_FamilyModel.py: Use name_displayer.
	* src/DataViews/_PersonView.py: Use name_displayer.
	* src/DataViews/_RelationView.py: Use name_displayer.
	* src/DataViews/_PedigreeView.py: Use name_displayer.
	* src/Utils.py: Use name_displayer.
	* src/SubstKeywords.py: Use name_displayer.
	* src/Sort.py: Use name_displayer.
	* src/Reorder.py: Use name_displayer.
	* src/PageView.py (BookMarkView.add_bookmark): Use name_displayer.
	* src/Navigation.py: Use name_displayer.
	* src/DisplayState.py: Use name_displayer.
	* src/GrampsCfg.py: Use name_displayer.
	* src/Bookmarks.py (Bookmarks.make_label): Use name_displayer.
	* src/GrampsDb/Makefile.am (pkgdata_PYTHON): Ship new files.
	* src/Makefile.am (gdir_PYTHON): Ship ProgressDialog.py


svn: r8680
2007-06-28 05:41:40 +00:00

117 lines
4.2 KiB
Python

#
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2000-2007 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$
#for debug, remove later
import sys
sys.path.append("..")
import gtk
import gobject
from RelLib import Person
from BasicUtils import name_displayer
display_name = name_displayer.display
from _ObjectFrameBase import ObjectFrameBase
from _PersonFilterFrame import PersonFilterFrame
from _PersonPreviewFrame import PersonPreviewFrame
from _PersonTreeFrame import PersonTreeFrame
class PersonFrame(ObjectFrameBase):
__gproperties__ = {}
__gsignals__ = {
'selection-changed' : (gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
(gobject.TYPE_STRING,
gobject.TYPE_PYOBJECT)),
'add-object': (gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
(gobject.TYPE_PYOBJECT,))
}
__person_id_field = 1
def __init__(self,
dbstate,
uistate,
filter_spec = None):
ObjectFrameBase.__init__(self,
dbstate=dbstate,
uistate=uistate,
filter_frame = PersonFilterFrame(filter_spec=filter_spec),
preview_frame = PersonPreviewFrame(dbstate),
tree_frame = PersonTreeFrame(dbstate))
def handle_selection(treeselection):
(model, iter) = treeselection.get_selected()
if iter:
(person,rowref) = model.get_value(iter,0)
if len(rowref) > 1 or model.is_list():
if person:
self.emit('selection-changed', "%s [%s]" % (display_name(person),
person.get_gramps_id()),
person)
else:
self.emit('selection-changed',"No Selection",None)
else:
self.emit('selection-changed',"No Selection",None)
else:
self.emit('selection-changed',"No Selection",None)
self._tree_frame.get_selection().connect('changed',handle_selection)
self._tree_frame.get_selection().connect('changed',self.set_preview)
self._tree_frame.get_tree().connect('row-activated',self._on_row_activated)
self._filter_frame.connect('apply-filter',lambda w,m: self._tree_frame.set_model(m))
self._filter_frame.connect('clear-filter',lambda w: self._tree_frame.set_model(None))
# Now that the filter is connected we need to tell it to apply any
# filter_spec that may have been passed to it. We can't apply the filter
# until the connections have been made.
gobject.idle_add(self._filter_frame.on_apply)
def _on_row_activated(self,widget,path,col):
(model, iter) = widget.get_selection().get_selected()
if iter:
(o,rowref) = model.get_value(iter,0)
if o:
self.emit('add-object',o)
def new_object(self,button):
from Editors import EditPerson
person = Person()
EditPerson(self._dbstate,self._uistate,[],person)
if gtk.pygtk_version < (2,8,0):
gobject.type_register(PersonFrame)
if __name__ == "__main__":
pass