From 52ba74cef488e616e07b2ae8f5e93df8a9e31081 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Sat, 5 Apr 2008 15:26:26 +0000 Subject: ** Fixes part of bug #526152, plus some tangential code cleanup. 2008-04-05 Matthew Barnes ** Fixes part of bug #526152, plus some tangential code cleanup. * mail/Makefile.am: Remove all the IDL crud for GnomeSpell. * mail/em-composer-prefs.c: * mail/evolution-mail.schemas.in: * mail/mail-config.c: Define our own GConf keys for active spell checking languages and the underline color for misspelled words, instead of relying on GnomeSpell's GConf keys. The new keys are: /apps/evolution/mail/composer/spell_color (string) /apps/evolution/mail/composer/spell_languages (list of strings) * mail/em-composer-prefs.c: * mail/em-composer-prefs.h: Cleanup the logic a bit to improve readability. * mail/mail-config.c: Cleanup the GConf notification logic: - We don't need the notification IDs for GConf keys we're watching. - Minimize the repetition of GConf keys to reduce the risk of typos. - Reduce the number of notification callback functions. * mail/Spell.idl: Remove this file; we don't use GnomeSpell anymore. * composer/e-msg-composer.c: * composer/e-composer-private.h: Initialize a new composer's spell checking language menu via our new "spell_languages" GConf key. * tools/killev.c (main): No need to continue killing the GnomeSpell Bonobo server. svn path=/trunk/; revision=35322 --- composer/ChangeLog | 9 +++++++++ composer/e-composer-private.h | 2 ++ composer/e-msg-composer.c | 21 +++++++++++++++++++++ 3 files changed, 32 insertions(+) (limited to 'composer') diff --git a/composer/ChangeLog b/composer/ChangeLog index db4dc8b316..9251b54451 100644 --- a/composer/ChangeLog +++ b/composer/ChangeLog @@ -1,3 +1,12 @@ +2008-04-05 Matthew Barnes + + ** Fixes part of bug #526152 + + * e-msg-composer.c: + * e-composer-private.h: + Initialize a new composer's spell checking language menu via + our new "spell_languages" GConf key. + 2008-04-02 Matthew Barnes ** Adapt to GtkHTML's new editor widget. diff --git a/composer/e-composer-private.h b/composer/e-composer-private.h index c0557a4a26..c9f9174394 100644 --- a/composer/e-composer-private.h +++ b/composer/e-composer-private.h @@ -62,6 +62,8 @@ 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_VIEW_BCC_KEY \ COMPOSER_GCONF_PREFIX "/view/Bcc" #define COMPOSER_GCONF_VIEW_CC_KEY \ diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c index fe4af52e8a..5b2d9526a7 100644 --- a/composer/e-msg-composer.c +++ b/composer/e-msg-composer.c @@ -2044,8 +2044,10 @@ msg_composer_constructor (GType type, GObject *object; EMsgComposer *composer; GtkToggleAction *action; + GList *spell_languages = NULL; GConfClient *client; GArray *array; + GSList *list; gboolean active; guint binding_id; @@ -2112,6 +2114,25 @@ msg_composer_constructor (GType type, client, COMPOSER_GCONF_REQUEST_RECEIPT_KEY, NULL); gtk_toggle_action_set_active (action, active); + list = gconf_client_get_list ( + client, COMPOSER_GCONF_SPELL_LANGUAGES_KEY, + GCONF_VALUE_STRING, NULL); + while (list != NULL) { + gchar *language_code = list->data; + const GtkhtmlSpellLanguage *language; + + language = gtkhtml_spell_language_lookup (language_code); + if (language != NULL) + spell_languages = g_list_prepend ( + spell_languages, (gpointer) language); + + list = g_slist_delete_link (list, list); + g_free (language_code); + } + gtkhtml_editor_set_spell_languages ( + GTKHTML_EDITOR (composer), spell_languages); + g_list_free (spell_languages); + gconf_client_add_dir ( client, COMPOSER_GCONF_PREFIX, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); -- cgit