=== modified file 'restricted-manager' --- old/restricted-manager 2007-03-28 14:53:52 +0000 +++ new/restricted-manager 2007-03-29 11:13:26 +0000 @@ -87,11 +87,7 @@ col3.set_expand(False) col3.pack_start(pixbuf_renderer, False) col3.pack_end(text_renderer, True) - # GTK+ 2.0 doesn't support the "stock_id" property - if gtk.gtk_version[1] < 2: - col3.set_cell_data_func(pixbuf_renderer, self.set_cell_stock_img) - else: - col3.set_attributes(pixbuf_renderer, stock_id=5) + col3.set_attributes(pixbuf_renderer, pixbuf=5) col3.set_attributes(text_renderer, text=6) self.treeview.append_column(col3) @@ -106,34 +102,30 @@ self.dialog.show() - def set_cell_stock_img(self, column, cell, model, iter_): - """Compat with GTK+ 2.0""" - stock = model.get_value(iter_, 5) - stock_img = self.treeview.render_icon(stock, gtk.ICON_SIZE_MENU, None) - cell.set_property('pixbuf', stock_img) - return - def reset_model(self): self.model = gtk.ListStore(gobject.TYPE_PYOBJECT, gobject.TYPE_PYOBJECT, gobject.TYPE_PYOBJECT, - str, bool, str, str) + str, bool, gtk.gdk.Pixbuf, str) + theme = gtk.icon_theme_get_default() handlers = sorted(self.handlers.values(), key=lambda x: x.description) for handler in handlers: is_enabled = handler.is_enabled() is_loaded = handler.is_loaded() if is_enabled != is_loaded: - status = _("Needs computer restart") - stock_id = gtk.STOCK_REFRESH + status, icon = _("Needs computer restart"), "reboot-notifier" elif is_loaded: - status = _("In use") - stock_id = gtk.STOCK_YES + status, icon = _("In use"), gtk.STOCK_YES else: - status = '' - stock_id = gtk.STOCK_NO + status, icon = _("Not in use"), gtk.STOCK_NO + try: + pixbuf = theme.load_icon(icon, 16, gtk.ICON_LOOKUP_USE_BUILTIN) + except: + # do not fail if icon is not found, just create a 1px pixbuf + pixbuf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, True, 8, 1, 1) self.model.append([ handler, is_enabled, is_loaded, - handler.description, is_enabled, stock_id, + handler.description, is_enabled, pixbuf, status ]) self.treeview.set_model(self.model)