+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
( 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
MICRO_VERSION=2
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=35
+EXTRA_VERSION=36
EXTRA_RELEASE=
EXTRA_GTK2_VERSION=
}
}
-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;
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)
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)
GtkWidget *vbox_exit;
GtkWidget *checkbtn_confonexit;
GtkWidget *checkbtn_cleanonexit;
- GtkWidget *checkbtn_askonclean;
GtkWidget *checkbtn_warnqueued;
- GtkWidget *checkbtn_askonfilter;
GtkWidget *frame_keys;
GtkWidget *vbox_keys;
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);
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"));
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"));
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;
+}
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__ */