tools: in performance-log-viewer.py, show variable descriptions

In the preformance-log viewer, show instrumentation-variable
descriptions as tooltips for the corresponding treeview rows.
This commit is contained in:
Ell 2018-11-03 04:16:30 -04:00
parent 646208eff0
commit 21b36cd864

View file

@ -219,7 +219,7 @@ var_types = {
# Read performance log from STDIN # Read performance log from STDIN
log = ElementTree.fromstring (sys.stdin.buffer.read ()) log = ElementTree.fromstring (sys.stdin.buffer.read ())
Variable = namedtuple ("Variable", ("type", "color")) Variable = namedtuple ("Variable", ("type", "desc", "color"))
Value = namedtuple ("Value", ("value", "raw")) Value = namedtuple ("Value", ("value", "raw"))
var_colors = [ var_colors = [
@ -238,7 +238,9 @@ var_defs = {}
for var in log.find ("var-defs"): for var in log.find ("var-defs"):
color = var_colors[len (var_defs) % len (var_colors)] color = var_colors[len (var_defs) % len (var_colors)]
var_defs[var.get ("name")] = Variable (var.get ("type"), color) var_defs[var.get ("name")] = Variable (var.get ("type"),
var.get ("desc"),
color)
AddressInfo = namedtuple ("AddressInfo", ("id", AddressInfo = namedtuple ("AddressInfo", ("id",
"name", "name",
@ -805,14 +807,18 @@ class CellRendererColorToggle (Gtk.CellRendererToggle):
class VariableSet (Gtk.TreeView): class VariableSet (Gtk.TreeView):
class Store (Gtk.ListStore): class Store (Gtk.ListStore):
NAME = 0 NAME = 0
ACTIVE = 1 DESC = 1
COLOR = 2 COLOR = 2
ACTIVE = 3
def __init__ (self): def __init__ (self):
Gtk.ListStore.__init__ (self, str, bool, Gdk.RGBA) Gtk.ListStore.__init__ (self, str, str, Gdk.RGBA, bool)
for var in var_defs: for var, var_def in var_defs.items ():
i = self.append ((var, False, Gdk.RGBA (*var_defs[var].color))) i = self.append ((var,
var_def.desc,
Gdk.RGBA (*var_def.color),
False))
def __init__ (self, *args, **kwargs): def __init__ (self, *args, **kwargs):
Gtk.TreeView.__init__ (self, *args, headers_visible = False, **kwargs) Gtk.TreeView.__init__ (self, *args, headers_visible = False, **kwargs)
@ -820,6 +826,7 @@ class VariableSet (Gtk.TreeView):
store = self.Store () store = self.Store ()
self.store = store self.store = store
self.set_model (store) self.set_model (store)
self.set_tooltip_column (store.DESC)
col = Gtk.TreeViewColumn () col = Gtk.TreeViewColumn ()
self.append_column (col) self.append_column (col)
@ -1662,26 +1669,28 @@ class InformationViewer (Gtk.ScrolledWindow):
class VariablesViewer (Gtk.ScrolledWindow): class VariablesViewer (Gtk.ScrolledWindow):
class Store (Gtk.ListStore): class Store (Gtk.ListStore):
NAME = 0 NAME = 0
COLOR = 1 DESC = 1
VALUE = 2 COLOR = 2
RAW = 3 VALUE = 3
MIN = 4 RAW = 4
MAX = 5 MIN = 5
MEDIAN = 6 MAX = 6
MEAN = 7 MEDIAN = 7
STDEV = 8 MEAN = 8
LAST_COLUMN = 9 STDEV = 9
LAST_COLUMN = 10
def __init__ (self): def __init__ (self):
n_stats = self.LAST_COLUMN - self.COLOR n_stats = self.LAST_COLUMN - self.COLOR
Gtk.ListStore.__init__ (self, Gtk.ListStore.__init__ (self,
*((str, Gdk.RGBA) + n_stats * (str,))) *((str, str, Gdk.RGBA) + n_stats * (str,)))
enum.Enum.__init__ (self) enum.Enum.__init__ (self)
for var in var_defs: for var, var_def in var_defs.items ():
i = self.append (((var, i = self.append (((var,
Gdk.RGBA (*var_defs[var].color)) + var_def.desc,
Gdk.RGBA (*var_def.color)) +
n_stats * ("",))) n_stats * ("",)))
def __init__ (self, *args, **kwargs): def __init__ (self, *args, **kwargs):
@ -1698,6 +1707,7 @@ class VariablesViewer (Gtk.ScrolledWindow):
tree = Gtk.TreeView (model = store) tree = Gtk.TreeView (model = store)
self.add (tree) self.add (tree)
tree.set_tooltip_column (store.DESC)
tree.show () tree.show ()
self.single_sample_cols = [] self.single_sample_cols = []