aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRadek Doulik <rodo@ximian.com>2003-06-25 04:26:03 +0800
committerRadek Doulik <rodo@src.gnome.org>2003-06-25 04:26:03 +0800
commit17c8fd95e525378804943fcf1c7fbb9a817a1794 (patch)
tree2da2b4ff9c3d08c38870695967d46d98c089c1e3
parentc4e7d8528e6eb51ce474cda61e05f98800f3ba89 (diff)
downloadgsoc2013-evolution-17c8fd95e525378804943fcf1c7fbb9a817a1794.tar.gz
gsoc2013-evolution-17c8fd95e525378804943fcf1c7fbb9a817a1794.tar.zst
gsoc2013-evolution-17c8fd95e525378804943fcf1c7fbb9a817a1794.zip
use spell preferences at new location
2003-06-24 Radek Doulik <rodo@ximian.com> * mail-composer-prefs.c: use spell preferences at new location * mail-config.c: copy old spell settings from /GNOME/Spell * evolution-mail.schemas: added spell color default + migration flag svn path=/trunk/; revision=21526
-rw-r--r--mail/ChangeLog9
-rw-r--r--mail/evolution-mail.schemas28
-rw-r--r--mail/mail-composer-prefs.c39
-rw-r--r--mail/mail-config.c63
4 files changed, 110 insertions, 29 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index 5208c99006..578830aa7b 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,3 +1,12 @@
+2003-06-24 Radek Doulik <rodo@ximian.com>
+
+ * mail-composer-prefs.c: use spell preferences at new location
+
+ * mail-config.c: copy old spell settings from /GNOME/Spell
+
+ * evolution-mail.schemas: added spell color default + migration
+ flag
+
2003-06-23 Dan Winship <danw@ximian.com>
* message-list.c (on_selection_changed_cmd): Save the idle_id
diff --git a/mail/evolution-mail.schemas b/mail/evolution-mail.schemas
index 9dcec79ee9..aed41f631f 100644
--- a/mail/evolution-mail.schemas
+++ b/mail/evolution-mail.schemas
@@ -143,6 +143,34 @@
</locale>
</schema>
+ <schema>
+ <key>/schemas/apps/evolution/mail/composer/spell_copied_from_old_location</key>
+ <applyto>/apps/evolution/mail/composer/spell_copied_from_old_location</applyto>
+ <owner>evolution-mail</owner>
+ <type>bool</type>
+ <default>false</default>
+ <locale name="C">
+ <short>spell preferences are copied from an old location</short>
+ <long>
+ spell preferences are copied from an old location (/GNOME/Spell)
+ </long>
+ </locale>
+ </schema>
+
+ <schema>
+ <key>/schemas/apps/evolution/mail/composer/spell_error_color</key>
+ <applyto>/apps/evolution/mail/composer/spell_error_color</applyto>
+ <owner>evolution-mail</owner>
+ <type>string</type>
+ <default>#ff0000</default>
+ <locale name="C">
+ <short>spell error color</short>
+ <long>
+ color for marking misspelled words.
+ </long>
+ </locale>
+ </schema>
+
<!-- Display Settings -->
<schema>
diff --git a/mail/mail-composer-prefs.c b/mail/mail-composer-prefs.c
index cdbeb491f0..cf59aa5fbd 100644
--- a/mail/mail-composer-prefs.c
+++ b/mail/mail-composer-prefs.c
@@ -565,11 +565,6 @@ spell_get_ui (MailComposerPrefs *prefs)
prefs->language_str = spell_get_language_str (prefs);
}
-#define GET(t,x,prop,f,c) \
- val = gconf_client_get_without_default (prefs->gconf, GNOME_SPELL_GCONF_DIR x, NULL); \
- if (val) { f; prop = c (gconf_value_get_ ## t (val)); \
- gconf_value_free (val); }
-
static void
spell_save_orig (MailComposerPrefs *prefs)
{
@@ -590,6 +585,7 @@ static void
spell_load_values (MailComposerPrefs *prefs)
{
GConfValue *val;
+ gchar *str_color;
char *def_lang;
def_lang = g_strdup (e_iconv_locale_language ());
@@ -598,13 +594,15 @@ spell_load_values (MailComposerPrefs *prefs)
prefs->spell_error_color.red = 0xffff;
prefs->spell_error_color.green = 0;
prefs->spell_error_color.blue = 0;
-
- GET (int, "/spell_error_color_red", prefs->spell_error_color.red, (void)0, (int));
- GET (int, "/spell_error_color_green", prefs->spell_error_color.green, (void)0, (int));
- GET (int, "/spell_error_color_blue", prefs->spell_error_color.blue, (void)0, (int));
- GET (string, "/language", prefs->language_str, g_free (prefs->language_str), g_strdup);
-
- if (prefs->language_str == NULL)
+
+ str_color = gconf_client_get_string (prefs->gconf, "/apps/evolution/mail/composer/spell_error_color", NULL);
+ gdk_color_parse (str_color, &prefs->spell_error_color);
+
+ val = gconf_client_get_without_default (prefs->gconf, "/apps/evolution/mail/composer/spell_language", NULL);
+ if (val) {
+ prefs->language_str = g_strdup (gconf_value_get_string (val));
+ gconf_value_free (val);
+ } else
prefs->language_str = g_strdup (def_lang);
spell_save_orig (prefs);
@@ -612,23 +610,22 @@ spell_load_values (MailComposerPrefs *prefs)
g_free (def_lang);
}
-#define SET(t,x,prop) \
- gconf_client_set_ ## t (prefs->gconf, GNOME_SPELL_GCONF_DIR x, prop, NULL);
-
#define STR_EQUAL(str1, str2) ((str1 == NULL && str2 == NULL) || (str1 && str2 && !strcmp (str1, str2)))
static void
spell_save_values (MailComposerPrefs *prefs, gboolean force)
{
if (force || !gdk_color_equal (&prefs->spell_error_color, &prefs->spell_error_color_orig)) {
- SET (int, "/spell_error_color_red", prefs->spell_error_color.red);
- SET (int, "/spell_error_color_green", prefs->spell_error_color.green);
- SET (int, "/spell_error_color_blue", prefs->spell_error_color.blue);
+ gchar *str_color = g_strdup_printf ("#%02x%02x%02x",
+ prefs->spell_error_color.red >> 8,
+ prefs->spell_error_color.green >> 8,
+ prefs->spell_error_color.blue >> 8);
+ gconf_client_set_string (prefs->gconf, "/apps/evolution/mail/composer/spell_error_color", str_color, NULL);
+ g_free (str_color);
}
- if (force || !STR_EQUAL (prefs->language_str, prefs->language_str_orig)) {
- SET (string, "/language", prefs->language_str ? prefs->language_str : "");
- }
+ if (force || !STR_EQUAL (prefs->language_str, prefs->language_str_orig))
+ gconf_client_set_string (prefs->gconf, "/apps/evolution/mail/composer/spell_language", prefs->language_str ? prefs->language_str : "", NULL);
gconf_client_suggest_sync (prefs->gconf, NULL);
}
diff --git a/mail/mail-config.c b/mail/mail-config.c
index 15b5ebd331..428338f5ab 100644
--- a/mail/mail-config.c
+++ b/mail/mail-config.c
@@ -427,14 +427,62 @@ config_cache_mime_types (void)
}
static void
+config_spell_ensure_copy ()
+{
+ gboolean copied = gconf_client_get_bool (config->gconf, "/apps/evolution/mail/composer/spell_copied_from_old_location", NULL);
+
+ if (!copied) {
+ GConfValue *val;
+ GdkColor color;
+ gchar *language;
+#define GET(t,x,prop,c) \
+ val = gconf_client_get_without_default (config->gconf, "/GNOME/Spell/" x, NULL); \
+ if (val) { prop = c (gconf_value_get_ ## t (val)); \
+ gconf_value_free (val); }
+
+ GET (int, "spell_error_color_red", color.red, (int));
+ if (val) {
+ gchar *str_color;
+
+ GET (int, "spell_error_color_green", color.green, (int));
+ GET (int, "spell_error_color_blue", color.blue, (int));
+ str_color = g_strdup_printf ("#%02x%02x%02x", 0xff & (color.red >> 8), 0xff & (color.green >> 8), 0xff & (color.blue >> 8));
+ gconf_client_set_string (config->gconf, "/apps/evolution/mail/composer/spell_error_color", str_color, NULL);
+ g_free (str_color);
+ }
+
+ GET (string, "language", language, g_strdup);
+ if (val) {
+ gconf_client_set_string (config->gconf, "/apps/evolution/mail/composer/spell_language", language, NULL);
+ g_free (language);
+ }
+
+ gconf_client_set_bool (config->gconf, "/apps/evolution/mail/composer/spell_copied_from_old_location", TRUE, NULL);
+ gconf_client_suggest_sync (config->gconf, NULL);
+ }
+}
+
+static void
+config_spell_get_error_color (GdkColor *color)
+{
+ gchar *str_color;
+
+ config_spell_ensure_copy ();
+
+ str_color = gconf_client_get_string (config->gconf, "/apps/evolution/mail/composer/spell_error_color", NULL);
+ gdk_color_parse (str_color, color);
+ g_free (str_color);
+}
+
+static void
config_write_style (void)
{
+ GdkColor spell_error_color;
char *filename;
FILE *rc;
gboolean custom;
char *fix_font;
char *var_font;
- gint red, green, blue;
/*
* This is the wrong way to get the path but it needs to
@@ -458,13 +506,11 @@ config_write_style (void)
var_font = gconf_client_get_string (config->gconf, "/apps/evolution/mail/display/fonts/variable", NULL);
fix_font = gconf_client_get_string (config->gconf, "/apps/evolution/mail/display/fonts/monospace", NULL);
- red = gconf_client_get_int (config->gconf, "/GNOME/Spell/spell_error_color_red", NULL);
- green = gconf_client_get_int (config->gconf, "/GNOME/Spell/spell_error_color_green", NULL);
- blue = gconf_client_get_int (config->gconf, "/GNOME/Spell/spell_error_color_blue", NULL);
+ config_spell_get_error_color (&spell_error_color);
fprintf (rc, "style \"evolution-mail-custom-fonts\" {\n");
fprintf (rc, " GtkHTML::spell_error_color = \"#%02x%02x%02x\"\n",
- red >> 8, green >> 8, blue >> 8);
+ 0xff & (spell_error_color.red >> 8), 0xff & (spell_error_color.green >> 8), 0xff & (spell_error_color.blue >> 8));
if (custom && var_font && fix_font) {
fprintf (rc,
@@ -528,13 +574,14 @@ mail_config_init (void)
gtk_rc_parse (filename);
g_free (filename);
- gconf_client_add_dir (config->gconf, "/apps/evolution/mail/display/fonts",
+ gconf_client_add_dir (config->gconf, "/apps/evolution/mail/display/fonts",
GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
- gconf_client_add_dir (config->gconf, "/GNOME/Spell",
+ gconf_client_add_dir (config->gconf, "/apps/evolution/mail/composer/",
GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
+ config_spell_ensure_copy ();
config->font_notify_id = gconf_client_notify_add (config->gconf, "/apps/evolution/mail/display/fonts",
gconf_style_changed, NULL, NULL, NULL);
- config->spell_notify_id = gconf_client_notify_add (config->gconf, "/GNOME/Spell",
+ config->spell_notify_id = gconf_client_notify_add (config->gconf, "/apps/evolution/mail/composer/",
gconf_style_changed, NULL, NULL, NULL);
gconf_client_add_dir (config->gconf, "/apps/evolution/mail/labels",