diff options
-rw-r--r-- | modules/addressbook/Makefile.am | 2 | ||||
-rw-r--r-- | modules/addressbook/autocompletion-config.c | 24 | ||||
-rw-r--r-- | modules/addressbook/e-book-shell-backend.c | 3 | ||||
-rw-r--r-- | modules/addressbook/e-book-shell-settings.c | 47 | ||||
-rw-r--r-- | modules/addressbook/e-book-shell-settings.h | 33 | ||||
-rw-r--r-- | modules/addressbook/e-book-shell-sidebar.c | 56 |
6 files changed, 58 insertions, 107 deletions
diff --git a/modules/addressbook/Makefile.am b/modules/addressbook/Makefile.am index 2accc37bef..be923f7193 100644 --- a/modules/addressbook/Makefile.am +++ b/modules/addressbook/Makefile.am @@ -36,8 +36,6 @@ module_addressbook_la_SOURCES = \ e-book-shell-content.h \ e-book-shell-migrate.c \ e-book-shell-migrate.h \ - e-book-shell-settings.c \ - e-book-shell-settings.h \ e-book-shell-sidebar.c \ e-book-shell-sidebar.h \ e-book-shell-view.c \ diff --git a/modules/addressbook/autocompletion-config.c b/modules/addressbook/autocompletion-config.c index 49aca305df..ebccce1ee2 100644 --- a/modules/addressbook/autocompletion-config.c +++ b/modules/addressbook/autocompletion-config.c @@ -65,7 +65,7 @@ add_section (GtkWidget *container, GtkWidget * autocompletion_config_new (EPreferencesWindow *window) { - EShellSettings *shell_settings; + GSettings *settings; ESourceRegistry *registry; GtkWidget *container; GtkWidget *itembox; @@ -74,11 +74,9 @@ autocompletion_config_new (EPreferencesWindow *window) EShell *shell; shell = e_preferences_window_get_shell (window); - - g_return_val_if_fail (E_IS_SHELL (shell), NULL); - registry = e_shell_get_registry (shell); - shell_settings = e_shell_get_shell_settings (shell); + + settings = g_settings_new ("org.gnome.evolution.addressbook"); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12); gtk_widget_show (vbox); @@ -96,11 +94,10 @@ autocompletion_config_new (EPreferencesWindow *window) widget = gtk_check_button_new_with_mnemonic ( _("_Format address according to standard of its destination country")); - g_object_bind_property ( - shell_settings, "enable-address-formatting", + g_settings_bind ( + settings, "address-formatting", widget, "active", - G_BINDING_BIDIRECTIONAL | - G_BINDING_SYNC_CREATE); + G_SETTINGS_BIND_DEFAULT); gtk_box_pack_start (GTK_BOX (itembox), widget, FALSE, FALSE, 0); gtk_widget_show (widget); @@ -108,11 +105,10 @@ autocompletion_config_new (EPreferencesWindow *window) widget = gtk_check_button_new_with_mnemonic ( _("Always _show address of the autocompleted contact")); - g_object_bind_property ( - shell_settings, "book-completion-show-address", + g_settings_bind ( + settings, "completion-show-address", widget, "active", - G_BINDING_BIDIRECTIONAL | - G_BINDING_SYNC_CREATE); + G_SETTINGS_BIND_DEFAULT); gtk_box_pack_start (GTK_BOX (itembox), widget, FALSE, FALSE, 0); gtk_widget_show (widget); @@ -131,5 +127,7 @@ autocompletion_config_new (EPreferencesWindow *window) gtk_container_add (GTK_CONTAINER (container), widget); gtk_widget_show (widget); + g_object_unref (settings); + return vbox; } diff --git a/modules/addressbook/e-book-shell-backend.c b/modules/addressbook/e-book-shell-backend.c index 8d309a8395..bfa19826ef 100644 --- a/modules/addressbook/e-book-shell-backend.c +++ b/modules/addressbook/e-book-shell-backend.c @@ -43,7 +43,6 @@ #include "e-book-shell-content.h" #include "e-book-shell-migrate.h" -#include "e-book-shell-settings.h" #include "e-book-shell-view.h" #ifdef ENABLE_SMIME @@ -473,8 +472,6 @@ book_shell_backend_constructed (GObject *object) G_CALLBACK (book_shell_backend_window_added_cb), shell_backend); - e_book_shell_backend_init_settings (shell); - /* Initialize preferences after the main loop starts so * that all EPlugins and EPluginHooks are loaded first. */ g_idle_add ((GSourceFunc) book_shell_backend_init_preferences, shell); diff --git a/modules/addressbook/e-book-shell-settings.c b/modules/addressbook/e-book-shell-settings.c deleted file mode 100644 index 22e40a6485..0000000000 --- a/modules/addressbook/e-book-shell-settings.c +++ /dev/null @@ -1,47 +0,0 @@ -/* - * e-book-shell-settings.c - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with the program; if not, see <http://www.gnu.org/licenses/> - * - * - * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) - * - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include "e-book-shell-settings.h" - -#define ADDRESSBOOK_SCHEMA "org.gnome.evolution.addressbook" - -void -e_book_shell_backend_init_settings (EShell *shell) -{ - e_shell_settings_install_property_for_key ( - "book-completion-show-address", - ADDRESSBOOK_SCHEMA, - "completion-show-address"); - - e_shell_settings_install_property_for_key ( - "book-primary-selection", - ADDRESSBOOK_SCHEMA, - "primary-addressbook"); - - e_shell_settings_install_property_for_key ( - "enable-address-formatting", - ADDRESSBOOK_SCHEMA, - "address-formatting"); -} diff --git a/modules/addressbook/e-book-shell-settings.h b/modules/addressbook/e-book-shell-settings.h deleted file mode 100644 index 9e05de41df..0000000000 --- a/modules/addressbook/e-book-shell-settings.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * e-book-shell-settings.h - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with the program; if not, see <http://www.gnu.org/licenses/> - * - * - * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) - * - */ - -#ifndef E_BOOK_SHELL_SETTINGS_H -#define E_BOOK_SHELL_SETTINGS_H - -#include <shell/e-shell.h> - -G_BEGIN_DECLS - -void e_book_shell_backend_init_settings (EShell *shell); - -G_END_DECLS - -#endif /* E_CAL_SHELL_SETTINGS_H */ diff --git a/modules/addressbook/e-book-shell-sidebar.c b/modules/addressbook/e-book-shell-sidebar.c index 094e825640..d8b25ee3f4 100644 --- a/modules/addressbook/e-book-shell-sidebar.c +++ b/modules/addressbook/e-book-shell-sidebar.c @@ -52,6 +52,43 @@ G_DEFINE_DYNAMIC_TYPE ( e_book_shell_sidebar, E_TYPE_SHELL_SIDEBAR) +static gboolean +book_shell_sidebar_map_uid_to_source (GValue *value, + GVariant *variant, + gpointer user_data) +{ + ESourceRegistry *registry; + ESource *source; + const gchar *uid; + + registry = E_SOURCE_REGISTRY (user_data); + uid = g_variant_get_string (variant, NULL); + source = e_source_registry_ref_source (registry, uid); + g_value_take_object (value, source); + + return (source != NULL); +} + +static GVariant * +book_shell_sidebar_map_source_to_uid (const GValue *value, + const GVariantType *expected_type, + gpointer user_data) +{ + GVariant *variant = NULL; + ESource *source; + + source = g_value_get_object (value); + + if (source != NULL) { + const gchar *uid; + + uid = e_source_get_uid (source); + variant = g_variant_new_string (uid); + } + + return variant; +} + static void book_shell_sidebar_get_property (GObject *object, guint property_id, @@ -93,10 +130,10 @@ book_shell_sidebar_constructed (GObject *object) EShellView *shell_view; EShellBackend *shell_backend; EShellSidebar *shell_sidebar; - EShellSettings *shell_settings; EClientCache *client_cache; GtkContainer *container; GtkWidget *widget; + GSettings *settings; priv = E_BOOK_SHELL_SIDEBAR_GET_PRIVATE (object); @@ -106,9 +143,7 @@ book_shell_sidebar_constructed (GObject *object) shell_sidebar = E_SHELL_SIDEBAR (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); container = GTK_CONTAINER (shell_sidebar); @@ -129,15 +164,18 @@ book_shell_sidebar_constructed (GObject *object) priv->selector = g_object_ref (widget); gtk_widget_show (widget); - g_object_bind_property_full ( - shell_settings, "book-primary-selection", + settings = g_settings_new ("org.gnome.evolution.addressbook"); + + g_settings_bind_with_mapping ( + settings, "primary-addressbook", 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_SETTINGS_BIND_DEFAULT, + book_shell_sidebar_map_uid_to_source, + book_shell_sidebar_map_source_to_uid, e_client_cache_ref_registry (client_cache), (GDestroyNotify) g_object_unref); + + g_object_unref (settings); } static guint32 |