use SelectPerson for father instead of Object Selector
svn: r6171
This commit is contained in:
parent
dd28ea78ab
commit
94686d5e25
@ -1,4 +1,8 @@
|
|||||||
2006-03-17 Don Allingham <don@gramps-project.org>
|
2006-03-17 Don Allingham <don@gramps-project.org>
|
||||||
|
* src/Editors/_EditFamily.py: convert father to use SelectPerson instead
|
||||||
|
of ObjectSelector
|
||||||
|
* src/PeopleModel.py: add skip capability
|
||||||
|
* src/SelectPerson.py: call person model correctly
|
||||||
* src/DataViews/_FamilyView.py: use new Dbutils functions
|
* src/DataViews/_FamilyView.py: use new Dbutils functions
|
||||||
* src/DataViews/_FamilyList.py: use new Dbutils functions
|
* src/DataViews/_FamilyList.py: use new Dbutils functions
|
||||||
* src/GrampsDb/_DbUtils.py: new routines to remove families and
|
* src/GrampsDb/_DbUtils.py: new routines to remove families and
|
||||||
|
@ -68,12 +68,13 @@ import Spell
|
|||||||
import GrampsDisplay
|
import GrampsDisplay
|
||||||
import RelLib
|
import RelLib
|
||||||
import AutoComp
|
import AutoComp
|
||||||
|
|
||||||
from _EditPrimary import EditPrimary
|
from _EditPrimary import EditPrimary
|
||||||
from PluginUtils import ReportUtils
|
from PluginUtils import ReportUtils
|
||||||
|
|
||||||
from DdTargets import DdTargets
|
from DdTargets import DdTargets
|
||||||
from DisplayTabs import *
|
from DisplayTabs import *
|
||||||
from GrampsWidgets import *
|
from GrampsWidgets import *
|
||||||
|
|
||||||
from ObjectSelector import PersonSelector,PersonFilterSpec
|
from ObjectSelector import PersonSelector,PersonFilterSpec
|
||||||
|
|
||||||
class ChildEmbedList(EmbeddedList):
|
class ChildEmbedList(EmbeddedList):
|
||||||
@ -449,31 +450,51 @@ class EditFamily(EditPrimary):
|
|||||||
|
|
||||||
selector_window.close()
|
selector_window.close()
|
||||||
|
|
||||||
def father_clicked(self,obj):
|
def father_clicked(self, obj):
|
||||||
handle = self.obj.get_father_handle()
|
handle = self.obj.get_father_handle()
|
||||||
if handle:
|
if handle:
|
||||||
self.obj.set_father_handle(None)
|
self.obj.set_father_handle(None)
|
||||||
self.update_father(None)
|
self.update_father(None)
|
||||||
else:
|
else:
|
||||||
filter_spec = PersonFilterSpec()
|
from SelectPerson import SelectPerson
|
||||||
filter_spec.set_gender(RelLib.Person.MALE)
|
import GenericFilter
|
||||||
|
|
||||||
child_birth_years = []
|
data_filter = GenericFilter.GenericFilter()
|
||||||
for person_handle in self.obj.get_child_handle_list():
|
data_filter.add_rule(GenericFilter.IsMale([]))
|
||||||
person = self.db.get_person_from_handle(person_handle)
|
|
||||||
event_ref = person.get_birth_ref()
|
|
||||||
if event_ref and event_ref.ref:
|
|
||||||
event = self.db.get_event_from_handle(event_ref.ref)
|
|
||||||
child_birth_years.append(event.get_date_object().get_year())
|
|
||||||
|
|
||||||
if len(child_birth_years) > 0:
|
sel = SelectPerson(self.dbstate.db, "Select Father",
|
||||||
filter_spec.set_birth_year(min(child_birth_years))
|
filter=data_filter,
|
||||||
filter_spec.set_birth_criteria(PersonFilterSpec.BEFORE)
|
skip=self.obj.get_child_handle_list())
|
||||||
|
person = sel.run()
|
||||||
|
|
||||||
selector = PersonSelector(self.dbstate,self.uistate,
|
if person:
|
||||||
self.track,filter_spec=filter_spec)
|
self.obj.set_father_handle(person.handle)
|
||||||
selector.connect('add-object',self.on_change_father)
|
self.update_father(person.handle)
|
||||||
|
|
||||||
|
# def father_clicked(self,obj):
|
||||||
|
# handle = self.obj.get_father_handle()
|
||||||
|
# if handle:
|
||||||
|
# self.obj.set_father_handle(None)
|
||||||
|
# self.update_father(None)
|
||||||
|
# else:
|
||||||
|
# filter_spec = PersonFilterSpec()
|
||||||
|
# filter_spec.set_gender(RelLib.Person.MALE)
|
||||||
|
|
||||||
|
# child_birth_years = []
|
||||||
|
# for person_handle in self.obj.get_child_handle_list():
|
||||||
|
# person = self.db.get_person_from_handle(person_handle)
|
||||||
|
# event_ref = person.get_birth_ref()
|
||||||
|
# if event_ref and event_ref.ref:
|
||||||
|
# event = self.db.get_event_from_handle(event_ref.ref)
|
||||||
|
# child_birth_years.append(event.get_date_object().get_year())
|
||||||
|
|
||||||
|
# if len(child_birth_years) > 0:
|
||||||
|
# filter_spec.set_birth_year(min(child_birth_years))
|
||||||
|
# filter_spec.set_birth_criteria(PersonFilterSpec.BEFORE)
|
||||||
|
|
||||||
|
# selector = PersonSelector(self.dbstate,self.uistate,
|
||||||
|
# self.track,filter_spec=filter_spec)
|
||||||
|
# selector.connect('add-object',self.on_change_father)
|
||||||
|
|
||||||
def edit_person(self,obj,event,handle):
|
def edit_person(self,obj,event,handle):
|
||||||
if event.type == gtk.gdk.BUTTON_PRESS and event.button == 1:
|
if event.type == gtk.gdk.BUTTON_PRESS and event.button == 1:
|
||||||
|
@ -114,7 +114,7 @@ else:
|
|||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
class PeopleModel(gtk.GenericTreeModel):
|
class PeopleModel(gtk.GenericTreeModel):
|
||||||
|
|
||||||
def __init__(self,db,data_filter=None,invert_result=False):
|
def __init__(self,db,data_filter=None,invert_result=False,skip=[]):
|
||||||
gtk.GenericTreeModel.__init__(self)
|
gtk.GenericTreeModel.__init__(self)
|
||||||
|
|
||||||
self.db = db
|
self.db = db
|
||||||
@ -125,7 +125,7 @@ class PeopleModel(gtk.GenericTreeModel):
|
|||||||
self.tooltip_column = 12
|
self.tooltip_column = 12
|
||||||
self.prev_handle = None
|
self.prev_handle = None
|
||||||
self.prev_data = None
|
self.prev_data = None
|
||||||
self.rebuild_data(data_filter)
|
self.rebuild_data(data_filter,skip)
|
||||||
|
|
||||||
def rebuild_data(self,data_filter=None,skip=[]):
|
def rebuild_data(self,data_filter=None,skip=[]):
|
||||||
self.calculate_data(data_filter,skip)
|
self.calculate_data(data_filter,skip)
|
||||||
|
@ -26,7 +26,6 @@
|
|||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
from TransUtils import sgettext as _
|
from TransUtils import sgettext as _
|
||||||
import gc
|
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
@ -53,7 +52,7 @@ import PeopleModel
|
|||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
class SelectPerson:
|
class SelectPerson:
|
||||||
|
|
||||||
def __init__(self,db,title,parent_window=None):
|
def __init__(self, db, title, filter=None, skip=[], parent_window=None):
|
||||||
|
|
||||||
self.renderer = gtk.CellRendererText()
|
self.renderer = gtk.CellRendererText()
|
||||||
self.db = db
|
self.db = db
|
||||||
@ -62,11 +61,12 @@ class SelectPerson:
|
|||||||
title_label = self.glade.get_widget('title')
|
title_label = self.glade.get_widget('title')
|
||||||
self.plist = self.glade.get_widget('plist')
|
self.plist = self.glade.get_widget('plist')
|
||||||
self.notebook = self.glade.get_widget('notebook')
|
self.notebook = self.glade.get_widget('notebook')
|
||||||
self.use_filter = 0
|
|
||||||
|
|
||||||
Utils.set_titles(self.top,title_label,title)
|
Utils.set_titles(self.top,title_label,title)
|
||||||
|
|
||||||
self.model = PeopleModel.PeopleModel(self.db)
|
self.model = PeopleModel.PeopleModel(self.db,
|
||||||
|
data_filter=filter,
|
||||||
|
skip=skip)
|
||||||
|
|
||||||
self.add_columns(self.plist)
|
self.add_columns(self.plist)
|
||||||
self.plist.set_model(self.model)
|
self.plist.set_model(self.model)
|
||||||
@ -110,9 +110,7 @@ class SelectPerson:
|
|||||||
else:
|
else:
|
||||||
return_value = None
|
return_value = None
|
||||||
self.top.destroy()
|
self.top.destroy()
|
||||||
gc.collect()
|
|
||||||
return return_value
|
return return_value
|
||||||
else:
|
else:
|
||||||
self.top.destroy()
|
self.top.destroy()
|
||||||
gc.collect()
|
|
||||||
return None
|
return None
|
||||||
|
Loading…
Reference in New Issue
Block a user