From 699ee4805fe7555326374c7f10887480322e348b Mon Sep 17 00:00:00 2001 From: Tristan Chabredier Date: Tue, 8 Jan 2008 13:45:41 +0000 Subject: [PATCH] 2008-01-08 [wwp] 3.2.0cvs32 * src/folder.c * src/folder_item_prefs.c * src/folder_item_prefs.h * src/prefs_folder_item.c It's now possible to disable processing rules when entering a folder (this adds a new option to the folder properties dialog). --- ChangeLog | 10 ++++++++++ PATCHSETS | 1 + configure.ac | 2 +- src/folder.c | 17 +++++++++-------- src/folder_item_prefs.c | 4 ++++ src/folder_item_prefs.h | 3 ++- src/prefs_folder_item.c | 28 +++++++++++++++++++++++++++- 7 files changed, 54 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index e2719ae14..d9df51696 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2008-01-08 [wwp] 3.2.0cvs32 + + * src/folder.c + * src/folder_item_prefs.c + * src/folder_item_prefs.h + * src/prefs_folder_item.c + It's now possible to disable processing rules when + entering a folder (this adds a new option to the + folder properties dialog). + 2008-01-08 [wwp] 3.2.0cvs31 * src/common/utils.c diff --git a/PATCHSETS b/PATCHSETS index 82a1c094a..e5f99ddab 100644 --- a/PATCHSETS +++ b/PATCHSETS @@ -3168,3 +3168,4 @@ ( cvs diff -u -r 1.59.2.62 -r 1.59.2.63 src/prefs_filtering.c; ) > 3.2.0cvs29.patchset ( cvs diff -u -r 1.395.2.347 -r 1.395.2.348 src/summaryview.c; ) > 3.2.0cvs30.patchset ( cvs diff -u -r 1.36.2.131 -r 1.36.2.132 src/common/utils.c; ) > 3.2.0cvs31.patchset +( cvs diff -u -r 1.213.2.173 -r 1.213.2.174 src/folder.c; cvs diff -u -r 1.2.2.25 -r 1.2.2.26 src/folder_item_prefs.c; cvs diff -u -r 1.2.2.13 -r 1.2.2.14 src/folder_item_prefs.h; cvs diff -u -r 1.52.2.54 -r 1.52.2.55 src/prefs_folder_item.c; ) > 3.2.0cvs32.patchset diff --git a/configure.ac b/configure.ac index 0dcbb7001..e03c75790 100644 --- a/configure.ac +++ b/configure.ac @@ -11,7 +11,7 @@ MINOR_VERSION=2 MICRO_VERSION=0 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=31 +EXTRA_VERSION=32 EXTRA_RELEASE= EXTRA_GTK2_VERSION= diff --git a/src/folder.c b/src/folder.c index 23362597c..711d4dfde 100644 --- a/src/folder.c +++ b/src/folder.c @@ -1799,18 +1799,19 @@ static void folder_item_process_open (FolderItem *item, } /* Processing */ - buf = g_strdup_printf(_("Processing (%s)...\n"), + if (item->prefs->enable_processing_when_opening) { + buf = g_strdup_printf(_("Processing (%s)...\n"), item->path ? item->path : item->name); - g_free(buf); + g_free(buf); - if (before_proc_func) - before_proc_func(data); + if (before_proc_func) + before_proc_func(data); - folder_item_apply_processing(item); - - if (after_proc_func) - after_proc_func(data); + folder_item_apply_processing(item); + if (after_proc_func) + after_proc_func(data); + } item->processing_pending = FALSE; return; } diff --git a/src/folder_item_prefs.c b/src/folder_item_prefs.c index 7e223b664..a6c0726ca 100644 --- a/src/folder_item_prefs.c +++ b/src/folder_item_prefs.c @@ -70,6 +70,8 @@ static PrefParam param[] = { NULL, NULL, NULL}, {"enable_processing", "FALSE", &tmp_prefs.enable_processing, P_BOOL, NULL, NULL, NULL}, + {"enable_processing_when_opening", "TRUE", &tmp_prefs.enable_processing_when_opening, P_BOOL, + NULL, NULL, NULL}, {"newmailcheck", "TRUE", &tmp_prefs.newmailcheck, P_BOOL, NULL, NULL, NULL}, {"offlinesync", "FALSE", &tmp_prefs.offlinesync, P_BOOL, @@ -164,6 +166,7 @@ static FolderItemPrefs *folder_item_prefs_clear(FolderItemPrefs *prefs) prefs->color = 0; prefs->enable_processing = TRUE; + prefs->enable_processing_when_opening = TRUE; prefs->processing = NULL; prefs->newmailcheck = TRUE; @@ -216,6 +219,7 @@ void folder_item_prefs_copy_prefs(FolderItem * src, FolderItem * dest) tmp_prefs.directory = g_strdup(src->prefs->directory); tmp_prefs.enable_processing = src->prefs->enable_processing; + tmp_prefs.enable_processing_when_opening = src->prefs->enable_processing_when_opening; tmp_prefs.newmailcheck = src->prefs->newmailcheck; tmp_prefs.offlinesync = src->prefs->offlinesync; tmp_prefs.offlinesync_days = src->prefs->offlinesync_days; diff --git a/src/folder_item_prefs.h b/src/folder_item_prefs.h index 523924526..73b3ecd8d 100644 --- a/src/folder_item_prefs.h +++ b/src/folder_item_prefs.h @@ -30,7 +30,8 @@ typedef struct _FolderItemPrefs FolderItemPrefs; struct _FolderItemPrefs { gchar * directory; - int enable_processing; + int enable_processing; /* at start-up */ + int enable_processing_when_opening; GSList * processing; int newmailcheck; diff --git a/src/prefs_folder_item.c b/src/prefs_folder_item.c index 20effe940..4d1205277 100644 --- a/src/prefs_folder_item.c +++ b/src/prefs_folder_item.c @@ -85,6 +85,7 @@ struct _FolderItemGeneralPage GtkWidget *entry_folder_chmod; GtkWidget *folder_color_btn; GtkWidget *checkbtn_enable_processing; + GtkWidget *checkbtn_enable_processing_when_opening; GtkWidget *checkbtn_newmailcheck; GtkWidget *checkbtn_offlinesync; GtkWidget *label_offlinesync; @@ -97,6 +98,7 @@ struct _FolderItemGeneralPage GtkWidget *folder_chmod_rec_checkbtn; GtkWidget *folder_color_rec_checkbtn; GtkWidget *enable_processing_rec_checkbtn; + GtkWidget *enable_processing_when_opening_rec_checkbtn; GtkWidget *newmailcheck_rec_checkbtn; GtkWidget *offlinesync_rec_checkbtn; @@ -214,6 +216,7 @@ static void prefs_folder_item_general_create_widget_func(PrefsPage * page_, GtkWidget *folder_color; GtkWidget *folder_color_btn; GtkWidget *checkbtn_enable_processing; + GtkWidget *checkbtn_enable_processing_when_opening; GtkWidget *checkbtn_newmailcheck; GtkWidget *checkbtn_offlinesync; GtkWidget *label_offlinesync; @@ -225,6 +228,7 @@ static void prefs_folder_item_general_create_widget_func(PrefsPage * page_, GtkWidget *folder_chmod_rec_checkbtn; GtkWidget *folder_color_rec_checkbtn; GtkWidget *enable_processing_rec_checkbtn; + GtkWidget *enable_processing_when_opening_rec_checkbtn; GtkWidget *newmailcheck_rec_checkbtn; GtkWidget *offlinesync_rec_checkbtn; GtkTooltips *tooltips; @@ -233,7 +237,7 @@ static void prefs_folder_item_general_create_widget_func(PrefsPage * page_, page->item = item; /* Table */ - table = gtk_table_new(10, 4, FALSE); + table = gtk_table_new(11, 4, FALSE); gtk_container_set_border_width (GTK_CONTAINER (table), VBOX_BORDER); gtk_table_set_row_spacings(GTK_TABLE(table), 4); gtk_table_set_col_spacings(GTK_TABLE(table), 4); @@ -435,6 +439,20 @@ static void prefs_folder_item_general_create_widget_func(PrefsPage * page_, rowcount++; + /* Enable processing rules when opening folder */ + checkbtn_enable_processing_when_opening = gtk_check_button_new_with_label(_("Process when opening")); + gtk_table_attach(GTK_TABLE(table), checkbtn_enable_processing_when_opening, 0, 2, + rowcount, rowcount + 1, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0); + + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_enable_processing_when_opening), + item->prefs->enable_processing_when_opening); + + enable_processing_when_opening_rec_checkbtn = gtk_check_button_new(); + gtk_table_attach(GTK_TABLE(table), enable_processing_when_opening_rec_checkbtn, 3, 4, + rowcount, rowcount + 1, GTK_SHRINK, GTK_SHRINK, 0, 0); + + rowcount++; + /* Check folder for new mail */ checkbtn_newmailcheck = gtk_check_button_new_with_label(_("Scan for new mail")); gtk_tooltips_set_tip(tooltips, checkbtn_newmailcheck, @@ -550,6 +568,7 @@ static void prefs_folder_item_general_create_widget_func(PrefsPage * page_, page->entry_folder_chmod = entry_folder_chmod; page->folder_color_btn = folder_color_btn; page->checkbtn_enable_processing = checkbtn_enable_processing; + page->checkbtn_enable_processing_when_opening = checkbtn_enable_processing_when_opening; page->checkbtn_newmailcheck = checkbtn_newmailcheck; page->checkbtn_offlinesync = checkbtn_offlinesync; page->label_offlinesync = label_offlinesync; @@ -561,6 +580,7 @@ static void prefs_folder_item_general_create_widget_func(PrefsPage * page_, page->folder_chmod_rec_checkbtn = folder_chmod_rec_checkbtn; page->folder_color_rec_checkbtn = folder_color_rec_checkbtn; page->enable_processing_rec_checkbtn = enable_processing_rec_checkbtn; + page->enable_processing_when_opening_rec_checkbtn = enable_processing_when_opening_rec_checkbtn; page->newmailcheck_rec_checkbtn = newmailcheck_rec_checkbtn; page->offlinesync_rec_checkbtn = offlinesync_rec_checkbtn; @@ -628,6 +648,11 @@ static void general_save_folder_prefs(FolderItem *folder, FolderItemGeneralPage gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->checkbtn_enable_processing)); } + if (all || gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->enable_processing_when_opening_rec_checkbtn))) { + prefs->enable_processing_when_opening = + gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->checkbtn_enable_processing_when_opening)); + } + if (all || gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->newmailcheck_rec_checkbtn))) { prefs->newmailcheck = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->checkbtn_newmailcheck)); @@ -663,6 +688,7 @@ static gboolean general_save_recurse_func(GNode *node, gpointer data) gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->folder_chmod_rec_checkbtn)) || gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->folder_color_rec_checkbtn)) || gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->enable_processing_rec_checkbtn)) || + gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->enable_processing_when_opening_rec_checkbtn)) || gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->newmailcheck_rec_checkbtn)) || gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->offlinesync_rec_checkbtn)))) return TRUE; -- 2.25.1