Example #1
0
    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)
Example #2
0
	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)
Example #3
0
    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
Example #4
0
	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