Fix of bugs 2121 and 2134
svn: r10713
This commit is contained in:
parent
30ab5de58d
commit
eb15b26284
@ -136,12 +136,15 @@ class GVDocBase(BaseDoc.BaseDoc, BaseDoc.GVDoc):
|
|||||||
|
|
||||||
paper_size = paper_style.get_size()
|
paper_size = paper_style.get_size()
|
||||||
|
|
||||||
|
# Subtract 0.01" from the drawing area to make some room between
|
||||||
|
# this area and the margin in order to compensate for different
|
||||||
|
# rounding errors internally in dot
|
||||||
sizew = ( paper_size.get_width() -
|
sizew = ( paper_size.get_width() -
|
||||||
self._paper.get_left_margin() -
|
self._paper.get_left_margin() -
|
||||||
self._paper.get_right_margin() ) / 2.54
|
self._paper.get_right_margin() ) / 2.54 - 0.01
|
||||||
sizeh = ( paper_size.get_height() -
|
sizeh = ( paper_size.get_height() -
|
||||||
self._paper.get_top_margin() -
|
self._paper.get_top_margin() -
|
||||||
self._paper.get_bottom_margin() ) / 2.54
|
self._paper.get_bottom_margin() ) / 2.54 - 0.01
|
||||||
|
|
||||||
pheight = paper_size.get_height_inches()
|
pheight = paper_size.get_height_inches()
|
||||||
pwidth = paper_size.get_width_inches()
|
pwidth = paper_size.get_width_inches()
|
||||||
@ -363,6 +366,13 @@ class GVPsDoc(GVDocBase):
|
|||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
class GVSvgDoc(GVDocBase):
|
class GVSvgDoc(GVDocBase):
|
||||||
""" GVDoc implementation that generates a .svg file using Graphviz. """
|
""" GVDoc implementation that generates a .svg file using Graphviz. """
|
||||||
|
|
||||||
|
def __init__(self, options, paper_style):
|
||||||
|
# GV documentation allow multiple pages only for ps format,
|
||||||
|
# which also includes pdf via ghostscript.
|
||||||
|
options.menu.get_option_by_name('v_pages').set_value(1)
|
||||||
|
options.menu.get_option_by_name('h_pages').set_value(1)
|
||||||
|
GVDocBase.__init__(self, options, paper_style)
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
""" Implements GVDocBase.close() """
|
""" Implements GVDocBase.close() """
|
||||||
@ -378,7 +388,7 @@ class GVSvgDoc(GVDocBase):
|
|||||||
dotfile.write(self._dot.getvalue())
|
dotfile.write(self._dot.getvalue())
|
||||||
dotfile.close()
|
dotfile.close()
|
||||||
|
|
||||||
# Generate the PS file.
|
# Generate the SVG file.
|
||||||
os.system( 'dot -Tsvg -o"%s" "%s"' % (self._filename, tmp_dot) )
|
os.system( 'dot -Tsvg -o"%s" "%s"' % (self._filename, tmp_dot) )
|
||||||
|
|
||||||
# Delete the temporary dot file
|
# Delete the temporary dot file
|
||||||
@ -395,6 +405,13 @@ class GVSvgDoc(GVDocBase):
|
|||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
class GVSvgzDoc(GVDocBase):
|
class GVSvgzDoc(GVDocBase):
|
||||||
""" GVDoc implementation that generates a .svg file using Graphviz. """
|
""" GVDoc implementation that generates a .svg file using Graphviz. """
|
||||||
|
|
||||||
|
def __init__(self, options, paper_style):
|
||||||
|
# GV documentation allow multiple pages only for ps format,
|
||||||
|
# which also includes pdf via ghostscript.
|
||||||
|
options.menu.get_option_by_name('v_pages').set_value(1)
|
||||||
|
options.menu.get_option_by_name('h_pages').set_value(1)
|
||||||
|
GVDocBase.__init__(self, options, paper_style)
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
""" Implements GVDocBase.close() """
|
""" Implements GVDocBase.close() """
|
||||||
@ -410,7 +427,7 @@ class GVSvgzDoc(GVDocBase):
|
|||||||
dotfile.write(self._dot.getvalue())
|
dotfile.write(self._dot.getvalue())
|
||||||
dotfile.close()
|
dotfile.close()
|
||||||
|
|
||||||
# Generate the PS file.
|
# Generate the SVGZ file.
|
||||||
os.system( 'dot -Tsvgz -o"%s" "%s"' % (self._filename, tmp_dot) )
|
os.system( 'dot -Tsvgz -o"%s" "%s"' % (self._filename, tmp_dot) )
|
||||||
|
|
||||||
# Delete the temporary dot file
|
# Delete the temporary dot file
|
||||||
@ -427,6 +444,13 @@ class GVSvgzDoc(GVDocBase):
|
|||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
class GVPngDoc(GVDocBase):
|
class GVPngDoc(GVDocBase):
|
||||||
""" GVDoc implementation that generates a .png file using Graphviz. """
|
""" GVDoc implementation that generates a .png file using Graphviz. """
|
||||||
|
|
||||||
|
def __init__(self, options, paper_style):
|
||||||
|
# GV documentation allow multiple pages only for ps format,
|
||||||
|
# which also includes pdf via ghostscript.
|
||||||
|
options.menu.get_option_by_name('v_pages').set_value(1)
|
||||||
|
options.menu.get_option_by_name('h_pages').set_value(1)
|
||||||
|
GVDocBase.__init__(self, options, paper_style)
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
""" Implements GVDocBase.close() """
|
""" Implements GVDocBase.close() """
|
||||||
@ -442,7 +466,7 @@ class GVPngDoc(GVDocBase):
|
|||||||
dotfile.write(self._dot.getvalue())
|
dotfile.write(self._dot.getvalue())
|
||||||
dotfile.close()
|
dotfile.close()
|
||||||
|
|
||||||
# Generate the PS file.
|
# Generate the PNG file.
|
||||||
os.system( 'dot -Tpng -o"%s" "%s"' % (self._filename, tmp_dot) )
|
os.system( 'dot -Tpng -o"%s" "%s"' % (self._filename, tmp_dot) )
|
||||||
|
|
||||||
# Delete the temporary dot file
|
# Delete the temporary dot file
|
||||||
@ -459,6 +483,13 @@ class GVPngDoc(GVDocBase):
|
|||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
class GVJpegDoc(GVDocBase):
|
class GVJpegDoc(GVDocBase):
|
||||||
""" GVDoc implementation that generates a .jpg file using Graphviz. """
|
""" GVDoc implementation that generates a .jpg file using Graphviz. """
|
||||||
|
|
||||||
|
def __init__(self, options, paper_style):
|
||||||
|
# GV documentation allow multiple pages only for ps format,
|
||||||
|
# which also includes pdf via ghostscript.
|
||||||
|
options.menu.get_option_by_name('v_pages').set_value(1)
|
||||||
|
options.menu.get_option_by_name('h_pages').set_value(1)
|
||||||
|
GVDocBase.__init__(self, options, paper_style)
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
""" Implements GVDocBase.close() """
|
""" Implements GVDocBase.close() """
|
||||||
@ -474,7 +505,7 @@ class GVJpegDoc(GVDocBase):
|
|||||||
dotfile.write(self._dot.getvalue())
|
dotfile.write(self._dot.getvalue())
|
||||||
dotfile.close()
|
dotfile.close()
|
||||||
|
|
||||||
# Generate the PS file.
|
# Generate the JPEG file.
|
||||||
os.system( 'dot -Tjpg -o"%s" "%s"' % (self._filename, tmp_dot) )
|
os.system( 'dot -Tjpg -o"%s" "%s"' % (self._filename, tmp_dot) )
|
||||||
|
|
||||||
# Delete the temporary dot file
|
# Delete the temporary dot file
|
||||||
@ -491,6 +522,13 @@ class GVJpegDoc(GVDocBase):
|
|||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
class GVGifDoc(GVDocBase):
|
class GVGifDoc(GVDocBase):
|
||||||
""" GVDoc implementation that generates a .gif file using Graphviz. """
|
""" GVDoc implementation that generates a .gif file using Graphviz. """
|
||||||
|
|
||||||
|
def __init__(self, options, paper_style):
|
||||||
|
# GV documentation allow multiple pages only for ps format,
|
||||||
|
# which also includes pdf via ghostscript.
|
||||||
|
options.menu.get_option_by_name('v_pages').set_value(1)
|
||||||
|
options.menu.get_option_by_name('h_pages').set_value(1)
|
||||||
|
GVDocBase.__init__(self, options, paper_style)
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
""" Implements GVDocBase.close() """
|
""" Implements GVDocBase.close() """
|
||||||
@ -506,7 +544,7 @@ class GVGifDoc(GVDocBase):
|
|||||||
dotfile.write(self._dot.getvalue())
|
dotfile.write(self._dot.getvalue())
|
||||||
dotfile.close()
|
dotfile.close()
|
||||||
|
|
||||||
# Generate the PS file.
|
# Generate the GIF file.
|
||||||
os.system( 'dot -Tgif -o"%s" "%s"' % (self._filename, tmp_dot) )
|
os.system( 'dot -Tgif -o"%s" "%s"' % (self._filename, tmp_dot) )
|
||||||
|
|
||||||
# Delete the temporary dot file
|
# Delete the temporary dot file
|
||||||
@ -528,6 +566,10 @@ class GVPdfGvDoc(GVDocBase):
|
|||||||
# DPI must always be 72 for PDF.
|
# DPI must always be 72 for PDF.
|
||||||
# GV documentation says dpi is only for image formats.
|
# GV documentation says dpi is only for image formats.
|
||||||
options.menu.get_option_by_name('dpi').set_value(72)
|
options.menu.get_option_by_name('dpi').set_value(72)
|
||||||
|
# GV documentation allow multiple pages only for ps format,
|
||||||
|
# which also includes pdf via ghostscript.
|
||||||
|
options.menu.get_option_by_name('v_pages').set_value(1)
|
||||||
|
options.menu.get_option_by_name('h_pages').set_value(1)
|
||||||
GVDocBase.__init__(self, options, paper_style)
|
GVDocBase.__init__(self, options, paper_style)
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
@ -789,14 +831,18 @@ class GraphvizReportDialog(ReportDialog):
|
|||||||
h_pages.set_help(_("GraphViz can create very large graphs by "
|
h_pages.set_help(_("GraphViz can create very large graphs by "
|
||||||
"spreading the graph across a rectangular "
|
"spreading the graph across a rectangular "
|
||||||
"array of pages. This controls the number "
|
"array of pages. This controls the number "
|
||||||
"of pages in the array horizontally."))
|
"pages in the array horizontally. "
|
||||||
|
"Only valid for dot, postscript and pdf "
|
||||||
|
"via Ghostscript."))
|
||||||
self.options.add_menu_option(category, "h_pages", h_pages)
|
self.options.add_menu_option(category, "h_pages", h_pages)
|
||||||
|
|
||||||
v_pages = NumberOption(_("Number of Vertical Pages"), 1, 1, 25)
|
v_pages = NumberOption(_("Number of Vertical Pages"), 1, 1, 25)
|
||||||
v_pages.set_help(_("GraphViz can create very large graphs by "
|
v_pages.set_help(_("GraphViz can create very large graphs by "
|
||||||
"spreading the graph across a rectangular "
|
"spreading the graph across a rectangular "
|
||||||
"array of pages. This controls the number "
|
"array of pages. This controls the number "
|
||||||
"of pages in the array vertically."))
|
"pages in the array vertically. "
|
||||||
|
"Only valid for dot, postscript and pdf "
|
||||||
|
"via Ghostscript."))
|
||||||
self.options.add_menu_option(category, "v_pages", v_pages)
|
self.options.add_menu_option(category, "v_pages", v_pages)
|
||||||
|
|
||||||
page_dir = EnumeratedListOption(_("Paging Direction"), "BL")
|
page_dir = EnumeratedListOption(_("Paging Direction"), "BL")
|
||||||
|
Loading…
Reference in New Issue
Block a user