def __fill_liststore (self): applets = bonobo.activation.query ("has_all (repo_ids, ['IDL:Bonobo/Control:1.0', 'IDL:GNOME/Vertigo/PanelAppletShell:1.0'])") languages = get_language_names () for applet in applets: name = None icon = None # Workaround: bonobo_server_info_prop_lookup () is not wrapped for prop in applet.props: bestname = -1 if prop.name[:5] == "name-" and prop.name[5:] in languages: if bestname > languages.index (prop.name[5:]) or bestname == -1: name = prop.v.value_string elif prop.name == "name" and bestname == -1: name = prop.v.value_string elif prop.name == "panel:icon": icon = prop.v.value_string iter = self.liststore.append () if name == None: name = applet.iid else: name = name + " (" + applet.iid + ")" self.liststore.set (iter, self.COLUMN_IID, applet.iid, self.COLUMN_NAME, name, self.COLUMN_ICON_NAME, icon, self.COLUMN_ICON, icons.load_icon (self.icon_theme, icon))
def update_icon (model, path, iter, data): if model[iter][self.COLUMN_ICON_NAME] != "": model[iter][self.COLUMN_ICON] = icons.load_icon (self.icon_theme, model[iter][self.COLUMN_ICON_NAME])