diff options
Diffstat (limited to 'addressbook/gui/component')
-rw-r--r-- | addressbook/gui/component/addressbook.c | 26 | ||||
-rw-r--r-- | addressbook/gui/component/addressbook.h | 4 | ||||
-rw-r--r-- | addressbook/gui/component/e-address-popup.c | 37 |
3 files changed, 26 insertions, 41 deletions
diff --git a/addressbook/gui/component/addressbook.c b/addressbook/gui/component/addressbook.c index 9ab5d87320..5baaa05733 100644 --- a/addressbook/gui/component/addressbook.c +++ b/addressbook/gui/component/addressbook.c @@ -413,8 +413,7 @@ control_activate_cb (BonoboControl *control, book = e_book_new (); uri_data = e_book_expand_uri (view->uri); - if (! addressbook_load_uri (book, uri_data, book_open_cb, view)) - printf ("error calling load_uri!\n"); + addressbook_load_uri (book, uri_data, book_open_cb, view); g_free(uri_data); } @@ -729,39 +728,27 @@ load_uri_cb (EBook *book, EBookStatus status, gpointer closure) g_free (load_uri_data); } -gboolean +void addressbook_load_uri (EBook *book, const char *uri, EBookCallback cb, gpointer closure) { LoadUriData *load_uri_data = g_new0 (LoadUriData, 1); - gboolean rv; load_uri_data->cb = cb; load_uri_data->closure = closure; - rv = e_book_load_uri (book, uri, load_uri_cb, load_uri_data); - - if (!rv) - g_free (load_uri_data); - - return rv; + e_book_load_uri (book, uri, load_uri_cb, load_uri_data); } -gboolean +void addressbook_load_default_book (EBook *book, EBookCallback cb, gpointer closure) { LoadUriData *load_uri_data = g_new (LoadUriData, 1); - gboolean rv; load_uri_data->cb = cb; load_uri_data->closure = closure; - rv = e_book_load_default_book (book, load_uri_cb, load_uri_data); - - if (!rv) - g_free (load_uri_data); - - return rv; + e_book_load_default_book (book, load_uri_cb, load_uri_data); } static void @@ -796,8 +783,7 @@ set_prop (BonoboPropertyBag *bag, uri_data = e_book_expand_uri (view->uri); - if (! addressbook_load_uri (book, uri_data, book_open_cb, view)) - printf ("error calling load_uri!\n"); + addressbook_load_uri (book, uri_data, book_open_cb, view); g_free(uri_data); diff --git a/addressbook/gui/component/addressbook.h b/addressbook/gui/component/addressbook.h index 3524f24b0c..3d4bba5187 100644 --- a/addressbook/gui/component/addressbook.h +++ b/addressbook/gui/component/addressbook.h @@ -9,8 +9,8 @@ /* use this instead of e_book_load_uri everywhere where you want the authentication to be handled for you. */ -gboolean addressbook_load_uri (EBook *book, const char *uri, EBookCallback cb, gpointer closure); -gboolean addressbook_load_default_book (EBook *book, EBookCallback open_response, gpointer closure); +void addressbook_load_uri (EBook *book, const char *uri, EBookCallback cb, gpointer closure); +void addressbook_load_default_book (EBook *book, EBookCallback open_response, gpointer closure); BonoboControl *addressbook_new_control (void); diff --git a/addressbook/gui/component/e-address-popup.c b/addressbook/gui/component/e-address-popup.c index 13baf28eec..39c51a3720 100644 --- a/addressbook/gui/component/e-address-popup.c +++ b/addressbook/gui/component/e-address-popup.c @@ -389,10 +389,11 @@ email_table_save_card_cb (EBook *book, EBookStatus status, gpointer closure) { ECard *card = E_CARD (closure); - if (book) { + if (status == E_BOOK_STATUS_SUCCESS) { e_book_commit_card (book, card, NULL, NULL); - g_object_unref (book); } + if (book) + g_object_unref (book); g_object_unref (card); } @@ -406,10 +407,7 @@ add_card_idle_cb (gpointer closure) EBook *book; book = e_book_new (); - if (!addressbook_load_default_book (book, email_table_save_card_cb, closure)) { - g_object_unref (book); - email_table_save_card_cb (NULL, E_BOOK_STATUS_OTHER_ERROR, closure); - } + addressbook_load_default_book (book, email_table_save_card_cb, closure); return 0; } @@ -956,11 +954,16 @@ emit_event (EAddressPopup *pop, const char *event) static void contact_editor_cb (EBook *book, EBookStatus status, gpointer closure) { - EAddressPopup *pop = E_ADDRESS_POPUP (closure); - EContactEditor *ce = e_addressbook_show_contact_editor (book, pop->card, FALSE, TRUE); - e_address_popup_cleanup (pop); - emit_event (pop, "Destroy"); - e_contact_editor_raise (ce); + if (status == E_BOOK_STATUS_SUCCESS) { + EAddressPopup *pop = E_ADDRESS_POPUP (closure); + EContactEditor *ce = e_addressbook_show_contact_editor (book, pop->card, FALSE, TRUE); + e_address_popup_cleanup (pop); + emit_event (pop, "Destroy"); + e_contact_editor_raise (ce); + } + + if (book) + g_object_unref (book); } static void @@ -970,10 +973,7 @@ edit_contact_info_cb (EAddressPopup *pop) emit_event (pop, "Hide"); book = e_book_new (); - if (!addressbook_load_default_book (book, contact_editor_cb, pop)) { - g_object_unref (book); - contact_editor_cb (NULL, E_BOOK_STATUS_OTHER_ERROR, pop); - } + addressbook_load_default_book (book, contact_editor_cb, pop); } static void @@ -1156,6 +1156,8 @@ start_query (EBook *book, EBookStatus status, gpointer closure) if (status != E_BOOK_STATUS_SUCCESS) { e_address_popup_no_matches (pop); + if (book) + g_object_unref (book); return; } @@ -1184,10 +1186,7 @@ e_address_popup_query (EAddressPopup *pop) book = e_book_new (); g_object_ref (pop); - if (!addressbook_load_default_book (book, start_query, pop)) { - g_object_unref (book); - start_query (NULL, E_BOOK_STATUS_OTHER_ERROR, pop); - } + addressbook_load_default_book (book, start_query, pop); } /** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **/ |