General cleanup to GraphizReportDialog.
svn: r10624
This commit is contained in:
parent
4a17bcf0aa
commit
634fd3964d
@ -83,28 +83,29 @@ _RATIO = [ { 'name' : _("Minimal size"), 'value' : "compress" },
|
|||||||
_NOTELOC = [ { 'name' : _("Top"), 'value' : "t" },
|
_NOTELOC = [ { 'name' : _("Top"), 'value' : "t" },
|
||||||
{ 'name' : _("Bottom"), 'value' : "b" }]
|
{ 'name' : _("Bottom"), 'value' : "b" }]
|
||||||
|
|
||||||
_dot_found = 0
|
|
||||||
_gs_cmd = ""
|
|
||||||
|
|
||||||
if os.sys.platform == "win32":
|
if os.sys.platform == "win32":
|
||||||
_dot_found = Utils.search_for("dot.exe")
|
_DOT_FOUND = Utils.search_for("dot.exe")
|
||||||
|
|
||||||
if Utils.search_for("gswin32c.exe") == 1:
|
if Utils.search_for("gswin32c.exe") == 1:
|
||||||
_gs_cmd = "gswin32c.exe"
|
_GS_CMD = "gswin32c.exe"
|
||||||
elif Utils.search_for("gswin32.exe") == 1:
|
elif Utils.search_for("gswin32.exe") == 1:
|
||||||
_gs_cmd = "gswin32.exe"
|
_GS_CMD = "gswin32.exe"
|
||||||
|
else:
|
||||||
|
_GS_CMD = ""
|
||||||
else:
|
else:
|
||||||
_dot_found = Utils.search_for("dot")
|
_DOT_FOUND = Utils.search_for("dot")
|
||||||
|
|
||||||
if Utils.search_for("gs") == 1:
|
if Utils.search_for("gs") == 1:
|
||||||
_gs_cmd = "gs"
|
_GS_CMD = "gs"
|
||||||
|
else:
|
||||||
|
_GS_CMD = ""
|
||||||
|
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# GVDocBase
|
# GVDocBase
|
||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
class GVDocBase(BaseDoc.BaseDoc,BaseDoc.GVDoc):
|
class GVDocBase(BaseDoc.BaseDoc, BaseDoc.GVDoc):
|
||||||
"""
|
"""
|
||||||
Base document generator for all Graphiz document generators. Classes that
|
Base document generator for all Graphiz document generators. Classes that
|
||||||
inherit from this class will only need to implement the close function.
|
inherit from this class will only need to implement the close function.
|
||||||
@ -181,7 +182,7 @@ class GVDocBase(BaseDoc.BaseDoc,BaseDoc.GVDoc):
|
|||||||
self.write( '\n' )
|
self.write( '\n' )
|
||||||
|
|
||||||
def write(self, text):
|
def write(self, text):
|
||||||
self.dot.write(text.encode('iso-8859-1','xmlcharrefreplace'))
|
self.dot.write(text.encode('iso-8859-1', 'xmlcharrefreplace'))
|
||||||
|
|
||||||
def open(self, filename):
|
def open(self, filename):
|
||||||
self.filename = os.path.normpath(os.path.abspath(filename))
|
self.filename = os.path.normpath(os.path.abspath(filename))
|
||||||
@ -280,7 +281,7 @@ class GVDocBase(BaseDoc.BaseDoc,BaseDoc.GVDoc):
|
|||||||
else:
|
else:
|
||||||
self.write('# %s\n' % text)
|
self.write('# %s\n' % text)
|
||||||
|
|
||||||
def start_subgraph(self,id):
|
def start_subgraph(self, id):
|
||||||
self.write(' subgraph cluster_%s\n' % id)
|
self.write(' subgraph cluster_%s\n' % id)
|
||||||
self.write(' {\n')
|
self.write(' {\n')
|
||||||
|
|
||||||
@ -300,7 +301,7 @@ class GVDotDoc(GVDocBase):
|
|||||||
if self.filename[-4:] != ".dot":
|
if self.filename[-4:] != ".dot":
|
||||||
self.filename += ".dot"
|
self.filename += ".dot"
|
||||||
|
|
||||||
file = open(self.filename,"w")
|
file = open(self.filename, "w")
|
||||||
file.write(self.dot.getvalue())
|
file.write(self.dot.getvalue())
|
||||||
file.close()
|
file.close()
|
||||||
|
|
||||||
@ -329,13 +330,13 @@ class GVPsDoc(GVDocBase):
|
|||||||
self.filename += ".ps"
|
self.filename += ".ps"
|
||||||
|
|
||||||
# Create a temporary dot file
|
# Create a temporary dot file
|
||||||
(handle,tmp_dot) = tempfile.mkstemp(".dot" )
|
(handle, tmp_dot) = tempfile.mkstemp(".dot" )
|
||||||
dotfile = os.fdopen(handle,"w")
|
dotfile = os.fdopen(handle,"w")
|
||||||
dotfile.write(self.dot.getvalue())
|
dotfile.write(self.dot.getvalue())
|
||||||
dotfile.close()
|
dotfile.close()
|
||||||
|
|
||||||
# Generate the PS file.
|
# Generate the PS file.
|
||||||
os.system( 'dot -Tps2 -o"%s" "%s"' % (self.filename,tmp_dot) )
|
os.system( 'dot -Tps2 -o"%s" "%s"' % (self.filename, tmp_dot) )
|
||||||
|
|
||||||
# Delete the temporary dot file
|
# Delete the temporary dot file
|
||||||
os.remove(tmp_dot)
|
os.remove(tmp_dot)
|
||||||
@ -358,13 +359,13 @@ class GVSvgDoc(GVDocBase):
|
|||||||
self.filename += ".svg"
|
self.filename += ".svg"
|
||||||
|
|
||||||
# Create a temporary dot file
|
# Create a temporary dot file
|
||||||
(handle,tmp_dot) = tempfile.mkstemp(".dot" )
|
(handle, tmp_dot) = tempfile.mkstemp(".dot" )
|
||||||
dotfile = os.fdopen(handle,"w")
|
dotfile = os.fdopen(handle,"w")
|
||||||
dotfile.write(self.dot.getvalue())
|
dotfile.write(self.dot.getvalue())
|
||||||
dotfile.close()
|
dotfile.close()
|
||||||
|
|
||||||
# Generate the PS file.
|
# Generate the PS 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
|
||||||
os.remove(tmp_dot)
|
os.remove(tmp_dot)
|
||||||
@ -387,13 +388,13 @@ class GVSvgzDoc(GVDocBase):
|
|||||||
self.filename += ".svgz"
|
self.filename += ".svgz"
|
||||||
|
|
||||||
# Create a temporary dot file
|
# Create a temporary dot file
|
||||||
(handle,tmp_dot) = tempfile.mkstemp(".dot" )
|
(handle, tmp_dot) = tempfile.mkstemp(".dot" )
|
||||||
dotfile = os.fdopen(handle,"w")
|
dotfile = os.fdopen(handle,"w")
|
||||||
dotfile.write(self.dot.getvalue())
|
dotfile.write(self.dot.getvalue())
|
||||||
dotfile.close()
|
dotfile.close()
|
||||||
|
|
||||||
# Generate the PS file.
|
# Generate the PS 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
|
||||||
os.remove(tmp_dot)
|
os.remove(tmp_dot)
|
||||||
@ -416,13 +417,13 @@ class GVPngDoc(GVDocBase):
|
|||||||
self.filename += ".png"
|
self.filename += ".png"
|
||||||
|
|
||||||
# Create a temporary dot file
|
# Create a temporary dot file
|
||||||
(handle,tmp_dot) = tempfile.mkstemp(".dot" )
|
(handle, tmp_dot) = tempfile.mkstemp(".dot" )
|
||||||
dotfile = os.fdopen(handle,"w")
|
dotfile = os.fdopen(handle,"w")
|
||||||
dotfile.write(self.dot.getvalue())
|
dotfile.write(self.dot.getvalue())
|
||||||
dotfile.close()
|
dotfile.close()
|
||||||
|
|
||||||
# Generate the PS file.
|
# Generate the PS 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
|
||||||
os.remove(tmp_dot)
|
os.remove(tmp_dot)
|
||||||
@ -445,13 +446,13 @@ class GVJpegDoc(GVDocBase):
|
|||||||
self.filename += ".jpg"
|
self.filename += ".jpg"
|
||||||
|
|
||||||
# Create a temporary dot file
|
# Create a temporary dot file
|
||||||
(handle,tmp_dot) = tempfile.mkstemp(".dot" )
|
(handle, tmp_dot) = tempfile.mkstemp(".dot" )
|
||||||
dotfile = os.fdopen(handle,"w")
|
dotfile = os.fdopen(handle,"w")
|
||||||
dotfile.write(self.dot.getvalue())
|
dotfile.write(self.dot.getvalue())
|
||||||
dotfile.close()
|
dotfile.close()
|
||||||
|
|
||||||
# Generate the PS file.
|
# Generate the PS 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
|
||||||
os.remove(tmp_dot)
|
os.remove(tmp_dot)
|
||||||
@ -474,13 +475,13 @@ class GVGifDoc(GVDocBase):
|
|||||||
self.filename += ".gif"
|
self.filename += ".gif"
|
||||||
|
|
||||||
# Create a temporary dot file
|
# Create a temporary dot file
|
||||||
(handle,tmp_dot) = tempfile.mkstemp(".dot" )
|
(handle, tmp_dot) = tempfile.mkstemp(".dot" )
|
||||||
dotfile = os.fdopen(handle,"w")
|
dotfile = os.fdopen(handle,"w")
|
||||||
dotfile.write(self.dot.getvalue())
|
dotfile.write(self.dot.getvalue())
|
||||||
dotfile.close()
|
dotfile.close()
|
||||||
|
|
||||||
# Generate the PS file.
|
# Generate the PS 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
|
||||||
os.remove(tmp_dot)
|
os.remove(tmp_dot)
|
||||||
@ -510,13 +511,13 @@ class GVPdfGvDoc(GVDocBase):
|
|||||||
self.filename += ".pdf"
|
self.filename += ".pdf"
|
||||||
|
|
||||||
# Create a temporary dot file
|
# Create a temporary dot file
|
||||||
(handle,tmp_dot) = tempfile.mkstemp(".dot" )
|
(handle, tmp_dot) = tempfile.mkstemp(".dot" )
|
||||||
dotfile = os.fdopen(handle,"w")
|
dotfile = os.fdopen(handle,"w")
|
||||||
dotfile.write(self.dot.getvalue())
|
dotfile.write(self.dot.getvalue())
|
||||||
dotfile.close()
|
dotfile.close()
|
||||||
|
|
||||||
# Generate the PDF file.
|
# Generate the PDF file.
|
||||||
os.system( 'dot -Tpdf -o"%s" "%s"' % (self.filename,tmp_dot) )
|
os.system( 'dot -Tpdf -o"%s" "%s"' % (self.filename, tmp_dot) )
|
||||||
|
|
||||||
# Delete the temporary dot file
|
# Delete the temporary dot file
|
||||||
os.remove(tmp_dot)
|
os.remove(tmp_dot)
|
||||||
@ -547,13 +548,13 @@ class GVPdfGsDoc(GVDocBase):
|
|||||||
self.filename += ".pdf"
|
self.filename += ".pdf"
|
||||||
|
|
||||||
# Create a temporary dot file
|
# Create a temporary dot file
|
||||||
(handle,tmp_dot) = tempfile.mkstemp(".dot" )
|
(handle, tmp_dot) = tempfile.mkstemp(".dot" )
|
||||||
dotfile = os.fdopen(handle,"w")
|
dotfile = os.fdopen(handle,"w")
|
||||||
dotfile.write(self.dot.getvalue())
|
dotfile.write(self.dot.getvalue())
|
||||||
dotfile.close()
|
dotfile.close()
|
||||||
|
|
||||||
# Create a temporary PostScript file
|
# Create a temporary PostScript file
|
||||||
(handle,tmp_ps) = tempfile.mkstemp(".ps" )
|
(handle, tmp_ps) = tempfile.mkstemp(".ps" )
|
||||||
os.close( handle )
|
os.close( handle )
|
||||||
|
|
||||||
# Generate PostScript using dot
|
# Generate PostScript using dot
|
||||||
@ -568,7 +569,7 @@ class GVPdfGsDoc(GVDocBase):
|
|||||||
# Convert to PDF using ghostscript
|
# Convert to PDF using ghostscript
|
||||||
command = '%s -q -sDEVICE=pdfwrite -dNOPAUSE -dDEVICEWIDTHPOINTS=%d' \
|
command = '%s -q -sDEVICE=pdfwrite -dNOPAUSE -dDEVICEWIDTHPOINTS=%d' \
|
||||||
' -dDEVICEHEIGHTPOINTS=%d -sOutputFile="%s" "%s" -c quit' \
|
' -dDEVICEHEIGHTPOINTS=%d -sOutputFile="%s" "%s" -c quit' \
|
||||||
% ( _gs_cmd, width_pt, height_pt, self.filename, tmp_ps )
|
% ( _GS_CMD, width_pt, height_pt, self.filename, tmp_ps )
|
||||||
os.system(command)
|
os.system(command)
|
||||||
|
|
||||||
os.remove(tmp_ps)
|
os.remove(tmp_ps)
|
||||||
@ -590,9 +591,9 @@ _formats += [{ 'type' : "dot",
|
|||||||
'mime' : "text/x-graphviz",
|
'mime' : "text/x-graphviz",
|
||||||
'class': GVDotDoc }]
|
'class': GVDotDoc }]
|
||||||
|
|
||||||
if _dot_found:
|
if _DOT_FOUND:
|
||||||
|
|
||||||
if _gs_cmd != "":
|
if _GS_CMD != "":
|
||||||
_formats += [{ 'type' : "gspdf",
|
_formats += [{ 'type' : "gspdf",
|
||||||
'ext' : "pdf",
|
'ext' : "pdf",
|
||||||
'descr': _("PDF (Ghostscript)"),
|
'descr': _("PDF (Ghostscript)"),
|
||||||
@ -650,12 +651,12 @@ class GraphvizFormatComboBox(gtk.ComboBox):
|
|||||||
"""
|
"""
|
||||||
Format combo box class for Graphviz report.
|
Format combo box class for Graphviz report.
|
||||||
"""
|
"""
|
||||||
def set(self,active=None):
|
def set(self, active=None):
|
||||||
self.store = gtk.ListStore(gobject.TYPE_STRING)
|
self.store = gtk.ListStore(gobject.TYPE_STRING)
|
||||||
self.set_model(self.store)
|
self.set_model(self.store)
|
||||||
cell = gtk.CellRendererText()
|
cell = gtk.CellRendererText()
|
||||||
self.pack_start(cell,True)
|
self.pack_start(cell, True)
|
||||||
self.add_attribute(cell,'text',0)
|
self.add_attribute(cell, 'text', 0)
|
||||||
|
|
||||||
out_pref = Config.get(Config.OUTPUT_PREFERENCE)
|
out_pref = Config.get(Config.OUTPUT_PREFERENCE)
|
||||||
index = 0
|
index = 0
|
||||||
@ -743,7 +744,7 @@ class GraphvizReportDialog(ReportDialog):
|
|||||||
|
|
||||||
font_size = NumberOption(_("Font size"), 14, 8, 128)
|
font_size = NumberOption(_("Font size"), 14, 8, 128)
|
||||||
font_size.set_help(_("The font size, in points."))
|
font_size.set_help(_("The font size, in points."))
|
||||||
self.options.add_menu_option(category,"font_size", font_size)
|
self.options.add_menu_option(category, "font_size", font_size)
|
||||||
|
|
||||||
rank_dir = EnumeratedListOption(_("Graph Direction"), 0)
|
rank_dir = EnumeratedListOption(_("Graph Direction"), 0)
|
||||||
index = 0
|
index = 0
|
||||||
@ -869,16 +870,16 @@ class GraphvizReportDialog(ReportDialog):
|
|||||||
"""Set up the format frame of the dialog."""
|
"""Set up the format frame of the dialog."""
|
||||||
self.format_menu = GraphvizFormatComboBox()
|
self.format_menu = GraphvizFormatComboBox()
|
||||||
self.format_menu.set(self.options.handler.get_format_name())
|
self.format_menu.set(self.options.handler.get_format_name())
|
||||||
self.format_menu.connect('changed',self.doc_type_changed)
|
self.format_menu.connect('changed', self.doc_type_changed)
|
||||||
label = gtk.Label("%s:" % _("Output Format"))
|
label = gtk.Label("%s:" % _("Output Format"))
|
||||||
label.set_alignment(0.0,0.5)
|
label.set_alignment(0.0, 0.5)
|
||||||
self.tbl.attach(label,1,2,self.row,self.row+1,gtk.SHRINK|gtk.FILL)
|
self.tbl.attach(label, 1, 2, self.row, self.row+1, gtk.SHRINK|gtk.FILL)
|
||||||
self.tbl.attach(self.format_menu,2,4,self.row,self.row+1,
|
self.tbl.attach(self.format_menu, 2, 4, self.row, self.row+1,
|
||||||
yoptions=gtk.SHRINK)
|
yoptions=gtk.SHRINK)
|
||||||
self.row += 1
|
self.row += 1
|
||||||
|
|
||||||
self.print_report = gtk.CheckButton (_("Open with application"))
|
self.print_report = gtk.CheckButton(_("Open with application"))
|
||||||
self.tbl.attach(self.print_report,2,4,self.row,self.row+1,
|
self.tbl.attach(self.print_report, 2, 4, self.row, self.row+1,
|
||||||
yoptions=gtk.SHRINK)
|
yoptions=gtk.SHRINK)
|
||||||
self.row += 1
|
self.row += 1
|
||||||
|
|
||||||
@ -895,13 +896,14 @@ class GraphvizReportDialog(ReportDialog):
|
|||||||
self.paper_label = gtk.Label('<b>%s</b>'%_("Paper Options"))
|
self.paper_label = gtk.Label('<b>%s</b>'%_("Paper Options"))
|
||||||
self.paper_label.set_use_markup(True)
|
self.paper_label.set_use_markup(True)
|
||||||
|
|
||||||
self.paper_frame = PaperFrame(self.options.handler.get_paper_metric(),
|
self.paper_frame = PaperFrame(
|
||||||
self.options.handler.get_paper_name(),
|
self.options.handler.get_paper_metric(),
|
||||||
self.options.handler.get_orientation(),
|
self.options.handler.get_paper_name(),
|
||||||
self.options.handler.get_margins(),
|
self.options.handler.get_orientation(),
|
||||||
self.options.handler.get_custom_paper_size()
|
self.options.handler.get_margins(),
|
||||||
|
self.options.handler.get_custom_paper_size()
|
||||||
)
|
)
|
||||||
self.notebook.insert_page(self.paper_frame,self.paper_label,0)
|
self.notebook.insert_page(self.paper_frame, self.paper_label, 0)
|
||||||
self.paper_frame.show_all()
|
self.paper_frame.show_all()
|
||||||
|
|
||||||
ReportDialog.setup_report_options_frame(self)
|
ReportDialog.setup_report_options_frame(self)
|
||||||
@ -923,7 +925,7 @@ class GraphvizReportDialog(ReportDialog):
|
|||||||
self.print_report.set_sensitive (False)
|
self.print_report.set_sensitive (False)
|
||||||
|
|
||||||
fname = self.target_fileentry.get_full_path(0)
|
fname = self.target_fileentry.get_full_path(0)
|
||||||
(spath,ext) = os.path.splitext(fname)
|
(spath, ext) = os.path.splitext(fname)
|
||||||
|
|
||||||
ext_val = obj.get_ext()
|
ext_val = obj.get_ext()
|
||||||
if ext_val:
|
if ext_val:
|
||||||
@ -957,11 +959,13 @@ class GraphvizReportDialog(ReportDialog):
|
|||||||
self.parse_format_frame()
|
self.parse_format_frame()
|
||||||
self.parse_user_options()
|
self.parse_user_options()
|
||||||
|
|
||||||
self.options.handler.set_paper_metric(self.paper_frame.get_paper_metric())
|
self.options.handler.set_paper_metric(
|
||||||
|
self.paper_frame.get_paper_metric())
|
||||||
self.options.handler.set_paper_name(self.paper_frame.get_paper_name())
|
self.options.handler.set_paper_name(self.paper_frame.get_paper_name())
|
||||||
self.options.handler.set_orientation(self.paper_frame.get_orientation())
|
self.options.handler.set_orientation(self.paper_frame.get_orientation())
|
||||||
self.options.handler.set_margins(self.paper_frame.get_paper_margins())
|
self.options.handler.set_margins(self.paper_frame.get_paper_margins())
|
||||||
self.options.handler.set_custom_paper_size(self.paper_frame.get_custom_paper_size())
|
self.options.handler.set_custom_paper_size(
|
||||||
|
self.paper_frame.get_custom_paper_size())
|
||||||
|
|
||||||
# Create the output document.
|
# Create the output document.
|
||||||
self.make_document()
|
self.make_document()
|
||||||
|
Loading…
Reference in New Issue
Block a user