5483: graphic reports should allow indexing (and thus a t.o.c.) -- partial
(this is Craig's 5483-Ancestor-Descendant-libtreebase-trunk.svndiff patch from 5483, and I am only commiting it; he wrote it and deserves the credit) svn: r19972
This commit is contained in:
parent
c52933f9ec
commit
e44060f00b
@ -127,14 +127,14 @@ class FamilyBox(AncestorBoxBase):
|
||||
# Titles Class(es)
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
class TitleN(TitleBox):
|
||||
class TitleN(TitleNoDisplay):
|
||||
"""No Title class for the report """
|
||||
def __init__(self, doc):
|
||||
TitleBox.__init__(self, doc, "None")
|
||||
TitleNoDisplay.__init__(self, doc, "AC2-Title")
|
||||
|
||||
def calc_title(self, center):
|
||||
"""Calculate the title of the report"""
|
||||
return
|
||||
self.text = _("Ancestor Graph")
|
||||
|
||||
class TitleA(TitleBox):
|
||||
"""Title class for the report """
|
||||
@ -235,6 +235,9 @@ class MakeAncestorTree(object):
|
||||
myself.text = self.calc_items.calc_person(
|
||||
index, indi_handle, fams_handle)
|
||||
|
||||
myself.add_mark(self.database,
|
||||
self.database.get_person_from_handle(indi_handle))
|
||||
|
||||
self.canvas.add_box(myself)
|
||||
|
||||
return myself
|
||||
|
@ -200,15 +200,15 @@ class DescendantTitleBase(TitleBox):
|
||||
|
||||
return parents
|
||||
|
||||
class TitleNone(TitleBox):
|
||||
class TitleNone(TitleNoDisplay):
|
||||
"""Family Chart Title class for the report """
|
||||
|
||||
def __init__(self, dbase, doc):
|
||||
TitleBox.__init__(self, doc, "None")
|
||||
TitleNoDisplay.__init__(self, doc, "CG2-Title")
|
||||
|
||||
def calc_title(self, persons):
|
||||
"""Calculate the title of the report"""
|
||||
return
|
||||
self.text = 'Descendant Graph'
|
||||
|
||||
class TitleDPY(DescendantTitleBase):
|
||||
"""Descendant (Person yes start with parents) Chart
|
||||
@ -455,6 +455,9 @@ class RecurseDown:
|
||||
#calculate the text.
|
||||
myself.calc_text(self.database, indi_handle, fams_handle)
|
||||
|
||||
myself.add_mark(self.database,
|
||||
self.database.get_person_from_handle(indi_handle))
|
||||
|
||||
self.add_to_col(myself)
|
||||
|
||||
self.canvas.add_box(myself)
|
||||
|
@ -573,6 +573,7 @@ class BoxBase(object):
|
||||
# (# - which column am I in (zero based)
|
||||
# ,# - Am I a (0)direct descendant/ancestor or (>0)other
|
||||
# , ) - anything else the report needs to run
|
||||
self.__mark = None #Database person object
|
||||
self.level = (0,0)
|
||||
self.x_cm = 0.0
|
||||
self.y_cm = 0.0
|
||||
@ -587,6 +588,9 @@ class BoxBase(object):
|
||||
self.width *= scale_amount
|
||||
self.height *= scale_amount
|
||||
|
||||
def add_mark(self, database, person):
|
||||
self.__mark = ReportUtils.get_person_mark(database, person)
|
||||
|
||||
def display(self):
|
||||
""" display the box accounting for page x, y offsets
|
||||
Ignore any box with 'None' is boxstr """
|
||||
@ -602,7 +606,7 @@ class BoxBase(object):
|
||||
doc.draw_box(self.boxstr,
|
||||
text,
|
||||
xbegin, ybegin,
|
||||
self.width, self.height)
|
||||
self.width, self.height, self.__mark)
|
||||
|
||||
#I am responsible for my own lines. Do them here.
|
||||
if self.line_to:
|
||||
@ -614,7 +618,28 @@ class BoxBase(object):
|
||||
yme = ybegin + self.height/2
|
||||
doc.draw_line(report_opts.line_str, 0, yme, xbegin, yme)
|
||||
|
||||
class TitleNoDisplay(BoxBase):
|
||||
"""
|
||||
Holds information about the Title that will print on a TOC
|
||||
and NOT on the report
|
||||
"""
|
||||
def __init__(self, doc, boxstr):
|
||||
""" initialize the title box """
|
||||
BoxBase.__init__(self)
|
||||
self.doc = doc
|
||||
self.boxstr = boxstr
|
||||
|
||||
def set_box_height_width(self):
|
||||
self.width = self.height = 0
|
||||
|
||||
def display(self):
|
||||
""" display the title box. """
|
||||
#Set up the Table of Contents here
|
||||
|
||||
from gen.plug.docgen import (IndexMark, INDEX_TYPE_TOC) # interim, here
|
||||
mark = IndexMark(self.text, INDEX_TYPE_TOC, 1)
|
||||
|
||||
self.doc.center_text(self.boxstr, '', 0, -100, mark)
|
||||
|
||||
class TitleBox(BoxBase):
|
||||
"""
|
||||
@ -649,9 +674,14 @@ class TitleBox(BoxBase):
|
||||
""" display the title box. """
|
||||
if self.page.y_page_num or self.boxstr == "None":
|
||||
return
|
||||
|
||||
#Set up the Table of Contents here
|
||||
from gen.plug.docgen import (IndexMark, INDEX_TYPE_TOC) # interim, here
|
||||
mark = IndexMark(self.text, INDEX_TYPE_TOC, 1)
|
||||
|
||||
if self.text:
|
||||
self.doc.center_text(self.boxstr, self.text,
|
||||
self.width/2, self.y_cm)
|
||||
self.width/2, self.y_cm, mark)
|
||||
|
||||
class PageNumberBox(BoxBase):
|
||||
"""
|
||||
|
Loading…
Reference in New Issue
Block a user