def update_model(self, apps=None): '''apps is a list to iter pkgname, ''' def do_append(is_installed, pixbuf, pkgname, appname, desc, category): if pkgname in self.to_add or pkgname in self.to_rm: self.append_changed_app(not is_installed, pixbuf, pkgname, appname, desc, category) else: self.append_app(is_installed, pixbuf, pkgname, appname, desc, category) model = self.get_model() model.clear() icon = gtk.icon_theme_get_default() app_parser = AppParser() if not apps: apps = app_parser.keys() for pkgname in apps: category = app_parser.get_category(pkgname) pixbuf = self.get_app_logo(app_parser[pkgname]['logo']) try: package = PackageInfo(pkgname) is_installed = package.check_installed() appname = package.get_name() desc = app_parser.get_summary(pkgname) except KeyError: continue if self.filter == None: do_append(is_installed, pixbuf, pkgname, appname, desc, category) else: if self.filter == category: do_append(is_installed, pixbuf, pkgname, appname, desc, category)
def update_updates(self, pkgs): '''apps is a list to iter pkgname, cates is a dict to find what the category the pkg is ''' model = self.get_model() model.append((None, None, None, None, None, '<span size="large" weight="bold">%s</span>' % _('Available Package Updates'), None, None)) apps = [] updates = [] for pkg in pkgs: if pkg in BUILTIN_APPS: apps.append(pkg) else: updates.append(pkg) for pkgname in apps: pixbuf = get_app_logo(pkgname) package = PackageInfo(pkgname) appname = package.get_name() desc = get_app_describ(pkgname) self.append_app(True, pixbuf, pkgname, appname, desc, 0, 'update') self.to_add.append(pkgname) for pkgname in updates: package = package_worker.get_cache()[pkgname] self.append_update(True, package.name, package.summary)