aboutsummaryrefslogtreecommitdiffstats
path: root/modules/addressbook
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2013-03-03 23:03:50 +0800
committerMatthew Barnes <mbarnes@redhat.com>2013-03-17 20:49:12 +0800
commit23b89997658a8eb8bd2e1d9d20234a6978880aae (patch)
tree752c37bbf0b9d7c3bbf36d6a155533525c307f4a /modules/addressbook
parent09b7686c4a2a359aa8f747719932ccbf12c3103b (diff)
downloadgsoc2013-evolution-23b89997658a8eb8bd2e1d9d20234a6978880aae.tar.gz
gsoc2013-evolution-23b89997658a8eb8bd2e1d9d20234a6978880aae.tar.zst
gsoc2013-evolution-23b89997658a8eb8bd2e1d9d20234a6978880aae.zip
Remove EBookShellSettings.
EShellSettings predates GSettings and is no longer necessary. GSettings allows binding GObject properties to GSettings keys, with optional mapping functions. That fulfills the purpose of EShellSettings.
Diffstat (limited to 'modules/addressbook')
-rw-r--r--modules/addressbook/Makefile.am2
-rw-r--r--modules/addressbook/autocompletion-config.c24
-rw-r--r--modules/addressbook/e-book-shell-backend.c3
-rw-r--r--modules/addressbook/e-book-shell-settings.c47
-rw-r--r--modules/addressbook/e-book-shell-settings.h33
-rw-r--r--modules/addressbook/e-book-shell-sidebar.c56
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