import gobject
import gtk
-import vte
-import DbgTerminal
import StatusFrame
StatusFrame.StatusFrame.__init__(self, debugger)
self.set_label("Watches")
+ debugger.gotActiveCallback += [self.updateValues]
+
vbox = gtk.VBox(False, 5)
self.add(vbox)
for w in conf.watches:
iter = self.model.append()
self.model.set(iter, 0, w["expr"], 1, "<unkown>", 2, True)
- self.updateValues(None)
+ self.updateValues(None, None)
def fillConfiguration(self, conf):
+
iter = self.model.get_iter_first()
while iter != None:
expr, = self.model.get(iter, 0)
iter = self.model.iter_next(iter)
- def addBtnClicked(self, btn):
+ def addWatch(self, expr):
+ if self.debugger.isActive():
+ res = self.debugger.getExpression(expr)
+ else:
+ res = expr
+
iter = self.model.append()
- self.model.set(iter, 0, "0", 1, "0", 2, True)
+ self.model.set(iter, 0, expr, 1, res, 2, True)
+
+
+ def delWatches(self, expr):
+
+ def addIters(model, path, iter, iters):
+ if model.get_value(iter, 0)==expr:
+ iters += [iter]
+
+ iters = []
+ self.model.foreach(addIters, iters)
+
+ #Need reversed here since rows are moved
+ #when removing rows
+ for i in reversed(iters):
+ self.model.remove(i)
+
+
+ def addBtnClicked(self, btn):
+ self.addWatch("0")
+
def delBtnClicked(self, btn):
+
selection = self.tv.get_selection()
model, paths = selection.get_selected_rows()
- for path in paths:
+ for path in reversed(paths):
iter = model.get_iter(path)
model.remove(iter)
- def updateValues(self, pos):
+ def updateValues(self, status, param):
iter = self.model.get_iter_first()
while iter != None:
expr, = self.model.get(iter, 0)
- res = self.debugger.getExpression(expr)
- self.model.set(iter, 1, res)
+ res = self.debugger.getExpression(expr)
+ self.model.set(iter, 1, res)
iter = self.model.iter_next(iter)