From c31d93ccb23c2c7ba2faa82668d0a45a7bddf369 Mon Sep 17 00:00:00 2001 From: Devashish Sharma Date: Wed, 25 Jan 2006 10:24:35 +0000 Subject: Added menu items for addressbook operations. svn path=/trunk/; revision=31307 --- addressbook/gui/widgets/e-addressbook-view.c | 44 +++++++++++++++++++++------- addressbook/gui/widgets/e-addressbook-view.h | 6 ++-- addressbook/gui/widgets/eab-gui-util.c | 10 +++---- 3 files changed, 41 insertions(+), 19 deletions(-) (limited to 'addressbook/gui/widgets') diff --git a/addressbook/gui/widgets/e-addressbook-view.c b/addressbook/gui/widgets/e-addressbook-view.c index 0e05d76192..e7db20275d 100644 --- a/addressbook/gui/widgets/e-addressbook-view.c +++ b/addressbook/gui/widgets/e-addressbook-view.c @@ -900,7 +900,7 @@ copy_to_folder (EPopup *ep, EPopupItem *pitem, void *data) { ContactAndBook *contact_and_book = data; - eab_view_copy_to_folder (contact_and_book->view); + eab_view_copy_to_folder (contact_and_book->view, FALSE); } static void @@ -908,7 +908,7 @@ move_to_folder (EPopup *ep, EPopupItem *pitem, void *data) { ContactAndBook *contact_and_book = data; - eab_view_move_to_folder (contact_and_book->view); + eab_view_move_to_folder (contact_and_book->view, FALSE); } static void @@ -2030,9 +2030,23 @@ get_selected_contacts (EABView *view) } void -eab_view_save_as (EABView *view) +eab_view_save_as (EABView *view, gboolean all) { - GList *list = get_selected_contacts (view); + GList *list = NULL; + EBook *book ; + + g_object_get(view->model, + "book", &book, + NULL); + + if (all) { + EBookQuery *query = e_book_query_any_field_contains(""); + e_book_get_contacts(book, query, &list, NULL); + e_book_query_unref(query); + } + else { + list = get_selected_contacts(view); + } if (list) eab_contact_list_save (_("Save as VCard..."), list, NULL); e_free_object_list(list); @@ -2113,16 +2127,24 @@ eab_view_stop(EABView *view) } static void -view_transfer_contacts (EABView *view, gboolean delete_from_source) +view_transfer_contacts (EABView *view, gboolean delete_from_source, gboolean all) { EBook *book; - GList *contacts; + GList *contacts = NULL; GtkWindow *parent_window; g_object_get(view->model, "book", &book, NULL); - contacts = get_selected_contacts (view); + + if (all) { + EBookQuery *query = e_book_query_any_field_contains(""); + e_book_get_contacts(book, query, &contacts, NULL); + e_book_query_unref(query); + } + else { + contacts = get_selected_contacts (view); + } parent_window = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (view))); eab_transfer_contacts (book, contacts, delete_from_source, parent_window); @@ -2130,15 +2152,15 @@ view_transfer_contacts (EABView *view, gboolean delete_from_source) } void -eab_view_copy_to_folder (EABView *view) +eab_view_copy_to_folder (EABView *view, gboolean all) { - view_transfer_contacts (view, FALSE); + view_transfer_contacts (view, FALSE, all); } void -eab_view_move_to_folder (EABView *view) +eab_view_move_to_folder (EABView *view, gboolean all) { - view_transfer_contacts (view, TRUE); + view_transfer_contacts (view, TRUE, all); } diff --git a/addressbook/gui/widgets/e-addressbook-view.h b/addressbook/gui/widgets/e-addressbook-view.h index 08371ae009..28fe6831bd 100644 --- a/addressbook/gui/widgets/e-addressbook-view.h +++ b/addressbook/gui/widgets/e-addressbook-view.h @@ -126,7 +126,7 @@ void eab_view_discard_menus (EABView *view); RuleContext *eab_view_peek_search_context (EABView *view); FilterRule *eab_view_peek_search_rule (EABView *view); -void eab_view_save_as (EABView *view); +void eab_view_save_as (EABView *view, gboolean all); void eab_view_view (EABView *view); void eab_view_send (EABView *view); void eab_view_send_to (EABView *view); @@ -139,8 +139,8 @@ void eab_view_paste (EABView *view); void eab_view_select_all (EABView *view); void eab_view_show_all (EABView *view); void eab_view_stop (EABView *view); -void eab_view_copy_to_folder (EABView *view); -void eab_view_move_to_folder (EABView *view); +void eab_view_copy_to_folder (EABView *view, gboolean all); +void eab_view_move_to_folder (EABView *view, gboolean all); gboolean eab_view_can_create (EABView *view); gboolean eab_view_can_print (EABView *view); diff --git a/addressbook/gui/widgets/eab-gui-util.c b/addressbook/gui/widgets/eab-gui-util.c index 5b54acaf61..416e613ecc 100644 --- a/addressbook/gui/widgets/eab-gui-util.c +++ b/addressbook/gui/widgets/eab-gui-util.c @@ -454,16 +454,16 @@ eab_select_source (const gchar *title, const gchar *message, const gchar *select if (!e_book_get_addressbooks (&source_list, NULL)) return NULL; - dialog = gtk_dialog_new_with_buttons (title, parent, + dialog = gtk_dialog_new_with_buttons (_("Select Address Book"), parent, GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, NULL); - gtk_window_set_default_size (GTK_WINDOW (dialog), 200, 350); + gtk_window_set_default_size (GTK_WINDOW (dialog), 350, 300); cancel_button = gtk_dialog_add_button (GTK_DIALOG (dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL); ok_button = gtk_dialog_add_button (GTK_DIALOG (dialog), GTK_STOCK_OK, GTK_RESPONSE_ACCEPT); gtk_widget_set_sensitive (ok_button, FALSE); - label = gtk_label_new (message); + //label = gtk_label_new (message); selector = e_source_selector_new (source_list); e_source_selector_show_selection (E_SOURCE_SELECTOR (selector), FALSE); @@ -480,7 +480,7 @@ eab_select_source (const gchar *title, const gchar *message, const gchar *select gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window), GTK_SHADOW_IN); gtk_container_add (GTK_CONTAINER (scrolled_window), selector); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), label, FALSE, FALSE, 4); + //gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), label, FALSE, FALSE, 4); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), scrolled_window, TRUE, TRUE, 4); gtk_widget_show_all (dialog); @@ -763,7 +763,7 @@ eab_transfer_contacts (EBook *source, GList *contacts /* adopted */, gboolean de desc = _("Copy contacts to"); } - destination_source = eab_select_source (desc, _("Select target addressbook."), + destination_source = eab_select_source (desc, NULL, last_uid, parent_window); if (!destination_source) -- cgit v1.2.3