small error fixes to these reports when run in a book report
svn: r19934
This commit is contained in:
parent
b913cde440
commit
508aefea03
@ -489,9 +489,9 @@ class RLTransform():
|
||||
"""
|
||||
setup all of the boxes on the canvas in for a left/right report
|
||||
"""
|
||||
def __init__(self, canvas, opts, max_generations, compress_tree):
|
||||
def __init__(self, canvas, max_generations, compress_tree):
|
||||
self.canvas = canvas
|
||||
self.rept_opts = opts
|
||||
self.rept_opts = canvas.report_opts
|
||||
self.max_generations = max_generations
|
||||
self.compress_tree = compress_tree
|
||||
self.y_offset = self.rept_opts.littleoffset*2 + self.canvas.title.height
|
||||
@ -564,8 +564,8 @@ class MakeReport():
|
||||
|
||||
self.canvas.set_box_height_width(box)
|
||||
|
||||
if box.width > self.doc.report_opts.max_box_width:
|
||||
self.doc.report_opts.max_box_width = box.width #+ box.shadow
|
||||
if box.width > self.canvas.report_opts.max_box_width:
|
||||
self.canvas.report_opts.max_box_width = box.width #+ box.shadow
|
||||
|
||||
if box.level[2] > 0:
|
||||
if box.level[2] % 2 == 0 and box.height > self.father_ht:
|
||||
@ -589,10 +589,10 @@ class MakeReport():
|
||||
self.get_height_width(box)
|
||||
|
||||
if self.compress_tree and not self.inlc_marr:
|
||||
self.doc.report_opts.max_box_height = \
|
||||
self.canvas.report_opts.max_box_height = \
|
||||
min(self.father_ht, self.mother_ht)
|
||||
else:
|
||||
self.doc.report_opts.max_box_height = \
|
||||
self.canvas.report_opts.max_box_height = \
|
||||
max(self.father_ht, self.mother_ht)
|
||||
|
||||
#At this point we know everything we need to make the report.
|
||||
@ -601,11 +601,11 @@ class MakeReport():
|
||||
#size of each row - self.rept_opt.box_height
|
||||
#go ahead and set it now.
|
||||
for box in self.canvas.boxes:
|
||||
box.width = self.doc.report_opts.max_box_width
|
||||
box.width = self.canvas.report_opts.max_box_width
|
||||
|
||||
# 2.
|
||||
#setup the transform class to move around the boxes on the canvas
|
||||
transform = RLTransform(self.canvas, self.doc.report_opts,
|
||||
transform = RLTransform(self.canvas,
|
||||
self.max_generations, self.compress_tree)
|
||||
transform.place()
|
||||
|
||||
@ -662,9 +662,6 @@ class AncestorTree(Report):
|
||||
self.database = database
|
||||
self._user = user
|
||||
|
||||
#The canvas that we will put our report on and print off of
|
||||
self.canvas = Canvas(self.doc)
|
||||
|
||||
"""
|
||||
This report needs the following parameters (class variables)
|
||||
that come in the options class.
|
||||
@ -691,11 +688,15 @@ class AncestorTree(Report):
|
||||
#Set up the canvas that we will print on.
|
||||
style_sheet = self.doc.get_style_sheet()
|
||||
font_normal = style_sheet.get_paragraph_style("AC2-Normal").get_font()
|
||||
self.doc.report_opts = ReportOptions(self.doc, font_normal, 'AC2-line')
|
||||
|
||||
#The canvas that we will put our report on and print off of
|
||||
self.canvas = Canvas(self.doc,
|
||||
ReportOptions(self.doc, font_normal, 'AC2-line'))
|
||||
|
||||
self.doc.report_opts.box_shadow *= self.connect.get_val('shadowscale')
|
||||
self.doc.report_opts.box_pgap *= self.connect.get_val('box_Yscale')
|
||||
self.doc.report_opts.box_mgap *= self.connect.get_val('box_Yscale')
|
||||
self.canvas.report_opts.box_shadow *= \
|
||||
self.connect.get_val('shadowscale')
|
||||
self.canvas.report_opts.box_pgap *= self.connect.get_val('box_Yscale')
|
||||
self.canvas.report_opts.box_mgap *= self.connect.get_val('box_Yscale')
|
||||
|
||||
self._user.begin_progress(_('Ancestor Tree'),
|
||||
_('Making the Tree...'), 4)
|
||||
@ -763,9 +764,9 @@ class AncestorTree(Report):
|
||||
#Setup page information
|
||||
|
||||
colsperpage = self.doc.get_usable_width()
|
||||
colsperpage += self.doc.report_opts.col_width
|
||||
colsperpage = int(colsperpage / (self.doc.report_opts.max_box_width +
|
||||
self.doc.report_opts.col_width))
|
||||
colsperpage += self.canvas.report_opts.col_width
|
||||
colsperpage = int(colsperpage / (self.canvas.report_opts.max_box_width +
|
||||
self.canvas.report_opts.col_width))
|
||||
colsperpage = colsperpage or 1
|
||||
|
||||
#####################
|
||||
@ -818,19 +819,19 @@ class AncestorTree(Report):
|
||||
|
||||
graph_style = style_sheet.get_draw_style("AC2-box")
|
||||
graph_style.set_shadow(graph_style.get_shadow(),
|
||||
self.doc.report_opts.box_shadow * scale)
|
||||
self.canvas.report_opts.box_shadow * scale)
|
||||
graph_style.set_line_width(graph_style.get_line_width() * scale)
|
||||
style_sheet.add_draw_style("AC2-box", graph_style)
|
||||
|
||||
graph_style = style_sheet.get_draw_style("AC2-fam-box")
|
||||
graph_style.set_shadow(graph_style.get_shadow(),
|
||||
self.doc.report_opts.box_shadow * scale)
|
||||
self.canvas.report_opts.box_shadow * scale)
|
||||
graph_style.set_line_width(graph_style.get_line_width() * scale)
|
||||
style_sheet.add_draw_style("AC2-fam-box", graph_style)
|
||||
|
||||
graph_style = style_sheet.get_draw_style("AC2-note-box")
|
||||
#graph_style.set_shadow(graph_style.get_shadow(),
|
||||
# self.doc.report_opts.box_shadow * scale)
|
||||
# self.canvas.report_opts.box_shadow * scale)
|
||||
graph_style.set_line_width(graph_style.get_line_width() * scale)
|
||||
style_sheet.add_draw_style("AC2-note-box", graph_style)
|
||||
|
||||
|
@ -408,12 +408,12 @@ class RecurseDown:
|
||||
box.y_cm = last_box.y_cm
|
||||
box.y_cm += last_box.height
|
||||
if last_box.boxstr in ["CG2-box", "CG2b-box"]:
|
||||
box.y_cm += self.canvas.doc.report_opts.box_shadow
|
||||
box.y_cm += self.canvas.report_opts.box_shadow
|
||||
|
||||
if box.boxstr in ["CG2-box", "CG2b-box"]:
|
||||
box.y_cm += self.canvas.doc.report_opts.box_pgap
|
||||
box.y_cm += self.canvas.report_opts.box_pgap
|
||||
else:
|
||||
box.y_cm += self.canvas.doc.report_opts.box_mgap
|
||||
box.y_cm += self.canvas.report_opts.box_mgap
|
||||
|
||||
if box.level[1] == 0 and self.__last_direct[level]:
|
||||
#ok, a new direct descendant.
|
||||
@ -421,13 +421,13 @@ class RecurseDown:
|
||||
# self.__last_direct[level].text[0]
|
||||
if box.father != self.__last_direct[level].father and \
|
||||
box.father != self.__last_direct[level]:
|
||||
box.y_cm += self.canvas.doc.report_opts.box_pgap
|
||||
box.y_cm += self.canvas.report_opts.box_pgap
|
||||
|
||||
self.cols[level] = box
|
||||
if box.level[1] == 0:
|
||||
self.__last_direct[level] = box
|
||||
|
||||
box.x_cm = self.canvas.doc.report_opts.spouse_offset * box.level[1]
|
||||
box.x_cm = self.canvas.report_opts.spouse_offset * box.level[1]
|
||||
|
||||
self.canvas.set_box_height_width(box)
|
||||
|
||||
@ -950,11 +950,11 @@ class MakeReport(object):
|
||||
def calc_box(self, box):
|
||||
""" calculate the max_box_width and max_box_height for the report """
|
||||
width = box.x_cm + box.width
|
||||
if width > self.canvas.doc.report_opts.max_box_width:
|
||||
self.canvas.doc.report_opts.max_box_width = width
|
||||
if width > self.canvas.report_opts.max_box_width:
|
||||
self.canvas.report_opts.max_box_width = width
|
||||
|
||||
if box.height > self.canvas.doc.report_opts.max_box_height:
|
||||
self.canvas.doc.report_opts.max_box_height = box.height
|
||||
if box.height > self.canvas.report_opts.max_box_height:
|
||||
self.canvas.report_opts.max_box_height = box.height
|
||||
|
||||
while len(self.cols) <= box.level[0]:
|
||||
self.cols.append([])
|
||||
@ -1154,15 +1154,15 @@ class MakeReport(object):
|
||||
box.level = (box.level[0] - 1, box.level[1])
|
||||
|
||||
#go ahead and set it now.
|
||||
width = self.canvas.doc.report_opts.max_box_width
|
||||
width = self.canvas.report_opts.max_box_width
|
||||
for box in self.canvas.boxes:
|
||||
box.width = width - box.x_cm
|
||||
box.x_cm += self.canvas.doc.report_opts.littleoffset
|
||||
box.x_cm += self.canvas.report_opts.littleoffset
|
||||
box.x_cm += (box.level[0] *
|
||||
(self.canvas.doc.report_opts.col_width +
|
||||
self.canvas.doc.report_opts.max_box_width))
|
||||
(self.canvas.report_opts.col_width +
|
||||
self.canvas.report_opts.max_box_width))
|
||||
|
||||
box.y_cm += self.canvas.doc.report_opts.littleoffset
|
||||
box.y_cm += self.canvas.report_opts.littleoffset
|
||||
box.y_cm += self.canvas.title.height
|
||||
|
||||
self.Make_report()
|
||||
@ -1264,9 +1264,6 @@ class DescendTree(Report):
|
||||
self.options = options
|
||||
self.database = database
|
||||
|
||||
#The canvas that we will put our report on and print off of
|
||||
self.canvas = Canvas(self.doc)
|
||||
|
||||
""" make the report in its full size and pages to print on
|
||||
scale one or both as needed/desired.
|
||||
"""
|
||||
@ -1278,11 +1275,15 @@ class DescendTree(Report):
|
||||
|
||||
style_sheet = self.doc.get_style_sheet()
|
||||
font_normal = style_sheet.get_paragraph_style("CG2-Normal").get_font()
|
||||
self.doc.report_opts = ReportOptions(self.doc, font_normal, "CG2-line")
|
||||
|
||||
self.doc.report_opts.box_shadow *= self.Connect.get_val('shadowscale')
|
||||
self.doc.report_opts.box_pgap *= self.Connect.get_val('box_Yscale')
|
||||
self.doc.report_opts.box_mgap *= self.Connect.get_val('box_Yscale')
|
||||
#The canvas that we will put our report on and print off of
|
||||
self.canvas = Canvas(self.doc,
|
||||
ReportOptions(self.doc, font_normal, "CG2-line"))
|
||||
|
||||
self.canvas.report_opts.box_shadow *= \
|
||||
self.Connect.get_val('shadowscale')
|
||||
self.canvas.report_opts.box_pgap *= self.Connect.get_val('box_Yscale')
|
||||
self.canvas.report_opts.box_mgap *= self.Connect.get_val('box_Yscale')
|
||||
|
||||
center_id = self.Connect.get_val('pid')
|
||||
|
||||
@ -1341,9 +1342,9 @@ class DescendTree(Report):
|
||||
#Setup page information
|
||||
|
||||
colsperpage = self.doc.get_usable_width()
|
||||
colsperpage += self.doc.report_opts.col_width
|
||||
tmp = self.doc.report_opts.max_box_width
|
||||
tmp += self.doc.report_opts.col_width
|
||||
colsperpage += self.canvas.report_opts.col_width
|
||||
tmp = self.canvas.report_opts.max_box_width
|
||||
tmp += self.canvas.report_opts.col_width
|
||||
colsperpage = int(colsperpage / tmp)
|
||||
colsperpage = colsperpage or 1
|
||||
|
||||
@ -1393,13 +1394,13 @@ class DescendTree(Report):
|
||||
|
||||
graph_style = style_sheet.get_draw_style("CG2-box")
|
||||
graph_style.set_shadow(graph_style.get_shadow(),
|
||||
self.doc.report_opts.box_shadow * amount)
|
||||
self.canvas.report_opts.box_shadow * amount)
|
||||
graph_style.set_line_width(graph_style.get_line_width() * amount)
|
||||
style_sheet.add_draw_style("CG2-box", graph_style)
|
||||
|
||||
graph_style = style_sheet.get_draw_style("CG2b-box")
|
||||
graph_style.set_shadow(graph_style.get_shadow(),
|
||||
self.doc.report_opts.box_shadow * amount)
|
||||
self.canvas.report_opts.box_shadow * amount)
|
||||
graph_style.set_line_width(graph_style.get_line_width() * amount)
|
||||
style_sheet.add_draw_style("CG2b-box", graph_style)
|
||||
|
||||
|
@ -148,10 +148,10 @@ class Canvas(Page):
|
||||
a group of pages. each page is set is size and shows only a
|
||||
part of what is on the entire canvas
|
||||
"""
|
||||
def __init__(self, doc):
|
||||
def __init__(self, doc, report_opts):
|
||||
Page.__init__(self, self)
|
||||
self.doc = doc
|
||||
self.report_opts = None
|
||||
self.report_opts = report_opts
|
||||
|
||||
#How many pages are there in the report. one more than real.
|
||||
self.x_pages = 1
|
||||
@ -181,6 +181,7 @@ class Canvas(Page):
|
||||
def add_title(self, title):
|
||||
""" The title must derive from class TitleBox(BoxBase): """
|
||||
self.title = title
|
||||
self.title.cm_y = self.report_opts.littleoffset
|
||||
|
||||
def add_note(self, note):
|
||||
""" The note must derive from class NoteBox(BoxBase, NoteType) """
|
||||
@ -211,15 +212,15 @@ class Canvas(Page):
|
||||
tmp = box.y_cm + box.height
|
||||
if tmp > max_height:
|
||||
max_height = tmp
|
||||
max_width += self.doc.report_opts.box_shadow
|
||||
max_width += self.doc.report_opts.littleoffset
|
||||
max_height += self.doc.report_opts.box_shadow
|
||||
max_height += self.doc.report_opts.littleoffset
|
||||
max_width += self.report_opts.box_shadow
|
||||
max_width += self.report_opts.littleoffset
|
||||
max_height += self.report_opts.box_shadow
|
||||
max_height += self.report_opts.littleoffset
|
||||
return (max_width, max_height)
|
||||
|
||||
def __scale_canvas(self, scale_amount):
|
||||
""" scales everything up/down depending upon scale_amount """
|
||||
self.doc.report_opts.scale_everything(scale_amount)
|
||||
self.report_opts.scale_everything(scale_amount)
|
||||
self.title.scale(scale_amount)
|
||||
if self.note is not None:
|
||||
self.note.scale(scale_amount)
|
||||
@ -294,8 +295,8 @@ class Canvas(Page):
|
||||
|
||||
if scale_to_width or scale_to_height:
|
||||
max_width, max_height = self.canvas.get_report_height_width()
|
||||
#max_width += self.doc.report_opts.littleoffset
|
||||
#max_height += self.doc.report_opts.littleoffset
|
||||
#max_width += self.report_opts.littleoffset
|
||||
#max_height += self.report_opts.littleoffset
|
||||
|
||||
"""
|
||||
calc - Calculate the scale amount (if any).
|
||||
@ -311,7 +312,7 @@ class Canvas(Page):
|
||||
if scale_to_width:
|
||||
#Check the width of the title
|
||||
title_width = self.title.width
|
||||
title_width += self.doc.report_opts.littleoffset * 2
|
||||
title_width += self.report_opts.littleoffset * 2
|
||||
|
||||
max_width = max(title_width, max_width)
|
||||
|
||||
@ -346,7 +347,7 @@ class Canvas(Page):
|
||||
|
||||
if scaled_report_to != "width":
|
||||
#calculate the width of the report
|
||||
#max_width += self.doc.report_opts.littleoffset
|
||||
#max_width += self.report_opts.littleoffset
|
||||
max_width += self.doc.paper.get_left_margin()
|
||||
max_width += self.doc.paper.get_right_margin()
|
||||
|
||||
@ -354,7 +355,7 @@ class Canvas(Page):
|
||||
title_width = self.canvas.title.width
|
||||
title_width += self.doc.paper.get_left_margin()
|
||||
title_width += self.doc.paper.get_right_margin()
|
||||
title_width += self.doc.report_opts.littleoffset
|
||||
title_width += self.report_opts.littleoffset
|
||||
max_width = max(title_width, max_width)
|
||||
|
||||
size.set_width(max_width)
|
||||
@ -363,7 +364,7 @@ class Canvas(Page):
|
||||
#calculate the height of the report
|
||||
max_height += self.doc.paper.get_top_margin()
|
||||
max_height += self.doc.paper.get_bottom_margin()
|
||||
#max_height += self.doc.report_opts.littleoffset
|
||||
#max_height += self.report_opts.littleoffset
|
||||
size.set_height(max_height)
|
||||
|
||||
return scale
|
||||
@ -372,7 +373,7 @@ class Canvas(Page):
|
||||
def __paginate_x_offsets(self, colsperpage):
|
||||
""" Go through the boxes and get the x page offsets """
|
||||
#fix soon. should not use .level
|
||||
liloffset = self.doc.report_opts.littleoffset
|
||||
liloffset = self.report_opts.littleoffset
|
||||
x_page_offsets = {0:0} #change me to [] ???
|
||||
for box in self.boxes:
|
||||
x_index = box.level[0]
|
||||
@ -388,7 +389,7 @@ class Canvas(Page):
|
||||
note that the self.boxes needs to be sorted by .y_cm """
|
||||
page_y_top = [0]
|
||||
page_y_height = [self.doc.get_usable_height()]
|
||||
liloffset = self.doc.report_opts.littleoffset
|
||||
liloffset = self.report_opts.littleoffset
|
||||
|
||||
for box in self.boxes:
|
||||
#check to see if this box cross over to the next (y) page
|
||||
@ -524,7 +525,7 @@ class Canvas(Page):
|
||||
def __paginate(self, colsperpage):
|
||||
""" take the boxes on the canvas and put them into separate pages.
|
||||
The boxes need to be sorted by y_cm """
|
||||
liloffset = self.doc.report_opts.littleoffset
|
||||
liloffset = self.report_opts.littleoffset
|
||||
self.__pages = {}
|
||||
x_page_offsets = self.__paginate_x_offsets(colsperpage)
|
||||
page_y_top = self.__paginate_y_pages(colsperpage, x_page_offsets)
|
||||
@ -593,6 +594,7 @@ class BoxBase(object):
|
||||
return
|
||||
|
||||
doc = self.page.canvas.doc
|
||||
report_opts = self.page.canvas.report_opts
|
||||
text = '\n'.join(self.text)
|
||||
xbegin = self.x_cm - self.page.page_x_offset
|
||||
ybegin = self.y_cm - self.page.page_y_offset
|
||||
@ -607,10 +609,10 @@ class BoxBase(object):
|
||||
#draw my line out here.
|
||||
self.line_to.display(self.page)
|
||||
if self.page.x_page_num > 0 and self.level[1] == 0 and \
|
||||
xbegin < doc.report_opts.littleoffset*2:
|
||||
xbegin < report_opts.littleoffset*2:
|
||||
#I am a child on the first column
|
||||
yme = ybegin + self.height/2
|
||||
doc.draw_line(doc.report_opts.line_str, 0, yme, xbegin, yme)
|
||||
doc.draw_line(report_opts.line_str, 0, yme, xbegin, yme)
|
||||
|
||||
|
||||
|
||||
@ -625,7 +627,6 @@ class TitleBox(BoxBase):
|
||||
self.boxstr = boxstr
|
||||
if boxstr == "None":
|
||||
return
|
||||
self.cm_y = self.doc.report_opts.littleoffset
|
||||
|
||||
style_sheet = self.doc.get_style_sheet()
|
||||
style_name = style_sheet.get_draw_style(self.boxstr)
|
||||
@ -747,7 +748,7 @@ class NoteBox(BoxBase, NoteType):
|
||||
""" set the x_cm and y_cm given
|
||||
self.doc, leloffset, and title_height """
|
||||
|
||||
liloffset = self.doc.report_opts.littleoffset
|
||||
liloffset = canvas.report_opts.littleoffset
|
||||
#left or right side
|
||||
if self.value == NoteType.BOTTOMLEFT or \
|
||||
self.value == NoteType.TOPLEFT:
|
||||
@ -815,12 +816,13 @@ class LineBase(object):
|
||||
# self.start = [self.start]
|
||||
start = self.start[0]
|
||||
doc = start.page.canvas.doc
|
||||
linestr = doc.report_opts.line_str
|
||||
report_opts = start.page.canvas.report_opts
|
||||
linestr = report_opts.line_str
|
||||
|
||||
xbegin = start.x_cm + start.width - page.page_x_offset
|
||||
# out 3/4 of the way and x_cm end point(s)
|
||||
x34 = xbegin + (doc.report_opts.col_width * 3/4)
|
||||
xend = xbegin + doc.report_opts.col_width
|
||||
x34 = xbegin + (report_opts.col_width * 3/4)
|
||||
xend = xbegin + report_opts.col_width
|
||||
|
||||
if x34 > 0: # > 0 tell us we are printing on this page.
|
||||
usable_height = doc.get_usable_height()
|
||||
|
Loading…
Reference in New Issue
Block a user