From 10590768038b2f3172040da50533ca4f7802fc34 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Fri, 18 Dec 2009 17:56:11 +0100 Subject: Bug #596967 - Per-folder setting for threading and preview panel --- modules/mail/e-mail-shell-view-actions.c | 39 +++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) (limited to 'modules/mail/e-mail-shell-view-actions.c') diff --git a/modules/mail/e-mail-shell-view-actions.c b/modules/mail/e-mail-shell-view-actions.c index 93a3bf63a1..f300ec0c92 100644 --- a/modules/mail/e-mail-shell-view-actions.c +++ b/modules/mail/e-mail-shell-view-actions.c @@ -482,6 +482,28 @@ action_mail_hide_selected_cb (GtkAction *action, em_utils_uids_free (uids); } +static void +action_mail_preview_cb (GtkToggleAction *action, EMailShellView *mail_shell_view) +{ + const gchar *folder_uri; + EMailReader *reader; + + reader = E_MAIL_READER (mail_shell_view->priv->mail_shell_content); + folder_uri = e_mail_reader_get_folder_uri (reader); + + if (folder_uri) { + GKeyFile *key_file; + const gchar *key; + gchar *group_name; + + key_file = e_shell_view_get_state_key_file (E_SHELL_VIEW (mail_shell_view)); + key = STATE_KEY_PREVIEW; + group_name = g_strdup_printf ("Folder %s", folder_uri); + g_key_file_set_boolean (key_file, group_name, key, gtk_toggle_action_get_active (action)); + g_free (group_name); + } +} + static void action_mail_label_cb (GtkToggleAction *action, EMailShellView *mail_shell_view) @@ -821,6 +843,7 @@ action_mail_threads_group_by_cb (GtkToggleAction *action, EMailShellContent *mail_shell_content; GtkWidget *message_list; EMailReader *reader; + const gchar *folder_uri; gboolean active; mail_shell_content = mail_shell_view->priv->mail_shell_content; @@ -830,6 +853,20 @@ action_mail_threads_group_by_cb (GtkToggleAction *action, message_list = e_mail_reader_get_message_list (reader); message_list_set_threaded (MESSAGE_LIST (message_list), active); + + folder_uri = e_mail_reader_get_folder_uri (reader); + + if (folder_uri) { + GKeyFile *key_file; + const gchar *key; + gchar *group_name; + + key_file = e_shell_view_get_state_key_file (E_SHELL_VIEW (mail_shell_view)); + key = STATE_KEY_THREAD_LIST; + group_name = g_strdup_printf ("Folder %s", folder_uri); + g_key_file_set_boolean (key_file, group_name, key, active); + g_free (group_name); + } } static void @@ -1281,7 +1318,7 @@ static GtkToggleActionEntry mail_toggle_entries[] = { N_("Show Message _Preview"), "m", N_("Show message preview pane"), - NULL, /* Handled by property bindings */ + G_CALLBACK (action_mail_preview_cb), /* Also handled by property bindings */ TRUE }, { "mail-threads-group-by", -- cgit v1.2.3