diff options
author | Jon Trowbridge <trow@ximian.com> | 2001-12-17 10:00:59 +0800 |
---|---|---|
committer | Jon Trowbridge <trow@src.gnome.org> | 2001-12-17 10:00:59 +0800 |
commit | c2c7bc59520288e69939727fd768d848328bdcad (patch) | |
tree | caf1bf06d742c6c6279f63d2817cc78b08139915 /addressbook/gui/component/select-names/e-select-names-completion.c | |
parent | fc59dc8c6f4429daf21f4251ae7f281784b54c55 (diff) | |
download | gsoc2013-evolution-c2c7bc59520288e69939727fd768d848328bdcad.tar.gz gsoc2013-evolution-c2c7bc59520288e69939727fd768d848328bdcad.tar.zst gsoc2013-evolution-c2c7bc59520288e69939727fd768d848328bdcad.zip |
Added 'cache_complete' flag to ESelectNamesCompletionPrivate.
2001-12-16 Jon Trowbridge <trow@ximian.com>
* gui/component/select-names/e-select-names-completion.c: Added
'cache_complete' flag to ESelectNamesCompletionPrivate.
(e_select_names_completion_seq_complete_cb): Set cache_complete
to TRUE if our query wasn't interrupted.
(e_select_names_completion_start_query): Set cache_complete to
FALSE at the beginning of a potentially-cached query.
(e_select_names_completion_do_query): Only reuse cached cards
if cache_complete is TRUE. (Fixes bug #10241)
svn path=/trunk/; revision=15096
Diffstat (limited to 'addressbook/gui/component/select-names/e-select-names-completion.c')
-rw-r--r-- | addressbook/gui/component/select-names/e-select-names-completion.c | 10 |
1 files changed, 9 insertions, 1 deletions
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 8e7843f149..eb15c4f232 100644 --- a/addressbook/gui/component/select-names/e-select-names-completion.c +++ b/addressbook/gui/component/select-names/e-select-names-completion.c @@ -67,6 +67,7 @@ struct _ESelectNamesCompletionPrivate { gchar *cached_query_text; GList *cached_cards; + gboolean cache_complete; gboolean match_contact_lists; gboolean primary_only; @@ -300,7 +301,7 @@ match_name (ESelectNamesCompletion *comp, EDestination *dest) if (match <= E_CARD_MATCH_NONE) return NULL; - + score = match_len * 3; /* three points per match character */ #if 0 @@ -897,6 +898,11 @@ e_select_names_completion_seq_complete_cb (EBookView *book_view, gpointer user_d return; } + if (comp->priv->cached_query_text + && !comp->priv->cache_complete + && !strcmp (comp->priv->cached_query_text, comp->priv->query_text)) + comp->priv->cache_complete = TRUE; + g_free (comp->priv->query_text); comp->priv->query_text = NULL; @@ -983,6 +989,7 @@ e_select_names_completion_start_query (ESelectNamesCompletion *comp, const gchar g_free (comp->priv->cached_query_text); comp->priv->cached_query_text = g_strdup (query_text); + comp->priv->cache_complete = FALSE; sexp = book_query_sexp (comp); if (sexp && *sexp) { @@ -1046,6 +1053,7 @@ e_select_names_completion_do_query (ESelectNamesCompletion *comp, const gchar *q fprintf (out, "cached: %s\n", comp->priv->cached_query_text); can_reuse_cached_cards = (comp->priv->cached_query_text + && comp->priv->cache_complete && (!comp->priv->can_fail_due_to_too_many_hits || comp->priv->cached_cards != NULL) && (strlen (comp->priv->cached_query_text) <= strlen (clean)) && !g_utf8_strncasecmp (comp->priv->cached_query_text, clean, strlen (comp->priv->cached_query_text))); |