diff python/st-util.py @ 137:0a540ce31cd5

Added debug toolbar and spaced hexedit
author Windel Bouwman
date Fri, 25 Jan 2013 23:47:34 +0100
parents 9af544be5d2a
children 14e739ed03ab
line wrap: on
line diff
--- a/python/st-util.py	Wed Jan 23 21:54:14 2013 +0100
+++ b/python/st-util.py	Fri Jan 25 23:47:34 2013 +0100
@@ -84,9 +84,51 @@
       self.device = dev
       self.loadAddress(0x8000000)
 
+class DebugToolbar(QToolBar):
+   def __init__(self):
+      super().__init__()
+      self.device = None
+      # generate actions:
+      def genAction(name, callback):
+         a = QAction(name, self)
+         a.triggered.connect(callback)
+         self.addAction(a)
+         return a
+      self.stepAction = genAction('Step', self.doStep)
+      self.runAction = genAction('Run', self.doRun)
+      self.stopAction = genAction('Stop', self.doStop)
+      self.resetAction = genAction('Reset', self.doReset)
+      self.updateEnables()
+   def updateEnables(self):
+      if self.device:
+         self.resetAction.setEnabled(True)
+         if running:
+            self.runAction.setEnabled(False)
+            self.stepAction.setEnabled(False)
+         else:
+            self.runAction.setEnabled(True)
+            self.stepAction.setEnabled(True)
+      else:
+         self.resetAction.setEnabled(False)
+         self.runAction.setEnabled(True)
+         self.stepAction.setEnabled(False)
+   def doStep(self):
+      self.device.iface.step()
+   def doReset(self):
+      self.device.iface.reset()
+   def doRun(self):
+      self.device.iface.run()
+   def doStop(self):
+      pass
+      # TODO: self.device.iface.halt()
+   def setDevice(self, dev):
+      self.device = dev
+      self.updateEnables()
+
 class FlashTool(QWidget):
    def __init__(self):
       super().__init__()
+      # TODO!
 
 class DeviceTreeModel(QAbstractItemModel):
    def __init__(self):