aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/backend/ebook/e-book-util.c
diff options
context:
space:
mode:
authorJon Trowbridge <trow@ximian.com>2001-08-10 02:07:35 +0800
committerJon Trowbridge <trow@src.gnome.org>2001-08-10 02:07:35 +0800
commit07fbf1a035bfa00d99c6d00dfd04cba7c1c093c3 (patch)
treec2174fcd24dd8bba39f47b3ab2ca88aa1865eb5b /addressbook/backend/ebook/e-book-util.c
parent1844cac7c104dd820ade14493d87937a2c580264 (diff)
downloadgsoc2013-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.c50
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.
*/