diff options
author | Jon Trowbridge <trow@ximian.com> | 2001-08-10 02:07:35 +0800 |
---|---|---|
committer | Jon Trowbridge <trow@src.gnome.org> | 2001-08-10 02:07:35 +0800 |
commit | 07fbf1a035bfa00d99c6d00dfd04cba7c1c093c3 (patch) | |
tree | c2174fcd24dd8bba39f47b3ab2ca88aa1865eb5b /addressbook/backend/ebook/e-book-util.c | |
parent | 1844cac7c104dd820ade14493d87937a2c580264 (diff) | |
download | gsoc2013-evolution-07fbf1a035bfa00d99c6d00dfd04cba7c1c093c3.tar gsoc2013-evolution-07fbf1a035bfa00d99c6d00dfd04cba7c1c093c3.tar.gz gsoc2013-evolution-07fbf1a035bfa00d99c6d00dfd04cba7c1c093c3.tar.bz2 gsoc2013-evolution-07fbf1a035bfa00d99c6d00dfd04cba7c1c093c3.tar.lz gsoc2013-evolution-07fbf1a035bfa00d99c6d00dfd04cba7c1c093c3.tar.xz gsoc2013-evolution-07fbf1a035bfa00d99c6d00dfd04cba7c1c093c3.tar.zst gsoc2013-evolution-07fbf1a035bfa00d99c6d00dfd04cba7c1c093c3.zip |
Hook up some magic to (basically) cardify an entry on focus-out. (What we
2001-08-09 Jon Trowbridge <trow@ximian.com>
* gui/component/select-names/e-select-names-manager.c
(e_select_names_manager_create_entry): Hook up some magic to
(basically) cardify an entry on focus-out. (What we do is actually
more complicated than that.)
* gui/component/select-names/e-select-names-bonobo.c
(entry_set_property_fn): After we set an entry's text, try to
cardify it. We need to do this so that (for example) reply
e-mails get properly cardified.
* gui/component/select-names/e-select-names-model.c
(e_select_names_model_duplicate): Use e_select_names_model_append,
rather than manipulating lists directly.
(e_select_names_model_insert): Connect "changed" signal proxy for
added EDestination.
(e_select_names_model_append): Ditto.
(e_select_names_model_replace): Ditto, and disconnect signals for
replaced EDestination.
(e_select_names_model_delete): Ditto on the disconnection.
(e_select_names_model_delete_all): Ditto.
(e_select_names_model_cardify): Added. Try to cardify a specified
EDestination.
(e_select_names_model_cancel_cardify): Added. Cancel the pending
cardification of a single EDestination.
(e_select_names_model_cardify_all): Added. Cardify all of the
EDestinations in the model.
(e_select_names_model_cancel_cardify_all): Added. Cancel's any
and all pending cardifications.
* backend/ebook/e-destination.c (e_destination_class_init): Added
"changed" and "cardified" signals.
(e_destination_freeze): Added (static).
(e_destination_thaw): Added (static).
(e_destination_clear_card): Reset allow_cardify and
cannot_cardify, cancel any pending cardifications, and emit the
"changed" signal.
(e_destination_clear_strings): Emit the "changed" signal.
(e_destination_clear): Do freeze/thaw to prevent multiple signal
emissions.
(e_destination_set_card): Check that the card we are setting is
not equal to the current card, and emit the "changed" signal if we
are actually changing.
(e_destination_set_card_uri): Emit "changed" signal, if necessary.
(e_destination_set_name): Emit "changed" signal, if necessary.
(e_destination_set_email): Emit "changed" signal, if necessary.
(e_destination_set_html_mail_pref): Emit "changed" signal, if
necessary.
(use_card_cb): If we've just loaded/set the ECard, emit the
"changed" signal.
(e_destination_set_raw): Emit "changed" signal, if necessary.
(e_destination_allow_cardification): Added.
(e_destination_set_allow_cardification): Added.
(e_destination_cardify): Added. Tries to automatically convert
a string-based EDestination to one based on an ECard.
(e_destination_cardify_delayed): Added. Cardifies in a timeout.
(e_destination_cancel_cardify): Added. Cancels any pending
cardifications.
(e_destination_xml_decode): Added freeze/thaw.
* backend/ebook/e-book-util.c (e_book_nickname_query): Added. A
canned simple query for nicknames.
* backend/ebook/e-card.c (e_card_email_find_number): Added. Given
a card and an string containing an email address, return the index
number of the address inside of the card, or -1 if the address is
not found.
svn path=/trunk/; revision=11837
Diffstat (limited to 'addressbook/backend/ebook/e-book-util.c')
-rw-r--r-- | addressbook/backend/ebook/e-book-util.c | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/addressbook/backend/ebook/e-book-util.c b/addressbook/backend/ebook/e-book-util.c index d10c5612f1..c65c70dfde 100644 --- a/addressbook/backend/ebook/e-book-util.c +++ b/addressbook/backend/ebook/e-book-util.c @@ -508,6 +508,56 @@ e_book_name_and_email_query (EBook *book, } /* + * Simple nickname query + */ + +typedef struct _NicknameQueryInfo NicknameQueryInfo; +struct _NicknameQueryInfo { + gchar *nickname; + EBookSimpleQueryCallback cb; + gpointer closure; +}; + +static void +nickname_cb (EBook *book, EBookSimpleQueryStatus status, const GList *cards, gpointer closure) +{ + NicknameQueryInfo *info = closure; + + if (info->cb) + info->cb (book, status, cards, info->closure); + + g_free (info->nickname); + g_free (info); +} + +guint +e_book_nickname_query (EBook *book, + const char *nickname, + EBookSimpleQueryCallback cb, + gpointer closure) +{ + NicknameQueryInfo *info; + gchar *query; + guint retval; + + g_return_val_if_fail (E_IS_BOOK (book), 0); + g_return_val_if_fail (nickname && *nickname, 0); + + info = g_new0 (NicknameQueryInfo, 1); + info->nickname = g_strdup (nickname); + info->cb = cb; + info->closure = closure; + + query = g_strdup_printf ("(is \"nickname\" \"%s\")", info->nickname); + + retval = e_book_simple_query (book, query, nickname_cb, info); + + g_free (query); + + return retval; +} + +/* * Convenience routine to check for addresses in the local address book. */ |