* src/GrampsGconfKeys.py: family view detail options
* src/GrampsIniKeys.py: family view detail options * src/Navigation.py: fix overflow bug * src/PageView.py: toggle initial value fix gender mouseover, inclusion options * src/data/gramps.schemas: new keys for family view detail svn: r5678
This commit is contained in:
parent
fe4ddb7100
commit
b83a468103
@ -1,6 +1,11 @@
|
|||||||
2006-01-05 Don Allingham <don@gramps-project.org>
|
2006-01-05 Don Allingham <don@gramps-project.org>
|
||||||
|
* src/GrampsGconfKeys.py: family view detail options
|
||||||
|
* src/GrampsIniKeys.py: family view detail options
|
||||||
|
* src/Navigation.py: fix overflow bug
|
||||||
|
* src/PageView.py: toggle initial value
|
||||||
* src/FamiyView.py: use gender markers, remove Family/Parents,
|
* src/FamiyView.py: use gender markers, remove Family/Parents,
|
||||||
fix gender mouseover
|
fix gender mouseover, inclusion options
|
||||||
|
* src/data/gramps.schemas: new keys for family view detail
|
||||||
|
|
||||||
2006-01-05 Richard Taylor <rjt-gramps@thegrindstone.me.uk>
|
2006-01-05 Richard Taylor <rjt-gramps@thegrindstone.me.uk>
|
||||||
* src/GrampsLogger/__init__.py: added package interface
|
* src/GrampsLogger/__init__.py: added package interface
|
||||||
|
@ -30,6 +30,7 @@ import Utils
|
|||||||
import DateHandler
|
import DateHandler
|
||||||
import ImgManip
|
import ImgManip
|
||||||
import ReportUtils
|
import ReportUtils
|
||||||
|
import GrampsKeys
|
||||||
|
|
||||||
class LinkLabel(gtk.EventBox):
|
class LinkLabel(gtk.EventBox):
|
||||||
|
|
||||||
@ -107,6 +108,12 @@ class FamilyView(PageView.PersonNavView):
|
|||||||
PageView.PersonNavView.__init__(self,'Pedigree View',dbstate,uistate)
|
PageView.PersonNavView.__init__(self,'Pedigree View',dbstate,uistate)
|
||||||
dbstate.connect('database-changed',self.change_db)
|
dbstate.connect('database-changed',self.change_db)
|
||||||
dbstate.connect('active-changed',self.change_person)
|
dbstate.connect('active-changed',self.change_person)
|
||||||
|
self.show_siblings = GrampsKeys.get_family_siblings()
|
||||||
|
if self.show_siblings == None:
|
||||||
|
self.show_siblings = True
|
||||||
|
self.show_details = GrampsKeys.get_family_details()
|
||||||
|
if self.show_details == None:
|
||||||
|
self.show_details = True
|
||||||
|
|
||||||
def get_stock(self):
|
def get_stock(self):
|
||||||
"""
|
"""
|
||||||
@ -142,6 +149,10 @@ class FamilyView(PageView.PersonNavView):
|
|||||||
<separator/>
|
<separator/>
|
||||||
</placeholder>
|
</placeholder>
|
||||||
</menu>
|
</menu>
|
||||||
|
<menu action="ViewMenu">
|
||||||
|
<menuitem action="Siblings"/>
|
||||||
|
<menuitem action="Details"/>
|
||||||
|
</menu>
|
||||||
</menubar>
|
</menubar>
|
||||||
<toolbar name="ToolBar">
|
<toolbar name="ToolBar">
|
||||||
<placeholder name="CommonNavigation">
|
<placeholder name="CommonNavigation">
|
||||||
@ -161,6 +172,23 @@ class FamilyView(PageView.PersonNavView):
|
|||||||
def define_actions(self):
|
def define_actions(self):
|
||||||
PageView.PersonNavView.define_actions(self)
|
PageView.PersonNavView.define_actions(self)
|
||||||
|
|
||||||
|
self.add_toggle_action('Details', None, _('Show details'),
|
||||||
|
None, None, self.details_toggle,
|
||||||
|
self.show_details)
|
||||||
|
self.add_toggle_action('Siblings', None, _('Show siblings'),
|
||||||
|
None, None, self.siblings_toggle,
|
||||||
|
self.show_siblings)
|
||||||
|
|
||||||
|
def siblings_toggle(self,obj):
|
||||||
|
self.show_siblings = obj.get_active()
|
||||||
|
self.change_person(self.dbstate.active.handle)
|
||||||
|
GrampsKeys.save_family_siblings(self.show_siblings)
|
||||||
|
|
||||||
|
def details_toggle(self,obj):
|
||||||
|
self.show_details = obj.get_active()
|
||||||
|
self.change_person(self.dbstate.active.handle)
|
||||||
|
GrampsKeys.save_family_details(self.show_details)
|
||||||
|
|
||||||
def change_db(self,db):
|
def change_db(self,db):
|
||||||
if self.child:
|
if self.child:
|
||||||
self.vbox.remove(self.child)
|
self.vbox.remove(self.child)
|
||||||
@ -173,18 +201,19 @@ class FamilyView(PageView.PersonNavView):
|
|||||||
gender = ""
|
gender = ""
|
||||||
if use_gender:
|
if use_gender:
|
||||||
if p.gender == RelLib.Person.MALE:
|
if p.gender == RelLib.Person.MALE:
|
||||||
gender = u" \u2642"
|
gender = u' <span weight="bold">\u2642</span>'
|
||||||
elif p.gender == RelLib.Person.FEMALE:
|
elif p.gender == RelLib.Person.FEMALE:
|
||||||
gender = u" \u2640"
|
gender = u" \u2640"
|
||||||
else:
|
else:
|
||||||
gender = u" \u2650"
|
gender = u" \u2650"
|
||||||
return (name,gender)
|
return (name,gender)
|
||||||
else:
|
else:
|
||||||
return _(u"Unknown","")
|
return (_(u"Unknown"),"")
|
||||||
|
|
||||||
def change_person(self,obj):
|
def change_person(self,obj):
|
||||||
if self.child:
|
if self.child:
|
||||||
self.vbox.remove(self.child)
|
self.vbox.remove(self.child)
|
||||||
|
|
||||||
self.child = gtk.Table(20,6)
|
self.child = gtk.Table(20,6)
|
||||||
self.child.set_border_width(12)
|
self.child.set_border_width(12)
|
||||||
self.child.set_col_spacings(12)
|
self.child.set_col_spacings(12)
|
||||||
@ -205,7 +234,7 @@ class FamilyView(PageView.PersonNavView):
|
|||||||
for family_handle in family_handle_list:
|
for family_handle in family_handle_list:
|
||||||
if family_handle:
|
if family_handle:
|
||||||
self.write_family(family_handle)
|
self.write_family(family_handle)
|
||||||
|
|
||||||
self.child.show_all()
|
self.child.show_all()
|
||||||
|
|
||||||
def write_title(self,person):
|
def write_title(self,person):
|
||||||
@ -258,8 +287,8 @@ class FamilyView(PageView.PersonNavView):
|
|||||||
self.row = 5
|
self.row = 5
|
||||||
|
|
||||||
def write_data(self,title,start_col=3,stop_col=5):
|
def write_data(self,title,start_col=3,stop_col=5):
|
||||||
self.child.attach(BasicLabel(title),start_col,stop_col,self.row,self.row+1,
|
self.child.attach(BasicLabel(title),start_col,stop_col,self.row,
|
||||||
xoptions=gtk.EXPAND|gtk.FILL)
|
self.row+1, xoptions=gtk.EXPAND|gtk.FILL)
|
||||||
self.row += 1
|
self.row += 1
|
||||||
|
|
||||||
def write_label(self,title):
|
def write_label(self,title):
|
||||||
@ -269,7 +298,8 @@ class FamilyView(PageView.PersonNavView):
|
|||||||
self.row += 1
|
self.row += 1
|
||||||
|
|
||||||
def write_person_data(self,title,data):
|
def write_person_data(self,title,data):
|
||||||
self.child.attach(BasicLabel(title),2,3,self.row,self.row+1,xoptions=gtk.FILL)
|
self.child.attach(BasicLabel(title),2,3,self.row,self.row+1,
|
||||||
|
xoptions=gtk.FILL)
|
||||||
self.child.attach(BasicLabel(data),3,5,self.row,self.row+1,
|
self.child.attach(BasicLabel(data),3,5,self.row,self.row+1,
|
||||||
xoptions=gtk.EXPAND|gtk.FILL)
|
xoptions=gtk.EXPAND|gtk.FILL)
|
||||||
self.row += 1
|
self.row += 1
|
||||||
@ -305,12 +335,12 @@ class FamilyView(PageView.PersonNavView):
|
|||||||
|
|
||||||
self.row += 1
|
self.row += 1
|
||||||
|
|
||||||
value = self.info_string(handle)
|
if self.show_details:
|
||||||
if value:
|
value = self.info_string(handle)
|
||||||
self.child.attach(BasicLabel(value),4,5,self.row, self.row+1)
|
if value:
|
||||||
self.row += 1
|
self.child.attach(BasicLabel(value),4,5,self.row, self.row+1)
|
||||||
|
self.row += 1
|
||||||
|
|
||||||
|
|
||||||
def info_string(self,handle):
|
def info_string(self,handle):
|
||||||
child = self.dbstate.db.get_person_from_handle(handle)
|
child = self.dbstate.db.get_person_from_handle(handle)
|
||||||
birth_ref = child.get_birth_ref()
|
birth_ref = child.get_birth_ref()
|
||||||
@ -336,24 +366,28 @@ class FamilyView(PageView.PersonNavView):
|
|||||||
def write_parents(self,family_handle):
|
def write_parents(self,family_handle):
|
||||||
family = self.dbstate.db.get_family_from_handle(family_handle)
|
family = self.dbstate.db.get_family_from_handle(family_handle)
|
||||||
self.write_person(_('Father'),family.get_father_handle())
|
self.write_person(_('Father'),family.get_father_handle())
|
||||||
value = self.info_string(family.get_father_handle())
|
if self.show_details:
|
||||||
if value:
|
value = self.info_string(family.get_father_handle())
|
||||||
self.child.attach(BasicLabel(value),3,5,self.row, self.row+1)
|
if value:
|
||||||
self.row += 1
|
self.child.attach(BasicLabel(value),3,5,self.row, self.row+1)
|
||||||
|
self.row += 1
|
||||||
self.write_person(_('Mother'),family.get_mother_handle())
|
self.write_person(_('Mother'),family.get_mother_handle())
|
||||||
value = self.info_string(family.get_mother_handle())
|
if self.show_details:
|
||||||
if value:
|
value = self.info_string(family.get_mother_handle())
|
||||||
self.child.attach(BasicLabel(value),3,5,self.row, self.row+1)
|
if value:
|
||||||
self.row += 1
|
self.child.attach(BasicLabel(value),3,5,self.row, self.row+1)
|
||||||
|
self.row += 1
|
||||||
|
|
||||||
active = self.dbstate.active.handle
|
if self.show_siblings:
|
||||||
|
active = self.dbstate.active.handle
|
||||||
|
|
||||||
child_list = [handle for handle in family.get_child_handle_list() if handle != active]
|
child_list = [handle for handle in family.get_child_handle_list()\
|
||||||
label = _("Siblings")
|
if handle != active]
|
||||||
if child_list:
|
label = _("Siblings")
|
||||||
for child in child_list:
|
if child_list:
|
||||||
self.write_child(label,child)
|
for child in child_list:
|
||||||
label = u""
|
self.write_child(label,child)
|
||||||
|
label = u""
|
||||||
|
|
||||||
def write_relationship(self,family):
|
def write_relationship(self,family):
|
||||||
rtype = family.get_relationship()
|
rtype = family.get_relationship()
|
||||||
@ -452,14 +486,15 @@ class FamilyView(PageView.PersonNavView):
|
|||||||
else:
|
else:
|
||||||
handle = father_handle
|
handle = father_handle
|
||||||
|
|
||||||
self.write_person(_('Spouse'),handle)
|
if handle:
|
||||||
|
self.write_person(_('Spouse'),handle)
|
||||||
|
|
||||||
value = self.info_string(handle)
|
value = self.info_string(handle)
|
||||||
if value:
|
if value:
|
||||||
self.child.attach(BasicLabel(value),3,5,self.row, self.row+1)
|
self.child.attach(BasicLabel(value),3,5,self.row, self.row+1)
|
||||||
self.row += 1
|
self.row += 1
|
||||||
self.write_relationship(family)
|
self.write_relationship(family)
|
||||||
self.write_marriage(family)
|
self.write_marriage(family)
|
||||||
|
|
||||||
child_list = family.get_child_handle_list()
|
child_list = family.get_child_handle_list()
|
||||||
label = _("Children")
|
label = _("Children")
|
||||||
|
@ -364,6 +364,18 @@ def get_researcher_email():
|
|||||||
def save_researcher_email(val):
|
def save_researcher_email(val):
|
||||||
set_string("/apps/gramps/researcher/researcher-email",val)
|
set_string("/apps/gramps/researcher/researcher-email",val)
|
||||||
|
|
||||||
|
def get_family_details():
|
||||||
|
return get_bool("/apps/gramps/preferences/family-details")
|
||||||
|
|
||||||
|
def save_family_details(val):
|
||||||
|
set_bool("/apps/gramps/preferences/family-details",val)
|
||||||
|
|
||||||
|
def get_family_siblings():
|
||||||
|
return get_bool("/apps/gramps/preferences/family-siblings")
|
||||||
|
|
||||||
|
def save_family_siblings(val):
|
||||||
|
set_bool("/apps/gramps/preferences/family-siblings",val)
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# Low-level grabbing and saving keys with error checking.
|
# Low-level grabbing and saving keys with error checking.
|
||||||
|
@ -229,6 +229,18 @@ def get_family_view():
|
|||||||
def save_family_view(val):
|
def save_family_view(val):
|
||||||
set_int("interface", "familyview",val, (0,1))
|
set_int("interface", "familyview",val, (0,1))
|
||||||
|
|
||||||
|
def get_family_details():
|
||||||
|
return get_bool("/apps/gramps/preferences/family-details", (0,1))
|
||||||
|
|
||||||
|
def save_family_details(val):
|
||||||
|
set_bool("/apps/gramps/preferences/family-details",val, (0,1))
|
||||||
|
|
||||||
|
def get_family_siblings():
|
||||||
|
return get_bool("/apps/gramps/preferences/family-siblings",(0,1))
|
||||||
|
|
||||||
|
def save_family_siblings(val):
|
||||||
|
set_bool("/apps/gramps/preferences/family-siblings",val,(0,1))
|
||||||
|
|
||||||
def get_filter():
|
def get_filter():
|
||||||
return get_bool("interface", "filter")
|
return get_bool("interface", "filter")
|
||||||
|
|
||||||
|
@ -81,25 +81,26 @@ class BaseNavigation:
|
|||||||
Builds the UI and action group.
|
Builds the UI and action group.
|
||||||
"""
|
"""
|
||||||
self.items = items
|
self.items = items
|
||||||
|
|
||||||
self.disable()
|
self.disable()
|
||||||
|
menu_len = min(len(items),10)
|
||||||
|
|
||||||
data = map(lambda x: '<menuitem action="%s%02d"/>' % (self.title,x), range(0,len(items)))
|
data = map(lambda x: '<menuitem action="%s%02d"/>' % (self.title,x), range(0,menu_len))
|
||||||
self.ui = _top + "".join(data) + _btm
|
self.ui = _top + "".join(data) + _btm
|
||||||
|
|
||||||
self.action_group = gtk.ActionGroup(self.title)
|
self.action_group = gtk.ActionGroup(self.title)
|
||||||
|
|
||||||
data = []
|
data = []
|
||||||
index = 0
|
index = 0
|
||||||
for item in items:
|
|
||||||
|
mitems = items[:]
|
||||||
|
mitems.reverse()
|
||||||
|
for item in mitems[:10]:
|
||||||
name = self.build_item_name(item)
|
name = self.build_item_name(item)
|
||||||
f = self.func[index]
|
f = self.func[index]
|
||||||
data.append(('%s%02d'%(self.title,index), None, name, "<alt>%d" % index, None, f))
|
data.append(('%s%02d'%(self.title,index), None, name,
|
||||||
index +=1
|
"<alt>%d" % index, None, f))
|
||||||
|
index += 1
|
||||||
|
|
||||||
self.action_group.add_actions(data)
|
self.action_group.add_actions(data)
|
||||||
|
self.enable()
|
||||||
if self.active != DISABLED:
|
|
||||||
self.enable()
|
|
||||||
|
|
||||||
|
|
||||||
class PersonNavigation(BaseNavigation):
|
class PersonNavigation(BaseNavigation):
|
||||||
|
@ -96,8 +96,9 @@ class PageView:
|
|||||||
self.action_list.append((name,stock_icon,label,accel,tip,callback))
|
self.action_list.append((name,stock_icon,label,accel,tip,callback))
|
||||||
|
|
||||||
def add_toggle_action(self, name, stock_icon, label, accel=None,
|
def add_toggle_action(self, name, stock_icon, label, accel=None,
|
||||||
tip=None, callback=None):
|
tip=None, callback=None, value=False):
|
||||||
self.action_toggle_list.append((name,stock_icon,label,accel,tip,callback))
|
self.action_toggle_list.append((name,stock_icon,label,accel,
|
||||||
|
tip,callback,value))
|
||||||
|
|
||||||
def get_actions(self):
|
def get_actions(self):
|
||||||
if not self.action_group:
|
if not self.action_group:
|
||||||
|
@ -103,8 +103,8 @@ class PersonView(PageView.PersonNavView):
|
|||||||
self.add_action('Remove', gtk.STOCK_REMOVE, "_Remove",
|
self.add_action('Remove', gtk.STOCK_REMOVE, "_Remove",
|
||||||
callback=self.remove)
|
callback=self.remove)
|
||||||
|
|
||||||
self.add_toggle_action('Filter', None, '_Filter',
|
self.add_toggle_action('Filter', None, '_Filter', None, None,
|
||||||
callback=self.filter_toggle)
|
self.filter_toggle)
|
||||||
|
|
||||||
def get_stock(self):
|
def get_stock(self):
|
||||||
"""
|
"""
|
||||||
@ -529,7 +529,8 @@ class PersonView(PageView.PersonNavView):
|
|||||||
for column in self.columns:
|
for column in self.columns:
|
||||||
self.tree.remove_column(column)
|
self.tree.remove_column(column)
|
||||||
try:
|
try:
|
||||||
column = gtk.TreeViewColumn(_('Name'), self.renderer,text=0,background=self.model.marker_color_column)
|
column = gtk.TreeViewColumn(_('Name'), self.renderer,text=0,
|
||||||
|
background=self.model.marker_color_column)
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
column = gtk.TreeViewColumn(_('Name'), self.renderer,text=0)
|
column = gtk.TreeViewColumn(_('Name'), self.renderer,text=0)
|
||||||
column.set_resizable(True)
|
column.set_resizable(True)
|
||||||
@ -545,7 +546,8 @@ class PersonView(PageView.PersonNavView):
|
|||||||
continue
|
continue
|
||||||
name = column_names[pair[1]]
|
name = column_names[pair[1]]
|
||||||
try:
|
try:
|
||||||
column = gtk.TreeViewColumn(name, self.renderer, markup=pair[1],background=self.model.marker_color_column)
|
column = gtk.TreeViewColumn(name, self.renderer, markup=pair[1],
|
||||||
|
background=self.model.marker_color_column)
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
column = gtk.TreeViewColumn(name, self.renderer, markup=pair[1])
|
column = gtk.TreeViewColumn(name, self.renderer, markup=pair[1])
|
||||||
column.set_resizable(True)
|
column.set_resizable(True)
|
||||||
|
@ -3,6 +3,30 @@
|
|||||||
<gconfschemafile>
|
<gconfschemafile>
|
||||||
<schemalist>
|
<schemalist>
|
||||||
|
|
||||||
|
<schema>
|
||||||
|
<key>/schemas/apps/gramps/preferences/family-details</key>
|
||||||
|
<applyto>/apps/gramps/preferences/family-details</applyto>
|
||||||
|
<owner>gramps</owner>
|
||||||
|
<type>bool</type>
|
||||||
|
<default>1</default>
|
||||||
|
<locale name="C">
|
||||||
|
<short>Show event details on the Family View</short>
|
||||||
|
<long>If set to True, event reports are shown on the Family View.</long>
|
||||||
|
</locale>
|
||||||
|
</schema>
|
||||||
|
|
||||||
|
<schema>
|
||||||
|
<key>/schemas/apps/gramps/preferences/family-siblings</key>
|
||||||
|
<applyto>/apps/gramps/preferences/family-siblings</applyto>
|
||||||
|
<owner>gramps</owner>
|
||||||
|
<type>bool</type>
|
||||||
|
<default>1</default>
|
||||||
|
<locale name="C">
|
||||||
|
<short>Show siblings on the Family View</short>
|
||||||
|
<long>If set to True, siblings will be shown on the Family View.</long>
|
||||||
|
</locale>
|
||||||
|
</schema>
|
||||||
|
|
||||||
<schema>
|
<schema>
|
||||||
<key>/schemas/apps/gramps/behavior/autoload</key>
|
<key>/schemas/apps/gramps/behavior/autoload</key>
|
||||||
<applyto>/apps/gramps/behavior/autoload</applyto>
|
<applyto>/apps/gramps/behavior/autoload</applyto>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user