def __init__(self, treeview, irqs, ps, cpus_filtered, gladefile): self.is_root = os.getuid() == 0 self.irqs = irqs self.ps = ps self.treeview = treeview self.gladefile = gladefile self.has_threaded_irqs = tuna.has_threaded_irqs(ps) if not self.has_threaded_irqs: self.nr_columns = 4 (self.COL_NUM, self.COL_AFF, self.COL_EVENTS, self.COL_USERS) = range(self.nr_columns) self.columns = (gui.list_store_column(_("IRQ")), gui.list_store_column(_("Affinity"), gobject.TYPE_STRING), gui.list_store_column(_("Events")), gui.list_store_column(_("Users"), gobject.TYPE_STRING)) self.list_store = gtk.ListStore( *gui.generate_list_store_columns_with_attr(self.columns)) # Allow selecting multiple rows selection = treeview.get_selection() selection.set_mode(gtk.SELECTION_MULTIPLE) # Allow enable drag and drop of rows self.treeview.enable_model_drag_source( gtk.gdk.BUTTON1_MASK, gui.DND_TARGETS, gtk.gdk.ACTION_DEFAULT | gtk.gdk.ACTION_MOVE) self.treeview.connect("drag_data_get", self.on_drag_data_get_data) self.renderer = gtk.CellRendererText() for col in range(self.nr_columns): column = gtk.TreeViewColumn(self.columns[col].name, self.renderer, text=col) column.set_sort_column_id(col) column.add_attribute(self.renderer, "weight", col + self.nr_columns) self.treeview.append_column(column) self.cpus_filtered = cpus_filtered self.refreshing = True self.treeview.set_model(self.list_store)
def __init__(self, treeview, irqs, ps, cpus_filtered, gladefile): self.is_root = os.getuid() == 0 self.irqs = irqs self.ps = ps self.treeview = treeview self.gladefile = gladefile self.has_threaded_irqs = tuna.has_threaded_irqs(ps) if not self.has_threaded_irqs: self.nr_columns = 4 ( self.COL_NUM, self.COL_AFF, self.COL_EVENTS, self.COL_USERS ) = range(self.nr_columns) self.columns = (gui.list_store_column(_("IRQ")), gui.list_store_column(_("Affinity"), gobject.TYPE_STRING), gui.list_store_column(_("Events")), gui.list_store_column(_("Users"), gobject.TYPE_STRING)) self.list_store = gtk.ListStore(*gui.generate_list_store_columns_with_attr(self.columns)) # Allow selecting multiple rows selection = treeview.get_selection() selection.set_mode(gtk.SELECTION_MULTIPLE) # Allow enable drag and drop of rows self.treeview.enable_model_drag_source(gtk.gdk.BUTTON1_MASK, gui.DND_TARGETS, gtk.gdk.ACTION_DEFAULT | gtk.gdk.ACTION_MOVE) self.treeview.connect("drag_data_get", self.on_drag_data_get_data) self.renderer = gtk.CellRendererText() for col in range(self.nr_columns): column = gtk.TreeViewColumn(self.columns[col].name, self.renderer, text = col) column.set_sort_column_id(col) column.add_attribute(self.renderer, "weight", col + self.nr_columns) self.treeview.append_column(column) self.cpus_filtered = cpus_filtered self.refreshing = True self.treeview.set_model(self.list_store)
def __init__(self, treeview, ps, show_kthreads, show_uthreads, cpus_filtered, gladefile): self.ps = ps self.treeview = treeview self.nr_cpus = procfs.cpuinfo().nr_cpus self.gladefile = gladefile self.evlist = None try: self.perf_init() except: # No perf, poll /proc baby, poll pass if not ps[1]["status"].has_key("voluntary_ctxt_switches"): self.nr_columns = 5 else: self.nr_columns = 7 try: if ps[1]["cgroups"]: self.nr_columns = self.nr_columns + 1 except: pass self.columns = (gui.list_store_column(_("PID")), gui.list_store_column(_("Policy"), gobject.TYPE_STRING), gui.list_store_column(_("Priority")), gui.list_store_column(_("Affinity"), gobject.TYPE_STRING)) if self.nr_columns == 5: (self.COL_PID, self.COL_POL, self.COL_PRI, self.COL_AFF, self.COL_CMDLINE) = range(self.nr_columns) self.columns = self.columns + (gui.list_store_column( _("Command Line"), gobject.TYPE_STRING)) elif self.nr_columns == 6: (self.COL_PID, self.COL_POL, self.COL_PRI, self.COL_AFF, self.COL_CGROUP, self.COL_CMDLINE) = range(self.nr_columns) self.columns = self.columns + ( gui.list_store_column(_("CGroup"), gobject.TYPE_STRING), gui.list_store_column(_("Command Line"), gobject.TYPE_STRING)) elif self.nr_columns == 7: (self.COL_PID, self.COL_POL, self.COL_PRI, self.COL_AFF, self.COL_VOLCTXT, self.NONVOLCTXT, self.COL_CMDLINE) = range(self.nr_columns) self.columns = self.columns + ( gui.list_store_column(_("VolCtxtSwitch"), gobject.TYPE_UINT), gui.list_store_column(_("NonVolCtxtSwitch"), gobject.TYPE_UINT), gui.list_store_column(_("Command Line"), gobject.TYPE_STRING)) elif self.nr_columns == 8: (self.COL_PID, self.COL_POL, self.COL_PRI, self.COL_AFF, self.COL_VOLCTXT, self.COL_NONVOLCTXT, self.COL_CGROUP, self.COL_CMDLINE) = range(self.nr_columns) self.columns = self.columns + ( gui.list_store_column(_("VolCtxtSwitch"), gobject.TYPE_UINT), gui.list_store_column(_("NonVolCtxtSwitch"), gobject.TYPE_UINT), gui.list_store_column(_("CGroup"), gobject.TYPE_STRING), gui.list_store_column(_("Command Line"), gobject.TYPE_STRING)) self.tree_store = gtk.TreeStore( *gui.generate_list_store_columns_with_attr(self.columns)) self.treeview.set_model(self.tree_store) # Allow selecting multiple rows selection = treeview.get_selection() selection.set_mode(gtk.SELECTION_MULTIPLE) # Allow enable drag and drop of rows self.treeview.enable_model_drag_source( gtk.gdk.BUTTON1_MASK, gui.DND_TARGETS, gtk.gdk.ACTION_DEFAULT | gtk.gdk.ACTION_MOVE) self.treeview.connect("drag_data_get", self.on_drag_data_get_data) try: self.treeview.connect("query-tooltip", self.on_query_tooltip) except: # old versions of pygtk2+ doesn't have this signal pass self.renderer = gtk.CellRendererText() for col in range(self.nr_columns): column = gtk.TreeViewColumn(self.columns[col].name, self.renderer, text=col) column.add_attribute(self.renderer, "weight", col + self.nr_columns) column.set_sort_column_id(col) if (col == self.COL_CGROUP): column.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED) column.set_fixed_width(130) try: self.treeview.set_tooltip_column(col) except: # old versions of pygtk2+ doesn't have this signal pass column.set_resizable(True) self.treeview.append_column(column) self.show_kthreads = show_kthreads self.show_uthreads = show_uthreads self.cpus_filtered = cpus_filtered self.refreshing = True
def __init__(self, treeview, ps, show_kthreads, show_uthreads, cpus_filtered, gladefile): self.ps = ps self.treeview = treeview self.nr_cpus = procfs.cpuinfo().nr_cpus self.gladefile = gladefile self.evlist = None try: self.perf_init() except: # No perf, poll /proc baby, poll pass if not ps[1]["status"].has_key("voluntary_ctxt_switches"): self.nr_columns = 5 else: self.nr_columns = 7 try: if ps[1]["cgroups"]: self.nr_columns = self.nr_columns + 1 except: pass self.columns = (gui.list_store_column(_("PID")), gui.list_store_column(_("Policy"), gobject.TYPE_STRING), gui.list_store_column(_("Priority")), gui.list_store_column(_("Affinity"), gobject.TYPE_STRING)) if self.nr_columns==5: ( self.COL_PID, self.COL_POL, self.COL_PRI, self.COL_AFF, self.COL_CMDLINE ) = range(self.nr_columns) self.columns = self.columns + (gui.list_store_column(_("Command Line"), gobject.TYPE_STRING)) elif self.nr_columns==6: ( self.COL_PID, self.COL_POL, self.COL_PRI, self.COL_AFF, self.COL_CGROUP, self.COL_CMDLINE ) = range(self.nr_columns) self.columns = self.columns + (gui.list_store_column(_("CGroup"), gobject.TYPE_STRING), gui.list_store_column(_("Command Line"), gobject.TYPE_STRING)) elif self.nr_columns==7: ( self.COL_PID, self.COL_POL, self.COL_PRI, self.COL_AFF, self.COL_VOLCTXT, self.NONVOLCTXT, self.COL_CMDLINE ) = range(self.nr_columns) self.columns = self.columns + (gui.list_store_column(_("VolCtxtSwitch"), gobject.TYPE_UINT), gui.list_store_column(_("NonVolCtxtSwitch"), gobject.TYPE_UINT), gui.list_store_column(_("Command Line"), gobject.TYPE_STRING)) elif self.nr_columns==8: ( self.COL_PID, self.COL_POL, self.COL_PRI, self.COL_AFF, self.COL_VOLCTXT, self.COL_NONVOLCTXT, self.COL_CGROUP, self.COL_CMDLINE ) = range(self.nr_columns) self.columns = self.columns + (gui.list_store_column(_("VolCtxtSwitch"), gobject.TYPE_UINT), gui.list_store_column(_("NonVolCtxtSwitch"), gobject.TYPE_UINT), gui.list_store_column(_("CGroup"), gobject.TYPE_STRING), gui.list_store_column(_("Command Line"), gobject.TYPE_STRING)) self.tree_store = gtk.TreeStore(*gui.generate_list_store_columns_with_attr(self.columns)) self.treeview.set_model(self.tree_store) # Allow selecting multiple rows selection = treeview.get_selection() selection.set_mode(gtk.SELECTION_MULTIPLE) # Allow enable drag and drop of rows self.treeview.enable_model_drag_source(gtk.gdk.BUTTON1_MASK, gui.DND_TARGETS, gtk.gdk.ACTION_DEFAULT | gtk.gdk.ACTION_MOVE) self.treeview.connect("drag_data_get", self.on_drag_data_get_data) try: self.treeview.connect("query-tooltip", self.on_query_tooltip) except: # old versions of pygtk2+ doesn't have this signal pass self.renderer = gtk.CellRendererText() for col in range(self.nr_columns): column = gtk.TreeViewColumn(self.columns[col].name, self.renderer, text = col) column.add_attribute(self.renderer, "weight", col + self.nr_columns) column.set_sort_column_id(col) if(col == self.COL_CGROUP): column.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED) column.set_fixed_width(130) try: self.treeview.set_tooltip_column(col) except: # old versions of pygtk2+ doesn't have this signal pass column.set_resizable(True) self.treeview.append_column(column) self.show_kthreads = show_kthreads self.show_uthreads = show_uthreads self.cpus_filtered = cpus_filtered self.refreshing = True