diff options
author | Jeffrey Stedfast <fejj@ximian.com> | 2004-04-07 06:26:42 +0800 |
---|---|---|
committer | Jeffrey Stedfast <fejj@src.gnome.org> | 2004-04-07 06:26:42 +0800 |
commit | eef89a80d45770cb5507be1cc54d04eba262e416 (patch) | |
tree | f103318537533ade44e94b6c1e8c5159f8c28e91 /mail | |
parent | ff9f3a465f6da579f9e61f45bebe926cf511c568 (diff) | |
download | gsoc2013-evolution-eef89a80d45770cb5507be1cc54d04eba262e416.tar gsoc2013-evolution-eef89a80d45770cb5507be1cc54d04eba262e416.tar.gz gsoc2013-evolution-eef89a80d45770cb5507be1cc54d04eba262e416.tar.bz2 gsoc2013-evolution-eef89a80d45770cb5507be1cc54d04eba262e416.tar.lz gsoc2013-evolution-eef89a80d45770cb5507be1cc54d04eba262e416.tar.xz gsoc2013-evolution-eef89a80d45770cb5507be1cc54d04eba262e416.tar.zst gsoc2013-evolution-eef89a80d45770cb5507be1cc54d04eba262e416.zip |
Changed to save the settings in the signal callbacks.
2004-04-06 Jeffrey Stedfast <fejj@ximian.com>
* em-mailer-prefs.c (em_mailer_prefs_construct): Changed to save
the settings in the signal callbacks.
(em_mailer_prefs_apply): Don't save the settings here.
* em-composer-prefs.c (em_composer_prefs_apply): Don't save the
settings here.
(em_composer_prefs_construct): Changed to save the settings in the
signal callbacks.
svn path=/trunk/; revision=25344
Diffstat (limited to 'mail')
-rw-r--r-- | mail/ChangeLog | 11 | ||||
-rw-r--r-- | mail/em-composer-prefs.c | 483 | ||||
-rw-r--r-- | mail/em-composer-prefs.h | 4 | ||||
-rw-r--r-- | mail/em-mailer-prefs.c | 544 | ||||
-rw-r--r-- | mail/mail-config.glade | 146 |
5 files changed, 483 insertions, 705 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index b39f43c780..8af6b5182d 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,14 @@ +2004-04-06 Jeffrey Stedfast <fejj@ximian.com> + + * em-mailer-prefs.c (em_mailer_prefs_construct): Changed to save + the settings in the signal callbacks. + (em_mailer_prefs_apply): Don't save the settings here. + + * em-composer-prefs.c (em_composer_prefs_apply): Don't save the + settings here. + (em_composer_prefs_construct): Changed to save the settings in the + signal callbacks. + 2004-04-06 Not Zed <NotZed@Ximian.com> * em-folder-tree.c (emft_tree_row_expanded): ref the emfoldertree diff --git a/mail/em-composer-prefs.c b/mail/em-composer-prefs.c index d36a80097b..a5fd6181ee 100644 --- a/mail/em-composer-prefs.c +++ b/mail/em-composer-prefs.c @@ -155,49 +155,6 @@ em_composer_prefs_destroy (GtkObject *obj) GTK_OBJECT_CLASS (parent_class)->destroy (obj); } -static void -attach_style_info (GtkWidget *item, gpointer user_data) -{ - int *style = user_data; - - g_object_set_data ((GObject *) item, "style", GINT_TO_POINTER (*style)); - - (*style)++; -} - -static void -toggle_button_toggled (GtkWidget *widget, gpointer user_data) -{ - EMComposerPrefs *prefs = (EMComposerPrefs *) user_data; - - if (prefs->control) - evolution_config_control_changed (prefs->control); -} - -static void -menu_changed (GtkWidget *widget, gpointer user_data) -{ - EMComposerPrefs *prefs = (EMComposerPrefs *) user_data; - - if (prefs->control) - evolution_config_control_changed (prefs->control); -} - -static void -option_menu_connect (GtkOptionMenu *omenu, gpointer user_data) -{ - GtkWidget *menu, *item; - GList *items; - - menu = gtk_option_menu_get_menu (omenu); - - items = GTK_MENU_SHELL (menu)->children; - while (items) { - item = items->data; - g_signal_connect (item, "activate", G_CALLBACK (menu_changed), user_data); - items = items->next; - } -} static void sig_load_preview (EMComposerPrefs *prefs, ESignature *sig) @@ -557,22 +514,33 @@ url_requested (GtkHTML *html, const char *url, GtkHTMLStream *handle) static void spell_set_ui (EMComposerPrefs *prefs) { + GHashTable *present; GtkListStore *model; GtkTreeIter iter; - GHashTable *present; - gboolean go; + GError *err = NULL; char **strv = NULL; + guint r, g, b; + gboolean go; + char *lang; int i; prefs->spell_active = FALSE; /* setup the language list */ + if (!(lang = gconf_client_get_string (prefs->gconf, GNOME_SPELL_GCONF_DIR "/language", &err)) || err) { + g_free (lang); + g_error_free (err); + lang = g_strdup (e_iconv_locale_language ()); + } + present = g_hash_table_new (g_str_hash, g_str_equal); - if (prefs->language_str && (strv = g_strsplit (prefs->language_str, " ", 0))) { + if (lang && (strv = g_strsplit (lang, " ", 0))) { for (i = 0; strv[i]; i++) g_hash_table_insert (present, strv[i], strv[i]); } + g_free (lang); + model = (GtkListStore *) gtk_tree_view_get_model (prefs->language); for (go = gtk_tree_model_get_iter_first ((GtkTreeModel *) model, &iter); go; go = gtk_tree_model_iter_next ((GtkTreeModel *) model, &iter)) { @@ -586,157 +554,27 @@ spell_set_ui (EMComposerPrefs *prefs) if (strv != NULL) g_strfreev (strv); - gnome_color_picker_set_i16 (GNOME_COLOR_PICKER (prefs->colour), - prefs->spell_error_color.red, - prefs->spell_error_color.green, - prefs->spell_error_color.blue, 0xffff); - - prefs->spell_active = TRUE; -} - -static gchar * -spell_get_language_str (EMComposerPrefs *prefs) -{ - GString *str = g_string_new (""); - GtkListStore *model; - GtkTreeIter iter; - gboolean go; - char *rv; - - model = (GtkListStore *) gtk_tree_view_get_model (prefs->language); - for (go = gtk_tree_model_get_iter_first ((GtkTreeModel *) model, &iter); - go; - go = gtk_tree_model_iter_next ((GtkTreeModel *) model, &iter)) { - char *abbr; - gboolean state; - - gtk_tree_model_get ((GtkTreeModel *) model, &iter, 0, &state, 2, &abbr, -1); - if (state) { - if (str->len) - g_string_append_c (str, ' '); - g_string_append (str, abbr); - } - } - - rv = str->str; - g_string_free (str, FALSE); + r = gconf_client_get_int (prefs->gconf, GNOME_SPELL_GCONF_DIR "/spell_error_color_red", NULL); + g = gconf_client_get_int (prefs->gconf, GNOME_SPELL_GCONF_DIR "/spell_error_color_green", NULL); + b = gconf_client_get_int (prefs->gconf, GNOME_SPELL_GCONF_DIR "/spell_error_color_blue", NULL); - return rv; -} - -static void -spell_get_ui (EMComposerPrefs *prefs) -{ - gnome_color_picker_get_i16 (GNOME_COLOR_PICKER (prefs->colour), - &prefs->spell_error_color.red, - &prefs->spell_error_color.green, - &prefs->spell_error_color.blue, NULL); - g_free (prefs->language_str); - 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 (EMComposerPrefs *prefs) -{ - g_free (prefs->language_str_orig); - prefs->language_str_orig = g_strdup (prefs->language_str ? prefs->language_str : ""); - prefs->spell_error_color_orig = prefs->spell_error_color; -} - -/* static void -spell_load_orig (EMComposerPrefs *prefs) -{ - g_free (prefs->language_str); - prefs->language_str = g_strdup (prefs->language_str_orig); - prefs->spell_error_color = prefs->spell_error_color_orig; -} */ - -static void -spell_load_values (EMComposerPrefs *prefs) -{ - GConfValue *val; - char *def_lang; - - def_lang = g_strdup (e_iconv_locale_language ()); - g_free (prefs->language_str); - prefs->language_str = g_strdup (def_lang); - 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) - prefs->language_str = g_strdup (def_lang); - - spell_save_orig (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 (EMComposerPrefs *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); - } + gnome_color_picker_set_i16 (GNOME_COLOR_PICKER (prefs->colour), r, g, b, 0xffff); - if (force || !STR_EQUAL (prefs->language_str, prefs->language_str_orig)) { - SET (string, "/language", prefs->language_str ? prefs->language_str : ""); - } - - gconf_client_suggest_sync (prefs->gconf, NULL); -} - -static void -spell_apply (EMComposerPrefs *prefs) -{ - spell_get_ui (prefs); - spell_save_values (prefs, FALSE); -} - -/* static void -spell_revert (EMComposerPrefs *prefs) -{ - spell_load_orig (prefs); - spell_set_ui (prefs); - spell_save_values (prefs, TRUE); -} */ - -static void -spell_changed (gpointer user_data) -{ - EMComposerPrefs *prefs = (EMComposerPrefs *) user_data; - - if (prefs->control) - evolution_config_control_changed (prefs->control); + prefs->spell_active = TRUE; } static void -spell_color_set (GtkWidget *widget, guint r, guint g, guint b, guint a, gpointer user_data) +spell_color_set (GtkWidget *widget, guint r, guint g, guint b, guint a, EMComposerPrefs *prefs) { - spell_changed (user_data); + gconf_client_set_int (prefs->gconf, GNOME_SPELL_GCONF_DIR "/spell_error_color_red", r, NULL); + gconf_client_set_int (prefs->gconf, GNOME_SPELL_GCONF_DIR "/spell_error_color_green", g, NULL); + gconf_client_set_int (prefs->gconf, GNOME_SPELL_GCONF_DIR "/spell_error_color_blue", b, NULL); } static void spell_live_toggled (GtkWidget *widget, gpointer user_data) { - spell_changed (user_data); + /* FIXME: what gconf key is this? */ } static void @@ -751,9 +589,46 @@ spell_language_selection_changed (GtkTreeSelection *selection, EMComposerPrefs * gtk_button_set_label ((GtkButton *) prefs->spell_able_button, state ? _("Disable") : _("Enable")); state = TRUE; } + gtk_widget_set_sensitive (prefs->spell_able_button, state); } +static char * +spell_get_language_str (EMComposerPrefs *prefs) +{ + GtkListStore *model; + GtkTreeIter iter; + GString *str; + char *rv; + + model = (GtkListStore *) gtk_tree_view_get_model (prefs->language); + if (!gtk_tree_model_get_iter_first ((GtkTreeModel *) model, &iter)) + return NULL; + + str = g_string_new (""); + + do { + gboolean state; + char *abbr; + + gtk_tree_model_get ((GtkTreeModel *) model, &iter, 0, &state, 2, &abbr, -1); + + if (state) { + if (str->len) + g_string_append_c (str, ' '); + g_string_append (str, abbr); + } + + if (!gtk_tree_model_iter_next ((GtkTreeModel *) model, &iter)) + break; + } while (1); + + rv = str->str; + g_string_free (str, FALSE); + + return rv; +} + static void spell_language_enable (GtkWidget *widget, EMComposerPrefs *prefs) { @@ -761,39 +636,50 @@ spell_language_enable (GtkWidget *widget, EMComposerPrefs *prefs) GtkTreeModel *model; GtkTreeSelection *selection; gboolean state; + char *str; selection = gtk_tree_view_get_selection (prefs->language); - if (gtk_tree_selection_get_selected (selection, &model, &iter)) { - gtk_tree_model_get (model, &iter, 0, &state, -1); - gtk_list_store_set ((GtkListStore *) model, &iter, 0, !state, -1); - gtk_button_set_label ((GtkButton *) prefs->spell_able_button, state ? _("Enable") : _("Disable")); - spell_changed (prefs); - } + if (!gtk_tree_selection_get_selected (selection, &model, &iter)) + return; + + gtk_tree_model_get (model, &iter, 0, &state, -1); + gtk_list_store_set ((GtkListStore *) model, &iter, 0, !state, -1); + gtk_button_set_label ((GtkButton *) prefs->spell_able_button, state ? _("Enable") : _("Disable")); + + str = spell_get_language_str (prefs); + gconf_client_set_string (prefs->gconf, GNOME_SPELL_GCONF_DIR "/language", str ? str : "", NULL); + g_free (str); } static gboolean -spell_language_button_press (GtkTreeView *tv, GdkEventButton *event, EMComposerPrefs *prefs) +spell_language_button_press (GtkTreeView *treeview, GdkEventButton *event, EMComposerPrefs *prefs) { - GtkTreePath *path = NULL; GtkTreeViewColumn *column = NULL; - gtk_tree_view_get_path_at_pos (tv, event->x, event->y, &path, &column, NULL, NULL); - + GtkTreePath *path = NULL; + GtkTreeModel *model; + GtkTreeIter iter; + gboolean enabled; + char *str; + + if (!(gtk_tree_view_get_path_at_pos (treeview, event->x, event->y, &path, &column, NULL, NULL))) + return FALSE; + /* FIXME: This routine should just be a "toggled" event handler on the checkbox cell renderer which has "activatable" set. */ - - if (path != NULL && column != NULL && !strcmp (gtk_tree_view_column_get_title (column), _("Enabled"))) { - GtkTreeIter iter; - GtkTreeModel *model; - gboolean enabled; - - model = gtk_tree_view_get_model (tv); - gtk_tree_model_get_iter (model, &iter, path); - gtk_tree_model_get (model, &iter, 0, &enabled, -1); - gtk_list_store_set ((GtkListStore *) model, &iter, 0, !enabled, -1); - gtk_button_set_label ((GtkButton *) prefs->spell_able_button, enabled ? _("Enable") : _("Disable")); - spell_changed (prefs); - } - + + if (strcmp (gtk_tree_view_column_get_title (column), _("Enabled")) != 0) + return FALSE; + + model = gtk_tree_view_get_model (treeview); + gtk_tree_model_get_iter (model, &iter, path); + gtk_tree_model_get (model, &iter, 0, &enabled, -1); + gtk_list_store_set ((GtkListStore *) model, &iter, 0, !enabled, -1); + gtk_button_set_label ((GtkButton *) prefs->spell_able_button, enabled ? _("Enable") : _("Disable")); + + str = spell_get_language_str (prefs); + gconf_client_set_string (prefs->gconf, GNOME_SPELL_GCONF_DIR "/language", str ? str : "", NULL); + g_free (str); + return FALSE; } @@ -802,6 +688,7 @@ spell_setup (EMComposerPrefs *prefs) { GtkListStore *model; GtkTreeIter iter; + GtkWidget *widget; int i; model = (GtkListStore *) gtk_tree_view_get_model (prefs->language); @@ -816,12 +703,16 @@ spell_setup (EMComposerPrefs *prefs) } } - spell_load_values (prefs); spell_set_ui (prefs); - glade_xml_signal_connect_data (prefs->gui, "spellColorSet", G_CALLBACK (spell_color_set), prefs); - glade_xml_signal_connect_data (prefs->gui, "spellLanguageEnable", GTK_SIGNAL_FUNC (spell_language_enable), prefs); - glade_xml_signal_connect_data (prefs->gui, "spellLiveToggled", G_CALLBACK (spell_live_toggled), prefs); + widget = glade_xml_get_widget (prefs->gui, "colorpickerSpellCheckColor"); + g_signal_connect (widget, "color_set", G_CALLBACK (spell_color_set), prefs); + + widget = glade_xml_get_widget (prefs->gui, "buttonSpellCheckEnable"); + g_signal_connect (widget, "clicked", G_CALLBACK (spell_language_enable), prefs); + + widget = glade_xml_get_widget (prefs->gui, "chkEnableSpellChecking"); + g_signal_connect (widget, "toggled", G_CALLBACK (spell_live_toggled), prefs); g_signal_connect (prefs->language, "button_press_event", G_CALLBACK (spell_language_button_press), prefs); } @@ -863,17 +754,82 @@ spell_setup_check_options (EMComposerPrefs *prefs) static void -toggle_button_init (GtkToggleButton *toggle, GConfClient *gconf, const char *key, int not, GCallback toggled, void *user_data) +attach_style_info (GtkWidget *item, gpointer user_data) +{ + int *style = user_data; + + g_object_set_data ((GObject *) item, "style", GINT_TO_POINTER (*style)); + + (*style)++; +} + +static void +toggle_button_toggled (GtkToggleButton *toggle, EMComposerPrefs *prefs) +{ + const char *key; + + key = g_object_get_data ((GObject *) toggle, "key"); + gconf_client_set_bool (prefs->gconf, key, gtk_toggle_button_get_active (toggle), NULL); +} + +static void +style_activate (GtkWidget *item, EMComposerPrefs *prefs) +{ + const char *key; + int style; + + key = g_object_get_data ((GObject *) item, "key"); + style = GPOINTER_TO_INT (g_object_get_data ((GObject *) item, "style")); + + gconf_client_set_int (prefs->gconf, key, style, NULL); +} + +static void +charset_activate (GtkWidget *item, EMComposerPrefs *prefs) +{ + GtkWidget *menu; + char *string; + + menu = gtk_option_menu_get_menu (prefs->charset); + if (!(string = e_charset_picker_get_charset (menu))) + string = g_strdup (e_iconv_locale_charset ()); + + gconf_client_set_string (prefs->gconf, "/apps/evolution/mail/composer/charset", string, NULL); + g_free (string); +} + +static void +option_menu_connect (EMComposerPrefs *prefs, GtkOptionMenu *omenu, GCallback callback, const char *key) +{ + GtkWidget *menu, *item; + GList *items; + + menu = gtk_option_menu_get_menu (omenu); + + items = GTK_MENU_SHELL (menu)->children; + while (items) { + item = items->data; + g_object_set_data ((GObject *) item, "key", (void *) key); + g_signal_connect (item, "activate", callback, prefs); + items = items->next; + } + + if (!gconf_client_key_is_writable (prefs->gconf, key, NULL)) + gtk_widget_set_sensitive ((GtkWidget *) omenu, FALSE); +} + +static void +toggle_button_init (EMComposerPrefs *prefs, GtkToggleButton *toggle, int not, const char *key) { gboolean bool; - bool = gconf_client_get_bool (gconf, key, NULL); + bool = gconf_client_get_bool (prefs->gconf, key, NULL); gtk_toggle_button_set_active (toggle, not ? !bool : bool); - if (toggled) - g_signal_connect (toggle, "toggled", toggled, user_data); + g_object_set_data ((GObject *) toggle, "key", (void *) key); + g_signal_connect (toggle, "toggled", G_CALLBACK (toggle_button_toggled), prefs); - if (!gconf_client_key_is_writable (gconf, key, NULL)) + if (!gconf_client_key_is_writable (prefs->gconf, key, NULL)) gtk_widget_set_sensitive ((GtkWidget *) toggle, FALSE); } @@ -907,37 +863,31 @@ em_composer_prefs_construct (EMComposerPrefs *prefs) /* Default Behavior */ prefs->send_html = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "chkSendHTML")); - toggle_button_init (prefs->send_html, prefs->gconf, - "/apps/evolution/mail/composer/send_html", - FALSE, G_CALLBACK (toggle_button_toggled), prefs); + toggle_button_init (prefs, prefs->send_html, FALSE, + "/apps/evolution/mail/composer/send_html"); prefs->prompt_empty_subject = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "chkPromptEmptySubject")); - toggle_button_init (prefs->prompt_empty_subject, prefs->gconf, - "/apps/evolution/mail/prompts/empty_subject", - FALSE, G_CALLBACK (toggle_button_toggled), prefs); + toggle_button_init (prefs, prefs->prompt_empty_subject, FALSE, + "/apps/evolution/mail/prompts/empty_subject"); prefs->prompt_bcc_only = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "chkPromptBccOnly")); - toggle_button_init (prefs->prompt_bcc_only, prefs->gconf, - "/apps/evolution/mail/prompts/only_bcc", - FALSE, G_CALLBACK (toggle_button_toggled), prefs); + toggle_button_init (prefs, prefs->prompt_bcc_only, FALSE, + "/apps/evolution/mail/prompts/only_bcc"); prefs->auto_smileys = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "chkAutoSmileys")); - toggle_button_init (prefs->auto_smileys, prefs->gconf, - "/apps/evolution/mail/composer/magic_smileys", - FALSE, G_CALLBACK (toggle_button_toggled), prefs); + toggle_button_init (prefs, prefs->auto_smileys, FALSE, + "/apps/evolution/mail/composer/magic_smileys"); prefs->spell_check = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "chkEnableSpellChecking")); - toggle_button_init (prefs->spell_check, prefs->gconf, - "/apps/evolution/mail/composer/inline_spelling", - FALSE, G_CALLBACK (toggle_button_toggled), prefs); + toggle_button_init (prefs, prefs->spell_check, FALSE, + "/apps/evolution/mail/composer/inline_spelling"); prefs->charset = GTK_OPTION_MENU (glade_xml_get_widget (gui, "omenuCharset")); buf = gconf_client_get_string (prefs->gconf, "/apps/evolution/mail/composer/charset", NULL); menu = e_charset_picker_new (buf && *buf ? buf : e_iconv_locale_charset ()); gtk_option_menu_set_menu (prefs->charset, GTK_WIDGET (menu)); - option_menu_connect (prefs->charset, prefs); - if (!gconf_client_key_is_writable (prefs->gconf, "/apps/evolution/mail/composer/charset", NULL)) - gtk_widget_set_sensitive ((GtkWidget *) prefs->charset, FALSE); + option_menu_connect (prefs, prefs->charset, G_CALLBACK (charset_activate), + "/apps/evolution/mail/composer/charset"); g_free (buf); /* Spell Checking: GNOME Spell part */ @@ -972,9 +922,8 @@ em_composer_prefs_construct (EMComposerPrefs *prefs) style = 0; gtk_container_foreach (GTK_CONTAINER (gtk_option_menu_get_menu (prefs->forward_style)), attach_style_info, &style); - option_menu_connect (prefs->forward_style, prefs); - if (!gconf_client_key_is_writable (prefs->gconf, "/apps/evolution/mail/format/forward_style", NULL)) - gtk_widget_set_sensitive ((GtkWidget *) prefs->forward_style, FALSE); + option_menu_connect (prefs, prefs->forward_style, G_CALLBACK (style_activate), + "/apps/evolution/mail/format/forward_style"); prefs->reply_style = GTK_OPTION_MENU (glade_xml_get_widget (gui, "omenuReplyStyle")); style = gconf_client_get_int (prefs->gconf, "/apps/evolution/mail/format/reply_style", NULL); @@ -982,9 +931,8 @@ em_composer_prefs_construct (EMComposerPrefs *prefs) style = 0; gtk_container_foreach (GTK_CONTAINER (gtk_option_menu_get_menu (prefs->reply_style)), attach_style_info, &style); - option_menu_connect (prefs->reply_style, prefs); - if (!gconf_client_key_is_writable (prefs->gconf, "/apps/evolution/mail/format/reply_style", NULL)) - gtk_widget_set_sensitive ((GtkWidget *) prefs->reply_style, FALSE); + option_menu_connect (prefs, prefs->reply_style, G_CALLBACK (style_activate), + "/apps/evolution/mail/format/reply_style"); /* Signatures */ dialog = (GtkDialog *) gtk_dialog_new (); @@ -1051,54 +999,5 @@ em_composer_prefs_new (void) void em_composer_prefs_apply (EMComposerPrefs *prefs) { - GtkWidget *menu, *item; - char *string; - int val; - - /* General tab */ - - /* Default Behavior */ - gconf_client_set_bool (prefs->gconf, "/apps/evolution/mail/composer/send_html", - gtk_toggle_button_get_active (prefs->send_html), NULL); - - gconf_client_set_bool (prefs->gconf, "/apps/evolution/mail/prompts/empty_subject", - gtk_toggle_button_get_active (prefs->prompt_empty_subject), NULL); - - gconf_client_set_bool (prefs->gconf, "/apps/evolution/mail/prompts/only_bcc", - gtk_toggle_button_get_active (prefs->prompt_bcc_only), NULL); - - gconf_client_set_bool (prefs->gconf, "/apps/evolution/mail/composer/inline_spelling", - gtk_toggle_button_get_active (prefs->spell_check), NULL); - - gconf_client_set_bool (prefs->gconf, "/apps/evolution/mail/composer/magic_smileys", - gtk_toggle_button_get_active (prefs->auto_smileys), NULL); - - menu = gtk_option_menu_get_menu (prefs->charset); - if (!(string = e_charset_picker_get_charset (menu))) - string = g_strdup (e_iconv_locale_charset ()); - - gconf_client_set_string (prefs->gconf, "/apps/evolution/mail/composer/charset", string, NULL); - g_free (string); - - /* Spell Checking */ - spell_apply (prefs); - - /* Forwards and Replies */ - menu = gtk_option_menu_get_menu (prefs->forward_style); - item = gtk_menu_get_active (GTK_MENU (menu)); - val = GPOINTER_TO_INT (g_object_get_data ((GObject *) item, "style")); - gconf_client_set_int (prefs->gconf, "/apps/evolution/mail/format/forward_style", val, NULL); - - menu = gtk_option_menu_get_menu (prefs->reply_style); - item = gtk_menu_get_active (GTK_MENU (menu)); - val = GPOINTER_TO_INT (g_object_get_data ((GObject *) item, "style")); - gconf_client_set_int (prefs->gconf, "/apps/evolution/mail/format/reply_style", val, NULL); - - /* Keyboard Shortcuts */ - /* FIXME: implement me */ - - /* Signatures */ - /* FIXME: implement me */ - gconf_client_suggest_sync (prefs->gconf, NULL); } diff --git a/mail/em-composer-prefs.h b/mail/em-composer-prefs.h index a255893c87..3006bf8d77 100644 --- a/mail/em-composer-prefs.h +++ b/mail/em-composer-prefs.h @@ -78,10 +78,6 @@ struct _EMComposerPrefs { GtkTreeView *language; CORBA_sequence_GNOME_Spell_Language *language_seq; gboolean spell_active; - char *language_str; - char *language_str_orig; - GdkColor spell_error_color; - GdkColor spell_error_color_orig; GdkPixmap *mark_pixmap; GdkBitmap *mark_bitmap; GdkPixbuf *enabled_pixbuf; diff --git a/mail/em-mailer-prefs.c b/mail/em-mailer-prefs.c index 19ade2393d..8fa1a25839 100644 --- a/mail/em-mailer-prefs.c +++ b/mail/em-mailer-prefs.c @@ -168,45 +168,59 @@ colorpicker_get_color (GnomeColorPicker *color) } static void -settings_changed (GtkWidget *widget, gpointer user_data) +citation_color_set (GtkWidget *widget, guint r, guint g, guint b, guint a, EMMailerPrefs *prefs) { - EMMailerPrefs *prefs = (EMMailerPrefs *) user_data; + guint32 rgb = 0; + char buf[20]; + + rgb = r; + rgb <<= 8; + rgb |= g; + rgb <<= 8; + rgb |= b; + + sprintf (buf,"#%06x", rgb & 0xffffff); - if (prefs->control) - evolution_config_control_changed (prefs->control); + gconf_client_set_string (prefs->gconf, "/apps/evolution/mail/display/citation_colour", buf, NULL); } static void -font_share_changed (GtkWidget *w, gpointer user_data) +labels_changed (EMMailerPrefs *prefs) { - EMMailerPrefs *prefs = (EMMailerPrefs *) user_data; - gboolean use_custom; - - use_custom = !gtk_toggle_button_get_active (prefs->font_share); - - gtk_widget_set_sensitive (GTK_WIDGET (prefs->font_fixed), use_custom); - gtk_widget_set_sensitive (GTK_WIDGET (prefs->font_variable), use_custom); - - if (prefs->control) - evolution_config_control_changed (prefs->control); + GSList *l, *n, *list = NULL; + const char *cstring; + char *string; + guint32 rgb; + int i; + + for (i = 4; i >= 0; i--) { + cstring = gtk_entry_get_text (prefs->labels[i].name); + rgb = colorpicker_get_color (prefs->labels[i].color); + string = g_strdup_printf ("%s:#%06x", cstring, rgb & 0xffffff); + list = g_slist_prepend (list, string); + } + + gconf_client_set_list (prefs->gconf, "/apps/evolution/mail/labels", GCONF_VALUE_STRING, list, NULL); + + l = list; + while (l != NULL) { + n = l->next; + g_free (l->data); + g_slist_free_1 (l); + l = n; + } } static void -font_changed (GnomeFontPicker *fontpicker, gchar *arg1, gpointer user_data) +label_color_set (GtkWidget *widget, guint r, guint g, guint b, guint a, EMMailerPrefs *prefs) { - EMMailerPrefs *prefs = (EMMailerPrefs *) user_data; - - if (prefs->control) - evolution_config_control_changed (prefs->control); + labels_changed (prefs); } static void -color_set (GtkWidget *widget, guint r, guint g, guint b, guint a, gpointer user_data) +label_entry_changed (GtkEntry *entry, EMMailerPrefs *prefs) { - EMMailerPrefs *prefs = (EMMailerPrefs *) user_data; - - if (prefs->control) - evolution_config_control_changed (prefs->control); + labels_changed (prefs); } static void @@ -222,31 +236,6 @@ restore_labels_clicked (GtkWidget *widget, gpointer user_data) } static void -menu_changed (GtkWidget *widget, gpointer user_data) -{ - EMMailerPrefs *prefs = (EMMailerPrefs *) user_data; - - if (prefs->control) - evolution_config_control_changed (prefs->control); -} - -static void -option_menu_connect (GtkOptionMenu *omenu, gpointer user_data) -{ - GtkWidget *menu, *item; - GList *items; - - menu = gtk_option_menu_get_menu (omenu); - - items = GTK_MENU_SHELL (menu)->children; - while (items) { - item = items->data; - g_signal_connect (item, "activate", G_CALLBACK (menu_changed), user_data); - items = items->next; - } -} - -static void emmp_header_remove_sensitivity (EMMailerPrefs *prefs) { GtkTreeIter iter; @@ -324,9 +313,40 @@ emmp_header_add_sensitivity (EMMailerPrefs *prefs) } static void -emmp_header_list_enabled_toggled (GtkCellRendererToggle *cell, const char *path_string, gpointer user_data) +emmp_save_headers (EMMailerPrefs *prefs) +{ + GSList *header_list; + GtkTreeIter iter; + gboolean valid; + + /* Headers */ + header_list = NULL; + valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (prefs->header_list_store), &iter); + while (valid) { + struct _EMMailerPrefsHeader h; + gboolean enabled; + char *xml; + + gtk_tree_model_get (GTK_TREE_MODEL (prefs->header_list_store), &iter, + HEADER_LIST_HEADER_COLUMN, &h.name, + HEADER_LIST_ENABLED_COLUMN, &enabled, + -1); + h.enabled = enabled; + + if ((xml = em_mailer_prefs_header_to_xml (&h))) + header_list = g_slist_append (header_list, xml); + + valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (prefs->header_list_store), &iter); + } + + gconf_client_set_list (prefs->gconf, "/apps/evolution/mail/display/headers", GCONF_VALUE_STRING, header_list, NULL); + g_slist_foreach (header_list, (GFunc) g_free, NULL); + g_slist_free (header_list); +} + +static void +emmp_header_list_enabled_toggled (GtkCellRendererToggle *cell, const char *path_string, EMMailerPrefs *prefs) { - EMMailerPrefs *prefs = (EMMailerPrefs *) user_data; GtkTreeModel *model = GTK_TREE_MODEL (prefs->header_list_store); GtkTreePath *path = gtk_tree_path_new_from_string (path_string); GtkTreeIter iter; @@ -339,14 +359,12 @@ emmp_header_list_enabled_toggled (GtkCellRendererToggle *cell, const char *path_ enabled, -1); gtk_tree_path_free (path); - if (prefs->control) - evolution_config_control_changed (prefs->control); + emmp_save_headers (prefs); } static void -emmp_header_add_header (GtkWidget *widget, gpointer user_data) +emmp_header_add_header (GtkWidget *widget, EMMailerPrefs *prefs) { - EMMailerPrefs *prefs = (EMMailerPrefs *) user_data; GtkTreeModel *model = GTK_TREE_MODEL (prefs->header_list_store); GtkTreeIter iter; @@ -361,8 +379,7 @@ emmp_header_add_header (GtkWidget *widget, gpointer user_data) emmp_header_remove_sensitivity (prefs); emmp_header_add_sensitivity (prefs); - if (prefs->control) - evolution_config_control_changed (prefs->control); + emmp_save_headers (prefs); } static void @@ -373,12 +390,13 @@ emmp_header_remove_header (GtkWidget *button, gpointer user_data) GtkTreeSelection *selection = gtk_tree_view_get_selection (prefs->header_list); GtkTreeIter iter; - if (gtk_tree_selection_get_selected (selection, NULL, &iter)) { - gtk_list_store_remove (GTK_LIST_STORE (model), &iter); - emmp_header_remove_sensitivity (prefs); - if (prefs->control) - evolution_config_control_changed (prefs->control); - } + if (!gtk_tree_selection_get_selected (selection, NULL, &iter)) + return; + + gtk_list_store_remove (GTK_LIST_STORE (model), &iter); + emmp_header_remove_sensitivity (prefs); + + emmp_save_headers (prefs); } static void @@ -398,7 +416,16 @@ emmp_header_entry_changed (GtkWidget *entry, gpointer user_data) } static void -spin_button_init (GtkSpinButton *spin, GConfClient *gconf, const char *key, float div, GCallback value_changed, void *user_data) +mark_seen_timeout_changed (GtkSpinButton *spin, EMMailerPrefs *prefs) +{ + int timeout; + + timeout = (int) (gtk_spin_button_get_value (prefs->timeout) * 1000.0); + gconf_client_set_int (prefs->gconf, "/apps/evolution/mail/display/mark_seen_timeout", timeout, NULL); +} + +static void +spin_button_init (EMMailerPrefs *prefs, GtkSpinButton *spin, const char *key, float div, GCallback value_changed) { GError *err = NULL; double min, max; @@ -413,7 +440,7 @@ spin_button_init (GtkSpinButton *spin, GConfClient *gconf, const char *key, floa /* see if the admin locked down the min value */ strcpy (p, "min"); - val = gconf_client_get_int (gconf, mkey, &err); + val = gconf_client_get_int (prefs->gconf, mkey, &err); if (err == NULL) g_clear_error (&err); else @@ -421,7 +448,7 @@ spin_button_init (GtkSpinButton *spin, GConfClient *gconf, const char *key, floa /* see if the admin locked down the max value */ strcpy (p, "max"); - val = gconf_client_get_int (gconf, mkey, &err); + val = gconf_client_get_int (prefs->gconf, mkey, &err); if (err == NULL) g_clear_error (&err); else @@ -430,59 +457,183 @@ spin_button_init (GtkSpinButton *spin, GConfClient *gconf, const char *key, floa gtk_spin_button_set_range (spin, min, max); /* get the value */ - val = gconf_client_get_int (gconf, key, NULL); + val = gconf_client_get_int (prefs->gconf, key, NULL); gtk_spin_button_set_value (spin, (1.0 * val) / div); - if (value_changed) - g_signal_connect (spin, "value-changed", value_changed, user_data); + if (value_changed) { + g_object_set_data ((GObject *) spin, "key", (void *) key); + g_signal_connect (spin, "value-changed", value_changed, prefs); + } - if (!gconf_client_key_is_writable (gconf, key, NULL)) + if (!gconf_client_key_is_writable (prefs->gconf, key, NULL)) gtk_widget_set_sensitive ((GtkWidget *) spin, FALSE); } static void -toggle_button_init (GtkToggleButton *toggle, GConfClient *gconf, const char *key, int not, GCallback toggled, void *user_data) +toggle_button_toggled (GtkToggleButton *toggle, EMMailerPrefs *prefs) +{ + const char *key; + + key = g_object_get_data ((GObject *) toggle, "key"); + gconf_client_set_bool (prefs->gconf, key, gtk_toggle_button_get_active (toggle), NULL); +} + +static void +custom_font_changed (GtkToggleButton *toggle, EMMailerPrefs *prefs) +{ + gboolean use_custom; + + use_custom = !gtk_toggle_button_get_active (toggle); + + gtk_widget_set_sensitive (GTK_WIDGET (prefs->font_fixed), use_custom); + gtk_widget_set_sensitive (GTK_WIDGET (prefs->font_variable), use_custom); + + gconf_client_set_bool (prefs->gconf, "/apps/evolution/mail/display/fonts/use_custom", use_custom, NULL); +} + +static void +font_changed (GnomeFontPicker *fontpicker, const char *arg1, EMMailerPrefs *prefs) +{ + const char *key; + + key = g_object_get_data ((GObject *) fontpicker, "key"); + gconf_client_set_string (prefs->gconf, key, gnome_font_picker_get_font_name (fontpicker), NULL); +} + +static void +toggle_button_init (EMMailerPrefs *prefs, GtkToggleButton *toggle, int not, const char *key, GCallback toggled) { gboolean bool; - bool = gconf_client_get_bool (gconf, key, NULL); + bool = gconf_client_get_bool (prefs->gconf, key, NULL); gtk_toggle_button_set_active (toggle, not ? !bool : bool); - if (toggled) - g_signal_connect (toggle, "toggled", toggled, user_data); + if (toggled) { + g_object_set_data ((GObject *) toggle, "key", (void *) key); + g_signal_connect (toggle, "toggled", toggled, prefs); + } - if (!gconf_client_key_is_writable (gconf, key, NULL)) + if (!gconf_client_key_is_writable (prefs->gconf, key, NULL)) gtk_widget_set_sensitive ((GtkWidget *) toggle, FALSE); } static void -emmp_empty_trash_init(EMMailerPrefs *prefs) +charset_activate (GtkWidget *item, EMMailerPrefs *prefs) +{ + GtkWidget *menu; + char *string; + + menu = gtk_option_menu_get_menu (prefs->charset); + if (!(string = e_charset_picker_get_charset (menu))) + string = g_strdup (e_iconv_locale_charset ()); + + gconf_client_set_string (prefs->gconf, "/apps/evolution/mail/display/charset", string, NULL); + g_free (string); +} + +static void +charset_menu_init (EMMailerPrefs *prefs) { - int days, hist = 0, i; GtkWidget *menu, *item; + GList *items; + char *buf; + + buf = gconf_client_get_string (prefs->gconf, "/apps/evolution/mail/display/charset", NULL); + menu = e_charset_picker_new (buf && *buf ? buf : e_iconv_locale_charset ()); + gtk_option_menu_set_menu (prefs->charset, GTK_WIDGET (menu)); + g_free (buf); + + items = GTK_MENU_SHELL (menu)->children; + while (items) { + item = items->data; + g_signal_connect (item, "activate", G_CALLBACK (charset_activate), prefs); + items = items->next; + } + + if (!gconf_client_key_is_writable (prefs->gconf, "/apps/evolution/mail/display/charset", NULL)) + gtk_widget_set_sensitive ((GtkWidget *) prefs->charset, FALSE); +} - toggle_button_init (prefs->empty_trash, prefs->gconf, - "/apps/evolution/mail/trash/empty_on_exit", - FALSE, G_CALLBACK (settings_changed), prefs); +static void +trash_days_activate (GtkWidget *item, EMMailerPrefs *prefs) +{ + int days; + + days = GPOINTER_TO_INT (g_object_get_data ((GObject *) item, "days")); + gconf_client_set_int (prefs->gconf, "/apps/evolution/mail/trash/empty_on_exit_days", days, NULL); +} +static void +emmp_empty_trash_init (EMMailerPrefs *prefs) +{ + int locked, days, hist = 0, i; + GtkWidget *menu, *item; + + toggle_button_init (prefs, prefs->empty_trash, FALSE, + "/apps/evolution/mail/trash/empty_on_exit", + G_CALLBACK (toggle_button_toggled)); + days = gconf_client_get_int(prefs->gconf, "/apps/evolution/mail/trash/empty_on_exit_days", NULL); menu = gtk_menu_new(); - for (i=0;i<sizeof(empty_trash_frequency)/sizeof(empty_trash_frequency[0]);i++) { + for (i = 0; i < G_N_ELEMENTS (empty_trash_frequency); i++) { if (days >= empty_trash_frequency[i].days) hist = i; - - item = gtk_menu_item_new_with_label(_(empty_trash_frequency[i].label)); - gtk_widget_show(item); + + item = gtk_menu_item_new_with_label (_(empty_trash_frequency[i].label)); + g_object_set_data ((GObject *) item, "days", GINT_TO_POINTER (empty_trash_frequency[i].days)); + g_signal_connect (item, "activate", G_CALLBACK (trash_days_activate), prefs); + + gtk_widget_show (item); gtk_menu_shell_append((GtkMenuShell *)menu, item); } - + gtk_widget_show(menu); gtk_option_menu_set_menu((GtkOptionMenu *)prefs->empty_trash_days, menu); gtk_option_menu_set_history((GtkOptionMenu *)prefs->empty_trash_days, hist); - g_signal_connect(prefs->empty_trash_days, "changed", G_CALLBACK(settings_changed), prefs); + + locked = !gconf_client_key_is_writable (prefs->gconf, "/apps/evolution/mail/trash/empty_on_exit_days", NULL); + gtk_widget_set_sensitive ((GtkWidget *) prefs->empty_trash_days, !locked); +} - gtk_widget_set_sensitive((GtkWidget *)prefs->empty_trash_days, - gconf_client_key_is_writable(prefs->gconf, "/apps/evolution/mail/trash/empty_on_exit_days", NULL)); +static void +http_images_changed (GtkWidget *widget, EMMailerPrefs *prefs) +{ + int when; + + if (gtk_toggle_button_get_active (prefs->images_always)) + when = MAIL_CONFIG_HTTP_ALWAYS; + else if (gtk_toggle_button_get_active (prefs->images_sometimes)) + when = MAIL_CONFIG_HTTP_SOMETIMES; + else + when = MAIL_CONFIG_HTTP_NEVER; + + gconf_client_set_int (prefs->gconf, "/apps/evolution/mail/display/load_http_images", when, NULL); +} + +static void +notify_type_changed (GtkWidget *widget, EMMailerPrefs *prefs) +{ + int type; + + if (gtk_toggle_button_get_active (prefs->notify_not)) + type = MAIL_CONFIG_NOTIFY_NOT; + else if (gtk_toggle_button_get_active (prefs->notify_beep)) + type = MAIL_CONFIG_NOTIFY_BEEP; + else + type = MAIL_CONFIG_NOTIFY_PLAY_SOUND; + + gconf_client_set_int (prefs->gconf, "/apps/evolution/mail/notify/type", type, NULL); +} + +static void +notify_sound_changed (GtkWidget *widget, EMMailerPrefs *prefs) +{ + const char *filename; + GtkWidget *entry; + + entry = gnome_file_entry_gtk_entry (GNOME_FILE_ENTRY (prefs->notify_sound_file)); + filename = gtk_entry_get_text (GTK_ENTRY (entry)); + gconf_client_set_string (prefs->gconf, "/apps/evolution/mail/notify/sound", filename, NULL); } static void @@ -490,7 +641,7 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs) { GSList *list, *header_config_list, *header_add_list, *p; GHashTable *default_header_hash; - GtkWidget *toplevel, *menu; + GtkWidget *toplevel; GtkTreeSelection *selection; GtkCellRenderer *renderer; GtkTreeIter iter; @@ -515,46 +666,40 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs) /* Message Display */ prefs->timeout_toggle = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "chkMarkTimeout")); - toggle_button_init (prefs->timeout_toggle, prefs->gconf, + toggle_button_init (prefs, prefs->timeout_toggle, FALSE, "/apps/evolution/mail/display/mark_seen", - FALSE, G_CALLBACK (settings_changed), prefs); + G_CALLBACK (toggle_button_toggled)); prefs->timeout = GTK_SPIN_BUTTON (glade_xml_get_widget (gui, "spinMarkTimeout")); - spin_button_init (prefs->timeout, prefs->gconf, + spin_button_init (prefs, prefs->timeout, "/apps/evolution/mail/display/mark_seen_timeout", - 1000.0, G_CALLBACK (settings_changed), prefs); + 1000.0, G_CALLBACK (mark_seen_timeout_changed)); prefs->charset = GTK_OPTION_MENU (glade_xml_get_widget (gui, "omenuCharset")); - buf = gconf_client_get_string (prefs->gconf, "/apps/evolution/mail/display/charset", NULL); - menu = e_charset_picker_new (buf && *buf ? buf : e_iconv_locale_charset ()); - gtk_option_menu_set_menu (prefs->charset, GTK_WIDGET (menu)); - option_menu_connect (prefs->charset, prefs); - if (!gconf_client_key_is_writable (prefs->gconf, "/apps/evolution/mail/display/charset", NULL)) - gtk_widget_set_sensitive ((GtkWidget *) prefs->charset, FALSE); - g_free (buf); + charset_menu_init (prefs); prefs->citation_highlight = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "chkHighlightCitations")); - toggle_button_init (prefs->citation_highlight, prefs->gconf, + toggle_button_init (prefs, prefs->citation_highlight, FALSE, "/apps/evolution/mail/display/mark_citations", - FALSE, G_CALLBACK (settings_changed), prefs); + G_CALLBACK (toggle_button_toggled)); prefs->citation_color = GNOME_COLOR_PICKER (glade_xml_get_widget (gui, "colorpickerHighlightCitations")); buf = gconf_client_get_string (prefs->gconf, "/apps/evolution/mail/display/citation_colour", NULL); colorpicker_set_color (prefs->citation_color, buf ? buf : "#737373"); - g_signal_connect (prefs->citation_color, "color-set", G_CALLBACK (color_set), prefs); + g_signal_connect (prefs->citation_color, "color-set", G_CALLBACK (citation_color_set), prefs); if (!gconf_client_key_is_writable (prefs->gconf, "/apps/evolution/mail/display/citation_colour", NULL)) gtk_widget_set_sensitive ((GtkWidget *) prefs->citation_color, FALSE); g_free (buf); /* Deleting Mail */ prefs->empty_trash = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "chkEmptyTrashOnExit")); - prefs->empty_trash_days = GTK_OPTION_MENU(glade_xml_get_widget (gui, "omenuEmptyTrashDays")); - emmp_empty_trash_init(prefs); + prefs->empty_trash_days = GTK_OPTION_MENU (glade_xml_get_widget (gui, "omenuEmptyTrashDays")); + emmp_empty_trash_init (prefs); prefs->confirm_expunge = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "chkConfirmExpunge")); - toggle_button_init (prefs->confirm_expunge, prefs->gconf, + toggle_button_init (prefs, prefs->confirm_expunge, FALSE, "/apps/evolution/mail/prompts/expunge", - FALSE, G_CALLBACK (settings_changed), prefs); + G_CALLBACK (toggle_button_toggled)); /* New Mail Notification */ locked = !gconf_client_key_is_writable (prefs->gconf, "/apps/evolution/mail/notify/type", NULL); @@ -562,19 +707,19 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs) val = gconf_client_get_int (prefs->gconf, "/apps/evolution/mail/notify/type", NULL); prefs->notify_not = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "radNotifyNot")); gtk_toggle_button_set_active (prefs->notify_not, val == MAIL_CONFIG_NOTIFY_NOT); - g_signal_connect (prefs->notify_not, "toggled", G_CALLBACK (settings_changed), prefs); + g_signal_connect (prefs->notify_not, "toggled", G_CALLBACK (notify_type_changed), prefs); if (locked) gtk_widget_set_sensitive ((GtkWidget *) prefs->notify_not, FALSE); prefs->notify_beep = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "radNotifyBeep")); gtk_toggle_button_set_active (prefs->notify_beep, val == MAIL_CONFIG_NOTIFY_BEEP); - g_signal_connect (prefs->notify_beep, "toggled", G_CALLBACK (settings_changed), prefs); + g_signal_connect (prefs->notify_beep, "toggled", G_CALLBACK (notify_type_changed), prefs); if (locked) gtk_widget_set_sensitive ((GtkWidget *) prefs->notify_beep, FALSE); prefs->notify_play_sound = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "radNotifyPlaySound")); gtk_toggle_button_set_active (prefs->notify_play_sound, val == MAIL_CONFIG_NOTIFY_PLAY_SOUND); - g_signal_connect (prefs->notify_play_sound, "toggled", G_CALLBACK (settings_changed), prefs); + g_signal_connect (prefs->notify_play_sound, "toggled", G_CALLBACK (notify_type_changed), prefs); if (locked) gtk_widget_set_sensitive ((GtkWidget *) prefs->notify_play_sound, FALSE); @@ -582,31 +727,33 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs) buf = gconf_client_get_string (prefs->gconf, "/apps/evolution/mail/notify/sound", NULL); gtk_entry_set_text (GTK_ENTRY (gnome_file_entry_gtk_entry (prefs->notify_sound_file)), buf ? buf : ""); g_signal_connect (gnome_file_entry_gtk_entry (prefs->notify_sound_file), "changed", - G_CALLBACK (settings_changed), prefs); + G_CALLBACK (notify_sound_changed), prefs); if (!gconf_client_key_is_writable (prefs->gconf, "/apps/evolution/mail/notify/sound", NULL)) gtk_widget_set_sensitive ((GtkWidget *) prefs->notify_sound_file, FALSE); g_free (buf); /* Mail Fonts */ font = gconf_client_get_string (prefs->gconf, "/apps/evolution/mail/display/fonts/monospace", NULL); - prefs->font_fixed = GNOME_FONT_PICKER (glade_xml_get_widget (gui, "radFontFixed")); + prefs->font_fixed = GNOME_FONT_PICKER (glade_xml_get_widget (gui, "FontFixed")); gnome_font_picker_set_font_name (prefs->font_fixed, font); + g_object_set_data ((GObject *) prefs->font_fixed, "key", "/apps/evolution/mail/display/fonts/monospace"); g_signal_connect (prefs->font_fixed, "font-set", G_CALLBACK (font_changed), prefs); if (!gconf_client_key_is_writable (prefs->gconf, "/apps/evolution/mail/display/fonts/monospace", NULL)) gtk_widget_set_sensitive ((GtkWidget *) prefs->font_fixed, FALSE); font = gconf_client_get_string (prefs->gconf, "/apps/evolution/mail/display/fonts/variable", NULL); - prefs->font_variable = GNOME_FONT_PICKER (glade_xml_get_widget (gui, "radFontVariable")); + prefs->font_variable = GNOME_FONT_PICKER (glade_xml_get_widget (gui, "FontVariable")); gnome_font_picker_set_font_name (prefs->font_variable, font); + g_object_set_data ((GObject *) prefs->font_variable, "key", "/apps/evolution/mail/display/fonts/variable"); g_signal_connect (prefs->font_variable, "font-set", G_CALLBACK (font_changed), prefs); if (!gconf_client_key_is_writable (prefs->gconf, "/apps/evolution/mail/display/fonts/variable", NULL)) gtk_widget_set_sensitive ((GtkWidget *) prefs->font_variable, FALSE); prefs->font_share = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "radFontUseSame")); - toggle_button_init (prefs->font_share, prefs->gconf, + toggle_button_init (prefs, prefs->font_share, TRUE, "/apps/evolution/mail/display/fonts/use_custom", - TRUE, G_CALLBACK (font_share_changed), prefs); - font_share_changed (GTK_WIDGET (prefs->font_share), prefs); + G_CALLBACK (custom_font_changed)); + font_share_changed (prefs->font_share, prefs); /* HTML Mail tab */ @@ -616,31 +763,31 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs) val = gconf_client_get_int (prefs->gconf, "/apps/evolution/mail/display/load_http_images", NULL); prefs->images_never = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "radImagesNever")); gtk_toggle_button_set_active (prefs->images_never, val == MAIL_CONFIG_HTTP_NEVER); - g_signal_connect (prefs->images_never, "toggled", G_CALLBACK (settings_changed), prefs); + g_signal_connect (prefs->images_never, "toggled", G_CALLBACK (http_images_changed), prefs); if (locked) gtk_widget_set_sensitive ((GtkWidget *) prefs->images_never, FALSE); prefs->images_sometimes = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "radImagesSometimes")); gtk_toggle_button_set_active (prefs->images_sometimes, val == MAIL_CONFIG_HTTP_SOMETIMES); - g_signal_connect (prefs->images_sometimes, "toggled", G_CALLBACK (settings_changed), prefs); + g_signal_connect (prefs->images_sometimes, "toggled", G_CALLBACK (http_images_changed), prefs); if (locked) gtk_widget_set_sensitive ((GtkWidget *) prefs->images_sometimes, FALSE); prefs->images_always = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "radImagesAlways")); gtk_toggle_button_set_active (prefs->images_always, val == MAIL_CONFIG_HTTP_ALWAYS); - g_signal_connect (prefs->images_always, "toggled", G_CALLBACK (settings_changed), prefs); + g_signal_connect (prefs->images_always, "toggled", G_CALLBACK (http_images_changed), prefs); if (locked) gtk_widget_set_sensitive ((GtkWidget *) prefs->images_always, FALSE); prefs->show_animated = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "chkShowAnimatedImages")); - toggle_button_init (prefs->show_animated, prefs->gconf, + toggle_button_init (prefs, prefs->show_animated, FALSE, "/apps/evolution/mail/display/animate_images", - FALSE, G_CALLBACK (settings_changed), prefs); + G_CALLBACK (toggle_button_toggled)); prefs->prompt_unwanted_html = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "chkPromptWantHTML")); - toggle_button_init (prefs->prompt_unwanted_html, prefs->gconf, + toggle_button_init (prefs, prefs->prompt_unwanted_html, FALSE, "/apps/evolution/mail/prompts/unwanted_html", - FALSE, G_CALLBACK (settings_changed), prefs); + G_CALLBACK (toggle_button_toggled)); /* Labels... */ locked = !gconf_client_key_is_writable (prefs->gconf, "/apps/evolution/mail/labels", NULL); @@ -663,10 +810,10 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs) g_free (widget_name); gtk_entry_set_text (prefs->labels[i].name, label->name); - g_signal_connect (prefs->labels[i].name, "changed", G_CALLBACK (settings_changed), prefs); + g_signal_connect (prefs->labels[i].name, "changed", G_CALLBACK (label_entry_changed), prefs); colorpicker_set_color (prefs->labels[i].color, label->colour); - g_signal_connect (prefs->labels[i].color, "color_set", G_CALLBACK (color_set), prefs); + g_signal_connect (prefs->labels[i].color, "color-set", G_CALLBACK (label_color_set), prefs); i++; list = list->next; @@ -788,19 +935,19 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs) /* Junk prefs */ prefs->check_incoming = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "chkCheckIncomingMail")); - toggle_button_init (prefs->check_incoming, prefs->gconf, + toggle_button_init (prefs, prefs->check_incoming, FALSE, "/apps/evolution/mail/junk/check_incoming", - FALSE, G_CALLBACK (settings_changed), prefs); + G_CALLBACK (toggle_button_toggled)); prefs->sa_local_tests_only = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "chkSALocalTestsOnly")); - toggle_button_init (prefs->sa_local_tests_only, prefs->gconf, + toggle_button_init (prefs, prefs->sa_local_tests_only, FALSE, "/apps/evolution/mail/junk/sa/local_only", - FALSE, G_CALLBACK (settings_changed), prefs); + G_CALLBACK (toggle_button_toggled)); prefs->sa_use_daemon = GTK_TOGGLE_BUTTON (glade_xml_get_widget (gui, "chkSAUseDaemon")); - toggle_button_init (prefs->sa_use_daemon, prefs->gconf, + toggle_button_init (prefs, prefs->sa_use_daemon, FALSE, "/apps/evolution/mail/junk/sa/use_daemon", - FALSE, G_CALLBACK (settings_changed), prefs); + G_CALLBACK (toggle_button_toggled)); } GtkWidget * @@ -818,139 +965,6 @@ em_mailer_prefs_new (void) void em_mailer_prefs_apply (EMMailerPrefs *prefs) { - GtkWidget *entry, *menu; - char *string, buf[20]; - const char *cstring; - GSList *list, *l, *n; - guint32 rgb; - int i, val; - GtkTreeIter iter; - gboolean valid; - GSList *header_list; - - /* General tab */ - - /* Message Display */ - gconf_client_set_bool (prefs->gconf, "/apps/evolution/mail/display/mark_seen", - gtk_toggle_button_get_active (prefs->timeout_toggle), NULL); - - val = (int) (gtk_spin_button_get_value (prefs->timeout) * 1000.0); - gconf_client_set_int (prefs->gconf, "/apps/evolution/mail/display/mark_seen_timeout", val, NULL); - - menu = gtk_option_menu_get_menu (prefs->charset); - if (!(string = e_charset_picker_get_charset (menu))) - string = g_strdup (e_iconv_locale_charset ()); - - gconf_client_set_string (prefs->gconf, "/apps/evolution/mail/display/charset", string, NULL); - g_free (string); - - gconf_client_set_bool (prefs->gconf, "/apps/evolution/mail/display/mark_citations", - gtk_toggle_button_get_active (prefs->citation_highlight), NULL); - - rgb = colorpicker_get_color (prefs->citation_color); - sprintf (buf,"#%06x", rgb & 0xffffff); - gconf_client_set_string (prefs->gconf, "/apps/evolution/mail/display/citation_colour", buf, NULL); - - /* Deleting Mail */ - gconf_client_set_bool (prefs->gconf, "/apps/evolution/mail/trash/empty_on_exit", - gtk_toggle_button_get_active (prefs->empty_trash), NULL); - val = gtk_option_menu_get_history(prefs->empty_trash_days); - if (val > sizeof(empty_trash_frequency)/sizeof(empty_trash_frequency[0])) - val = sizeof(empty_trash_frequency)/sizeof(empty_trash_frequency[0]); - if (val < 0) - val = 0; - gconf_client_set_int(prefs->gconf, "/apps/evolution/mail/trash/empty_on_exit_days", empty_trash_frequency[val].days, NULL); - - gconf_client_set_bool (prefs->gconf, "/apps/evolution/mail/prompts/expunge", - gtk_toggle_button_get_active (prefs->confirm_expunge), NULL); - - /* New Mail Notification */ - if (gtk_toggle_button_get_active (prefs->notify_not)) - val = MAIL_CONFIG_NOTIFY_NOT; - else if (gtk_toggle_button_get_active (prefs->notify_beep)) - val = MAIL_CONFIG_NOTIFY_BEEP; - else - val = MAIL_CONFIG_NOTIFY_PLAY_SOUND; - - gconf_client_set_int (prefs->gconf, "/apps/evolution/mail/notify/type", val, NULL); - - entry = gnome_file_entry_gtk_entry (GNOME_FILE_ENTRY (prefs->notify_sound_file)); - cstring = gtk_entry_get_text (GTK_ENTRY (entry)); - gconf_client_set_string (prefs->gconf, "/apps/evolution/mail/notify/sound", cstring, NULL); - - /* HTML Mail */ - if (gtk_toggle_button_get_active (prefs->images_always)) - val = MAIL_CONFIG_HTTP_ALWAYS; - else if (gtk_toggle_button_get_active (prefs->images_sometimes)) - val = MAIL_CONFIG_HTTP_SOMETIMES; - else - val = MAIL_CONFIG_HTTP_NEVER; - - gconf_client_set_int (prefs->gconf, "/apps/evolution/mail/display/load_http_images", val, NULL); - - gconf_client_set_string (prefs->gconf, "/apps/evolution/mail/display/fonts/variable", - gnome_font_picker_get_font_name (prefs->font_variable), NULL); - gconf_client_set_string (prefs->gconf, "/apps/evolution/mail/display/fonts/monospace", - gnome_font_picker_get_font_name (prefs->font_fixed), NULL); - gconf_client_set_bool (prefs->gconf, "/apps/evolution/mail/display/fonts/use_custom", - !gtk_toggle_button_get_active (prefs->font_share), NULL); - gconf_client_set_bool (prefs->gconf, "/apps/evolution/mail/display/animate_images", - gtk_toggle_button_get_active (prefs->show_animated), NULL); - - gconf_client_set_bool (prefs->gconf, "/apps/evolution/mail/prompts/unwanted_html", - gtk_toggle_button_get_active (prefs->prompt_unwanted_html), NULL); - - /* Labels and Colours */ - list = NULL; - for (i = 4; i >= 0; i--) { - cstring = gtk_entry_get_text (prefs->labels[i].name); - rgb = colorpicker_get_color (prefs->labels[i].color); - string = g_strdup_printf ("%s:#%06x", cstring, rgb & 0xffffff); - list = g_slist_prepend (list, string); - } - - gconf_client_set_list (prefs->gconf, "/apps/evolution/mail/labels", GCONF_VALUE_STRING, list, NULL); - - l = list; - while (l != NULL) { - n = l->next; - g_free (l->data); - g_slist_free_1 (l); - l = n; - } - - /* Headers */ - header_list = NULL; - valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (prefs->header_list_store), &iter); - while (valid) { - struct _EMMailerPrefsHeader h; - gboolean enabled; - char *xml; - - gtk_tree_model_get (GTK_TREE_MODEL (prefs->header_list_store), &iter, - HEADER_LIST_HEADER_COLUMN, &h.name, - HEADER_LIST_ENABLED_COLUMN, &enabled, - -1); - h.enabled = enabled; - - if ((xml = em_mailer_prefs_header_to_xml (&h))) - header_list = g_slist_append (header_list, xml); - - valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (prefs->header_list_store), &iter); - } - - gconf_client_set_list (prefs->gconf, "/apps/evolution/mail/display/headers", GCONF_VALUE_STRING, header_list, NULL); - g_slist_foreach (header_list, (GFunc) g_free, NULL); - g_slist_free (header_list); - - /* junk prefs */ - gconf_client_set_bool (prefs->gconf, "/apps/evolution/mail/junk/check_incoming", - gtk_toggle_button_get_active (prefs->check_incoming), NULL); - gconf_client_set_bool (prefs->gconf, "/apps/evolution/mail/junk/sa/local_only", - gtk_toggle_button_get_active (prefs->sa_local_tests_only), NULL); - gconf_client_set_bool (prefs->gconf, "/apps/evolution/mail/junk/sa/use_daemon", - gtk_toggle_button_get_active (prefs->sa_use_daemon), NULL); - gconf_client_suggest_sync (prefs->gconf, NULL); } diff --git a/mail/mail-config.glade b/mail/mail-config.glade index 2375bf75bb..ca7f7dc1bb 100644 --- a/mail/mail-config.glade +++ b/mail/mail-config.glade @@ -11,11 +11,6 @@ <property name="modal">False</property> <property name="resizable">True</property> <property name="destroy_with_parent">False</property> - <property name="decorated">True</property> - <property name="skip_taskbar_hint">False</property> - <property name="skip_pager_hint">False</property> - <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property> - <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> <child> <widget class="GnomeDruid" id="druid"> @@ -163,11 +158,6 @@ Click "Apply" to save your settings.</property> <property name="modal">False</property> <property name="resizable">True</property> <property name="destroy_with_parent">False</property> - <property name="decorated">True</property> - <property name="skip_taskbar_hint">False</property> - <property name="skip_pager_hint">False</property> - <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property> - <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> <child> <widget class="GtkNotebook" id="account_editor_notebook"> @@ -683,7 +673,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">Add Ne_w Signature...</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <signal name="clicked" handler="sigAddNewClicked"/> </widget> <packing> @@ -803,7 +792,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">_Make this my default account</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -1248,7 +1236,6 @@ For example: "Work" or "Personal"</property> <property name="browse_dialog_title" translatable="yes">Mailbox location</property> <property name="directory_entry">False</property> <property name="modal">False</property> - <property name="use_filechooser">False</property> <child internal-child="entry"> <widget class="GtkEntry" id="source_path"> @@ -1410,7 +1397,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes"> Ch_eck for Supported Types </property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> </widget> <packing> <property name="padding">0</property> @@ -1434,7 +1420,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">Re_member password</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -1816,7 +1801,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">Automatically check for _new mail every</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -2224,7 +2208,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">Ser_ver requires authentication</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -2462,7 +2445,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">Ch_eck for Supported Types </property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> </widget> <packing> <property name="padding">0</property> @@ -2505,7 +2487,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">Remember _password</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -2998,7 +2979,6 @@ For example: "Work" or "Personal"</property> <property name="label">gtk-revert-to-saved</property> <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> </widget> <packing> <property name="padding">0</property> @@ -3147,7 +3127,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">Alway_s carbon-copy (cc) to:</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -3263,7 +3242,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">Always _blind carbon-copy (bcc) to:</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -3557,7 +3535,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">Always _sign outgoing messages when using this account</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -3576,7 +3553,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">Don't sign _meeting requests (for Outlook compatibility)</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -3595,7 +3571,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">Al_ways encrypt to myself when sending encrypted mail</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">True</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -3614,7 +3589,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">Always _trust keys in my keyring when encrypting</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -3767,7 +3741,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">A_lso encrypt to self when sending encrypted mail</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -3789,7 +3762,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">_Encrypt outgoing messages (by default)</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -3811,7 +3783,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">_Digitally sign outgoing messages (by default)</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -3902,7 +3873,6 @@ For example: "Work" or "Personal"</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <child> <widget class="GtkAlignment" id="alignment28"> @@ -3911,10 +3881,6 @@ For example: "Work" or "Personal"</property> <property name="yalign">0.5</property> <property name="xscale">0</property> <property name="yscale">0</property> - <property name="top_padding">0</property> - <property name="bottom_padding">0</property> - <property name="left_padding">0</property> - <property name="right_padding">0</property> <child> <widget class="GtkHBox" id="hbox175"> @@ -3978,7 +3944,6 @@ For example: "Work" or "Personal"</property> <property name="label">gtk-clear</property> <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> </widget> <packing> <property name="padding">0</property> @@ -4008,7 +3973,6 @@ For example: "Work" or "Personal"</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <child> <widget class="GtkAlignment" id="alignment29"> @@ -4017,10 +3981,6 @@ For example: "Work" or "Personal"</property> <property name="yalign">0.5</property> <property name="xscale">0</property> <property name="yscale">0</property> - <property name="top_padding">0</property> - <property name="bottom_padding">0</property> - <property name="left_padding">0</property> - <property name="right_padding">0</property> <child> <widget class="GtkHBox" id="hbox176"> @@ -4084,7 +4044,6 @@ For example: "Work" or "Personal"</property> <property name="label">gtk-clear</property> <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> </widget> <packing> <property name="padding">0</property> @@ -4159,11 +4118,6 @@ For example: "Work" or "Personal"</property> <property name="modal">False</property> <property name="resizable">True</property> <property name="destroy_with_parent">False</property> - <property name="decorated">True</property> - <property name="skip_taskbar_hint">False</property> - <property name="skip_pager_hint">False</property> - <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property> - <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> <child> <widget class="GtkHBox" id="toplevel"> @@ -4206,7 +4160,6 @@ For example: "Work" or "Personal"</property> <property name="label">gtk-add</property> <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> </widget> </child> @@ -4217,7 +4170,6 @@ For example: "Work" or "Personal"</property> <property name="can_default">True</property> <property name="can_focus">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <child> <widget class="GtkAlignment" id="alignment33"> @@ -4226,10 +4178,6 @@ For example: "Work" or "Personal"</property> <property name="yalign">0.5</property> <property name="xscale">0</property> <property name="yscale">0</property> - <property name="top_padding">0</property> - <property name="bottom_padding">0</property> - <property name="left_padding">0</property> - <property name="right_padding">0</property> <child> <widget class="GtkHBox" id="hbox224"> @@ -4290,7 +4238,6 @@ For example: "Work" or "Personal"</property> <property name="label">gtk-remove</property> <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> </widget> </child> </widget> @@ -4316,7 +4263,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">De_fault</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> </widget> </child> @@ -4329,7 +4275,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">E_nable</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> </widget> </child> </widget> @@ -4357,11 +4302,6 @@ For example: "Work" or "Personal"</property> <property name="modal">False</property> <property name="resizable">True</property> <property name="destroy_with_parent">False</property> - <property name="decorated">True</property> - <property name="skip_taskbar_hint">False</property> - <property name="skip_pager_hint">False</property> - <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property> - <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> <child> <widget class="GtkNotebook" id="toplevel"> @@ -4456,7 +4396,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">_Use the same fonts as other applications</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -4490,7 +4429,6 @@ For example: "Work" or "Personal"</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> - <property name="mnemonic_widget">radFontVariable</property> </widget> <packing> <property name="left_attach">0</property> @@ -4503,7 +4441,7 @@ For example: "Work" or "Personal"</property> </child> <child> - <widget class="GnomeFontPicker" id="radFontFixed"> + <widget class="GnomeFontPicker" id="FontFixed"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="title" translatable="yes">Select HTML fixed width font</property> @@ -4511,7 +4449,6 @@ For example: "Work" or "Personal"</property> <property name="show_size">True</property> <property name="use_font_in_label">False</property> <property name="label_font_size">14</property> - <property name="focus_on_click">True</property> <signal name="font_set" handler="changed"/> </widget> <packing> @@ -4525,7 +4462,7 @@ For example: "Work" or "Personal"</property> </child> <child> - <widget class="GnomeFontPicker" id="radFontVariable"> + <widget class="GnomeFontPicker" id="FontVariable"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="title" translatable="yes">Select HTML variable width font</property> @@ -4533,7 +4470,6 @@ For example: "Work" or "Personal"</property> <property name="show_size">True</property> <property name="use_font_in_label">False</property> <property name="label_font_size">14</property> - <property name="focus_on_click">True</property> <signal name="font_set" handler="changed"/> </widget> <packing> @@ -4559,7 +4495,6 @@ For example: "Work" or "Personal"</property> <property name="yalign">0.5</property> <property name="xpad">0</property> <property name="ypad">0</property> - <property name="mnemonic_widget">radFontFixed</property> </widget> <packing> <property name="left_attach">0</property> @@ -4689,7 +4624,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">_Mark messages as read after</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -4761,7 +4695,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">Highlight _quotations with</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">True</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -4780,7 +4713,6 @@ For example: "Work" or "Personal"</property> <property name="dither">True</property> <property name="use_alpha">False</property> <property name="title" translatable="yes">Pick a color</property> - <property name="focus_on_click">True</property> </widget> <packing> <property name="padding">0</property> @@ -4998,7 +4930,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">Empty trash folders on e_xit</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -5037,7 +4968,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">Confirm _when expunging a folder</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -5154,7 +5084,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">_Do not notify me when new mail arrives</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">True</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -5173,7 +5102,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">Beep w_hen new mail arrives</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -5193,7 +5121,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">Play sound file when new mail arri_ves</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -5241,7 +5168,6 @@ For example: "Work" or "Personal"</property> <property name="browse_dialog_title" translatable="yes">Execute Command...</property> <property name="directory_entry">False</property> <property name="modal">False</property> - <property name="use_filechooser">False</property> <child internal-child="entry"> <widget class="GtkEntry" id="txtNotifyPlaySound"> @@ -5393,7 +5319,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">_Show animated images</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -5412,7 +5337,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">_Prompt when sending HTML messages to contacts that don't want them</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -5505,7 +5429,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">_Never load images from the Internet</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -5524,7 +5447,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">_Load images if sender is in address book</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -5544,7 +5466,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">_Always load images from the Internet</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -5674,7 +5595,6 @@ For example: "Work" or "Personal"</property> <property name="dither">True</property> <property name="use_alpha">False</property> <property name="title" translatable="yes">Pick a color</property> - <property name="focus_on_click">True</property> </widget> <packing> <property name="left_attach">1</property> @@ -5693,7 +5613,6 @@ For example: "Work" or "Personal"</property> <property name="dither">True</property> <property name="use_alpha">False</property> <property name="title" translatable="yes">Pick a color</property> - <property name="focus_on_click">True</property> </widget> <packing> <property name="left_attach">1</property> @@ -5712,7 +5631,6 @@ For example: "Work" or "Personal"</property> <property name="dither">True</property> <property name="use_alpha">False</property> <property name="title" translatable="yes">Pick a color</property> - <property name="focus_on_click">True</property> </widget> <packing> <property name="left_attach">1</property> @@ -5731,7 +5649,6 @@ For example: "Work" or "Personal"</property> <property name="dither">True</property> <property name="use_alpha">False</property> <property name="title" translatable="yes">Pick a color</property> - <property name="focus_on_click">True</property> </widget> <packing> <property name="left_attach">1</property> @@ -5750,7 +5667,6 @@ For example: "Work" or "Personal"</property> <property name="dither">True</property> <property name="use_alpha">False</property> <property name="title" translatable="yes">Pick a color</property> - <property name="focus_on_click">True</property> </widget> <packing> <property name="left_attach">1</property> @@ -5885,7 +5801,6 @@ For example: "Work" or "Personal"</property> <property name="label">gtk-revert-to-saved</property> <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> </widget> <packing> <property name="padding">0</property> @@ -6072,7 +5987,6 @@ For example: "Work" or "Personal"</property> <property name="label">gtk-add</property> <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> </widget> <packing> <property name="padding">0</property> @@ -6088,7 +6002,6 @@ For example: "Work" or "Personal"</property> <property name="label">gtk-remove</property> <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> </widget> <packing> <property name="padding">0</property> @@ -6214,7 +6127,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">Check _Incoming Mail</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -6323,7 +6235,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">_Local Tests Only</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -6342,7 +6253,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">Use _Daemon</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -6412,11 +6322,6 @@ For example: "Work" or "Personal"</property> <property name="modal">False</property> <property name="resizable">True</property> <property name="destroy_with_parent">False</property> - <property name="decorated">True</property> - <property name="skip_taskbar_hint">False</property> - <property name="skip_pager_hint">False</property> - <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property> - <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> <child> <widget class="GtkNotebook" id="toplevel"> @@ -6511,7 +6416,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">Format messages in _HTML</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -6530,7 +6434,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">Automatically _insert smiley images</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -6582,10 +6485,6 @@ For example: "Work" or "Personal"</property> <property name="yalign">0.5</property> <property name="xscale">0</property> <property name="yscale">1</property> - <property name="top_padding">0</property> - <property name="bottom_padding">0</property> - <property name="left_padding">0</property> - <property name="right_padding">0</property> <child> <widget class="GtkHBox" id="hboxReplyStyle"> @@ -6894,7 +6793,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">_Prompt when sending messages with an empty subject line</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -6913,7 +6811,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">Pr_ompt when sending messages with only Bcc recipients defined</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> @@ -7108,7 +7005,6 @@ For example: "Work" or "Personal"</property> <property name="label">gtk-add</property> <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> </widget> </child> @@ -7118,7 +7014,6 @@ For example: "Work" or "Personal"</property> <property name="can_default">True</property> <property name="can_focus">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <signal name="clicked" handler="cmdSignatureAddScriptClicked"/> <child> @@ -7128,10 +7023,6 @@ For example: "Work" or "Personal"</property> <property name="yalign">0.5</property> <property name="xscale">0</property> <property name="yscale">0</property> - <property name="top_padding">0</property> - <property name="bottom_padding">0</property> - <property name="left_padding">0</property> - <property name="right_padding">0</property> <child> <widget class="GtkHBox" id="hbox223"> @@ -7189,7 +7080,6 @@ For example: "Work" or "Personal"</property> <property name="can_default">True</property> <property name="can_focus">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <child> <widget class="GtkAlignment" id="alignment31"> @@ -7198,10 +7088,6 @@ For example: "Work" or "Personal"</property> <property name="yalign">0.5</property> <property name="xscale">0</property> <property name="yscale">0</property> - <property name="top_padding">0</property> - <property name="bottom_padding">0</property> - <property name="left_padding">0</property> - <property name="right_padding">0</property> <child> <widget class="GtkHBox" id="hbox222"> @@ -7261,7 +7147,6 @@ For example: "Work" or "Personal"</property> <property name="label">gtk-remove</property> <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> </widget> </child> </widget> @@ -7558,8 +7443,6 @@ For example: "Work" or "Personal"</property> <property name="rules_hint">False</property> <property name="reorderable">False</property> <property name="enable_search">True</property> - <signal name="select_row" handler="spellLanguageSelectRow"/> - <signal name="unselect_row" handler="spellLanguageUnselectRow"/> </widget> </child> </widget> @@ -7599,8 +7482,6 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">_Enable</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - <signal name="clicked" handler="spellLanguageEnable"/> </widget> <packing> <property name="padding">0</property> @@ -7711,11 +7592,9 @@ For example: "Work" or "Personal"</property> <property name="label" translatable="yes">Check spelling while I _type</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="active">False</property> <property name="inconsistent">False</property> <property name="draw_indicator">True</property> - <signal name="toggled" handler="spellLiveToggled" last_modification_time="Tue, 30 Mar 2004 10:25:49 GMT"/> </widget> <packing> <property name="padding">0</property> @@ -7759,8 +7638,6 @@ For example: "Work" or "Personal"</property> <property name="dither">True</property> <property name="use_alpha">False</property> <property name="title" translatable="yes">Pick a color</property> - <property name="focus_on_click">True</property> - <signal name="color_set" handler="spellColorSet"/> </widget> <packing> <property name="padding">0</property> @@ -7832,11 +7709,6 @@ For example: "Work" or "Personal"</property> <property name="modal">False</property> <property name="resizable">True</property> <property name="destroy_with_parent">False</property> - <property name="decorated">True</property> - <property name="skip_taskbar_hint">False</property> - <property name="skip_pager_hint">False</property> - <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property> - <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> <child> <widget class="GtkVBox" id="toplevel"> @@ -7970,7 +7842,6 @@ For example: "Work" or "Personal"</property> <property name="show_size">True</property> <property name="use_font_in_label">False</property> <property name="label_font_size">14</property> - <property name="focus_on_click">True</property> <signal name="font_set" handler="changed"/> </widget> <packing> @@ -7992,7 +7863,6 @@ For example: "Work" or "Personal"</property> <property name="show_size">True</property> <property name="use_font_in_label">False</property> <property name="label_font_size">14</property> - <property name="focus_on_click">True</property> <signal name="font_set" handler="changed"/> </widget> <packing> @@ -8036,11 +7906,6 @@ For example: "Work" or "Personal"</property> <property name="modal">False</property> <property name="resizable">True</property> <property name="destroy_with_parent">False</property> - <property name="decorated">True</property> - <property name="skip_taskbar_hint">False</property> - <property name="skip_pager_hint">False</property> - <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property> - <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> <property name="has_separator">False</property> <child internal-child="vbox"> @@ -8060,7 +7925,6 @@ For example: "Work" or "Personal"</property> <property name="can_default">True</property> <property name="can_focus">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="response_id">0</property> <child> @@ -8070,10 +7934,6 @@ For example: "Work" or "Personal"</property> <property name="yalign">0.5</property> <property name="xscale">0</property> <property name="yscale">0</property> - <property name="top_padding">0</property> - <property name="bottom_padding">0</property> - <property name="left_padding">0</property> - <property name="right_padding">0</property> <child> <widget class="GtkHBox" id="hbox221"> @@ -8133,7 +7993,6 @@ For example: "Work" or "Personal"</property> <property name="label">gtk-cancel</property> <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> <property name="response_id">0</property> </widget> </child> @@ -8299,7 +8158,6 @@ for display purposes only. </property> <property name="max_saved">10</property> <property name="directory_entry">False</property> <property name="modal">False</property> - <property name="use_filechooser">False</property> <child internal-child="entry"> <widget class="GtkEntry" id="combo-entry2"> |