aboutsummaryrefslogtreecommitdiffstats
path: root/modules/mail/e-mail-shell-view-actions.c
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2009-12-19 00:56:11 +0800
committerMilan Crha <mcrha@redhat.com>2009-12-19 00:56:11 +0800
commit10590768038b2f3172040da50533ca4f7802fc34 (patch)
tree64e23fda77958e0a421d828ccf54c4ee784bacf2 /modules/mail/e-mail-shell-view-actions.c
parentf148a0b0e3aaee26c42c7fc03f7a6359ead71abb (diff)
downloadgsoc2013-evolution-10590768038b2f3172040da50533ca4f7802fc34.tar
gsoc2013-evolution-10590768038b2f3172040da50533ca4f7802fc34.tar.gz
gsoc2013-evolution-10590768038b2f3172040da50533ca4f7802fc34.tar.bz2
gsoc2013-evolution-10590768038b2f3172040da50533ca4f7802fc34.tar.lz
gsoc2013-evolution-10590768038b2f3172040da50533ca4f7802fc34.tar.xz
gsoc2013-evolution-10590768038b2f3172040da50533ca4f7802fc34.tar.zst
gsoc2013-evolution-10590768038b2f3172040da50533ca4f7802fc34.zip
Bug #596967 - Per-folder setting for threading and preview panel
Diffstat (limited to 'modules/mail/e-mail-shell-view-actions.c')
-rw-r--r--modules/mail/e-mail-shell-view-actions.c39
1 files changed, 38 insertions, 1 deletions
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
@@ -483,6 +483,28 @@ action_mail_hide_selected_cb (GtkAction *action,
}
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"),
"<Control>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",