add 'Default From:' to folder prefs
[claws.git] / src / folder_item_prefs.c
index e54bff04c253b77b2364e511a09a11cd5be420a8..b8ae56bb7d8329ac4ec38f9ab1907870522b2dc4 100644 (file)
@@ -1,6 +1,6 @@
 /*
- * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2012 Hiroyuki Yamamoto and the Claws Mail team
+ * Claws Mail -- a GTK+ based, lightweight, and fast e-mail client
+ * Copyright (C) 1999-2021 the Claws Mail team and Hiroyuki Yamamoto
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
 #include "prefs_gtk.h"
 #include "filtering.h"
 #include "folder_item_prefs.h"
+#include "prefs_migration.h"
 
 FolderItemPrefs tmp_prefs;
 
 static PrefParam param[] = {
+       {"enable_default_from", "", &tmp_prefs.enable_default_from, P_BOOL,
+        NULL, NULL, NULL},
+       {"default_from", "", &tmp_prefs.default_from, P_STRING,
+        NULL, NULL, NULL},
        {"enable_default_to", "", &tmp_prefs.enable_default_to, P_BOOL,
         NULL, NULL, NULL},
        {"default_to", "", &tmp_prefs.default_to, P_STRING,
@@ -77,9 +82,13 @@ static PrefParam param[] = {
        {"default_alt_dictionary", NULL, &tmp_prefs.default_alt_dictionary, P_STRING,
         NULL, NULL, NULL},
 #endif  
+       {"always_sign", "0", &tmp_prefs.always_sign, P_ENUM,
+        NULL, NULL, NULL},
+       {"always_encrypt", "0", &tmp_prefs.always_encrypt, P_ENUM,
+        NULL, NULL, NULL},
        {"save_copy_to_folder", NULL, &tmp_prefs.save_copy_to_folder, P_BOOL,
         NULL, NULL, NULL},
-       {"folder_color", "", &tmp_prefs.color, P_INT,
+       {"folder_color", "#000000", &tmp_prefs.color, P_COLOR,
         NULL, NULL, NULL},
        {"enable_processing", "FALSE", &tmp_prefs.enable_processing, P_BOOL,
         NULL, NULL, NULL},
@@ -95,6 +104,8 @@ static PrefParam param[] = {
         NULL, NULL, NULL},
        {"promote_html_part", "0", &tmp_prefs.promote_html_part, P_ENUM,
         NULL, NULL, NULL},
+       {"skip_on_goto_unread_or_new", "FALSE", &tmp_prefs.skip_on_goto_unread_or_new, P_BOOL,
+        NULL, NULL, NULL},
 
        {"compose_with_format", "FALSE", &tmp_prefs.compose_with_format, P_BOOL,
         NULL, NULL, NULL},
@@ -120,6 +131,8 @@ static PrefParam param[] = {
         NULL, NULL, NULL},
        {"forward_body_format", NULL, &tmp_prefs.forward_body_format, P_STRING,
         NULL, NULL, NULL},
+       {"config_version", "-1", &tmp_prefs.config_version, P_INT,
+        NULL, NULL, NULL},
        {NULL, NULL, NULL, P_OTHER, NULL, NULL, NULL}
 };
 
@@ -138,6 +151,8 @@ void folder_item_prefs_read_config(FolderItem * item)
        g_free(rcpath);
 
        *item->prefs = tmp_prefs;
+
+       prefs_update_config_version_folder_item(item);
 }
 
 void folder_item_prefs_save_config(FolderItem * item)
@@ -176,6 +191,8 @@ void folder_prefs_save_config_recursive(Folder *folder)
 
 static FolderItemPrefs *folder_item_prefs_clear(FolderItemPrefs *prefs)
 {
+       prefs->enable_default_from = FALSE;
+       prefs->default_from = NULL;
        prefs->enable_default_to = FALSE;
        prefs->default_to = NULL;
        prefs->enable_default_reply_to = FALSE;
@@ -198,11 +215,13 @@ static FolderItemPrefs *folder_item_prefs_clear(FolderItemPrefs *prefs)
        prefs->enable_default_alt_dictionary = FALSE;
        prefs->default_alt_dictionary = NULL;
 #endif
+       prefs->always_sign = SIGN_OR_ENCRYPT_DEFAULT;
+       prefs->always_encrypt = SIGN_OR_ENCRYPT_DEFAULT;
        prefs->save_copy_to_folder = FALSE;
        prefs->color = 0;
 
-        prefs->enable_processing = TRUE;
-        prefs->enable_processing_when_opening = TRUE;
+       prefs->enable_processing = FALSE;
+       prefs->enable_processing_when_opening = FALSE;
        prefs->processing = NULL;
 
        prefs->newmailcheck = TRUE;
@@ -210,6 +229,7 @@ static FolderItemPrefs *folder_item_prefs_clear(FolderItemPrefs *prefs)
        prefs->offlinesync_days = 0;
        prefs->remove_old_bodies = FALSE;
        prefs->promote_html_part = HTML_PROMOTE_DEFAULT;
+       prefs->skip_on_goto_unread_or_new = FALSE;
 
        prefs->compose_with_format = FALSE;
        prefs->compose_subject_format = NULL;
@@ -237,6 +257,7 @@ FolderItemPrefs * folder_item_prefs_new(void)
 
 void folder_item_prefs_free(FolderItemPrefs * prefs)
 {
+       g_free(prefs->default_from);
        g_free(prefs->default_to);
        g_free(prefs->default_reply_to);
        g_free(prefs->default_cc);
@@ -270,6 +291,7 @@ void folder_item_prefs_copy_prefs(FolderItem * src, FolderItem * dest)
        tmp_prefs.offlinesync_days              = src->prefs->offlinesync_days;
        tmp_prefs.remove_old_bodies             = src->prefs->remove_old_bodies;
        tmp_prefs.promote_html_part             = src->prefs->promote_html_part;
+       tmp_prefs.skip_on_goto_unread_or_new    = src->prefs->skip_on_goto_unread_or_new;
 
        prefs_matcher_read_config();
 
@@ -283,6 +305,8 @@ void folder_item_prefs_copy_prefs(FolderItem * src, FolderItem * dest)
        tmp_prefs.processing                    = tmp_prop_list;
        
        tmp_prefs.request_return_receipt        = src->prefs->request_return_receipt;
+       tmp_prefs.enable_default_from           = src->prefs->enable_default_from;
+       tmp_prefs.default_from                  = g_strdup(src->prefs->default_from);
        tmp_prefs.enable_default_to             = src->prefs->enable_default_to;
        tmp_prefs.default_to                    = g_strdup(src->prefs->default_to);
        tmp_prefs.enable_default_reply_to       = src->prefs->enable_default_reply_to;
@@ -305,6 +329,8 @@ void folder_item_prefs_copy_prefs(FolderItem * src, FolderItem * dest)
        tmp_prefs.enable_default_alt_dictionary = src->prefs->enable_default_alt_dictionary;
        tmp_prefs.default_alt_dictionary        = g_strdup(src->prefs->default_alt_dictionary);
 #endif
+       tmp_prefs.always_sign           = src->prefs->always_sign;
+       tmp_prefs.always_encrypt    = src->prefs->always_encrypt;
        tmp_prefs.save_copy_to_folder           = src->prefs->save_copy_to_folder;
        tmp_prefs.color                         = src->prefs->color;
 
@@ -323,6 +349,7 @@ void folder_item_prefs_copy_prefs(FolderItem * src, FolderItem * dest)
 
        *dest->prefs = tmp_prefs;
        folder_item_prefs_save_config(dest);
+       prefs_matcher_write_config();
 
        dest->collapsed = src->collapsed;
        dest->thread_collapsed = src->thread_collapsed;
@@ -333,5 +360,4 @@ void folder_item_prefs_copy_prefs(FolderItem * src, FolderItem * dest)
        dest->hide_read_threads = src->hide_read_threads;
        dest->sort_key  = src->sort_key;
        dest->sort_type = src->sort_type;
-
 }