X-Git-Url: https://git.sthu.org/?a=blobdiff_plain;f=WatchesFrame.py;h=08271f4d7d7180df66661cf7a2d69301e74301c3;hb=refs%2Fheads%2Fcontroller;hp=cfcd14a916cc700f16082ae5dca212d4c94ac10b;hpb=104bb121bd7c3433a5e46c9b86e211b9544ea288;p=pygdb.git diff --git a/WatchesFrame.py b/WatchesFrame.py index cfcd14a..08271f4 100644 --- a/WatchesFrame.py +++ b/WatchesFrame.py @@ -6,9 +6,7 @@ __author__ = "shuber" import gobject import gtk -import vte -import DbgTerminal import StatusFrame @@ -20,6 +18,8 @@ class WatchesFrame (StatusFrame.StatusFrame): StatusFrame.StatusFrame.__init__(self, debugger) self.set_label("Watches") + debugger.gotActiveCallback += [self.updateValues] + vbox = gtk.VBox(False, 5) self.add(vbox) @@ -92,7 +92,7 @@ class WatchesFrame (StatusFrame.StatusFrame): for w in conf.watches: iter = self.model.append() self.model.set(iter, 0, w["expr"], 1, "", 2, True) - self.updateValues(None) + self.updateValues(None, None) def fillConfiguration(self, conf): @@ -104,11 +104,37 @@ class WatchesFrame (StatusFrame.StatusFrame): 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() @@ -116,12 +142,12 @@ class WatchesFrame (StatusFrame.StatusFrame): 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)