From a35d86361dbbf29c3b7da3a481c77c6a876ae8f4 Mon Sep 17 00:00:00 2001 From: Jon Trowbridge Date: Mon, 16 Apr 2001 20:28:13 +0000 Subject: Added. 2001-04-16 Jon Trowbridge * backend/ebook/e-destination.c (e_destination_get_name): Added. * gui/component/select-names/e-select-names.c (real_add_address_cb): Use e_select_names_model_append. It's nicer. * gui/component/select-names/e-select-names-model.c (e_select_names_model_append): Added. * gui/component/select-names/e-select-names-completion.c (book_query_process_card_list): Filter out completion matches that don't have an associated e-mail address. (book_query_score): Give a bonus to the primary address, so that it always comes up first in the completion results. * gui/component/e-address-popup.c (e_address_popup_refresh_names): Convert utf8 strings into gtk strings before displaying. svn path=/trunk/; revision=9390 --- addressbook/backend/ebook/e-destination.c | 33 +++++++++++++++++++++++++++---- addressbook/backend/ebook/e-destination.h | 2 ++ 2 files changed, 31 insertions(+), 4 deletions(-) (limited to 'addressbook/backend/ebook') diff --git a/addressbook/backend/ebook/e-destination.c b/addressbook/backend/ebook/e-destination.c index a44ce3ddc8..e6fdb3ee43 100644 --- a/addressbook/backend/ebook/e-destination.c +++ b/addressbook/backend/ebook/e-destination.c @@ -36,6 +36,7 @@ struct _EDestinationPrivate { ECard *card; gint card_email_num; + gchar *name; gchar *string; gchar *string_email; gchar *string_email_verbose; @@ -147,10 +148,12 @@ e_destination_clear_card (EDestination *dest) static void e_destination_clear_strings (EDestination *dest) { + g_free (dest->priv->name); g_free (dest->priv->string); g_free (dest->priv->string_email); g_free (dest->priv->string_email_verbose); + dest->priv->name = NULL; dest->priv->string = NULL; dest->priv->string_email = NULL; dest->priv->string_email_verbose = NULL; @@ -244,6 +247,28 @@ e_destination_get_strlen (const EDestination *dest) return str ? strlen (str) : 0; } +const gchar * +e_destination_get_name (const EDestination *dest) +{ + struct _EDestinationPrivate *priv; + g_return_val_if_fail (dest && E_IS_DESTINATION (dest), NULL); + + priv = (struct _EDestinationPrivate *)dest->priv; /* cast out const */ + + if (priv->name == NULL) { + + if (priv->card) { + + priv->name = e_card_name_to_string (priv->card->name); + + } + + } + + return priv->name; + +} + const gchar * e_destination_get_email (const EDestination *dest) { @@ -296,10 +321,10 @@ e_destination_get_email_verbose (const EDestination *dest) const gchar *email = e_destination_get_email (dest); if (priv->card) { - - priv->string_email_verbose = g_strdup_printf ("%s <%s>", - e_card_name_to_string (priv->card->name), - email); + gchar *n = e_card_name_to_string (priv->card->name); + priv->string_email_verbose = g_strdup_printf ("%s <%s>", n, email); + g_free (n); + } else { return email; diff --git a/addressbook/backend/ebook/e-destination.h b/addressbook/backend/ebook/e-destination.h index d0af6b0d23..3c6de6e316 100644 --- a/addressbook/backend/ebook/e-destination.h +++ b/addressbook/backend/ebook/e-destination.h @@ -67,6 +67,8 @@ gint e_destination_get_email_num (const EDestination *); const gchar *e_destination_get_string (const EDestination *); gint e_destination_get_strlen (const EDestination *); /* a convenience function... */ +const gchar *e_destination_get_name (const EDestination *); + const gchar *e_destination_get_email (const EDestination *); const gchar *e_destination_get_email_verbose (const EDestination *); -- cgit v1.2.3