From 7728e7dbd26fd0140cf493a190c424105902fd7c Mon Sep 17 00:00:00 2001 From: Christopher James Lahey Date: Wed, 27 Jun 2001 00:22:02 +0000 Subject: Added category searching to the file backend. 2001-06-26 Christopher James Lahey * backend/pas/pas-backend-file.c (compare_category): Added category searching to the file backend. * gui/component/addressbook.c (addressbook_query_changed): Added category searching to the search bar. svn path=/trunk/; revision=10520 --- addressbook/backend/pas/pas-backend-file.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'addressbook/backend/pas/pas-backend-file.c') diff --git a/addressbook/backend/pas/pas-backend-file.c b/addressbook/backend/pas/pas-backend-file.c index a3f708ce79..e9086aa1ff 100644 --- a/addressbook/backend/pas/pas-backend-file.c +++ b/addressbook/backend/pas/pas-backend-file.c @@ -268,6 +268,30 @@ compare_address (ECardSimple *card, const char *str, return FALSE; } +static gboolean +compare_category (ECardSimple *card, const char *str, + char *(*compare)(const char*, const char*)) +{ + EList *categories; + EIterator *iterator; + ECard *ecard; + gtk_object_get (GTK_OBJECT (card), + "card", &ecard, + NULL); + gtk_object_get (GTK_OBJECT (ecard), + "category_list", &categories, + NULL); + + for (iterator = e_list_get_iterator(categories); e_iterator_is_valid (iterator); e_iterator_next (iterator)) { + const char *category = e_iterator_get (iterator); + + if (compare(category, str)) + return TRUE; + } + + return FALSE; +} + static struct prop_info { ECardSimpleField field_id; const char *query_prop; @@ -304,6 +328,7 @@ static struct prop_info { LIST_PROP ( "email", "email", compare_email ), LIST_PROP ( "phone", "phone", compare_phone ), LIST_PROP ( "address", "address", compare_address ), + LIST_PROP ( "category", "category", compare_category ), }; static int num_prop_infos = sizeof(prop_info_table) / sizeof(prop_info_table[0]); -- cgit v1.2.3