apt: added groups support

This commit is contained in:
Ali Sabil 2007-10-30 21:58:58 +01:00
parent 8d1a499523
commit 7649dcb8ec
2 changed files with 23 additions and 8 deletions

View File

@ -86,7 +86,7 @@ class Package(object):
#if section in ():
# return GROUP_ACCESSIBILITY
if section in ('utils',):
return GROUP_ACCESSORIES
return "accessories"
#if section in ():
# return GROUP_EDUCATION
if section in ('games',):
@ -161,6 +161,13 @@ class Package(object):
return True
return False
def match_group(self, name):
needle = name.strip().lower()
haystack = self.group
if haystack.startswith(needle):
return True
return False
### Helpers ###
def _seek_records(self, use_candidate=True):
if use_candidate:
@ -234,10 +241,9 @@ class PackageKitAptBackend(PackageKitBaseBackend):
Implement the {backend}-search-group functionality
'''
self.allow_interrupt(True)
self.percentage(None)
self.error(ERROR_NOT_SUPPORTED,
"This function is not implemented in this backend")
for package in self._do_search(filters,
lambda pkg: pkg.match_group(key)):
self._emit_package(package)
def search_file(self, filters, key):
'''

View File

@ -32,9 +32,7 @@ backend_get_groups (PkBackend *backend, PkEnumList *elist)
{
g_return_if_fail (backend != NULL);
pk_enum_list_append_multiple (elist,
PK_GROUP_ENUM_ACCESSIBILITY,
PK_GROUP_ENUM_ACCESSORIES,
PK_GROUP_ENUM_EDUCATION,
PK_GROUP_ENUM_GAMES,
PK_GROUP_ENUM_GRAPHICS,
PK_GROUP_ENUM_INTERNET,
@ -154,6 +152,17 @@ backend_search_name (PkBackend *backend, const gchar *filter, const gchar *searc
pk_backend_spawn_helper (backend, "search-name.py", filter, search, NULL);
}
/**
* backend_search_group:
*/
static void
backend_search_group (PkBackend *backend, const gchar *filter, const gchar *search)
{
g_return_if_fail (backend != NULL);
pk_backend_allow_interrupt (backend, TRUE);
pk_backend_spawn_helper (backend, "search-group.py", filter, search, NULL);
}
/**
* backend_update_package:
*/
@ -215,7 +224,7 @@ PK_BACKEND_OPTIONS (
NULL, /* rollback */
backend_search_details, /* search_details */
NULL, /* search_file */
NULL, /* search_group */
backend_search_group, /* search_group */
backend_search_name, /* search_name */
backend_update_package, /* update_package */
backend_update_system, /* update_system */