* src/GrampsDBCallback.py: doc changes
* src/NameDisplay.py: remove nickname support * src/QuestionDialog.py: handle missing icons for pychecker * src/Report.py: set a default size for the window (600) * src/ReportUtils.py: doc changes, add common_name * src/plugins/DetAncestralReport.py: svn: r5300
This commit is contained in:
parent
69bc0f70b7
commit
ad49a9e202
@ -1,4 +1,10 @@
|
||||
2005-10-10 Don Allingham <don@gramps-project.org>
|
||||
* src/GrampsDBCallback.py: doc changes
|
||||
* src/NameDisplay.py: remove nickname support
|
||||
* src/QuestionDialog.py: handle missing icons for pychecker
|
||||
* src/Report.py: set a default size for the window (600)
|
||||
* src/ReportUtils.py: doc changes, add common_name
|
||||
* src/plugins/DetAncestralReport.py:
|
||||
* src/Date.py: set default modifier properly, fix compare and sortval
|
||||
assignment
|
||||
* src/RelLib.py: fix source reference date comparison
|
||||
|
@ -59,9 +59,8 @@ class GrampsDBCallback(object):
|
||||
Classes that want to emit signals need to inherit from the
|
||||
GrampsDBCallback class and ensure that its __init__ method
|
||||
is called. They then need to declare the signals that they
|
||||
can emit and the types of each callbacks arguments.
|
||||
|
||||
e.g.
|
||||
can emit and the types of each callbacks arguments. For
|
||||
example::
|
||||
|
||||
class TestSignals(GrampsDBCallback):
|
||||
|
||||
@ -88,27 +87,23 @@ class GrampsDBCallback(object):
|
||||
Emitting signals
|
||||
================
|
||||
|
||||
Signals are emitted using the emit method.
|
||||
Signals are emitted using the emit method. e.g.::
|
||||
|
||||
e.g.
|
||||
|
||||
def emit_signal(self):
|
||||
self.emit('test-signal',(1,))
|
||||
|
||||
The parameters are passed as a tuple so a single parameter
|
||||
must be passed as a 1 element tuple.
|
||||
|
||||
|
||||
|
||||
Connecting callbacks to signals
|
||||
==============================
|
||||
===============================
|
||||
|
||||
Attaching a callback to the signals is similar to the gtk
|
||||
connect methods. e.g.
|
||||
connect methods. e.g.::
|
||||
|
||||
# connect to a function.
|
||||
def fn(i):
|
||||
print "got signal value = ", i
|
||||
print 'got signal value = ', i
|
||||
|
||||
t = TestSignals()
|
||||
t.connect('test-signal', fn)
|
||||
@ -117,7 +112,7 @@ class GrampsDBCallback(object):
|
||||
class C(object):
|
||||
|
||||
def cb_func(self, i):
|
||||
print "got class signal = ", 1
|
||||
print 'got class signal = ', 1
|
||||
|
||||
r = R()
|
||||
t.connect('test-signal', r.cb_func)
|
||||
@ -130,7 +125,7 @@ class GrampsDBCallback(object):
|
||||
key returned from the connect call. This key can be passed to the disconnect
|
||||
method to remove the callback from the signals callback list.
|
||||
|
||||
e.g.
|
||||
e.g.::
|
||||
|
||||
t = TestSignals()
|
||||
|
||||
@ -138,7 +133,7 @@ class GrampsDBCallback(object):
|
||||
class C(object):
|
||||
|
||||
def cb_func(self, i):
|
||||
print "got class signal = ", 1
|
||||
print 'got class signal = ', 1
|
||||
|
||||
r = R()
|
||||
key = t.connect('test-signal', r.cb_func)
|
||||
@ -156,7 +151,7 @@ class GrampsDBCallback(object):
|
||||
be used to block the signals for a single instance and disable_all_signals()
|
||||
can be used to block signals for the class:
|
||||
|
||||
e.g.
|
||||
e.g.::
|
||||
|
||||
|
||||
class TestSignals(GrampsDBCallback):
|
||||
|
@ -133,9 +133,9 @@ class NameDisplay:
|
||||
"""
|
||||
name = person.get_primary_name()
|
||||
if name.display_as == RelLib.Name.LNFN:
|
||||
return self._lnfn(name,person.get_nick_name())
|
||||
return self._lnfn(name,"")
|
||||
else:
|
||||
return self._fnln(name,person.get_nick_name())
|
||||
return self._fnln(name,"")
|
||||
|
||||
def display_formal(self,person):
|
||||
"""
|
||||
|
@ -44,7 +44,10 @@ from gtk.gdk import pixbuf_new_from_file
|
||||
import const
|
||||
import GrampsKeys
|
||||
|
||||
ICON = pixbuf_new_from_file(const.icon)
|
||||
try:
|
||||
ICON = pixbuf_new_from_file(const.icon)
|
||||
except:
|
||||
pass
|
||||
|
||||
class SaveDialog:
|
||||
def __init__(self,msg1,msg2,task1,task2,parent=None):
|
||||
|
@ -369,7 +369,7 @@ class BareReportDialog:
|
||||
self.ok.connect('clicked',self.on_ok_clicked)
|
||||
self.cancel.connect('clicked',self.on_cancel)
|
||||
|
||||
self.window.set_resize_mode(0)
|
||||
self.window.set_default_size(600,-1)
|
||||
|
||||
# Set up and run the dialog. These calls are not in top down
|
||||
# order when looking at the dialog box as there is some
|
||||
|
@ -21,6 +21,10 @@
|
||||
|
||||
# $Id$
|
||||
|
||||
"""
|
||||
A collection of utilities to aid in the generation of reports.
|
||||
"""
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
#
|
||||
# GRAMPS modules
|
||||
@ -1053,6 +1057,17 @@ def estimate_age(db, person, end_handle=None, start_handle=None):
|
||||
return age
|
||||
|
||||
def sanitize_list(obj_list,exclude_private):
|
||||
"""
|
||||
Removes private objects from the list.
|
||||
|
||||
@param obj_list: objects that have a privacy flag
|
||||
@type obj_list: list
|
||||
@param exclude_private: indicates if objects marked private
|
||||
are eliminated from the list
|
||||
@type obj_list: bool
|
||||
@returns: objects that match the privacy request
|
||||
@rtype: list
|
||||
"""
|
||||
if exclude_private:
|
||||
return [obj for obj in obj_list if not obj.private]
|
||||
else:
|
||||
@ -1317,17 +1332,13 @@ def get_birth_death_strings(database,person,empty_date="",empty_place=""):
|
||||
def born_died_str(database,person,endnotes=None,name_object=None,person_name=None):
|
||||
"""
|
||||
Composes a string describing birth and death of a person.
|
||||
|
||||
The string is composed in the following form:
|
||||
"Such-and-such was born on-a-date in a-place,
|
||||
and died on-a-date in a-place"
|
||||
Missing information will be omitted without loss of readability.
|
||||
Optional references may be added to birth and death events.
|
||||
Optional Name object may be used to override a person's Name instance.
|
||||
Optional string may be used to override the string representation of a name.
|
||||
|
||||
@param database GRAMPS database to which the Person object belongs
|
||||
@type db: GrampsDbBase
|
||||
@param database: GRAMPS database to which the Person object belongs
|
||||
@type database: GrampsDbBase
|
||||
@param person: Person instance for which the string has to be composed
|
||||
@type person: Person
|
||||
@param endnotes: Function to use for reference composition. If None
|
||||
@ -1530,15 +1541,11 @@ def born_died_str(database,person,endnotes=None,name_object=None,person_name=Non
|
||||
def married_str(database,person,spouse,event,endnotes=None,
|
||||
empty_date="",empty_place="",is_first=True):
|
||||
"""
|
||||
Composes a string describing marriage of a person.
|
||||
Composes a string describing marriage of a person. Missing information will
|
||||
be omitted without loss of readability. Optional references may be added to
|
||||
birth and death events.
|
||||
|
||||
The string is composed in the following form:
|
||||
"He/She married such-and-such on-a-date" or
|
||||
"He/She married such-and-such in a-place",
|
||||
Missing information will be omitted without loss of readability.
|
||||
Optional references may be added to birth and death events.
|
||||
|
||||
@param database GRAMPS database to which the Person object belongs
|
||||
@param database: GRAMPS database to which the Person object belongs
|
||||
@type db: GrampsDbBase
|
||||
@param person: Person instance whose marriage is discussed
|
||||
@type person: Person
|
||||
@ -1620,6 +1627,22 @@ def married_str(database,person,spouse,event,endnotes=None,
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
def married_rel_str(database,person,family,is_first=True):
|
||||
"""
|
||||
Composes a string describing marriage of a person. Missing information will
|
||||
be omitted without loss of readability. Optional references may be added to
|
||||
birth and death events.
|
||||
|
||||
@param database: GRAMPS database to which the Person object belongs
|
||||
@type db: GrampsDbBase
|
||||
@param person: Person instance whose marriage is discussed
|
||||
@type person: Person
|
||||
@param family: Family instance whose marriage is discussed
|
||||
@type family: Family
|
||||
@param is_first: Indicates if this is a first marriage
|
||||
@type is_first: bool
|
||||
@returns: A composed string
|
||||
@rtype: unicode
|
||||
"""
|
||||
spouse_handle = find_spouse(person,family)
|
||||
spouse = database.get_person_from_handle(spouse_handle)
|
||||
|
||||
@ -2079,7 +2102,6 @@ _rtype = {
|
||||
def relationship_name(rtype):
|
||||
return _rtype.get(rtype)
|
||||
|
||||
|
||||
def old_calc_age(database,person):
|
||||
"""
|
||||
Calulate age.
|
||||
@ -2130,3 +2152,8 @@ def old_calc_age(database,person):
|
||||
return (age,units)
|
||||
|
||||
|
||||
def common_name(person,use_nick=False):
|
||||
if use_nick and person.get_nick_name():
|
||||
return person.get_nick_name()
|
||||
else:
|
||||
return person.get_primary_name().get_first_name()
|
||||
|
@ -100,10 +100,10 @@ class DetAncestorReport(Report.Report):
|
||||
(self.max_generations,self.pgbrk) \
|
||||
= options_class.get_report_generations()
|
||||
|
||||
self.firstName = options_class.handler.options_dict['firstnameiop']
|
||||
self.fullDate = options_class.handler.options_dict['fulldates']
|
||||
self.listChildren = options_class.handler.options_dict['listc']
|
||||
self.includeNotes = options_class.handler.options_dict['incnotes']
|
||||
self.usenick = options_class.handler.options_dict['usenick']
|
||||
self.blankPlace = options_class.handler.options_dict['repplace']
|
||||
self.blankDate = options_class.handler.options_dict['repdate']
|
||||
self.calcAgeFlag = options_class.handler.options_dict['computeage']
|
||||
@ -147,7 +147,7 @@ class DetAncestorReport(Report.Report):
|
||||
|
||||
name = _nd.display_name(self.start_person.get_primary_name())
|
||||
self.doc.start_paragraph("DAR-Title")
|
||||
title = _("Detailed Ancestral Report for %s") % name
|
||||
title = _("Ancestral Report for %s") % name
|
||||
self.doc.write_text(title)
|
||||
self.doc.end_paragraph()
|
||||
|
||||
@ -220,7 +220,7 @@ class DetAncestorReport(Report.Report):
|
||||
|
||||
# Check birth record
|
||||
|
||||
first = person.get_primary_name().get_first_name()
|
||||
first = ReportUtils.common_name(person,self.usenick)
|
||||
text = ReportUtils.born_str(self.database,person,first,
|
||||
self.EMPTY_DATE,self.EMPTY_PLACE)
|
||||
if text:
|
||||
@ -245,7 +245,7 @@ class DetAncestorReport(Report.Report):
|
||||
if text:
|
||||
self.doc.write_text(text)
|
||||
|
||||
first = person.get_primary_name().get_first_name()
|
||||
first = ReportUtils.common_name(person,self.usenick)
|
||||
|
||||
self.write_parents(person, first)
|
||||
self.write_marriage(person)
|
||||
@ -260,7 +260,7 @@ class DetAncestorReport(Report.Report):
|
||||
self.doc.end_paragraph()
|
||||
self.doc.write_note(person.get_note(),person.get_note_format(),"DAR-Entry")
|
||||
|
||||
first = 1
|
||||
first = True
|
||||
if self.includeNames:
|
||||
for alt_name in person.get_alternate_names():
|
||||
if first:
|
||||
@ -268,7 +268,7 @@ class DetAncestorReport(Report.Report):
|
||||
self.doc.write_text(_('More about %(person_name)s:') % {
|
||||
'person_name' : name })
|
||||
self.doc.end_paragraph()
|
||||
first = 0
|
||||
first = False
|
||||
self.doc.start_paragraph('DAR-MoreDetails')
|
||||
self.doc.write_text(_('%(name_kind)s: %(name)s%(endnotes)s') % {
|
||||
'name_kind' : const.NameTypesMap.find_value(alt_name.get_type()),
|
||||
@ -290,7 +290,7 @@ class DetAncestorReport(Report.Report):
|
||||
if first:
|
||||
self.doc.start_paragraph('DAR-MoreHeader')
|
||||
self.doc.write_text(_('More about %(person_name)s:') % {
|
||||
'person_name' : person.get_primary_name().get_regular_name() })
|
||||
'person_name' : _nd.display(person) })
|
||||
self.doc.end_paragraph()
|
||||
first = 0
|
||||
|
||||
@ -428,7 +428,7 @@ class DetAncestorReport(Report.Report):
|
||||
if ind_handle:
|
||||
ind = self.database.get_person_from_handle(ind_handle)
|
||||
person_name = _nd.display(ind)
|
||||
firstName = ind.get_primary_name().get_first_name()
|
||||
firstName = ReportUtils.common_name(ind,self.usenick)
|
||||
else:
|
||||
firstName = 0
|
||||
|
||||
@ -569,6 +569,7 @@ class DetAncestorOptions(ReportOptions.ReportOptions):
|
||||
'fulldates' : 1,
|
||||
'listc' : 1,
|
||||
'incnotes' : 1,
|
||||
'usenick' : 1,
|
||||
'repplace' : 0,
|
||||
'repdate' : 0,
|
||||
'computeage' : 1,
|
||||
@ -592,6 +593,9 @@ class DetAncestorOptions(ReportOptions.ReportOptions):
|
||||
'incnotes' : ("=0/1","Whether to include notes.",
|
||||
["Do not include notes","Include notes"],
|
||||
True),
|
||||
'usenick' : ("=0/1","Whether to use the nick name as the first name.",
|
||||
["Do not use nick name","Use nick name"],
|
||||
True),
|
||||
'repplace' : ("=0/1","Whether to replace missing Places with blanks.",
|
||||
["Do not replace missing Places","Replace missing Places"],
|
||||
True),
|
||||
@ -652,17 +656,16 @@ class DetAncestorOptions(ReportOptions.ReportOptions):
|
||||
font.set(face=BaseDoc.FONT_SANS_SERIF,size=10,italic=0, bold=1)
|
||||
para = BaseDoc.ParagraphStyle()
|
||||
para.set_font(font)
|
||||
#para.set_header_level(3)
|
||||
para.set_left_margin(1.0) # in centimeters
|
||||
para.set(pad=0.5)
|
||||
para.set_description(_('The style used for the children list title.'))
|
||||
default_style.add_style("DAR-ChildTitle",para)
|
||||
|
||||
font = BaseDoc.FontStyle()
|
||||
font.set(face=BaseDoc.FONT_SANS_SERIF,size=9)
|
||||
font.set(size=10)
|
||||
para = BaseDoc.ParagraphStyle()
|
||||
para.set_font(font)
|
||||
para.set(first_indent=-0.5,lmargin=1.5,pad=0.25)
|
||||
para.set(first_indent=-0.75,lmargin=1.75,pad=0.25)
|
||||
para.set_description(_('The style used for the children list.'))
|
||||
default_style.add_style("DAR-ChildList",para)
|
||||
|
||||
@ -684,15 +687,15 @@ class DetAncestorOptions(ReportOptions.ReportOptions):
|
||||
default_style.add_style("DAR-First-Entry",para)
|
||||
|
||||
font = BaseDoc.FontStyle()
|
||||
font.set(bold=1)
|
||||
font.set(size=10,face=BaseDoc.FONT_SANS_SERIF,bold=1)
|
||||
para = BaseDoc.ParagraphStyle()
|
||||
para.set_font(font)
|
||||
para.set(first_indent=0.0,lmargin=0.0,pad=0.25)
|
||||
para.set(first_indent=0.0,lmargin=1.0,pad=0.25)
|
||||
para.set_description(_('The style used for the More About header.'))
|
||||
default_style.add_style("DAR-MoreHeader",para)
|
||||
|
||||
font = BaseDoc.FontStyle()
|
||||
font.set(face=BaseDoc.FONT_SANS_SERIF,size=9)
|
||||
font.set(face=BaseDoc.FONT_SERIF,size=10)
|
||||
para = BaseDoc.ParagraphStyle()
|
||||
para.set_font(font)
|
||||
para.set(first_indent=0.0,lmargin=1.0,pad=0.25)
|
||||
@ -709,7 +712,7 @@ class DetAncestorOptions(ReportOptions.ReportOptions):
|
||||
default_style.add_style("DAR-Endnotes-Header",para)
|
||||
|
||||
para = BaseDoc.ParagraphStyle()
|
||||
para.set(first_indent=0.5,lmargin=1.0,pad=0.25)
|
||||
para.set(first_indent=-0.5,lmargin=1.5,pad=0.25)
|
||||
para.set_description(_('The basic style used for the endnotes text display.'))
|
||||
default_style.add_style("DAR-Endnotes",para)
|
||||
|
||||
@ -719,10 +722,6 @@ class DetAncestorOptions(ReportOptions.ReportOptions):
|
||||
the user to select the sort method.
|
||||
"""
|
||||
|
||||
# Pronoun instead of first name
|
||||
self.first_name_option = gtk.CheckButton(_("Use first names instead of pronouns"))
|
||||
self.first_name_option.set_active(self.options_dict['firstnameiop'])
|
||||
|
||||
# Full date usage
|
||||
self.full_date_option = gtk.CheckButton(_("Use full dates instead of only the year"))
|
||||
self.full_date_option.set_active(self.options_dict['fulldates'])
|
||||
@ -735,6 +734,10 @@ class DetAncestorOptions(ReportOptions.ReportOptions):
|
||||
self.include_notes_option = gtk.CheckButton(_("Include notes"))
|
||||
self.include_notes_option.set_active(self.options_dict['incnotes'])
|
||||
|
||||
# Print notes
|
||||
self.usenick = gtk.CheckButton(_("Use nickname for common name"))
|
||||
self.usenick.set_active(self.options_dict['usenick'])
|
||||
|
||||
# Replace missing Place with ___________
|
||||
self.place_option = gtk.CheckButton(_("Replace missing places with ______"))
|
||||
self.place_option.set_active(self.options_dict['repplace'])
|
||||
@ -775,7 +778,7 @@ class DetAncestorOptions(ReportOptions.ReportOptions):
|
||||
# if you want to put everyting in the generic "Options" category, use
|
||||
# self.add_option(text,widget) instead of self.add_frame_option(category,text,widget)
|
||||
|
||||
dialog.add_frame_option(_('Content'),'',self.first_name_option)
|
||||
dialog.add_frame_option(_('Content'),'',self.usenick)
|
||||
dialog.add_frame_option(_('Content'),'',self.full_date_option)
|
||||
dialog.add_frame_option(_('Content'),'',self.list_children_option)
|
||||
dialog.add_frame_option(_('Content'),'',self.age_option)
|
||||
@ -794,10 +797,10 @@ class DetAncestorOptions(ReportOptions.ReportOptions):
|
||||
Parses the custom options that we have added.
|
||||
"""
|
||||
|
||||
self.options_dict['firstnameiop'] = int(self.first_name_option.get_active())
|
||||
self.options_dict['fulldates'] = int(self.full_date_option.get_active())
|
||||
self.options_dict['listc'] = int(self.list_children_option.get_active())
|
||||
self.options_dict['incnotes'] = int(self.include_notes_option.get_active())
|
||||
self.options_dict['usenick'] = int(self.usenick.get_active())
|
||||
self.options_dict['repplace'] = int(self.place_option.get_active())
|
||||
self.options_dict['repdate'] = int(self.date_option.get_active())
|
||||
self.options_dict['computeage'] = int(self.age_option.get_active())
|
||||
|
Loading…
x
Reference in New Issue
Block a user