From 7d20b8fd5fd28a90852c737f35cef7ba03a2c116 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Mon, 1 Nov 2010 14:44:23 -0400 Subject: Utilize the new ESourceSelector:primary-selection property. --- .../addressbook/apps_evolution_addressbook.schemas.in | 14 ++++++++++++++ modules/addressbook/e-book-shell-settings.c | 4 ++++ modules/addressbook/e-book-shell-sidebar.c | 19 ++++++++++++++++++- modules/addressbook/e-book-shell-view-actions.c | 4 ++-- modules/addressbook/e-book-shell-view-private.c | 2 +- 5 files changed, 39 insertions(+), 4 deletions(-) (limited to 'modules/addressbook') diff --git a/modules/addressbook/apps_evolution_addressbook.schemas.in b/modules/addressbook/apps_evolution_addressbook.schemas.in index 7ce3902c82..03e6006527 100644 --- a/modules/addressbook/apps_evolution_addressbook.schemas.in +++ b/modules/addressbook/apps_evolution_addressbook.schemas.in @@ -72,6 +72,20 @@ + + /schemas/apps/evolution/addressbook/display/primary_addressbook + /apps/evolution/addressbook/display/primary_addressbook + evolution-addressbook + string + + Primary address book + + The UID of the selected (or "primary") address book in the + sidebar of the "Contacts" view. + + + + /schemas/apps/evolution/addressbook/display/hpane_position /apps/evolution/addressbook/display/hpane_position diff --git a/modules/addressbook/e-book-shell-settings.c b/modules/addressbook/e-book-shell-settings.c index 6d6802a1a2..d8d86b5d82 100644 --- a/modules/addressbook/e-book-shell-settings.c +++ b/modules/addressbook/e-book-shell-settings.c @@ -27,4 +27,8 @@ e_book_shell_backend_init_settings (EShell *shell) e_shell_settings_install_property_for_key ( "book-completion-show-address", "/apps/evolution/addressbook/completion/show_address"); + + e_shell_settings_install_property_for_key ( + "book-primary-selection", + "/apps/evolution/addressbook/display/primary_addressbook"); } diff --git a/modules/addressbook/e-book-shell-sidebar.c b/modules/addressbook/e-book-shell-sidebar.c index 5ff6c2902c..3c61f5e55d 100644 --- a/modules/addressbook/e-book-shell-sidebar.c +++ b/modules/addressbook/e-book-shell-sidebar.c @@ -24,6 +24,8 @@ #include #include +#include + #include "e-book-shell-view.h" #include "e-book-shell-backend.h" #include "e-addressbook-selector.h" @@ -81,9 +83,11 @@ static void book_shell_sidebar_constructed (GObject *object) { EBookShellSidebarPrivate *priv; + EShell *shell; EShellView *shell_view; EShellBackend *shell_backend; EShellSidebar *shell_sidebar; + EShellSettings *shell_settings; ESourceList *source_list; GtkContainer *container; GtkWidget *widget; @@ -97,6 +101,9 @@ book_shell_sidebar_constructed (GObject *object) shell_view = e_shell_sidebar_get_shell_view (shell_sidebar); shell_backend = e_shell_view_get_shell_backend (shell_view); + shell = e_shell_backend_get_shell (shell_backend); + shell_settings = e_shell_get_shell_settings (shell); + source_list = e_book_shell_backend_get_source_list ( E_BOOK_SHELL_BACKEND (shell_backend)); @@ -118,6 +125,16 @@ book_shell_sidebar_constructed (GObject *object) gtk_container_add (GTK_CONTAINER (container), widget); priv->selector = g_object_ref (widget); gtk_widget_show (widget); + + g_object_bind_property_full ( + shell_settings, "book-primary-selection", + widget, "primary-selection", + G_BINDING_BIDIRECTIONAL | + G_BINDING_SYNC_CREATE, + (GBindingTransformFunc) e_binding_transform_uid_to_source, + (GBindingTransformFunc) e_binding_transform_source_to_uid, + g_object_ref (source_list), + (GDestroyNotify) g_object_unref); } static guint32 @@ -132,7 +149,7 @@ book_shell_sidebar_check_state (EShellSidebar *shell_sidebar) book_shell_sidebar = E_BOOK_SHELL_SIDEBAR (shell_sidebar); selector = e_book_shell_sidebar_get_selector (book_shell_sidebar); - source = e_source_selector_peek_primary_selection (selector); + source = e_source_selector_get_primary_selection (selector); if (source != NULL) { const gchar *uri; diff --git a/modules/addressbook/e-book-shell-view-actions.c b/modules/addressbook/e-book-shell-view-actions.c index 9c13e599a7..7dec37968d 100644 --- a/modules/addressbook/e-book-shell-view-actions.c +++ b/modules/addressbook/e-book-shell-view-actions.c @@ -65,7 +65,7 @@ action_address_book_delete_cb (GtkAction *action, book_shell_sidebar = book_shell_view->priv->book_shell_sidebar; selector = e_book_shell_sidebar_get_selector (book_shell_sidebar); - source = e_source_selector_peek_primary_selection (selector); + source = e_source_selector_get_primary_selection (selector); g_return_if_fail (source != NULL); response = e_alert_run_dialog_for_args ( @@ -179,7 +179,7 @@ action_address_book_properties_cb (GtkAction *action, book_shell_sidebar = book_shell_view->priv->book_shell_sidebar; selector = e_book_shell_sidebar_get_selector (book_shell_sidebar); - source = e_source_selector_peek_primary_selection (selector); + source = e_source_selector_get_primary_selection (selector); g_return_if_fail (source != NULL); uid = e_source_peek_uid (source); diff --git a/modules/addressbook/e-book-shell-view-private.c b/modules/addressbook/e-book-shell-view-private.c index 542c4e1178..097e6128d5 100644 --- a/modules/addressbook/e-book-shell-view-private.c +++ b/modules/addressbook/e-book-shell-view-private.c @@ -226,7 +226,7 @@ book_shell_view_activate_selected_source (EBookShellView *book_shell_view, shell_window = e_shell_view_get_shell_window (shell_view); book_shell_content = book_shell_view->priv->book_shell_content; - source = e_source_selector_peek_primary_selection (selector); + source = e_source_selector_get_primary_selection (selector); if (source == NULL) return; -- cgit v1.2.3