Browse code

Add reload button.

Jose.R.Fonseca authored on 30/09/2009 15:49:14
Showing 1 changed files

  • xdot.py index 4e0554a..6523de7 100755
... ...
@@ -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