2007-02-09 [paul] 2.7.2cvs36
authorPaul Mangan <paul@claws-mail.org>
Fri, 9 Feb 2007 14:52:37 +0000 (14:52 +0000)
committerPaul Mangan <paul@claws-mail.org>
Fri, 9 Feb 2007 14:52:37 +0000 (14:52 +0000)
* src/main.c
* src/mainwindow.c
* src/procmsg.c
* src/procmsg.h
fix "warn if there are queued messages" (on exit)
option, which only checked the first mailbox's
queue
don't ask before emptying trash if there are no
messages in trash, also check and empty all trash
folders
* src/prefs_other.c
move "Ask before emptying trash" option
outside of the "On exit" frame as it's
not only an "On exit" option

ChangeLog
PATCHSETS
configure.ac
src/main.c
src/mainwindow.c
src/prefs_other.c
src/procmsg.c
src/procmsg.h

index 9392709ea7471a76c90f693558c0e59d666818ef..6b97b91755cdf9e98a8aa93b67f54854b7bb4f4e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
+2007-02-09 [paul]      2.7.2cvs36
+
+       * src/main.c
+       * src/mainwindow.c
+       * src/procmsg.c
+       * src/procmsg.h
+               fix "warn if there are queued messages" (on exit)
+               option, which only checked the first mailbox's
+               queue
+               don't ask before emptying trash if there are no
+               messages in trash, also check and empty all trash
+               folders
+       * src/prefs_other.c
+               move "Ask before emptying trash" option
+               outside of the "On exit" frame as it's
+               not only an "On exit" option
+
 2007-02-09 [paul]      2.7.2cvs35
 
        * src/addrgather.c
index ba2c19536463ed9d5cd19415819e20f237ccd9eb..ce12b2c68685633b66fbf0954bd83827ef4a95bd 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.1.2.26 -r 1.1.2.27 src/plugins/pgpinline/pgpinline.c;  ) > 2.7.2cvs33.patchset
 ( cvs diff -u -r 1.382.2.358 -r 1.382.2.359 src/compose.c;  cvs diff -u -r 1.1.2.19 -r 1.1.2.20 src/prefs_other.c;  cvs diff -u -r 1.1.2.14 -r 1.1.2.15 src/prefs_send.c;  cvs diff -u -r 1.5.2.52 -r 1.5.2.53 src/gtk/gtkutils.c;  ) > 2.7.2cvs34.patchset
 ( cvs diff -u -r 1.5.10.17 -r 1.5.10.18 src/addrgather.c;  cvs diff -u -r 1.17.2.30 -r 1.17.2.31 src/alertpanel.c;  cvs diff -u -r 1.8.2.20 -r 1.8.2.21 src/editldap.c;  cvs diff -u -r 1.105.2.85 -r 1.105.2.86 src/prefs_account.c;  cvs diff -u -r 1.52.2.37 -r 1.52.2.38 src/prefs_folder_item.c;  cvs diff -u -r 1.5.2.12 -r 1.5.2.13 src/prefs_gtk.h;  cvs diff -u -r 1.43.2.53 -r 1.43.2.54 src/prefs_matcher.c;  cvs diff -u -r 1.1.2.23 -r 1.1.2.24 src/prefs_message.c;  cvs diff -u -r 1.1.2.31 -r 1.1.2.32 src/prefs_msg_colors.c;  cvs diff -u -r 1.1.2.37 -r 1.1.2.38 src/prefs_summaries.c;  cvs diff -u -r 1.1.2.49 -r 1.1.2.50 src/wizard.c;  cvs diff -u -r 1.2.2.22 -r 1.2.2.23 src/gtk/inputdialog.c;  cvs diff -u -r 1.1.2.20 -r 1.1.2.21 src/plugins/bogofilter/bogofilter_gtk.c;  ) > 2.7.2cvs35.patchset
+( cvs diff -u -r 1.115.2.135 -r 1.115.2.136 src/main.c;  cvs diff -u -r 1.274.2.172 -r 1.274.2.173 src/mainwindow.c;  cvs diff -u -r 1.1.2.20 -r 1.1.2.21 src/prefs_other.c;  cvs diff -u -r 1.150.2.91 -r 1.150.2.92 src/procmsg.c;  cvs diff -u -r 1.60.2.41 -r 1.60.2.42 src/procmsg.h;  ) > 2.7.2cvs36.patchset
index 088b1966da2957fb1cb00b55cb6ac4874cfdd9ba..defae6f24d05f35afc4c31d25dc93b3f89be1fdf 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=7
 MICRO_VERSION=2
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=35
+EXTRA_VERSION=36
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index 7974f5f6904c3bb70b32b4e5b8fabfd6e2d9a6b8..12321a4ab855e8b7aa757ee2aac97aaa37c8294b 100644 (file)
@@ -1232,19 +1232,6 @@ static void parse_cmd_opt(int argc, char *argv[])
        }
 }
 
-static gint get_queued_message_num(void)
-{
-       FolderItem *queue;
-
-       queue = folder_get_default_queue();
-       if (!queue) {
-               return -1;
-       }
-
-       folder_item_scan(queue);
-       return queue->total_msgs;
-}
-
 static void initial_processing(FolderItem *item, gpointer data)
 {
        MainWindow *mainwin = (MainWindow *)data;
@@ -1322,7 +1309,7 @@ void app_will_exit(GtkWidget *widget, gpointer data)
                draft_all_messages();
        }
 
