diff options
-rw-r--r-- | addressbook/ChangeLog | 19 | ||||
-rw-r--r-- | addressbook/backend/ebook/e-book.c | 1 | ||||
-rw-r--r-- | addressbook/backend/ebook/e-card.c | 2 | ||||
-rw-r--r-- | addressbook/backend/pas/pas-backend-ldap.c | 10 | ||||
-rw-r--r-- | addressbook/gui/component/select-names/e-select-names-completion.c | 64 |
5 files changed, 44 insertions, 52 deletions
diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog index ff172698a0..6544bddc37 100644 --- a/addressbook/ChangeLog +++ b/addressbook/ChangeLog @@ -1,5 +1,24 @@ 2003-02-09 Chris Toshok <toshok@ximian.com> + * gui/component/select-names/e-select-names-completion.c + (sexp_initials): gone. + (match_initials): gone. + (book_query_sexp): remove the primary handling. + (book_query_score): same. + + * backend/ebook/e-card.c (e_card_set_property): + g_value_get_pointer => g_value_get_object for "category_list". + + * backend/ebook/e-book.c (struct _EBookPrivate): add a comment. + + * backend/pas/pas-backend-ldap.c (func_beginswith): performance at + the cost of a tiny bit of correctness. If the ldap server doesn't + support evolutionPerson don't query on fileAs, use sn (since + that's effectively what gets used in the display when fileAs isn't + supported.) + +2003-02-09 Chris Toshok <toshok@ximian.com> + * gui/component/select-names/e-select-names-completion.c: lots of changes here. should be a big performance gain. god i hope this is finally right. diff --git a/addressbook/backend/ebook/e-book.c b/addressbook/backend/ebook/e-book.c index 7cdca25d95..dd7b433ff8 100644 --- a/addressbook/backend/ebook/e-book.c +++ b/addressbook/backend/ebook/e-book.c @@ -35,6 +35,7 @@ struct _EBookPrivate { GList *book_factories; GList *iter; + /* cached capabilites */ char *cap; gboolean cap_queried; diff --git a/addressbook/backend/ebook/e-card.c b/addressbook/backend/ebook/e-card.c index 38ee1ce224..70add9591d 100644 --- a/addressbook/backend/ebook/e-card.c +++ b/addressbook/backend/ebook/e-card.c @@ -2106,7 +2106,7 @@ e_card_set_property (GObject *object, case PROP_CATEGORY_LIST: if (card->categories) g_object_unref(card->categories); - card->categories = E_LIST(g_value_get_pointer(value)); + card->categories = E_LIST(g_value_get_object(value)); if (card->categories) g_object_ref(card->categories); break; diff --git a/addressbook/backend/pas/pas-backend-ldap.c b/addressbook/backend/pas/pas-backend-ldap.c index 3e0db0fca5..2c919c788b 100644 --- a/addressbook/backend/pas/pas-backend-ldap.c +++ b/addressbook/backend/pas/pas-backend-ldap.c @@ -2614,10 +2614,12 @@ func_beginswith(struct _ESExp *f, int argc, struct _ESExpResult **argv, void *da str, str)); } else if (!strcmp (ldap_attr, "fileAs")) { - ldap_data->list = g_list_prepend(ldap_data->list, - g_strdup_printf( - "(|(fileAs=%s*)(&(!(fileAs=*))(sn=%s*)))", - str, str)); + if (ldap_data->bl->priv->evolutionPersonSupported) + ldap_data->list = g_list_prepend(ldap_data->list, + g_strdup_printf("(fileAs=%s*)", str)); + else + ldap_data->list = g_list_prepend(ldap_data->list, + g_strdup_printf("(sn=%s*)", str)); } else { ldap_data->list = g_list_prepend(ldap_data->list, diff --git a/addressbook/gui/component/select-names/e-select-names-completion.c b/addressbook/gui/component/select-names/e-select-names-completion.c index 29ef1febf7..c679b51233 100644 --- a/addressbook/gui/component/select-names/e-select-names-completion.c +++ b/addressbook/gui/component/select-names/e-select-names-completion.c @@ -67,7 +67,6 @@ struct _ESelectNamesCompletionPrivate { gchar *query_text; gboolean match_contact_lists; - gboolean primary_only; gint minimum_query_length; }; @@ -434,36 +433,17 @@ match_file_as (ESelectNamesCompletion *comp, EDestination *dest) return match; } -/* - * Initials Query - */ - -static gchar * -sexp_initials (ESelectNamesCompletion *comp) -{ - return NULL; -} - -static ECompletionMatch * -match_initials (ESelectNamesCompletion *comp, EDestination *dest) -{ - return NULL; -} - - typedef struct _BookQuery BookQuery; struct _BookQuery { - gboolean primary; BookQuerySExp builder; BookQueryMatchTester tester; }; static BookQuery book_queries[] = { - { TRUE, sexp_nickname, match_nickname}, - { TRUE, sexp_email, match_email }, - { TRUE, sexp_name, match_name }, - { TRUE, sexp_file_as, match_file_as }, - { FALSE, sexp_initials, match_initials } + { sexp_nickname, match_nickname}, + { sexp_email, match_email }, + { sexp_name, match_name }, + { sexp_file_as, match_file_as }, }; static gint book_query_count = sizeof (book_queries) / sizeof (BookQuery); @@ -473,7 +453,7 @@ static gint book_query_count = sizeof (book_queries) / sizeof (BookQuery); static gchar * book_query_sexp (ESelectNamesCompletion *comp) { - gint i, j, count = 0; + gint i, j; gchar **queryv, *query; g_return_val_if_fail (comp && E_IS_SELECT_NAMES_COMPLETION (comp), NULL); @@ -481,16 +461,8 @@ book_query_sexp (ESelectNamesCompletion *comp) if (! (comp->priv->query_text && *comp->priv->query_text)) return NULL; - if (comp->priv->primary_only) { - for (i=0; i<book_query_count; ++i) - if (book_queries[i].primary) - ++count; - } else { - count = book_query_count; - } - - queryv = g_new0 (gchar *, count+1); - for (i=0, j=0; i<count; ++i) { + queryv = g_new0 (gchar *, book_query_count+1); + for (i=0, j=0; i<book_query_count; ++i) { queryv[j] = book_queries[i].builder (comp); if (queryv[j]) ++j; @@ -507,7 +479,7 @@ book_query_sexp (ESelectNamesCompletion *comp) g_free (tmp); } - for (i=0; i<count; ++i) + for (i=0; i<book_query_count; ++i) g_free (queryv[i]); g_free (queryv); @@ -534,18 +506,16 @@ book_query_score (ESelectNamesCompletion *comp, EDestination *dest) ECompletionMatch *this_match = NULL; - if (book_queries[i].primary || !comp->priv->primary_only) { - if (book_queries[i].tester && e_destination_get_card (dest)) { - this_match = book_queries[i].tester (comp, dest); - } + if (book_queries[i].tester && e_destination_get_card (dest)) { + this_match = book_queries[i].tester (comp, dest); + } - if (this_match) { - if (best_match == NULL || this_match->score > best_match->score) { - e_completion_match_unref (best_match); - best_match = this_match; - } else { - e_completion_match_unref (this_match); - } + if (this_match) { + if (best_match == NULL || this_match->score > best_match->score) { + e_completion_match_unref (best_match); + best_match = this_match; + } else { + e_completion_match_unref (this_match); } } } |