diff options
author | Dan Winship <danw@src.gnome.org> | 2002-08-13 09:01:58 +0800 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2002-08-13 09:01:58 +0800 |
commit | 79a4d5a123547b18d9e513e3fb02eb4bf9999451 (patch) | |
tree | d39e75dfefd2a666e8df9239de37eb0206e53a6b /addressbook/gui/component/addressbook-component.c | |
parent | 0e39518ba7b473c1524e47a0b2618b503e116326 (diff) | |
download | gsoc2013-evolution-79a4d5a123547b18d9e513e3fb02eb4bf9999451.tar.gz gsoc2013-evolution-79a4d5a123547b18d9e513e3fb02eb4bf9999451.tar.zst gsoc2013-evolution-79a4d5a123547b18d9e513e3fb02eb4bf9999451.zip |
If invoked from a non-contact folder, add the contact to the default
* gui/component/addressbook-component.c (user_create_new_item_cb):
If invoked from a non-contact folder, add the contact to the
default contact folder, not the local one. If invoked from a
contact folder, don't append "addressbook.db" to the URI, let
ebook do the right thing. Fixes #28327 and #28325.
* backend/idl/addressbook.idl (CallStatus): Add NoSuchBook.
(Initially intended as part of a fix for #28327, but the other
changes make it so the error code never ends up getting used any
more, but it's still good to have.)
* gui/widgets/e-addressbook-util.c (e_addressbook_error_dialog):
Handle NO_SUCH_BOOK.
* backend/ebook/e-book-types.h (EBookStatus): Add
E_BOOK_STATUS_NO_SUCH_BOOK.
* backend/ebook/e-book-listener.c
(e_book_listener_convert_status): add case for NoSuchBook.
* backend/ebook/e-book-util.c (e_book_load_local_address_book):
Kill this. Nothing should ever explicitly load the local
addressbook.
(e_book_use_default_book): Replaces e_book_use_local_address_book,
using the default book instead.
(e_book_default_book_open): Fall back to local contact folder on
E_BOOK_STATUS_NO_SUCH_BOOK too.
(e_book_query_address_default): Use default book, not local.
* gui/component/e-address-widget.c (query_idle_fn): Use the
default book, not the local book.
* gui/component/select-names/e-select-names-popup.c
(edit_contact_info_cb): Use the default book, not the local book.
* backend/ebook/e-destination.c (e_destination_cardify): Use the
default book, not the local book.
(e_destination_touch): Query the default book, not the local book.
* backend/ebook/e-card-compare.c (e_card_locate_match,
e_card_locate_match_full): Use the default book, not the local
book.
svn path=/trunk/; revision=17764
Diffstat (limited to 'addressbook/gui/component/addressbook-component.c')
-rw-r--r-- | addressbook/gui/component/addressbook-component.c | 25 |
1 files changed, 4 insertions, 21 deletions
diff --git a/addressbook/gui/component/addressbook-component.c b/addressbook/gui/component/addressbook-component.c index 1ef6b1675c..e60c383cb9 100644 --- a/addressbook/gui/component/addressbook-component.c +++ b/addressbook/gui/component/addressbook-component.c @@ -395,7 +395,7 @@ owner_unset_cb (EvolutionShellComponent *shell_component, /* FIXME We should perhaps take the time to figure out if the book is editable. */ static void -local_addressbook_cb (EBook *book, gpointer closure) +new_item_cb (EBook *book, gpointer closure) { gboolean is_list = GPOINTER_TO_INT (closure); if (book == NULL) @@ -407,15 +407,6 @@ local_addressbook_cb (EBook *book, gpointer closure) } static void -nonlocal_addressbook_cb (EBook *book, EBookStatus status, gpointer closure) -{ - if (status == E_BOOK_STATUS_SUCCESS) - local_addressbook_cb (book, closure); - else - local_addressbook_cb (NULL, closure); -} - -static void user_create_new_item_cb (EvolutionShellComponent *shell_component, const char *id, const char *parent_folder_physical_uri, @@ -432,18 +423,10 @@ user_create_new_item_cb (EvolutionShellComponent *shell_component, return; } if (IS_CONTACT_TYPE (parent_folder_type)) { - EBook *book; - gchar *uri; - - book = e_book_new (); - uri = g_strdup_printf ("%s/addressbook.db", parent_folder_physical_uri); - - if (addressbook_load_uri (book, uri, nonlocal_addressbook_cb, GINT_TO_POINTER (is_contact_list)) == 0) - g_warning ("Couldn't load addressbook %s", uri); - - g_free (uri); + e_book_use_address_book_by_uri (parent_folder_physical_uri, + new_item_cb, GINT_TO_POINTER (is_contact_list)); } else { - e_book_use_local_address_book (local_addressbook_cb, GINT_TO_POINTER (is_contact_list)); + e_book_use_default_book (new_item_cb, GINT_TO_POINTER (is_contact_list)); } } |