#include "summaryview.h"
#include "menu.h"
#include "account.h"
-#include "prefs.h"
+#include "prefs_gtk.h"
#include "manage_window.h"
#include "utils.h"
#include "addr_compl.h"
#include "prefs_scoring.h"
#include "gtkutils.h"
+#include "filtering.h"
PrefsFolderItem tmp_prefs;
GtkWidget *checkbtn_save_copy_to_folder;
GtkWidget *checkbtn_default_to;
GtkWidget *entry_default_to;
+ GtkWidget *checkbtn_default_reply_to;
+ GtkWidget *entry_default_reply_to;
GtkWidget *checkbtn_simplify_subject;
GtkWidget *entry_simplify_subject;
GtkWidget *checkbtn_folder_chmod;
NULL, NULL, NULL},
/*{"enable_thread", "TRUE", &tmp_prefs.enable_thread, P_BOOL,
NULL, NULL, NULL},*/
- {"kill_score", "-9999", &tmp_prefs.kill_score, P_INT,
+ {"hide_score", "-9999", &tmp_prefs.kill_score, P_INT,
NULL, NULL, NULL},
{"important_score", "1", &tmp_prefs.important_score, P_INT,
NULL, NULL, NULL},
NULL, NULL, NULL},
{"default_to", "", &tmp_prefs.default_to, P_STRING,
NULL, NULL, NULL},
+ {"enable_default_reply_to", "", &tmp_prefs.enable_default_reply_to, P_BOOL,
+ NULL, NULL, NULL},
+ {"default_reply_to", "", &tmp_prefs.default_reply_to, P_STRING,
+ NULL, NULL, NULL},
{"enable_simplify_subject", "", &tmp_prefs.enable_simplify_subject, P_BOOL,
NULL, NULL, NULL},
{"simplify_subject_regexp", "", &tmp_prefs.simplify_subject_regexp, P_STRING,
{NULL, NULL, NULL, P_OTHER, NULL, NULL, NULL}
};
+static PrefsFolderItem *prefs_folder_item_clear (PrefsFolderItem *prefs);
void prefs_folder_item_delete_cb (GtkWidget *widget, GdkEventAny *event,
struct PrefsFolderItemDialog *dialog);
void prefs_folder_item_cancel_cb (GtkWidget *widget,
gchar * id;
id = folder_item_get_identifier(item);
-
- tmp_prefs.scoring = NULL;
- tmp_prefs.processing = NULL;
+ prefs_folder_item_clear(&tmp_prefs);
prefs_read_config(param, id, FOLDERITEM_RC);
g_free(id);
item->sort_type = sort_mode;
}
+static PrefsFolderItem *prefs_folder_item_clear(PrefsFolderItem *prefs)
+{
+ prefs->sort_by_number = FALSE;
+ prefs->sort_by_size = FALSE;
+ prefs->sort_by_date = FALSE;
+ prefs->sort_by_from = FALSE;
+ prefs->sort_by_subject = FALSE;
+ prefs->sort_by_score = FALSE;
+ prefs->sort_descending = FALSE;
+ prefs->kill_score = -9999;
+ prefs->important_score = 9999;
+
+ prefs->request_return_receipt = FALSE;
+ prefs->enable_default_to = FALSE;
+ prefs->default_to = NULL;
+ prefs->enable_default_reply_to = FALSE;
+ prefs->default_reply_to = NULL;
+ prefs->enable_simplify_subject = FALSE;
+ prefs->simplify_subject_regexp = NULL;
+ prefs->enable_folder_chmod = FALSE;
+ prefs->folder_chmod = 0;
+ prefs->enable_default_account = FALSE;
+ prefs->default_account = 0;
+ prefs->save_copy_to_folder = FALSE;
+ prefs->color = 0;
+
+ prefs->scoring = NULL;
+ prefs->processing = NULL;
+ return prefs;
+}
+
PrefsFolderItem * prefs_folder_item_new(void)
{
PrefsFolderItem * prefs;
prefs = g_new0(PrefsFolderItem, 1);
- tmp_prefs.sort_by_number = FALSE;
- tmp_prefs.sort_by_size = FALSE;
- tmp_prefs.sort_by_date = FALSE;
- tmp_prefs.sort_by_from = FALSE;
- tmp_prefs.sort_by_subject = FALSE;
- tmp_prefs.sort_by_score = FALSE;
- tmp_prefs.sort_descending = FALSE;
- tmp_prefs.kill_score = -9999;
- tmp_prefs.important_score = 9999;
-
- tmp_prefs.request_return_receipt = FALSE;
- tmp_prefs.enable_default_to = FALSE;
- tmp_prefs.default_to = NULL;
- tmp_prefs.enable_simplify_subject = FALSE;
- tmp_prefs.simplify_subject_regexp = NULL;
- tmp_prefs.enable_folder_chmod = FALSE;
- tmp_prefs.folder_chmod = 0;
- tmp_prefs.enable_default_account = FALSE;
- tmp_prefs.default_account = 0;
- tmp_prefs.save_copy_to_folder = FALSE;
- tmp_prefs.color = 0;
-
- tmp_prefs.scoring = NULL;
- tmp_prefs.processing = NULL;
-
- * prefs = tmp_prefs;
-
- return prefs;
+ return prefs_folder_item_clear(prefs);
}
void prefs_folder_item_free(PrefsFolderItem * prefs)
{
if (prefs->default_to)
g_free(prefs->default_to);
+ if (prefs->default_reply_to)
+ g_free(prefs->default_reply_to);
if (prefs->scoring != NULL)
prefs_scoring_free(prefs->scoring);
g_free(prefs);
GtkWidget *checkbtn_save_copy_to_folder;
GtkWidget *checkbtn_default_to;
GtkWidget *entry_default_to;
+ GtkWidget *checkbtn_default_reply_to;
+ GtkWidget *entry_default_reply_to;
GtkWidget *checkbtn_simplify_subject;
GtkWidget *entry_simplify_subject;
GtkWidget *checkbtn_folder_chmod;
/* Window */
window = gtk_window_new (GTK_WINDOW_DIALOG);
gtk_window_set_title (GTK_WINDOW(window),
- _("Folder Property"));
+ _("Folder Properties"));
gtk_container_set_border_width (GTK_CONTAINER (window), 8);
gtk_window_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER);
gtk_window_set_policy (GTK_WINDOW (window), FALSE, TRUE, FALSE);
/* Label */
folder_identifier = folder_item_get_identifier(item);
- infotext = g_strconcat(_("Folder Property for "), folder_identifier, NULL);
+ infotext = g_strconcat(_("Folder Properties for "), folder_identifier, NULL);
infolabel = gtk_label_new(infotext);
gtk_table_attach(GTK_TABLE(table), infolabel, 0, 2, rowcount,
rowcount + 1, GTK_SHRINK | GTK_FILL, GTK_SHRINK, 0, 0);
rowcount++;
+ /* Default address to reply to */
+ checkbtn_default_reply_to = gtk_check_button_new_with_label(_("Send replies to: "));
+ gtk_widget_show(checkbtn_default_reply_to);
+ gtk_table_attach(GTK_TABLE(table), checkbtn_default_reply_to, 0, 1,
+ rowcount, rowcount + 1, GTK_SHRINK | GTK_FILL, GTK_SHRINK, 0, 0);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_default_reply_to),
+ item->prefs->enable_default_reply_to);
+
+ entry_default_reply_to = gtk_entry_new();
+ gtk_widget_show(entry_default_reply_to);
+ gtk_table_attach_defaults(GTK_TABLE(table), entry_default_reply_to, 1, 2, rowcount, rowcount + 1);
+ SET_TOGGLE_SENSITIVITY(checkbtn_default_reply_to, entry_default_reply_to);
+ gtk_entry_set_text(GTK_ENTRY(entry_default_reply_to), SAFE_STRING(item->prefs->default_reply_to));
+ address_completion_register_entry(GTK_ENTRY(entry_default_reply_to));
+
+ rowcount++;
+
/* Simplify Subject */
checkbtn_simplify_subject = gtk_check_button_new_with_label(_("Simplify Subject RegExp: "));
gtk_widget_show(checkbtn_simplify_subject);
rowcount++;
/* Folder color */
- folder_color = gtk_label_new(_("Folder color"));
+ folder_color = gtk_label_new(_("Folder color: "));
gtk_misc_set_alignment(GTK_MISC(folder_color), 0, 0.5);
gtk_widget_show(folder_color);
gtk_table_attach_defaults(GTK_TABLE(table), folder_color, 0, 1,
gtk_container_set_border_width(GTK_CONTAINER(folder_color_btn), 2);
gtk_widget_show(folder_color_btn);
gtk_table_attach(GTK_TABLE(table), folder_color_btn,
- 0, 1, rowcount, rowcount + 1,
+ 1, 2, rowcount, rowcount + 1,
GTK_SHRINK, 0, 0, 0);
dialog->item->prefs->color = item->prefs->color;
dialog->checkbtn_save_copy_to_folder = checkbtn_save_copy_to_folder;
dialog->checkbtn_default_to = checkbtn_default_to;
dialog->entry_default_to = entry_default_to;
+ dialog->checkbtn_default_reply_to = checkbtn_default_reply_to;
+ dialog->entry_default_reply_to = entry_default_reply_to;
dialog->checkbtn_simplify_subject = checkbtn_simplify_subject;
dialog->entry_simplify_subject = entry_simplify_subject;
dialog->checkbtn_folder_chmod = checkbtn_folder_chmod;
void prefs_folder_item_destroy(struct PrefsFolderItemDialog *dialog)
{
address_completion_unregister_entry(GTK_ENTRY(dialog->entry_default_to));
+ address_completion_unregister_entry(GTK_ENTRY(dialog->entry_default_reply_to));
address_completion_end(dialog->window);
gtk_widget_destroy(dialog->window);
g_free(dialog);
prefs->default_to =
gtk_editable_get_chars(GTK_EDITABLE(dialog->entry_default_to), 0, -1);
+ prefs->enable_default_reply_to =
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->checkbtn_default_reply_to));
+ g_free(prefs->default_reply_to);
+ prefs->default_reply_to =
+ gtk_editable_get_chars(GTK_EDITABLE(dialog->entry_default_reply_to), 0, -1);
+
prefs->enable_simplify_subject =
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->checkbtn_simplify_subject));
prefs->simplify_subject_regexp =
if (dialog->item == dialog->folderview->summaryview->folder_item &&
(prefs->enable_simplify_subject != old_simplify_val ||
- 0 != strcmp2(prefs->simplify_subject_regexp, old_simplify_str)))
- summary_show(dialog->folderview->summaryview, dialog->item);
-
+ 0 != strcmp2(prefs->simplify_subject_regexp, old_simplify_str))) {
+ summary_clear_all(dialog->folderview->summaryview);
+ dialog->folderview->opened = NULL;
+ dialog->folderview->selected = NULL;
+ folderview_select(dialog->folderview, dialog->item);
+ }
+
if (old_simplify_str) g_free(old_simplify_str);
prefs->enable_folder_chmod =
prefs->color = dialog->item->prefs->color;
/* update folder view */
if (prefs->color > 0)
- folderview_update_item(dialog->item, FALSE);
+ folder_item_update(dialog->item, F_ITEM_UPDATE_MSGCNT);
prefs_folder_item_save_config(dialog->item);
prefs_folder_item_destroy(dialog);
gtk_widget_destroy(color_dialog);
}
+void prefs_folder_item_copy_prefs(FolderItem * src, FolderItem * dest)
+{
+ GSList *tmp_prop_list = NULL, *tmp_scor_list = NULL, *tmp;
+ prefs_folder_item_read_config(src);
+
+ tmp_prefs.directory = g_strdup(src->prefs->directory);
+ tmp_prefs.sort_by_number = src->prefs->sort_by_number;
+ tmp_prefs.sort_by_size = src->prefs->sort_by_size;
+ tmp_prefs.sort_by_date = src->prefs->sort_by_date;
+ tmp_prefs.sort_by_from = src->prefs->sort_by_from;
+ tmp_prefs.sort_by_subject = src->prefs->sort_by_subject;
+ tmp_prefs.sort_by_score = src->prefs->sort_by_score;
+ tmp_prefs.sort_descending = src->prefs->sort_descending;
+ tmp_prefs.enable_thread = src->prefs->enable_thread;
+ tmp_prefs.kill_score = src->prefs->kill_score;
+ tmp_prefs.important_score = src->prefs->important_score;
+
+ prefs_matcher_read_config();
+ for (tmp = src->prefs->scoring; tmp != NULL && tmp->data != NULL;) {
+ ScoringProp *prop = (ScoringProp *)tmp->data;
+
+ tmp_scor_list = g_slist_append(tmp_scor_list,
+ scoringprop_copy(prop));
+ tmp = tmp->next;
+ }
+ tmp_prefs.scoring = tmp_scor_list;
+
+ for (tmp = src->prefs->processing; tmp != NULL && tmp->data != NULL;) {
+ FilteringProp *prop = (FilteringProp *)tmp->data;
+
+ tmp_prop_list = g_slist_append(tmp_prop_list,
+ filteringprop_copy(prop));
+ tmp = tmp->next;
+ }
+ tmp_prefs.processing = tmp_prop_list;
+
+ tmp_prefs.request_return_receipt = src->prefs->request_return_receipt;
+ 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;
+ tmp_prefs.default_reply_to = src->prefs->default_reply_to;
+ tmp_prefs.enable_simplify_subject = src->prefs->enable_simplify_subject;
+ tmp_prefs.simplify_subject_regexp = g_strdup(src->prefs->simplify_subject_regexp);
+ tmp_prefs.enable_folder_chmod = src->prefs->enable_folder_chmod;
+ tmp_prefs.folder_chmod = src->prefs->folder_chmod;
+ tmp_prefs.enable_default_account = src->prefs->enable_default_account;
+ tmp_prefs.default_account = src->prefs->default_account;
+ tmp_prefs.save_copy_to_folder = src->prefs->save_copy_to_folder;
+ tmp_prefs.color = src->prefs->color;
+
+ *dest->prefs = tmp_prefs;
+ prefs_folder_item_save_config(dest);
+}