| ... | ... |
@@ -1451,6 +1451,15 @@ class DotWidget(gtk.DrawingArea): |
| 1451 | 1451 |
self.graph = parser.parse() |
| 1452 | 1452 |
self.zoom_image(self.zoom_ratio, center=True) |
| 1453 | 1453 |
|
| 1454 |
+ def reload(self): |
|
| 1455 |
+ if self.openfilename is not None: |
|
| 1456 |
+ try: |
|
| 1457 |
+ fp = file(self.openfilename, 'rt') |
|
| 1458 |
+ self.set_dotcode(fp.read(), self.openfilename) |
|
| 1459 |
+ fp.close() |
|
| 1460 |
+ except IOError: |
|
| 1461 |
+ pass |
|
| 1462 |
+ |
|
| 1454 | 1463 |
def do_expose_event(self, event): |
| 1455 | 1464 |
cr = self.window.cairo_create() |
| 1456 | 1465 |
|
| ... | ... |
@@ -1578,13 +1587,7 @@ class DotWidget(gtk.DrawingArea): |
| 1578 | 1587 |
self.drag_action = NullAction(self) |
| 1579 | 1588 |
return True |
| 1580 | 1589 |
if event.keyval == gtk.keysyms.r: |
| 1581 |
- if self.openfilename is not None: |
|
| 1582 |
- try: |
|
| 1583 |
- fp = file(self.openfilename, 'rt') |
|
| 1584 |
- self.set_dotcode(fp.read(), self.openfilename) |
|
| 1585 |
- fp.close() |
|
| 1586 |
- except IOError, ex: |
|
| 1587 |
- pass |
|
| 1590 |
+ self.reload() |
|
| 1588 | 1591 |
return True |
| 1589 | 1592 |
return False |
| 1590 | 1593 |
|
| ... | ... |
@@ -1688,6 +1691,7 @@ class DotWindow(gtk.Window): |
| 1688 | 1691 |
<ui> |
| 1689 | 1692 |
<toolbar name="ToolBar"> |
| 1690 | 1693 |
<toolitem action="Open"/> |
| 1694 |
+ <toolitem action="Reload"/> |
|
| 1691 | 1695 |
<separator/> |
| 1692 | 1696 |
<toolitem action="ZoomIn"/> |
| 1693 | 1697 |
<toolitem action="ZoomOut"/> |
| ... | ... |
@@ -1725,6 +1729,7 @@ class DotWindow(gtk.Window): |
| 1725 | 1729 |
# Create actions |
| 1726 | 1730 |
actiongroup.add_actions(( |
| 1727 | 1731 |
('Open', gtk.STOCK_OPEN, None, None, None, self.on_open),
|
| 1732 |
+ ('Reload', gtk.STOCK_REFRESH, None, None, None, self.on_reload),
|
|
| 1728 | 1733 |
('ZoomIn', gtk.STOCK_ZOOM_IN, None, None, None, self.widget.on_zoom_in),
|
| 1729 | 1734 |
('ZoomOut', gtk.STOCK_ZOOM_OUT, None, None, None, self.widget.on_zoom_out),
|
| 1730 | 1735 |
('ZoomFit', gtk.STOCK_ZOOM_FIT, None, None, None, self.widget.on_zoom_fit),
|
| ... | ... |
@@ -1808,6 +1813,9 @@ class DotWindow(gtk.Window): |
| 1808 | 1813 |
else: |
| 1809 | 1814 |
chooser.destroy() |
| 1810 | 1815 |
|
| 1816 |
+ def on_reload(self, action): |
|
| 1817 |
+ self.widget.reload() |
|
| 1818 |
+ |
|
| 1811 | 1819 |
|
| 1812 | 1820 |
def main(): |
| 1813 | 1821 |
import optparse |