-       if (prefs_common.warn_queued_on_exit && get_queued_message_num() > 0) {
+       if (prefs_common.warn_queued_on_exit && procmsg_have_queued_mails_fast()) {
                if (alertpanel(_("Queued messages"),
                               _("Some unsent messages are queued. Exit now?"),
                               GTK_STOCK_CANCEL, GTK_STOCK_OK, NULL)
index f052f1d6d7981c71b88845394042d7fab0040b2c..895e8ddcfe383d7a95d7355259d257ffbf3f808d 100644 (file)
@@ -2043,7 +2043,7 @@ void main_window_progress_set(MainWindow *mainwin, gint cur, gint total)
 
 void main_window_empty_trash(MainWindow *mainwin, gboolean confirm)
 {
-       if (confirm) {
+       if (confirm && procmsg_have_trashed_mails_fast()) {
                if (alertpanel(_("Empty trash"),
                               _("Delete all messages in trash folders?"),
                               GTK_STOCK_NO, "+" GTK_STOCK_YES, NULL)
index 242d6c46b8ac45bc4fdf618567cebea076dec9e9..c8502c92467397979677a44ca3570bf53862f4e0 100644 (file)
@@ -501,9 +501,7 @@ static void prefs_other_create_widget(PrefsPage *_page, GtkWindow *window,
        GtkWidget *vbox_exit;
        GtkWidget *checkbtn_confonexit;
        GtkWidget *checkbtn_cleanonexit;
-       GtkWidget *checkbtn_askonclean;
        GtkWidget *checkbtn_warnqueued;
-       GtkWidget *checkbtn_askonfilter;
 
        GtkWidget *frame_keys;
        GtkWidget *vbox_keys;
@@ -515,6 +513,10 @@ static void prefs_other_create_widget(PrefsPage *_page, GtkWindow *window,
        GtkWidget *spinbtn_iotimeout;
        GtkObject *spinbtn_iotimeout_adj;
 
+       GtkWidget *vbox2;
+       GtkWidget *checkbtn_askonclean;
+       GtkWidget *checkbtn_askonfilter;
+
        vbox1 = gtk_vbox_new (FALSE, VSPACING);
        gtk_widget_show (vbox1);
        gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER);
@@ -574,9 +576,6 @@ static void prefs_other_create_widget(PrefsPage *_page, GtkWindow *window,
 
        PACK_CHECK_BUTTON (hbox1, checkbtn_cleanonexit,
                           _("Empty trash on exit"));
-       PACK_CHECK_BUTTON (hbox1, checkbtn_askonclean,
-                          _("Ask before emptying"));
-       SET_TOGGLE_SENSITIVITY (checkbtn_cleanonexit, checkbtn_askonclean);
 
        PACK_CHECK_BUTTON (vbox_exit, checkbtn_warnqueued,
                           _("Warn if there are queued messages"));
@@ -625,11 +624,13 @@ static void prefs_other_create_widget(PrefsPage *_page, GtkWindow *window,
        gtk_widget_show (label_iotimeout);
        gtk_box_pack_start (GTK_BOX (hbox1), label_iotimeout, FALSE, FALSE, 0);
 
-       hbox1 = gtk_hbox_new (FALSE, 8);
-       gtk_widget_show (hbox1);
-       gtk_box_pack_start (GTK_BOX (vbox1), hbox1, FALSE, FALSE, 0);
+       vbox2 = gtk_vbox_new (FALSE, 8);
+       gtk_widget_show (vbox2);
+       gtk_box_pack_start (GTK_BOX (vbox1), vbox2, FALSE, FALSE, 0);
 
-       PACK_CHECK_BUTTON (hbox1, checkbtn_askonfilter,
+       PACK_CHECK_BUTTON (vbox2, checkbtn_askonclean, 
+                          _("Ask before emptying trash"));
+       PACK_CHECK_BUTTON (vbox2, checkbtn_askonfilter,
                           _("Ask about account specific filtering rules when "
                             "filtering manually"));
 
index 5b34da38c366ca1f130b321b256bfe0c62dddcc0..dca1f98458cdc446da439bb431d3a0a5913ae97c 100644 (file)
@@ -2328,3 +2328,19 @@ gboolean procmsg_have_queued_mails_fast (void)
        folder_func_to_all_folders(item_has_queued_mails, &result);
        return result;
 }
+
+static void item_has_trashed_mails(FolderItem *item, gpointer data)
+{
+       gboolean *result = (gboolean *)data;
+       if (*result == TRUE)
+               return;
+       if (folder_has_parent_of_type(item, F_TRASH) && item->total_msgs > 0)
+               *result = TRUE;
+}
+
+gboolean procmsg_have_trashed_mails_fast (void)
+{
+       gboolean result = FALSE;
+       folder_func_to_all_folders(item_has_trashed_mails, &result);
+       return result;
+}
index 81b74eafcae7921e04d7c7762e8a91a469dc0f5e..ce57945b048463538685b01b27c27a2a7f815fe2 100644 (file)
@@ -357,6 +357,7 @@ void procmsg_spam_set_folder                (const char *item_identifier, FolderItem *(*spam_g
 FolderItem *procmsg_spam_get_folder    (MsgInfo *msginfo);
 int procmsg_spam_learner_learn         (MsgInfo *msginfo, GSList *msglist, gboolean spam);
 gboolean procmsg_have_queued_mails_fast (void);
+gboolean procmsg_have_trashed_mails_fast (void);
 gboolean procmsg_is_sending(void);
 
 #endif /* __PROCMSG_H__ */