summaryrefslogtreecommitdiff
path: root/cesar
diff options
context:
space:
mode:
authorNicolas Schodet2010-11-26 11:06:58 +0100
committerNicolas Schodet2010-11-30 11:10:40 +0100
commit182914c5a0e0e24342b70285222e46d84b63e0e4 (patch)
tree3c6f3dc35279090ca13e9ec3cdbfc48f8447f79b /cesar
parent600ffa1516fb8500887d9ef2e34dd609d5cd46e9 (diff)
cesar/common/tools/traceviewer: add a remove trace button
Diffstat (limited to 'cesar')
-rw-r--r--cesar/common/tools/traceviewer/gui.py30
-rw-r--r--cesar/common/tools/traceviewer/trace_view.py7
2 files changed, 33 insertions, 4 deletions
diff --git a/cesar/common/tools/traceviewer/gui.py b/cesar/common/tools/traceviewer/gui.py
index 4f218a1a9a..543e1b6c19 100644
--- a/cesar/common/tools/traceviewer/gui.py
+++ b/cesar/common/tools/traceviewer/gui.py
@@ -11,12 +11,13 @@ from trace_tree_model import TraceTreeModel
class TraceTreeWindow (gtk.Expander):
- def __init__ (self, trace, box = None, cursor_cb = None):
+ def __init__ (self, trace, box = None, remove_cb = None,
+ cursor_cb = None):
gtk.Expander.__init__ (self, trace.name)
self.trace = trace
self.set_expanded (True)
ttm = TraceTreeModel (trace)
- # TreeView
+ # TreeView.
tv = gtk.TreeView ()
self.tv = tv
cell = gtk.CellRendererText ()
@@ -30,10 +31,21 @@ class TraceTreeWindow (gtk.Expander):
tv.connect ('cursor-changed', self.row_selected)
self.no_update = False
self.cursor_cb = cursor_cb
+ # Actions.
+ action_box = gtk.VBox ()
+ remove_button = gtk.Button ()
+ remove_button.add (gtk.image_new_from_stock (gtk.STOCK_DELETE,
+ gtk.ICON_SIZE_MENU))
+ action_box.pack_start (remove_button, expand = False)
+ remove_button.connect ('clicked', self.remove_clicked)
+ self.remove_cb = remove_cb
# Add.
sw = gtk.ScrolledWindow ()
sw.add (tv)
- self.add (sw)
+ hbox = gtk.HBox ()
+ hbox.add (sw)
+ hbox.pack_start (action_box, expand = False)
+ self.add (hbox)
# Handle expansion.
self.box = box
if box:
@@ -63,6 +75,9 @@ class TraceTreeWindow (gtk.Expander):
self.cursor_cb (date, aux)
self.no_update = False
+ def remove_clicked (self, button):
+ self.remove_cb (self.trace)
+
class Gui:
def __init__ (self, zoom = 1):
@@ -98,10 +113,17 @@ class Gui:
def add (self, trace):
self.trace_view.add (trace)
- ttw = TraceTreeWindow (trace, self.trace_tree_box, self.set_cursor)
+ ttw = TraceTreeWindow (trace, self.trace_tree_box, self.remove,
+ self.set_cursor)
self.trace_tree_box.add (ttw)
ttw.show_all ()
+ def remove (self, trace):
+ self.trace_view.remove (trace)
+ for ttw in self.trace_tree_box.get_children ():
+ if ttw.trace is trace:
+ self.trace_tree_box.remove (ttw)
+
def show_all (self):
self.window.show_all ()
diff --git a/cesar/common/tools/traceviewer/trace_view.py b/cesar/common/tools/traceviewer/trace_view.py
index 6ea226e64e..2797fd44a3 100644
--- a/cesar/common/tools/traceviewer/trace_view.py
+++ b/cesar/common/tools/traceviewer/trace_view.py
@@ -26,6 +26,13 @@ class TraceView (gtk.DrawingArea):
def add (self, trace):
self.traces.append (trace)
+ self.__traces_update ()
+
+ def remove (self, trace):
+ self.traces.remove (trace)
+ self.__traces_update ()
+
+ def __traces_update (self):
min = None
max = None
# Find trace range.