Anyone know how to set the window title?
From: Marius Gedminas <marius@gedmin.as>
... | ... |
@@ -562,6 +562,10 @@ class XDotAttrParser: |
562 | 562 |
return self.parser.transform(x, y) |
563 | 563 |
|
564 | 564 |
|
565 |
+class GraphParseError(Exception): |
|
566 |
+ pass |
|
567 |
+ |
|
568 |
+ |
|
565 | 569 |
class XDotParser: |
566 | 570 |
|
567 | 571 |
def __init__(self, xdotcode): |
... | ... |
@@ -571,7 +575,7 @@ class XDotParser: |
571 | 575 |
graph = pydot.graph_from_dot_data(self.xdotcode) |
572 | 576 |
|
573 | 577 |
if graph.bb is None: |
574 |
- return Graph() |
|
578 |
+ return GraphParseError() |
|
575 | 579 |
|
576 | 580 |
xmin, ymin, xmax, ymax = map(int, graph.bb.split(",")) |
577 | 581 |
|
... | ... |
@@ -876,7 +880,7 @@ class DotWidget(gtk.DrawingArea): |
876 | 880 |
self.presstime = None |
877 | 881 |
self.highlight = None |
878 | 882 |
|
879 |
- def set_dotcode(self, dotcode): |
|
883 |
+ def set_dotcode(self, dotcode, filename='<stdin>'): |
|
880 | 884 |
p = subprocess.Popen( |
881 | 885 |
['dot', '-Txdot'], |
882 | 886 |
stdin=subprocess.PIPE, |
... | ... |
@@ -885,7 +889,15 @@ class DotWidget(gtk.DrawingArea): |
885 | 889 |
universal_newlines=True |
886 | 890 |
) |
887 | 891 |
xdotcode = p.communicate(dotcode)[0] |
888 |
- self.set_xdotcode(xdotcode) |
|
892 |
+ try: |
|
893 |
+ self.set_xdotcode(xdotcode) |
|
894 |
+ except GraphParseError, e: |
|
895 |
+ msg = "Could not parse %s, is it a valid dot file?" % filename |
|
896 |
+ error_dlg = gtk.MessageDialog(type=gtk.MESSAGE_ERROR, |
|
897 |
+ message_format=msg, |
|
898 |
+ buttons=gtk.BUTTONS_OK) |
|
899 |
+ error_dlg.run() |
|
900 |
+ error_dlg.destroy() |
|
889 | 901 |
|
890 | 902 |
def set_xdotcode(self, xdotcode): |
891 | 903 |
#print xdotcode |
... | ... |
@@ -1143,7 +1155,7 @@ class DotWindow(gtk.Window): |
1143 | 1155 |
# Add the actiongroup to the uimanager |
1144 | 1156 |
uimanager.insert_action_group(actiongroup, 0) |
1145 | 1157 |
|
1146 |
- # Add a UI description |
|
1158 |
+ # Add a UI descrption |
|
1147 | 1159 |
uimanager.add_ui_from_string(self.ui) |
1148 | 1160 |
|
1149 | 1161 |
# Create a Toolbar |
... | ... |
@@ -1156,13 +1168,13 @@ class DotWindow(gtk.Window): |
1156 | 1168 |
|
1157 | 1169 |
self.show_all() |
1158 | 1170 |
|
1159 |
- def set_dotcode(self, dotcode): |
|
1160 |
- self.widget.set_dotcode(dotcode) |
|
1171 |
+ def set_dotcode(self, dotcode, filename='<stdin>'): |
|
1172 |
+ self.widget.set_dotcode(dotcode, filename) |
|
1161 | 1173 |
|
1162 | 1174 |
def open_file(self, filename): |
1163 | 1175 |
try: |
1164 | 1176 |
fp = file(filename, 'rt') |
1165 |
- self.set_dotcode(fp.read()) |
|
1177 |
+ self.set_dotcode(fp.read(), filename) |
|
1166 | 1178 |
fp.close() |
1167 | 1179 |
except IOError: |
1168 | 1180 |
# TODO: show an error message |