diff options
-rw-r--r-- | lib.py | 51 |
1 files changed, 34 insertions, 17 deletions
@@ -142,7 +142,7 @@ def gen_graph(graph, blacklist=(), **kwargs): return graph() -def xdot_graph(*args, **kwargs): +def xdot_graph(graph, *args, **kwargs): import gtk import gtk.gdk import pango @@ -239,16 +239,24 @@ def xdot_graph(*args, **kwargs): bl.append(cls) change = True if change and self._can_change: - self.set_dotcode( - gen_graph(*self._args, **self._kwargs).to_string()) + self.set_xdotcode( + xdotcode = gen_graph(self._graph, **self._kwargs).create( + format='xdot', + prog=self._prog + ) + ) def on_clean_all(self, widget): self._can_change = False for item in filter(lambda x: isinstance(x, gtk.CheckMenuItem), widget.get_parent().get_children()): item.set_active(False) - self.set_dotcode( - gen_graph(*self._args, **self._kwargs).to_string()) + self.set_xdotcode( + xdotcode = gen_graph(self._graph, **self._kwargs).create( + format='xdot', + prog=self._prog + ) + ) self._can_change = True def on_set_all(self, widget): @@ -256,25 +264,34 @@ def xdot_graph(*args, **kwargs): for item in filter(lambda x: isinstance(x, gtk.CheckMenuItem), widget.get_parent().get_children()): item.set_active(True) - self.set_dotcode( - gen_graph(*self._args, **self._kwargs).to_string()) + self.set_xdotcode( + xdotcode = gen_graph(self._graph, **self._kwargs).create( + format='xdot', + prog=self._prog + ) + ) self._can_change = True - def __init__(self, *args, **kwargs): - self._args = args + def __init__(self, graph, *args, **kwargs): + self._graph = graph + self._prog = ['dot'] + list(args) self._kwargs = kwargs - self._can_change = True try: super(LibDotWindow, self).__init__(LibDotWidget()) except TypeError: print >>stderr, "xdot too old, you won't get tooltips :-/" super(LibDotWindow, self).__init__() - dotcode = gen_graph(*args, **kwargs).to_string() - title = dotcode[dotcode.find('digraph', 0, 512) + len('digraph') - : - dotcode.find('{', 0, 512)].strip(' \'"') + xdotcode = gen_graph(self._graph, **self._kwargs).create( + format='xdot', + prog=self._prog + ) + title = xdotcode[xdotcode.find('digraph', 0, 512) + len('digraph') + : + xdotcode.find('{', 0, 512)].strip(' \'"') self.base_title = title - self.set_dotcode(dotcode) + self.update_title() + self.set_xdotcode(xdotcode) + self._can_change = True mb = gtk.MenuBar() @@ -346,7 +363,7 @@ def xdot_graph(*args, **kwargs): self.maximize() self.show_all() - window = LibDotWindow(*args, **kwargs) + window = LibDotWindow(graph, *args, **kwargs) window.connect('destroy', gtk.main_quit) gtk.main() @@ -356,7 +373,7 @@ def main(graph, argv, *args, **kws): x, argv = (1, argv[1:]) if len(argv) <= 1 or argv[1] == '-x' else (0, argv) output = kws.pop('output', 'sinenomine') if x: - xdot_graph(graph, **kws) + xdot_graph(graph, *args, **kws) else: LibMeta.promote_url = True ext = argv[1] if len(argv) > 1 else 'pdf' |