aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRodrigo Moya <rodrigo@gnome-db.org>2011-10-14 00:11:35 +0800
committerRodrigo Moya <rodrigo@gnome-db.org>2011-10-14 00:11:35 +0800
commitc7a08c227238b93100c9ccc0a853f2dc68b2e96d (patch)
treed1912a7067463865d37c6e275e7646a811979859
parentff8b1650ead99d8507469ff1fcf4805d6451ba93 (diff)
downloadgsoc2013-evolution-c7a08c227238b93100c9ccc0a853f2dc68b2e96d.tar.gz
gsoc2013-evolution-c7a08c227238b93100c9ccc0a853f2dc68b2e96d.tar.zst
gsoc2013-evolution-c7a08c227238b93100c9ccc0a853f2dc68b2e96d.zip
Migrate most of the composer to GSettings
-rw-r--r--composer/e-composer-private.c43
-rw-r--r--composer/e-composer-private.h9
-rw-r--r--composer/e-msg-composer.c73
3 files changed, 33 insertions, 92 deletions
diff --git a/composer/e-composer-private.c b/composer/e-composer-private.c
index bd7b46a4ee..467d5c6731 100644
--- a/composer/e-composer-private.c
+++ b/composer/e-composer-private.c
@@ -216,9 +216,6 @@ e_composer_private_constructed (EMsgComposer *composer)
priv->extra_hdr_names = g_ptr_array_new ();
priv->extra_hdr_values = g_ptr_array_new ();
- priv->gconf_bridge_binding_ids = g_array_new (
- FALSE, FALSE, sizeof (guint));
-
priv->inline_images = g_hash_table_new_full (
g_str_hash, g_str_equal,
(GDestroyNotify) g_free,
@@ -499,24 +496,6 @@ e_composer_private_constructed (EMsgComposer *composer)
void
e_composer_private_dispose (EMsgComposer *composer)
{
- if (composer->priv->gconf_bridge_binding_ids) {
- GConfBridge *bridge;
- GArray *array;
- guint binding_id;
-
- bridge = gconf_bridge_get ();
- array = composer->priv->gconf_bridge_binding_ids;
-
- while (array->len > 0) {
- binding_id = g_array_index (array, guint, 0);
- gconf_bridge_unbind (bridge, binding_id);
- g_array_remove_index_fast (array, 0);
- }
-
- g_array_free (composer->priv->gconf_bridge_binding_ids, TRUE);
- composer->priv->gconf_bridge_binding_ids = NULL;
- }
-
if (composer->priv->shell != NULL) {
g_object_remove_weak_pointer (
G_OBJECT (composer->priv->shell),
@@ -631,36 +610,26 @@ e_composer_find_data_file (const gchar *basename)
gchar *
e_composer_get_default_charset (void)
{
- GConfClient *client;
+ GSettings *settings;
gchar *charset;
- GError *error = NULL;
- client = gconf_client_get_default ();
+ settings = g_settings_new ("org.gnome.evolution.mail");
- charset = gconf_client_get_string (
- client, COMPOSER_GCONF_CHARSET_KEY, &error);
- if (error != NULL) {
- g_warning ("%s", error->message);
- g_clear_error (&error);
- }
+ charset = g_settings_get_string (settings, "composer-charset");
/* See what charset the mailer is using.
- * XXX We should not have to know where this lives in GConf.
+ * XXX We should not have to know where this lives in GSettings.
* Need a mail_config_get_default_charset() that does this. */
if (!charset || charset[0] == '\0') {
g_free (charset);
- charset = gconf_client_get_string (
- client, MAIL_GCONF_CHARSET_KEY, NULL);
+ charset = g_settings_get_string (settings, "charset");
if (charset != NULL && *charset == '\0') {
g_free (charset);
charset = NULL;
- } else if (error != NULL) {
- g_warning ("%s", error->message);
- g_clear_error (&error);
}
}
- g_object_unref (client);
+ g_object_unref (settings);
if (charset == NULL)
charset = g_strdup (camel_iconv_locale_charset ());
diff --git a/composer/e-composer-private.h b/composer/e-composer-private.h
index 69e3169de3..040f8d8d10 100644
--- a/composer/e-composer-private.h
+++ b/composer/e-composer-private.h
@@ -30,9 +30,6 @@
#include <glib/gstdio.h>
#include <glib/gi18n-lib.h>
-#include <gconf/gconf.h>
-#include <gconf/gconf-client.h>
-
#include <libebackend/e-extensible.h>
#include "e-composer-actions.h"
@@ -45,7 +42,6 @@
#include "e-util/e-plugin-ui.h"
#include "e-util/e-selection.h"
#include "e-util/e-util.h"
-#include "e-util/gconf-bridge.h"
#include "widgets/misc/e-activity-bar.h"
#include "widgets/misc/e-alert-bar.h"
#include "widgets/misc/e-attachment.h"
@@ -71,8 +67,6 @@
/* Composer configuration keys */
#define COMPOSER_GCONF_PREFIX \
MAIL_GCONF_PREFIX "/composer"
-#define COMPOSER_GCONF_CHARSET_KEY \
- COMPOSER_GCONF_PREFIX "/charset"
#define COMPOSER_GCONF_INLINE_SPELLING_KEY \
COMPOSER_GCONF_PREFIX "/inline_spelling"
#define COMPOSER_GCONF_MAGIC_LINKS_KEY \
@@ -85,8 +79,6 @@
COMPOSER_GCONF_PREFIX "/top_signature"
#define COMPOSER_GCONF_SEND_HTML_KEY \
COMPOSER_GCONF_PREFIX "/send_html"
-#define COMPOSER_GCONF_SPELL_LANGUAGES_KEY \
- COMPOSER_GCONF_PREFIX "/spell_languages"
#define COMPOSER_GCONF_WINDOW_PREFIX \
COMPOSER_GCONF_PREFIX "/window"
@@ -121,7 +113,6 @@ struct _EMsgComposerPrivate {
GPtrArray *extra_hdr_names;
GPtrArray *extra_hdr_values;
- GArray *gconf_bridge_binding_ids;
GtkWidget *focused_entry;
diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c
index 82bca68514..3b7208d85f 100644
--- a/composer/e-msg-composer.c
+++ b/composer/e-msg-composer.c
@@ -2110,13 +2110,14 @@ msg_composer_constructed (GObject *object)
/* Restore Persistent State */
- array = composer->priv->gconf_bridge_binding_ids;
+ /* FIXME: need to bind this to GSettings */
+ /* array = composer->priv->gconf_bridge_binding_ids; */
- binding_id = gconf_bridge_bind_window (
- gconf_bridge_get (),
- COMPOSER_GCONF_WINDOW_PREFIX,
- GTK_WINDOW (composer), TRUE, FALSE);
- g_array_append_val (array, binding_id);
+ /* binding_id = gconf_bridge_bind_window ( */
+ /* gconf_bridge_get (), */
+ /* COMPOSER_GCONF_WINDOW_PREFIX, */
+ /* GTK_WINDOW (composer), TRUE, FALSE); */
+ /* g_array_append_val (array, binding_id); */
/* Honor User Preferences */
@@ -5032,21 +5033,19 @@ e_msg_composer_get_attachment_view (EMsgComposer *composer)
GList *
e_load_spell_languages (void)
{
- GConfClient *client;
+ GSettings *settings;
GList *spell_languages = NULL;
- GSList *list;
- const gchar *key;
- GError *error = NULL;
+ gchar **strv;
+ gint i;
- /* Ask GConf for a list of spell check language codes. */
- client = gconf_client_get_default ();
- key = COMPOSER_GCONF_SPELL_LANGUAGES_KEY;
- list = gconf_client_get_list (client, key, GCONF_VALUE_STRING, &error);
- g_object_unref (client);
+ /* Ask GSettings for a list of spell check language codes. */
+ settings = g_settings_new ("org.gnome.evolution.mail");
+ strv = g_settings_get_strv (settings, "composer-spell-languages");
+ g_object_unref (settings);
/* Convert the codes to spell language structs. */
- while (list != NULL) {
- gchar *language_code = list->data;
+ for (i = 0; strv[i] != NULL; i++) {
+ gchar *language_code = strv[i];
const GtkhtmlSpellLanguage *language;
language = gtkhtml_spell_language_lookup (language_code);
@@ -5054,13 +5053,12 @@ e_load_spell_languages (void)
spell_languages = g_list_prepend (
spell_languages, (gpointer) language);
- list = g_slist_delete_link (list, list);
g_free (language_code);
}
spell_languages = g_list_reverse (spell_languages);
- /* Pick a default spell language if GConf came back empty. */
+ /* Pick a default spell language if it came back empty. */
if (spell_languages == NULL) {
const GtkhtmlSpellLanguage *language;
@@ -5069,54 +5067,37 @@ e_load_spell_languages (void)
if (language) {
spell_languages = g_list_prepend (
spell_languages, (gpointer) language);
-
- /* Don't overwrite the stored spell check language
- * codes if there was a problem retrieving them. */
- if (error == NULL)
- e_save_spell_languages (spell_languages);
}
}
- if (error != NULL) {
- g_warning ("%s", error->message);
- g_error_free (error);
- }
-
return spell_languages;
}
void
e_save_spell_languages (GList *spell_languages)
{
- GConfClient *client;
- GSList *list = NULL;
- const gchar *key;
- GError *error = NULL;
+ GSettings *settings;
+ GPtrArray *lang_array;
/* Build a list of spell check language codes. */
+ lang_array = g_ptr_array_new ();
while (spell_languages != NULL) {
const GtkhtmlSpellLanguage *language;
const gchar *language_code;
language = spell_languages->data;
language_code = gtkhtml_spell_language_get_code (language);
- list = g_slist_prepend (list, (gpointer) language_code);
+ g_ptr_array_add (lang_array, language_code);
spell_languages = g_list_next (spell_languages);
}
- list = g_slist_reverse (list);
-
- /* Save the language codes to GConf. */
- client = gconf_client_get_default ();
- key = COMPOSER_GCONF_SPELL_LANGUAGES_KEY;
- gconf_client_set_list (client, key, GCONF_VALUE_STRING, list, &error);
- g_object_unref (client);
+ g_ptr_array_add (lang_array, NULL);
- g_slist_free (list);
+ /* Save the language codes to GSettings. */
+ settings = g_settings_new ("org.gnome.evolution.mail");
+ g_settings_set_strv (settings, "composer-spell-languages", (const char * const *) lang_array->pdata);
+ g_object_unref (settings);
- if (error != NULL) {
- g_warning ("%s", error->message);
- g_error_free (error);
- }
+ g_ptr_array_free (lang_array, TRUE);
}