Beispiel #1
0
    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)
Beispiel #2
0
    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)