diff --git a/backends/pisi/helpers/pisiBackend.py b/backends/pisi/helpers/pisiBackend.py index c16548e35..c91aa9ce1 100644 --- a/backends/pisi/helpers/pisiBackend.py +++ b/backends/pisi/helpers/pisiBackend.py @@ -40,7 +40,7 @@ class PackageKitPisiBackend(PackageKitBaseBackend): version = "%s-%s" % (package.version, package.release) return version - def __get_package(self, package): + def __get_package(self, package, filters = None): """ Returns package object suitable for other methods """ if self.installdb.has_package(package): status = INFO_INSTALLED @@ -51,6 +51,13 @@ class PackageKitPisiBackend(PackageKitBaseBackend): else: self.error(ERROR_INTERNAL_ERROR, "Package was not found") + filterlist = filters.split(';') + + if FILTER_INSTALLED in filterlist and status != INFO_INSTALLED: + return + if FILTER_NON_INSTALLED in filterlist and status != INFO_AVAILABLE: + return + version = self.__get_package_version(pkg) id = self.get_package_id(pkg.name, version, pkg.architecture, "") @@ -238,7 +245,7 @@ class PackageKitPisiBackend(PackageKitBaseBackend): self.allow_interrupt(True); self.percentage(None) - self.__get_package(package) + self.__get_package(package, filters) def search_name(self, filters, package): """ Prints a list of packages contains search term """ @@ -246,7 +253,7 @@ class PackageKitPisiBackend(PackageKitBaseBackend): self.percentage(None) for pkg in pisi.api.search_package([package]): - self.__get_package(pkg) + self.__get_package(pkg, filters) def update(self, package_id): """ Updates given package to its latest version """ diff --git a/backends/pisi/pk-backend-pisi.c b/backends/pisi/pk-backend-pisi.c index 0f7aab042..0859f8093 100644 --- a/backends/pisi/pk-backend-pisi.c +++ b/backends/pisi/pk-backend-pisi.c @@ -23,13 +23,27 @@ #include #include +/** + * backend_get_filters: + */ +static void +backend_get_filters (PkBackend *backend, PkEnumList *elist) +{ + g_return_if_fail (backend != NULL); + pk_enum_list_append_multiple (elist, + /* PK_FILTER_ENUM_GUI, */ + PK_FILTER_ENUM_INSTALLED, + /* PK_FILTER_ENUM_DEVELOPMENT, */ + -1); +} + PK_BACKEND_OPTIONS ( "PiSi", /* description */ "S.Çağlar Onur ", /* author */ NULL, /* initalize */ NULL, /* destroy */ NULL, /* get_groups */ - NULL, /* get_filters */ + backend_get_filters, /* get_filters */ NULL, /* cancel */ pk_backend_python_get_depends, /* get_depends */ pk_backend_python_get_description, /* get_description */ diff --git a/html/pk-faq.html b/html/pk-faq.html index e1f733c3d..603d2f427 100644 --- a/html/pk-faq.html +++ b/html/pk-faq.html @@ -40,7 +40,7 @@ update-package | | X | | X | | X | X | get-depends | | X | | X | | | X | get-requires | X | | | X | | | X | get-description | X | X | X | X | | X | X | -get-files | | X | | X | | | | +get-files | | X | | X | | | X | get-update-detail | | | | | | | | get-repo-list | | X | | X | X | X | X | repo-enable | | X | | X | | X | |