2005-07-01 [colin] 1.9.12cvs10
authorColin Leroy <colin@colino.net>
Fri, 1 Jul 2005 17:33:02 +0000 (17:33 +0000)
committerColin Leroy <colin@colino.net>
Fri, 1 Jul 2005 17:33:02 +0000 (17:33 +0000)
* src/Makefile.am
* src/folder.c
* src/folder.h
* src/folderview.c
* src/stock_pixmap.c
* src/stock_pixmap.h
* src/plugins/trayicon/trayicon.c
Add marked symbol on folders containing
marked messages
* src/procmsg.c
* src/procmsg.h
* src/toolbar.c
* src/prefs_common.c
* src/prefs_common.h
* src/prefs_send.c
Add an optional confirmation dialog on queue
sending. Patch by wwp.
* src/pixmaps/dir_close_mark.xpm ** ADDED **
* src/pixmaps/dir_open_hrm_mark.xpm ** ADDED **
* src/pixmaps/dir_open_mark.xpm ** ADDED **
* src/pixmaps/drafts_close_mark.xpm ** ADDED **
* src/pixmaps/drafts_open_mark.xpm ** ADDED **
* src/pixmaps/inbox_hrm_mark.xpm ** ADDED **
* src/pixmaps/inbox_mark.xpm ** ADDED **
* src/pixmaps/outbox_hrm_mark.xpm ** ADDED **
* src/pixmaps/outbox_mark.xpm ** ADDED **
* src/pixmaps/trash_hrm_mark.xpm ** ADDED **
* src/pixmaps/trash_mark.xpm ** ADDED **
New pixmaps

27 files changed:
ChangeLog-gtk2.claws
PATCHSETS
configure.ac
src/Makefile.am
src/folder.c
src/folder.h
src/folderview.c
src/pixmaps/dir_close_mark.xpm [new file with mode: 0644]
src/pixmaps/dir_open_hrm_mark.xpm [new file with mode: 0644]
src/pixmaps/dir_open_mark.xpm [new file with mode: 0644]
src/pixmaps/drafts_close_mark.xpm [new file with mode: 0644]
src/pixmaps/drafts_open_mark.xpm [new file with mode: 0644]
src/pixmaps/inbox_hrm_mark.xpm [new file with mode: 0644]
src/pixmaps/inbox_mark.xpm [new file with mode: 0644]
src/pixmaps/outbox_hrm_mark.xpm [new file with mode: 0644]
src/pixmaps/outbox_mark.xpm [new file with mode: 0644]
src/pixmaps/trash_hrm_mark.xpm [new file with mode: 0644]
src/pixmaps/trash_mark.xpm [new file with mode: 0644]
src/plugins/trayicon/trayicon.c
src/prefs_common.c
src/prefs_common.h
src/prefs_send.c
src/procmsg.c
src/procmsg.h
src/stock_pixmap.c
src/stock_pixmap.h
src/toolbar.c

index bf0a2368abafc9418dd3c23e27352ae69f619107..e27622708c8f1d89b8fa7fb97d9dec2a8ea03bff 100644 (file)
@@ -1,3 +1,35 @@
+2005-07-01 [colin]     1.9.12cvs10
+
+       * src/Makefile.am
+       * src/folder.c
+       * src/folder.h
+       * src/folderview.c
+       * src/stock_pixmap.c
+       * src/stock_pixmap.h
+       * src/plugins/trayicon/trayicon.c
+               Add marked symbol on folders containing
+               marked messages
+       * src/procmsg.c
+       * src/procmsg.h
+       * src/toolbar.c
+       * src/prefs_common.c
+       * src/prefs_common.h
+       * src/prefs_send.c
+               Add an optional confirmation dialog on queue
+               sending. Patch by wwp.
+       * src/pixmaps/dir_close_mark.xpm        ** ADDED **
+       * src/pixmaps/dir_open_hrm_mark.xpm     ** ADDED **
+       * src/pixmaps/dir_open_mark.xpm         ** ADDED **
+       * src/pixmaps/drafts_close_mark.xpm     ** ADDED **
+       * src/pixmaps/drafts_open_mark.xpm      ** ADDED **
+       * src/pixmaps/inbox_hrm_mark.xpm        ** ADDED **
+       * src/pixmaps/inbox_mark.xpm            ** ADDED **
+       * src/pixmaps/outbox_hrm_mark.xpm       ** ADDED **
+       * src/pixmaps/outbox_mark.xpm           ** ADDED **
+       * src/pixmaps/trash_hrm_mark.xpm        ** ADDED **
+       * src/pixmaps/trash_mark.xpm            ** ADDED **
+               New pixmaps
+
 2005-07-01 [colin]     1.9.12cvs9
 
        * src/summaryview.c
index 90201a55c658cdea14d8b94e09e95b64d0a675f8..9a139ac81d1b3ccfa38b2d5b19aa3189add2fb23 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.382.2.137 -r 1.382.2.138 src/compose.c;  cvs diff -u -r 1.16.2.19 -r 1.16.2.20 src/msgcache.c;  cvs diff -u -r 1.56.2.34 -r 1.56.2.35 src/pop.c;  cvs diff -u -r 1.49.2.49 -r 1.49.2.50 src/procmime.c;  cvs diff -u -r 1.17.2.2 -r 1.17.2.3 src/recv.c;  cvs diff -u -r 1.6.2.1 -r 1.6.2.2 src/common/log.c;  cvs diff -u -r 1.2.4.8 -r 1.2.4.9 src/common/template.c;  cvs diff -u -r 1.36.2.33 -r 1.36.2.34 src/common/utils.c;  cvs diff -u -r 1.20.2.16 -r 1.20.2.17 src/common/utils.h;  ) > 1.9.12cvs7.patchset
 ( cvs diff -u -r 1.382.2.138 -r 1.382.2.139 src/compose.c;  cvs diff -u -r 1.16.2.20 -r 1.16.2.21 src/msgcache.c;  cvs diff -u -r 1.56.2.35 -r 1.56.2.36 src/pop.c;  cvs diff -u -r 1.49.2.50 -r 1.49.2.51 src/procmime.c;  cvs diff -u -r 1.17.2.3 -r 1.17.2.4 src/recv.c;  cvs diff -u -r 1.6.2.2 -r 1.6.2.3 src/common/log.c;  cvs diff -u -r 1.2.4.9 -r 1.2.4.10 src/common/template.c;  cvs diff -u -r 1.36.2.34 -r 1.36.2.35 src/common/utils.c;  cvs diff -u -r 1.20.2.17 -r 1.20.2.18 src/common/utils.h;  ) > 1.9.12cvs8.patchset
 ( cvs diff -u -r 1.395.2.89 -r 1.395.2.90 src/summaryview.c;  cvs diff -u -r 1.5.10.9 -r 1.5.10.10 src/addrgather.c;  cvs diff -u -r 1.274.2.44 -r 1.274.2.45 src/mainwindow.c;  ) > 1.9.12cvs9.patchset
+( cvs diff -u -r 1.155.2.27 -r 1.155.2.28 src/Makefile.am;  cvs diff -u -r 1.213.2.38 -r 1.213.2.39 src/folder.c;  cvs diff -u -r 1.87.2.12 -r 1.87.2.13 src/folder.h;  cvs diff -u -r 1.207.2.44 -r 1.207.2.45 src/folderview.c;  cvs diff -u -r 1.204.2.45 -r 1.204.2.46 src/prefs_common.c;  cvs diff -u -r 1.103.2.20 -r 1.103.2.21 src/prefs_common.h;  cvs diff -u -r 1.1.2.3 -r 1.1.2.4 src/prefs_send.c;  cvs diff -u -r 1.150.2.29 -r 1.150.2.30 src/procmsg.c;  cvs diff -u -r 1.60.2.12 -r 1.60.2.13 src/procmsg.h;  cvs diff -u -r 1.25.2.12 -r 1.25.2.13 src/stock_pixmap.c;  cvs diff -u -r 1.18.2.8 -r 1.18.2.9 src/stock_pixmap.h;  cvs diff -u -r 1.43.2.18 -r 1.43.2.19 src/toolbar.c;  diff -u /dev/null src/pixmaps/dir_close_mark.xpm;  diff -u /dev/null src/pixmaps/dir_open_hrm_mark.xpm;  diff -u /dev/null src/pixmaps/dir_open_mark.xpm;  diff -u /dev/null src/pixmaps/drafts_close_mark.xpm;  diff -u /dev/null src/pixmaps/drafts_open_mark.xpm;  diff -u /dev/null src/pixmaps/inbox_hrm_mark.xpm;  diff -u /dev/null src/pixmaps/inbox_mark.xpm;  diff -u /dev/null src/pixmaps/outbox_hrm_mark.xpm;  diff -u /dev/null src/pixmaps/outbox_mark.xpm;  diff -u /dev/null src/pixmaps/trash_hrm_mark.xpm;  diff -u /dev/null src/pixmaps/trash_mark.xpm;  cvs diff -u -r 1.14.2.17 -r 1.14.2.18 src/plugins/trayicon/trayicon.c;  ) > 1.9.12cvs10.patchset
index dda87ddef1bde30d91afc114a39f2fe2693846ff..93fd37a06e1224e1a2bdb9a4a647518a3979418d 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=9
 MICRO_VERSION=12
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=9
+EXTRA_VERSION=10
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index 8475804c571e3877da027455f4619dfc10f71fe6..dc515e1ec2e5d316efbf8ad712c2070c47bf6992 100644 (file)
@@ -368,7 +368,19 @@ EXTRA_DIST = \
        pixmaps/unread.xpm \
        pixmaps/read.xpm \
        pixmaps/up_arrow.xpm \
-       pixmaps/vcard.xpm
+       pixmaps/vcard.xpm \
+       pixmaps/dir_close_mark.xpm \
+       pixmaps/dir_open_hrm_mark.xpm \
+       pixmaps/dir_open_mark.xpm \
+       pixmaps/drafts_close_mark.xpm \
+       pixmaps/drafts_open_mark.xpm \
+       pixmaps/inbox_hrm_mark.xpm \
+       pixmaps/inbox_mark.xpm \
+       pixmaps/outbox_hrm_mark.xpm \
+       pixmaps/outbox_mark.xpm \
+       pixmaps/trash_hrm_mark.xpm \
+       pixmaps/trash_mark.xpm
+
 
 INCLUDES = \
        -Icommon \
index adac5d01ca2852690a81da4e2361011dbe048232..2ed20e153c6e7eb7515ef826af1e715d661aa3a2 100644 (file)
@@ -273,6 +273,7 @@ FolderItem *folder_item_new(Folder *folder, const gchar *name, const gchar *path
        item->new_msgs = 0;
        item->unread_msgs = 0;
        item->unreadmarked_msgs = 0;
+       item->marked_msgs = 0;
        item->total_msgs = 0;
        item->last_num = -1;
        item->cache = NULL;
@@ -442,6 +443,8 @@ void folder_item_set_xml(Folder *folder, FolderItem *item, XMLTag *tag)
                        item->unread_msgs = atoi(attr->value);
                else if (!strcmp(attr->name, "unreadmarked"))
                        item->unreadmarked_msgs = atoi(attr->value);
+               else if (!strcmp(attr->name, "marked"))
+                       item->marked_msgs = atoi(attr->value);
                else if (!strcmp(attr->name, "total"))
                        item->total_msgs = atoi(attr->value);
                else if (!strcmp(attr->name, "no_sub"))
@@ -543,6 +546,7 @@ XMLTag *folder_item_get_xml(Folder *folder, FolderItem *item)
        xml_tag_add_attr(tag, xml_attr_new_int("new", item->new_msgs));
        xml_tag_add_attr(tag, xml_attr_new_int("unread", item->unread_msgs));
        xml_tag_add_attr(tag, xml_attr_new_int("unreadmarked", item->unreadmarked_msgs));
+       xml_tag_add_attr(tag, xml_attr_new_int("marked", item->marked_msgs));
        xml_tag_add_attr(tag, xml_attr_new_int("total", item->total_msgs));
 
        if (item->account)
@@ -821,6 +825,7 @@ struct TotalMsgCount
        guint new_msgs;
        guint unread_msgs;
        guint unreadmarked_msgs;
+       guint marked_msgs;
        guint total_msgs;
 };
 
@@ -871,6 +876,7 @@ static void folder_count_total_msgs_func(FolderItem *item, gpointer data)
        count->new_msgs += item->new_msgs;
        count->unread_msgs += item->unread_msgs;
        count->unreadmarked_msgs += item->unreadmarked_msgs;
+       count->marked_msgs += item->marked_msgs;
        count->total_msgs += item->total_msgs;
 }
 
@@ -981,7 +987,9 @@ gchar *folder_get_status(GPtrArray *folders, gboolean full)
        return ret;
 }
 
-void folder_count_total_msgs(guint *new_msgs, guint *unread_msgs, guint *unreadmarked_msgs, guint *total_msgs)
+void folder_count_total_msgs(guint *new_msgs, guint *unread_msgs, 
+                            guint *unreadmarked_msgs, guint *marked_msgs,
+                            guint *total_msgs)
 {
        struct TotalMsgCount count;
 
@@ -994,6 +1002,7 @@ void folder_count_total_msgs(guint *new_msgs, guint *unread_msgs, guint *unreadm
        *new_msgs = count.new_msgs;
        *unread_msgs = count.unread_msgs;
        *unreadmarked_msgs = count.unreadmarked_msgs;
+       *marked_msgs = count.marked_msgs;
        *total_msgs = count.total_msgs;
 }
 
@@ -1589,7 +1598,8 @@ gint folder_item_scan_full(FolderItem *item, gboolean filtering)
        GSList *folder_list_cur, *cache_list_cur, *new_list = NULL;
        GSList *exists_list = NULL, *elem;
        GSList *newmsg_list = NULL;
-       guint newcnt = 0, unreadcnt = 0, totalcnt = 0, unreadmarkedcnt = 0;
+       guint newcnt = 0, unreadcnt = 0, totalcnt = 0;
+       guint markedcnt = 0, unreadmarkedcnt = 0;
        guint cache_max_num, folder_max_num, cache_cur_num, folder_cur_num;
        gboolean update_flags = 0, old_uids_valid = FALSE;
     
@@ -1806,6 +1816,9 @@ gint folder_item_scan_full(FolderItem *item, gboolean filtering)
                        unreadcnt++;
                if (MSG_IS_UNREAD(msginfo->flags) && procmsg_msg_has_marked_parent(msginfo))
                        unreadmarkedcnt++;
+               if (MSG_IS_MARKED(msginfo->flags))
+                       markedcnt++;
+
                totalcnt++;
 
                procmsg_msginfo_free(msginfo);
@@ -1816,6 +1829,7 @@ gint folder_item_scan_full(FolderItem *item, gboolean filtering)
        item->unread_msgs = unreadcnt;
        item->total_msgs = totalcnt;
        item->unreadmarked_msgs = unreadmarkedcnt;
+       item->marked_msgs = markedcnt;
 
        update_flags |= F_ITEM_UPDATE_MSGCNT;
 
@@ -1970,7 +1984,8 @@ void folder_item_read_cache(FolderItem *item)
                item->cache = msgcache_read_cache(item, cache_file);
                if (!item->cache) {
                        MsgInfoList *list, *cur;
-                       guint newcnt = 0, unreadcnt = 0, unreadmarkedcnt = 0;
+                       guint newcnt = 0, unreadcnt = 0;
+                       guint markedcnt = 0, unreadmarkedcnt = 0;
                        MsgInfo *msginfo;
 
                        item->cache = msgcache_new();
@@ -1988,10 +2003,13 @@ void folder_item_read_cache(FolderItem *item)
                                        unreadcnt++;
                                if (MSG_IS_UNREAD(msginfo->flags) && procmsg_msg_has_marked_parent(msginfo))
                                        unreadmarkedcnt++;
+                               if (MSG_IS_MARKED(msginfo->flags))
+                                       markedcnt++;
                        }
                        item->new_msgs = newcnt;
                        item->unread_msgs = unreadcnt;
                        item->unreadmarked_msgs = unreadmarkedcnt;
+                       item->marked_msgs = markedcnt;
                        procmsg_msg_list_free(list);
                } else
                        msgcache_read_mark(item->cache, mark_file);
@@ -2352,6 +2370,8 @@ static void add_msginfo_to_cache(FolderItem *item, MsgInfo *newmsginfo, MsgInfo
                item->unread_msgs++;
        if (MSG_IS_UNREAD(newmsginfo->flags) && procmsg_msg_has_marked_parent(newmsginfo))
                item->unreadmarked_msgs++;
+       if (MSG_IS_MARKED(newmsginfo->flags))
+               item->marked_msgs++;
        item->total_msgs++;
 
        folder_item_update_freeze();
@@ -2374,6 +2394,9 @@ static void remove_msginfo_from_cache(FolderItem *item, MsgInfo *msginfo)
                msginfo->folder->unread_msgs--;
        if (MSG_IS_UNREAD(msginfo->flags) && procmsg_msg_has_marked_parent(msginfo))
                msginfo->folder->unreadmarked_msgs--;
+       if (MSG_IS_MARKED(msginfo->flags))
+               item->marked_msgs--;
+
        msginfo->folder->total_msgs--;
 
        msginfo_update.msginfo = msginfo;
@@ -2930,6 +2953,7 @@ gint folder_item_remove_all_msg(FolderItem *item)
                item->new_msgs = 0;
                item->unread_msgs = 0;
                item->unreadmarked_msgs = 0;
+               item->marked_msgs = 0;
                item->total_msgs = 0;
                folder_item_update(item, F_ITEM_UPDATE_MSGCNT | F_ITEM_UPDATE_CONTENT);
        }
index 848cc4be3bbcc2dcb8f575e6cbc1773228d5a0ad..e857b7e30ba94f8d291de812d991c21d5a4d024f 100644 (file)
@@ -587,6 +587,7 @@ struct _FolderItem
        gint unread_msgs;
        gint total_msgs;
        gint unreadmarked_msgs;
+       gint marked_msgs;
 
        gint last_num;
 
@@ -701,10 +702,9 @@ gint   folder_item_rename  (FolderItem *item, gchar *newname);
 void   folder_update_op_count          (void);
 void   folder_func_to_all_folders      (FolderItemFunc function,
                                         gpointer data);
-void   folder_count_total_msgs (guint          *new_msgs,
-                                guint          *unread_msgs,
-                                guint          *unreadmarked_msgs,
-                                guint          *total_msgs);
+void folder_count_total_msgs(guint *new_msgs, guint *unread_msgs, 
+                            guint *unreadmarked_msgs, guint *marked_msgs,
+                            guint *total_msgs);
 gchar *folder_get_status       (GPtrArray      *folders,
                                 gboolean        full);
 
index e4c201cd81ef72b6f6932f3051bb30abdaaae1ba..c3ef2409383f63b817b728a1a3a420f53032cda7 100644 (file)
@@ -84,7 +84,7 @@ static GtkStyle *bold_style;
 static GtkStyle *bold_color_style;
 static GtkStyle *bold_tgtfold_style;
 
-static GdkBitmap *inboxxpm;
+static GdkPixmap *inboxxpm;
 static GdkBitmap *inboxxpmmask;
 static GdkPixmap *inboxhrmxpm;
 static GdkBitmap *inboxhrmxpmmask;
@@ -124,19 +124,65 @@ static GdkPixmap *queueopenxpm;
 static GdkBitmap *queueopenxpmmask;
 static GdkPixmap *queueopenhrmxpm;
 static GdkBitmap *queueopenhrmxpmmask;
+static GdkPixmap *draftsxpm;
+static GdkBitmap *draftsxpmmask;
+static GdkPixmap *draftsopenxpm;
+static GdkBitmap *draftsopenxpmmask;
+static GdkPixmap *noselectxpm;
+static GdkBitmap *noselectxpmmask;
+
+static GdkPixmap *m_inboxxpm;
+static GdkBitmap *m_inboxxpmmask;
+static GdkPixmap *m_inboxhrmxpm;
+static GdkBitmap *m_inboxhrmxpmmask;
+static GdkPixmap *m_inboxopenxpm;
+static GdkBitmap *m_inboxopenxpmmask;
+static GdkPixmap *m_inboxopenhrmxpm;
+static GdkBitmap *m_inboxopenhrmxpmmask;
+static GdkPixmap *m_outboxxpm;
+static GdkBitmap *m_outboxxpmmask;
+static GdkPixmap *m_outboxhrmxpm;
+static GdkBitmap *m_outboxhrmxpmmask;
+static GdkPixmap *m_outboxopenxpm;
+static GdkBitmap *m_outboxopenxpmmask;
+static GdkPixmap *m_outboxopenhrmxpm;
+static GdkBitmap *m_outboxopenhrmxpmmask;
+static GdkPixmap *m_folderxpm;
+static GdkBitmap *m_folderxpmmask;
+static GdkPixmap *m_folderhrmxpm;
+static GdkBitmap *m_folderhrmxpmmask;
+static GdkPixmap *m_folderopenxpm;
+static GdkBitmap *m_folderopenxpmmask;
+static GdkPixmap *m_folderopenhrmxpm;
+static GdkBitmap *m_folderopenhrmxpmmask;
+static GdkPixmap *m_trashopenxpm;
+static GdkBitmap *m_trashopenxpmmask;
+static GdkPixmap *m_trashopenhrmxpm;
+static GdkBitmap *m_trashopenhrmxpmmask;
+static GdkPixmap *m_trashxpm;
+static GdkBitmap *m_trashxpmmask;
+static GdkPixmap *m_trashhrmxpm;
+static GdkBitmap *m_trashhrmxpmmask;
+static GdkPixmap *m_queuexpm;
+static GdkBitmap *m_queuexpmmask;
+static GdkPixmap *m_queuehrmxpm;
+static GdkBitmap *m_queuehrmxpmmask;
+static GdkPixmap *m_queueopenxpm;
+static GdkBitmap *m_queueopenxpmmask;
+static GdkPixmap *m_queueopenhrmxpm;
+static GdkBitmap *m_queueopenhrmxpmmask;
+static GdkPixmap *m_draftsxpm;
+static GdkBitmap *m_draftsxpmmask;
+static GdkPixmap *m_draftsopenxpm;
+static GdkBitmap *m_draftsopenxpmmask;
+
 static GdkPixmap *newxpm;
 static GdkBitmap *newxpmmask;
 static GdkPixmap *unreadxpm;
 static GdkBitmap *unreadxpmmask;
 static GdkPixmap *readxpm;
 static GdkBitmap *readxpmmask;
-static GdkPixmap *draftsxpm;
-static GdkBitmap *draftsxpmmask;
-static GdkPixmap *draftsopenxpm;
-static GdkBitmap *draftsopenxpmmask;
 
-static GdkPixmap *noselectxpm;
-static GdkBitmap *noselectxpmmask;
 
 static void folderview_select_node      (FolderView    *folderview,
                                          GtkCTreeNode  *node);
@@ -470,6 +516,29 @@ void folderview_init(FolderView *folderview)
        stock_pixmap_gdk(ctree, STOCK_PIXMAP_DRAFTS_OPEN, &draftsopenxpm, &draftsopenxpmmask);
        stock_pixmap_gdk(ctree, STOCK_PIXMAP_DIR_NOSELECT, &noselectxpm, &noselectxpmmask);
 
+       stock_pixmap_gdk(ctree, STOCK_PIXMAP_INBOX_CLOSE_MARK, &m_inboxxpm, &m_inboxxpmmask);
+       stock_pixmap_gdk(ctree, STOCK_PIXMAP_INBOX_CLOSE_HRM_MARK, &m_inboxhrmxpm, &m_inboxhrmxpmmask);
+       stock_pixmap_gdk(ctree, STOCK_PIXMAP_INBOX_OPEN_MARK, &m_inboxopenxpm, &m_inboxopenxpmmask);
+       stock_pixmap_gdk(ctree, STOCK_PIXMAP_INBOX_OPEN_HRM_MARK, &m_inboxopenhrmxpm, &m_inboxopenhrmxpmmask);
+       stock_pixmap_gdk(ctree, STOCK_PIXMAP_OUTBOX_CLOSE_MARK, &m_outboxxpm, &m_outboxxpmmask);
+       stock_pixmap_gdk(ctree, STOCK_PIXMAP_OUTBOX_CLOSE_HRM_MARK, &m_outboxhrmxpm, &m_outboxhrmxpmmask);
+       stock_pixmap_gdk(ctree, STOCK_PIXMAP_OUTBOX_OPEN_MARK, &m_outboxopenxpm, &m_outboxopenxpmmask);
+       stock_pixmap_gdk(ctree, STOCK_PIXMAP_OUTBOX_OPEN_HRM_MARK, &m_outboxopenhrmxpm, &m_outboxopenhrmxpmmask);
+       stock_pixmap_gdk(ctree, STOCK_PIXMAP_DIR_CLOSE_MARK, &m_folderxpm, &m_folderxpmmask);
+       stock_pixmap_gdk(ctree, STOCK_PIXMAP_DIR_CLOSE_HRM_MARK, &m_folderhrmxpm, &m_folderhrmxpmmask);
+       stock_pixmap_gdk(ctree, STOCK_PIXMAP_DIR_OPEN_MARK, &m_folderopenxpm, &m_folderopenxpmmask);
+       stock_pixmap_gdk(ctree, STOCK_PIXMAP_DIR_OPEN_HRM_MARK, &m_folderopenhrmxpm, &m_folderopenhrmxpmmask);
+       stock_pixmap_gdk(ctree, STOCK_PIXMAP_TRASH_OPEN_MARK, &m_trashopenxpm, &m_trashopenxpmmask);
+       stock_pixmap_gdk(ctree, STOCK_PIXMAP_TRASH_OPEN_HRM_MARK, &m_trashopenhrmxpm, &m_trashopenhrmxpmmask);
+       stock_pixmap_gdk(ctree, STOCK_PIXMAP_TRASH_CLOSE_MARK, &m_trashxpm, &m_trashxpmmask);
+       stock_pixmap_gdk(ctree, STOCK_PIXMAP_TRASH_CLOSE_HRM_MARK, &m_trashhrmxpm, &m_trashhrmxpmmask);
+       stock_pixmap_gdk(ctree, STOCK_PIXMAP_QUEUE_CLOSE_MARK, &m_queuexpm, &m_queuexpmmask);
+       stock_pixmap_gdk(ctree, STOCK_PIXMAP_QUEUE_CLOSE_HRM_MARK, &m_queuehrmxpm, &m_queuehrmxpmmask);
+       stock_pixmap_gdk(ctree, STOCK_PIXMAP_QUEUE_OPEN_MARK, &m_queueopenxpm, &m_queueopenxpmmask);
+       stock_pixmap_gdk(ctree, STOCK_PIXMAP_QUEUE_OPEN_HRM_MARK, &m_queueopenhrmxpm, &m_queueopenhrmxpmmask);
+       stock_pixmap_gdk(ctree, STOCK_PIXMAP_DRAFTS_CLOSE_MARK, &m_draftsxpm, &m_draftsxpmmask);
+       stock_pixmap_gdk(ctree, STOCK_PIXMAP_DRAFTS_OPEN_MARK, &m_draftsopenxpm, &m_draftsopenxpmmask);
+
        /* CLAWS: titles for "New" and "Unread" show new & unread pixmaps
         * instead text (text overflows making them unreadable and ugly) */
         stock_pixmap_gdk(ctree, STOCK_PIXMAP_NEW,
@@ -1028,7 +1097,7 @@ static void folderview_update_node(FolderView *folderview, GtkCTreeNode *node)
        GdkBitmap *mask, *openmask;
        static GdkPixmap *searchicon;
        static GdkBitmap *searchmask;
-
+       gboolean mark = FALSE;
        gchar *name;
        gchar *str;
        gboolean add_unread_mark;
@@ -1038,76 +1107,78 @@ static void folderview_update_node(FolderView *folderview, GtkCTreeNode *node)
        item = gtk_ctree_node_get_row_data(ctree, node);
        g_return_if_fail(item != NULL);
 
+       mark = (item->marked_msgs != 0);
+
        switch (item->stype) {
        case F_INBOX:
                if (item->hide_read_msgs) {
-                       xpm = inboxhrmxpm;
-                       mask = inboxhrmxpmmask;
-                       openxpm = inboxopenhrmxpm;
-                       openmask = inboxopenhrmxpmmask;
+                       xpm = mark?m_inboxhrmxpm:inboxhrmxpm;
+                       mask = mark?m_inboxhrmxpmmask:inboxhrmxpmmask;
+                       openxpm = mark?m_inboxopenhrmxpm:inboxopenhrmxpm;
+                       openmask = mark?m_inboxopenhrmxpmmask:inboxopenhrmxpmmask;
                } else {
-                       xpm = inboxxpm;
-                       mask = inboxxpmmask;
-                       openxpm = inboxopenxpm;
-                       openmask = inboxopenxpmmask;
+                       xpm = mark?m_inboxxpm:inboxxpm;
+                       mask = mark?m_inboxxpmmask:inboxxpmmask;
+                       openxpm = mark?m_inboxopenxpm:inboxopenxpm;
+                       openmask = mark?m_inboxopenxpmmask:inboxopenxpmmask;
                }
                break;
        case F_OUTBOX:
                if (item->hide_read_msgs) {
-                       xpm = outboxhrmxpm;
-                       mask = outboxhrmxpmmask;
-                       openxpm = outboxopenhrmxpm;
-                       openmask = outboxopenhrmxpmmask;
+                       xpm = mark?m_outboxhrmxpm:outboxhrmxpm;
+                       mask = mark?m_outboxhrmxpmmask:outboxhrmxpmmask;
+                       openxpm = mark?m_outboxopenhrmxpm:outboxopenhrmxpm;
+                       openmask = mark?m_outboxopenhrmxpmmask:outboxopenhrmxpmmask;
                } else {
-                       xpm = outboxxpm;
-                       mask = outboxxpmmask;
-                       openxpm = outboxopenxpm;
-                       openmask = outboxopenxpmmask;
+                       xpm = mark?m_outboxxpm:outboxxpm;
+                       mask = mark?m_outboxxpmmask:outboxxpmmask;
+                       openxpm = mark?m_outboxopenxpm:outboxopenxpm;
+                       openmask = mark?m_outboxopenxpmmask:outboxopenxpmmask;
                }
                break;
        case F_QUEUE:
                if (item->hide_read_msgs) {
-                       xpm = queuehrmxpm;
-                       mask = queuehrmxpmmask;
-                       openxpm = queueopenhrmxpm;
-                       openmask = queueopenhrmxpmmask;
+                       xpm = mark?m_queuehrmxpm:queuehrmxpm;
+                       mask = mark?m_queuehrmxpmmask:queuehrmxpmmask;
+                       openxpm = mark?m_queueopenhrmxpm:queueopenhrmxpm;
+                       openmask = mark?m_queueopenhrmxpmmask:queueopenhrmxpmmask;
                } else {
-                       xpm = queuexpm;
-                       mask = queuexpmmask;
-                       openxpm = queueopenxpm;
-                       openmask = queueopenxpmmask;
+                       xpm = mark?m_queuexpm:queuexpm;
+                       mask = mark?m_queuexpmmask:queuexpmmask;
+                       openxpm = mark?m_queueopenxpm:queueopenxpm;
+                       openmask = mark?m_queueopenxpmmask:queueopenxpmmask;
                }
                break;
        case F_TRASH:
                if (item->hide_read_msgs) {
-                       xpm = trashhrmxpm;
-                       mask = trashhrmxpmmask;
-                       openxpm = trashopenhrmxpm;
-                       openmask = trashopenhrmxpmmask;
+                       xpm = mark?m_trashhrmxpm:trashhrmxpm;
+                       mask = mark?m_trashhrmxpmmask:trashhrmxpmmask;
+                       openxpm = mark?m_trashopenhrmxpm:trashopenhrmxpm;
+                       openmask = mark?m_trashopenhrmxpmmask:trashopenhrmxpmmask;
                } else {
-                       xpm = trashxpm;
-                       mask = trashxpmmask;
-                       openxpm = trashopenxpm;
-                       openmask = trashopenxpmmask;
+                       xpm = mark?m_trashxpm:trashxpm;
+                       mask = mark?m_trashxpmmask:trashxpmmask;
+                       openxpm = mark?m_trashopenxpm:trashopenxpm;
+                       openmask = mark?m_trashopenxpmmask:trashopenxpmmask;
                }
                break;
        case F_DRAFT:
-               xpm = draftsxpm;
-               mask = draftsxpmmask;
-               openxpm = draftsopenxpm;
-               openmask = draftsopenxpmmask;
+               xpm = mark?m_draftsxpm:draftsxpm;
+               mask = mark?m_draftsxpmmask:draftsxpmmask;
+               openxpm = mark?m_draftsopenxpm:draftsopenxpm;
+               openmask = mark?m_draftsopenxpmmask:draftsopenxpmmask;
                break;
        default:
                if (item->hide_read_msgs) {
-                       xpm = folderhrmxpm;
-                       mask = folderhrmxpmmask;
-                       openxpm = folderopenhrmxpm;
-                       openmask = folderopenhrmxpmmask;
+                       xpm = mark?m_folderhrmxpm:folderhrmxpm;
+                       mask = mark?m_folderhrmxpmmask:folderhrmxpmmask;
+                       openxpm = mark?m_folderopenhrmxpm:folderopenhrmxpm;
+                       openmask = mark?m_folderopenhrmxpmmask:folderopenhrmxpmmask;
                } else {
-                       xpm = folderxpm;
-                       mask = folderxpmmask;
-                       openxpm = folderopenxpm;
-                       openmask = folderopenxpmmask;
+                       xpm = mark?m_folderxpm:folderxpm;
+                       mask = mark?m_folderxpmmask:folderxpmmask;
+                       openxpm = mark?m_folderopenxpm:folderopenxpm;
+                       openmask = mark?m_folderopenxpmmask:folderopenxpmmask;
                }
        }
        
diff --git a/src/pixmaps/dir_close_mark.xpm b/src/pixmaps/dir_close_mark.xpm
new file mode 100644 (file)
index 0000000..5c79f3f
--- /dev/null
@@ -0,0 +1,89 @@
+/* XPM */
+static char * dir_close_mark_xpm[] = {
+"16 16 70 1",
+"      c None",
+".     c #FFFFFF",
+"+     c #000000",
+"@     c #4E8EE5",
+"#     c #4885E3",
+"$     c #66A6EF",
+"%     c #63A2F1",
+"&     c #4D8BE9",
+"*     c #DDF1FE",
+"=     c #D7EDFE",
+"-     c #AAD3FC",
+";     c #94C4FA",
+">     c #D0EAFE",
+",     c #C0E2FD",
+"'     c #90C2FA",
+")     c #80B9F8",
+"!     c #639EF1",
+"~     c #CDE8FD",
+"{     c #B9DEFC",
+"]     c #ABD7FB",
+"^     c #83BBF9",
+"/     c #7CB4F8",
+"(     c #66A0F2",
+"_     c #4680E5",
+":     c #CBE7FD",
+"<     c #B7DDFC",
+"[     c #A9D6FB",
+"}     c #A5D2FB",
+"|     c #7DB5F8",
+"1     c #71ACF6",
+"2     c #5895EE",
+"3     c #386FDE",
+"4     c #CBE8FD",
+"5     c #A8D3FB",
+"6     c #A2D1FB",
+"7     c #96C8FA",
+"8     c #74AEF7",
+"9     c #65A1F4",
+"0     c #4D88EA",
+"a     c #3468D5",
+"b     c #B1D8FB",
+"c     c #9FCFFA",
+"d     c #93C6F9",
+"e     c #87BEF9",
+"f     c #7FB9F8",
+"g     c #7AB3F8",
+"h     c #5691F0",
+"i     c #427EE5",
+"j     c #2F61CC",
+"k     c #C0E1FD",
+"l     c #9BC9F9",
+"m     c #80B8F6",
+"n     c #74AEF6",
+"o     c #6FAAF5",
+"p     c #6BA5F4",
+"q     c #639FF3",
+"r     c #5A94F0",
+"s     c #417CE4",
+"t     c #3469D8",
+"u     c #2957BE",
+"v     c #AAD4FB",
+"w     c #70AAF3",
+"x     c #538EEC",
+"y     c #4F89EA",
+"z     c #4F8AEC",
+"A     c #4B87EA",
+"B     c #4683E8",
+"C     c #4076E1",
+"D     c #356AD8",
+"E     c #254EAB",
+"             .. ",
+"            .+. ",
+"    ++++   .++. ",
+"   +@..#+ .+++. ",
+"  +$%.+.&.+++.+ ",
+"  +*=.++.+++.-;+",
+"  +>,.+++++.')!+",
+"  +~{].+++.^/(_+",
+"  +:<[}.+.^|123+",
+"  +4<567.^|890a+",
+"  +:bcdefg19hij+",
+"  +klmnopqr0stu+",
+"  +vwxyzABCDjuE+",
+"   ++++++++++++ ",
+"                ",
+"                "};
diff --git a/src/pixmaps/dir_open_hrm_mark.xpm b/src/pixmaps/dir_open_hrm_mark.xpm
new file mode 100644 (file)
index 0000000..2a75115
--- /dev/null
@@ -0,0 +1,51 @@
+/* XPM */
+static char * dir_open_hrm_mark_xpm[] = {
+"16 16 32 1",
+"      c None",
+".     c #FFFFFF",
+"+     c #000000",
+"@     c #DE4D7D",
+"#     c #CB326F",
+"$     c #CE3B76",
+"%     c #A93262",
+"&     c #D64385",
+"*     c #BB326C",
+"=     c #A63160",
+"-     c #8B283D",
+";     c #752637",
+">     c #5A151D",
+",     c #AB3265",
+"'     c #EF7A95",
+")     c #F1809B",
+"!     c #EB6C8D",
+"~     c #6C212F",
+"{     c #7A293C",
+"]     c #F1869D",
+"^     c #E76486",
+"/     c #D43B6A",
+"(     c #E65F7C",
+"_     c #712434",
+":     c #EE719A",
+"<     c #972E4C",
+"[     c #D13872",
+"}     c #6C1F30",
+"|     c #EE7595",
+"1     c #852C3F",
+"2     c #DF5089",
+"3     c #AF2A4F",
+"             .. ",
+"            .+. ",
+"    ++++   .++. ",
+"   +@..#+ .+++. ",
+"  +$%.+.%.+++.+ ",
+"  +&*.++.+++.=-+",
+" ++++.+++++.;>,+",
+"+')!)!.+++.!+~{+",
+"+]^/(/(.+.(/+~_+",
+" +:(/(/(.(/(<+_+",
+" +)[(/(/(/(/(+}+",
+"  +|/(/(/(/(/1++",
+"  +2/3/3/3/3/3++",
+"   ++++++++++++ ",
+"                ",
+"                "};
diff --git a/src/pixmaps/dir_open_mark.xpm b/src/pixmaps/dir_open_mark.xpm
new file mode 100644 (file)
index 0000000..c2fd47c
--- /dev/null
@@ -0,0 +1,74 @@
+/* XPM */
+static char * dir_open_mark_xpm[] = {
+"16 16 55 1",
+"      c None",
+".     c #FFFFFF",
+"+     c #000000",
+"@     c #5695E8",
+"#     c #4C89E6",
+"$     c #4B89E7",
+"%     c #5A98F0",
+"&     c #4681E6",
+"*     c #79AEF8",
+"=     c #5F9DF4",
+"-     c #4C88ED",
+";     c #5792F1",
+">     c #224AA4",
+",     c #2957BE",
+"'     c #346ADB",
+")     c #D2EAFD",
+"!     c #CFEAFD",
+"~     c #C6E6FD",
+"{     c #C4E5FD",
+"]     c #80BBF1",
+"^     c #1D3E8C",
+"/     c #2650B0",
+"(     c #AAD4F8",
+"_     c #AAD3F9",
+":     c #ACD7FB",
+"<     c #A8D5FB",
+"[     c #A7D4FA",
+"}     c #9ECEF9",
+"|     c #67A7EB",
+"1     c #1C3A80",
+"2     c #204396",
+"3     c #9BCCF9",
+"4     c #98CBF9",
+"5     c #92C7F8",
+"6     c #71AEEF",
+"7     c #3470CA",
+"8     c #1D3D88",
+"9     c #94C9F9",
+"0     c #93C8F8",
+"a     c #80BDF5",
+"b     c #6BACEB",
+"c     c #1B3781",
+"d     c #88BFF7",
+"e     c #86BEF7",
+"f     c #84BEF7",
+"g     c #7FBAF6",
+"h     c #5E9EEA",
+"i     c #3064BF",
+"j     c #76B1F4",
+"k     c #75B1F5",
+"l     c #70AEF4",
+"m     c #6FADF4",
+"n     c #67A7F1",
+"o     c #64A4EF",
+"p     c #498BE7",
+"             .. ",
+"            .+. ",
+"    ++++   .++. ",
+"   +@..#+ .+++. ",
+"  +$%.+.&.+++.+ ",
+"  +*=.++.+++.-;+",
+" ++++.+++++.>,'+",
+"+)!~{{.+++.]+^/+",
+"+(_:<[<.+.}|+12+",
+" +(33444.4567+8+",
+" +(99000005ab+c+",
+"  +3deeeeefghi++",
+"  +jklllmlmnop++",
+"   ++++++++++++ ",
+"                ",
+"                "};
diff --git a/src/pixmaps/drafts_close_mark.xpm b/src/pixmaps/drafts_close_mark.xpm
new file mode 100644 (file)
index 0000000..fea09ae
--- /dev/null
@@ -0,0 +1,89 @@
+/* XPM */
+static char * drafts_close_mark_xpm[] = {
+"16 16 70 1",
+"      c None",
+".     c #FFFFFF",
+"+     c #000000",
+"@     c #4E8EE5",
+"#     c #4885E3",
+"$     c #66A6EF",
+"%     c #63A2F1",
+"&     c #4D8BE9",
+"*     c #DDF1FE",
+"=     c #D7EDFE",
+"-     c #AAD3FC",
+";     c #94C4FA",
+">     c #D0EAFE",
+",     c #C0E2FD",
+"'     c #90C2FA",
+")     c #80B9F8",
+"!     c #639EF1",
+"~     c #CDE8FD",
+"{     c #B9DEFC",
+"]     c #ABD7FB",
+"^     c #83BBF9",
+"/     c #7CB4F8",
+"(     c #66A0F2",
+"_     c #4680E5",
+":     c #CBE7FD",
+"<     c #B7DDFC",
+"[     c #A9D6FB",
+"}     c #A5D2FB",
+"|     c #7DB5F8",
+"1     c #71ACF6",
+"2     c #5895EE",
+"3     c #386FDE",
+"4     c #CBE8FD",
+"5     c #A8D3FB",
+"6     c #A2D1FB",
+"7     c #96C8FA",
+"8     c #74AEF7",
+"9     c #65A1F4",
+"0     c #4D88EA",
+"a     c #3468D5",
+"b     c #B1D8FB",
+"c     c #9FCFFA",
+"d     c #93C6F9",
+"e     c #87BEF9",
+"f     c #7FB9F8",
+"g     c #7AB3F8",
+"h     c #5691F0",
+"i     c #427EE5",
+"j     c #2F61CC",
+"k     c #C0E1FD",
+"l     c #9BC9F9",
+"m     c #80B8F6",
+"n     c #74AEF6",
+"o     c #6FAAF5",
+"p     c #6BA5F4",
+"q     c #639FF3",
+"r     c #5A94F0",
+"s     c #417CE4",
+"t     c #3469D8",
+"u     c #2957BE",
+"v     c #AAD4FB",
+"w     c #70AAF3",
+"x     c #538EEC",
+"y     c #4F89EA",
+"z     c #4F8AEC",
+"A     c #4B87EA",
+"B     c #4683E8",
+"C     c #4076E1",
+"D     c #356AD8",
+"E     c #254EAB",
+"             .. ",
+"            .+. ",
+"    ++++   .++. ",
+"   +@..#+ .+++. ",
+"  +$%.+.&.+++.+ ",
+"  +*=.++.+++.-;+",
+"  +>,.+++++.')!+",
+"  +~{].+++.^/(_+",
+"  +:<[}.+.^|123+",
+"  +4<567.^|890a+",
+"  +:bcdefg19hij+",
+"  +klmnopqr0stu+",
+"  +vwxyzABCDjuE+",
+"   ++++++++++++ ",
+"                ",
+"                "};
diff --git a/src/pixmaps/drafts_open_mark.xpm b/src/pixmaps/drafts_open_mark.xpm
new file mode 100644 (file)
index 0000000..b17104c
--- /dev/null
@@ -0,0 +1,74 @@
+/* XPM */
+static char * drafts_open_mark_xpm[] = {
+"16 16 55 1",
+"      c None",
+".     c #FFFFFF",
+"+     c #000000",
+"@     c #5695E8",
+"#     c #4C89E6",
+"$     c #4B89E7",
+"%     c #5A98F0",
+"&     c #4681E6",
+"*     c #79AEF8",
+"=     c #5F9DF4",
+"-     c #4C88ED",
+";     c #5792F1",
+">     c #224AA4",
+",     c #2957BE",
+"'     c #346ADB",
+")     c #D2EAFD",
+"!     c #CFEAFD",
+"~     c #C6E6FD",
+"{     c #C4E5FD",
+"]     c #80BBF1",
+"^     c #1D3E8C",
+"/     c #2650B0",
+"(     c #AAD4F8",
+"_     c #AAD3F9",
+":     c #ACD7FB",
+"<     c #A8D5FB",
+"[     c #A7D4FA",
+"}     c #9ECEF9",
+"|     c #67A7EB",
+"1     c #1C3A80",
+"2     c #204396",
+"3     c #9BCCF9",
+"4     c #98CBF9",
+"5     c #92C7F8",
+"6     c #71AEEF",
+"7     c #3470CA",
+"8     c #1D3D88",
+"9     c #94C9F9",
+"0     c #93C8F8",
+"a     c #80BDF5",
+"b     c #6BACEB",
+"c     c #1B3781",
+"d     c #88BFF7",
+"e     c #86BEF7",
+"f     c #84BEF7",
+"g     c #7FBAF6",
+"h     c #5E9EEA",
+"i     c #3064BF",
+"j     c #76B1F4",
+"k     c #75B1F5",
+"l     c #70AEF4",
+"m     c #6FADF4",
+"n     c #67A7F1",
+"o     c #64A4EF",
+"p     c #498BE7",
+"             .. ",
+"            .+. ",
+"    ++++   .++. ",
+"   +@..#+ .+++. ",
+"  +$%.+.&.+++.+ ",
+"  +*=.++.+++.-;+",
+" ++++.+++++.>,'+",
+"+)!~{{.+++.]+^/+",
+"+(_:<[<.+.}|+12+",
+" +(33444.4567+8+",
+" +(99000005ab+c+",
+"  +3deeeeefghi++",
+"  +jklllmlmnop++",
+"   ++++++++++++ ",
+"                ",
+"                "};
diff --git a/src/pixmaps/inbox_hrm_mark.xpm b/src/pixmaps/inbox_hrm_mark.xpm
new file mode 100644 (file)
index 0000000..724a8db
--- /dev/null
@@ -0,0 +1,27 @@
+/* XPM */
+static char * inbox_hrm_mark_xpm[] = {
+"16 16 8 1",
+"      c None",
+".     c #9B0007",
+"+     c #FFFFFF",
+"@     c #050000",
+"#     c #000000",
+"$     c #FD5484",
+"%     c #FEC9D8",
+"&     c #B41133",
+"  .           ++",
+" ...    @    +#+",
+"  ... @@$@  +##+",
+"   ...++$%@+###+",
+"  @@..+#+%+###+ ",
+"@@$$$.+##+###+  ",
+"@%@$..+#####+@  ",
+"@%%@$$%+###+%%@ ",
+"@%%%@$$%+#+%&%$@",
+" @%%%@$$$+%%%&%@",
+"  @%%%@$$%%%%$&@",
+"   @%%%@$$%$$$$@",
+"    @%%$&$$$$@@ ",
+"     @%%@$$@@   ",
+"      @%@@@     ",
+"       @@       "};
diff --git a/src/pixmaps/inbox_mark.xpm b/src/pixmaps/inbox_mark.xpm
new file mode 100644 (file)
index 0000000..ff4693e
--- /dev/null
@@ -0,0 +1,27 @@
+/* XPM */
+static char * inbox_mark_xpm[] = {
+"16 16 8 1",
+"      c None",
+".     c #920A0C",
+"+     c #FFFFFF",
+"@     c #020204",
+"#     c #000000",
+"$     c #A9A9AA",
+"%     c #F3F3F1",
+"&     c #636364",
+"  .          ++ ",
+" ...    @   +#+ ",
+"  ... @@$@ +##+ ",
+"   ..++.$%+###+ ",
+"  @@.+#+&+###+  ",
+"@@$$$+##+###+   ",
+"@%@$.+#####+%@  ",
+"@%%@$$+###+&%%@ ",
+"@%%%@$$+#+%%&%$@",
+" @%%%@$$+%%%%&%@",
+"  @%%%@$$%%%%$&@",
+"   @%%%@$$%$$$$@",
+"    @%%$&$$$$@@ ",
+"     @%%@$$@@   ",
+"      @%@@@     ",
+"       @@       "};
diff --git a/src/pixmaps/outbox_hrm_mark.xpm b/src/pixmaps/outbox_hrm_mark.xpm
new file mode 100644 (file)
index 0000000..f25722c
--- /dev/null
@@ -0,0 +1,28 @@
+/* XPM */
+static char * outbox_hrm_mark_xpm[] = {
+"16 16 9 1",
+"      c None",
+".     c #FFFFFF",
+"+     c #050000",
+"@     c #152658",
+"#     c #000000",
+"$     c #FE3569",
+"%     c #FEC9D8",
+"&     c #B21133",
+"*     c #FE6993",
+"              ..",
+"        +   @.#.",
+"      ++$+  .##.",
+"    ++..$%+.###.",
+"  ++$$.#.%.###.@",
+"++$$$$.##.###.  ",
+"+%+$&&.#####.+  ",
+"+%%+$*%.###.%%+ ",
+"+%%%+**%.#.%&%$+",
+" +%%%+**%.%%%&%+",
+"  +%%%+**%%%%*&+",
+"   +%%%+*%%***$+",
+"    +%%$&***$++ ",
+"     +%%+*$++   ",
+"      +%+++     ",
+"       ++       "};
diff --git a/src/pixmaps/outbox_mark.xpm b/src/pixmaps/outbox_mark.xpm
new file mode 100644 (file)
index 0000000..6b3b584
--- /dev/null
@@ -0,0 +1,29 @@
+/* XPM */
+static char * outbox_mark_xpm[] = {
+"16 16 10 1",
+"      c None",
+".     c #FFFFFF",
+"+     c #020204",
+"@     c #024A6C",
+"#     c #000000",
+"$     c #99999B",
+"%     c #FDFDFB",
+"&     c #626263",
+"*     c #B4B4B4",
+"=     c #E5E5E3",
+"              ..",
+"        +   @.#.",
+"      ++$+  .##.",
+"    ++..$%+.###.",
+"  ++$$.#.%.###.@",
+"++$$$$.##.###.  ",
+"+%+$&&.#####.+  ",
+"+%%+$*=.###.%%+ ",
+"+%%%+**=.#.=&%$+",
+" +%%%+**=.===&=+",
+"  +%%%+**====*&+",
+"   +%%%+*==***$+",
+"    +%%$&***$++ ",
+"     +%=+*$++   ",
+"      +%+++     ",
+"       ++       "};
diff --git a/src/pixmaps/trash_hrm_mark.xpm b/src/pixmaps/trash_hrm_mark.xpm
new file mode 100644 (file)
index 0000000..6527677
--- /dev/null
@@ -0,0 +1,30 @@
+/* XPM */
+static char * trash_hrm_mark_xpm[] = {
+"16 16 11 1",
+"      c None",
+".     c #FFFFFF",
+"+     c #000000",
+"@     c #EB6C8D",
+"#     c #E65F7C",
+"$     c #852C3F",
+"%     c #D43B6A",
+"&     c #F1809B",
+"*     c #752637",
+"=     c #6C1F30",
+"-     c #A93262",
+"             .. ",
+"   ++++++   .+. ",
+" ++@@#$##++.++. ",
+"+#@@@..###.+++. ",
+"+%@&&.+.#.+++.  ",
+"+*%##.++.+++.   ",
+" +$%*.+++++.    ",
+" +*===.+++.     ",
+" +*@-#-.+.++++  ",
+" +*@-#-%.*+++++ ",
+" +*@-#-%-*+++++ ",
+" +%@-#-%-*++++  ",
+"  +%%%*%*+++    ",
+"   +++++++      ",
+"                ",
+"                "};
diff --git a/src/pixmaps/trash_mark.xpm b/src/pixmaps/trash_mark.xpm
new file mode 100644 (file)
index 0000000..1cc68e6
--- /dev/null
@@ -0,0 +1,30 @@
+/* XPM */
+static char * trash_mark_xpm[] = {
+"16 16 11 1",
+"      c None",
+".     c #FFFFFF",
+"+     c #000000",
+"@     c #A1B7E7",
+"#     c #7B92CE",
+"$     c #3B4766",
+"%     c #272A42",
+"&     c #5D6CAD",
+"*     c #D2DEFB",
+"=     c #52617C",
+"-     c #1B1C2E",
+"              ..",
+"   ++++++    .+.",
+" ++@@#$##++ .++.",
+"+#@@@%..##&.+++.",
+"+&@**#.+.&.+++. ",
+"+=&##&.++.+++.  ",
+" +-&==.+++++.   ",
+" +=----.+++.    ",
+" +=@$#$&.+.+++  ",
+" +=@$#$&$.+++++ ",
+" +=@$#$&$=+++++ ",
+" +&@$#$&$=++++  ",
+"  +&&&=&=+++    ",
+"   +++++++      ",
+"                ",
+"                "};
index f66f11797189bd3e20e7f9935dff44696fd8a419..14c4a0ccfa5ed308a09e443b40dcc9d95ea26f85 100644 (file)
@@ -136,11 +136,11 @@ static void set_trayicon_pixmap(TrayIconType icontype)
 
 static void update(void)
 {
-       gint new, unread, unreadmarked, total;
+       gint new, unread, unreadmarked, marked, total;
        gchar *buf;
        TrayIconType icontype = TRAYICON_NOTHING;
 
-       folder_count_total_msgs(&new, &unread, &unreadmarked, &total);
+       folder_count_total_msgs(&new, &unread, &unreadmarked, &marked, &total);
        buf = g_strdup_printf(_("New %d, Unread: %d, Total: %d"), new, unread, total);
 
         gtk_tooltips_set_tip(tooltips, eventbox, buf, "");
index f7186c40a5035788b213834919def9d46589315f..2addc22ac256227b863ff05979e87112ad2b6cca 100644 (file)
@@ -105,6 +105,8 @@ static PrefParam param[] = {
        /* Send */
        {"save_message", "TRUE", &prefs_common.savemsg, P_BOOL,
         NULL, NULL, NULL},
+       {"confirm_send_queued_messages", "FALSE", &prefs_common.confirm_send_queued_messages,
+        P_BOOL, NULL, NULL, NULL},
        {"send_dialog_mode", "0", &prefs_common.send_dialog_mode, P_ENUM,
         NULL, NULL, NULL},
 
index 5a6c8b776c19b742228d535fc12edd4aab5fd35d..a69b3ba0be375cc939a2f359c671028d8ef49c91 100644 (file)
@@ -78,6 +78,7 @@ struct _PrefsCommon
 
        /* Send */
        gboolean savemsg;
+       gboolean confirm_send_queued_messages;
        SendDialogMode send_dialog_mode;
        gchar *outgoing_charset;
        TransferEncodingMethod encoding_method;
index e46ed7439bcf21299a45b495663fc91fc99a41e5..dedef2d5a64e4a67e3e917b2bd96ced320d67835 100644 (file)
@@ -47,6 +47,7 @@ typedef struct _SendPage
        GtkWidget *window;
 
        GtkWidget *checkbtn_savemsg;
+       GtkWidget *checkbtn_confirm_send_queued_messages;
        GtkWidget *optmenu_senddialog;
        GtkWidget *optmenu_charset;
        GtkWidget *optmenu_encoding_method;
@@ -128,6 +129,7 @@ void prefs_send_create_widget(PrefsPage *_page, GtkWindow *window,
        GtkWidget *menu;
        GtkWidget *optmenu_senddialog;
        GtkWidget *hbox_senddialog;
+       GtkWidget *checkbtn_confirm_send_queued_messages;
 
        vbox1 = gtk_vbox_new (FALSE, VSPACING);
        gtk_widget_show (vbox1);
@@ -140,6 +142,10 @@ void prefs_send_create_widget(PrefsPage *_page, GtkWindow *window,
        PACK_CHECK_BUTTON (vbox2, checkbtn_savemsg,
                           _("Save sent messages to Sent folder"));
 
+       PACK_CHECK_BUTTON
+               (vbox2, checkbtn_confirm_send_queued_messages,
+                _("Confirm before sending queued messages"));
+
        hbox_senddialog = gtk_hbox_new (FALSE, 8);
        gtk_widget_show(hbox_senddialog);
        gtk_box_pack_start (GTK_BOX (vbox1), hbox_senddialog, FALSE, FALSE, 0);
@@ -269,6 +275,8 @@ void prefs_send_create_widget(PrefsPage *_page, GtkWindow *window,
 
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_savemsg),
                prefs_common.savemsg);
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_confirm_send_queued_messages),
+               prefs_common.confirm_send_queued_messages);
        gtk_option_menu_set_history(GTK_OPTION_MENU(optmenu_senddialog),
                prefs_common.send_dialog_mode);
        prefs_common_charset_set_optmenu(optmenu_charset, 
@@ -279,6 +287,7 @@ void prefs_send_create_widget(PrefsPage *_page, GtkWindow *window,
        prefs_send->window                      = GTK_WIDGET(window);
        
        prefs_send->checkbtn_savemsg = checkbtn_savemsg;
+       prefs_send->checkbtn_confirm_send_queued_messages = checkbtn_confirm_send_queued_messages;
        prefs_send->optmenu_senddialog = optmenu_senddialog;
        prefs_send->optmenu_charset = optmenu_charset;
        prefs_send->optmenu_encoding_method = optmenu_encoding;
@@ -294,6 +303,8 @@ void prefs_send_save(PrefsPage *_page)
 
        prefs_common.savemsg = gtk_toggle_button_get_active(
                GTK_TOGGLE_BUTTON(page->checkbtn_savemsg));
+       prefs_common.confirm_send_queued_messages = gtk_toggle_button_get_active(
+               GTK_TOGGLE_BUTTON(page->checkbtn_confirm_send_queued_messages));
 
        menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(page->optmenu_senddialog));
        menuitem = gtk_menu_get_active(GTK_MENU(menu));
index 93b569ff9b2ad201f9f1ac5b9e32a822d51968d8..ba07eeb7174121863a01420d703d0f37746b1c5f 100644 (file)
@@ -868,6 +868,26 @@ gint procmsg_send_queue(FolderItem *queue, gboolean save_msgs)
        return (err != 0 ? -err : sent);
 }
 
+/*!
+ *\brief       Determine if a queue folder is empty
+ *
+ *\param       queue Queue folder to process
+ *
+ *\return      TRUE if the queue folder is empty, otherwise return FALSE
+ */
+gboolean procmsg_queue_is_empty(FolderItem *queue)
+{
+       GSList *list;
+
+       if (!queue)
+               queue = folder_get_default_queue();
+       g_return_val_if_fail(queue != NULL, TRUE);
+
+       folder_item_scan(queue);
+       list = folder_item_get_msg_list(queue);
+       return (list == NULL);
+}
+
 gint procmsg_remove_special_headers(const gchar *in, const gchar *out)
 {
        FILE *fp, *outfp;
@@ -1563,10 +1583,12 @@ static void update_folder_msg_counts(FolderItem *item, MsgInfo *msginfo, MsgPerm
        /* MARK flag */
        if (!(old_flags & MSG_MARKED) && (new_flags & MSG_MARKED)) {
                procmsg_update_unread_children(msginfo, TRUE);
+               item->marked_msgs++;
        }
 
        if ((old_flags & MSG_MARKED) && !(new_flags & MSG_MARKED)) {
                procmsg_update_unread_children(msginfo, FALSE);
+               item->marked_msgs--;
        }
 }
 
index c91c003b19ed3e47aff799471c12ebe0f5d33b4f..d73309759a0512bf22292e0d574e98b1547967c3 100644 (file)
@@ -274,6 +274,7 @@ void        procmsg_empty_all_trash         (void);
 
 gint   procmsg_send_queue              (FolderItem     *queue,
                                         gboolean        save_msgs);
+gboolean procmsg_queue_is_empty        (FolderItem *queue);
 gint   procmsg_save_to_outbox          (FolderItem     *outbox,
                                         const gchar    *file,
                                         gboolean        is_queued);
index 34444fa7fd360387912ea1d3a047cb1cf947b68f..3565e2d2794ece3078e42c807648cbf27c0753b7 100644 (file)
 #include "pixmaps/complete.xpm"
 #include "pixmaps/continue.xpm"
 #include "pixmaps/deleted.xpm"
-#include "pixmaps/dir_close.xpm"
-#include "pixmaps/dir_open.xpm"
-#include "pixmaps/dir_open_hrm.xpm"
 #include "pixmaps/error.xpm"
 #include "pixmaps/forwarded.xpm"
 #include "pixmaps/group.xpm"
-#include "pixmaps/inbox.xpm"
-#include "pixmaps/inbox_hrm.xpm"
 #include "pixmaps/interface.xpm"
 #include "pixmaps/jpilot.xpm"
 #include "pixmaps/key.xpm"
@@ -56,8 +51,6 @@
 #include "pixmaps/mark.xpm"
 #include "pixmaps/locked.xpm"
 #include "pixmaps/new.xpm"
-#include "pixmaps/outbox.xpm"
-#include "pixmaps/outbox_hrm.xpm"
 #include "pixmaps/replied.xpm"
 #include "pixmaps/close.xpm"
 #include "pixmaps/down_arrow.xpm"
@@ -81,8 +74,6 @@
 #include "pixmaps/sylpheed_icon.xpm"
 #include "pixmaps/sylpheed_logo.xpm"
 #include "pixmaps/address_book.xpm"
-#include "pixmaps/trash.xpm"
-#include "pixmaps/trash_hrm.xpm"
 #include "pixmaps/unread.xpm"
 #include "pixmaps/read.xpm"
 #include "pixmaps/vcard.xpm"
@@ -95,8 +86,6 @@
 #include "pixmaps/quicksearch.xpm"
 #include "pixmaps/clip_gpg_signed.xpm"
 #include "pixmaps/gpg_signed.xpm"
-#include "pixmaps/drafts_close.xpm"
-#include "pixmaps/drafts_open.xpm"
 #include "pixmaps/mime_text_plain.xpm"
 #include "pixmaps/mime_text_html.xpm"
 #include "pixmaps/mime_application.xpm"
 #include "pixmaps/mime_message.xpm"                  
 #include "pixmaps/address_search.xpm"
 #include "pixmaps/check_spelling.xpm"
+
+#include "pixmaps/dir_close.xpm"
+#include "pixmaps/dir_open.xpm"
+#include "pixmaps/dir_open_hrm.xpm"
+#include "pixmaps/inbox.xpm"
+#include "pixmaps/inbox_hrm.xpm"
+#include "pixmaps/outbox.xpm"
+#include "pixmaps/outbox_hrm.xpm"
+#include "pixmaps/trash.xpm"
+#include "pixmaps/trash_hrm.xpm"
+#include "pixmaps/drafts_close.xpm"
+#include "pixmaps/drafts_open.xpm"
+#include "pixmaps/dir_close_mark.xpm"
+#include "pixmaps/dir_open_mark.xpm"
+#include "pixmaps/dir_open_hrm_mark.xpm"
+#include "pixmaps/inbox_mark.xpm"
+#include "pixmaps/inbox_hrm_mark.xpm"
+#include "pixmaps/outbox_mark.xpm"
+#include "pixmaps/outbox_hrm_mark.xpm"
+#include "pixmaps/trash_mark.xpm"
+#include "pixmaps/trash_hrm_mark.xpm"
+#include "pixmaps/drafts_close_mark.xpm"
+#include "pixmaps/drafts_open_mark.xpm"
 #include "pixmaps/dir_noselect.xpm"
 
 typedef struct _StockPixmapData        StockPixmapData;
@@ -172,6 +184,10 @@ static StockPixmapData pixmaps[] =
        {dir_close_xpm                          , NULL, NULL, "dir_close_hrm", NULL},
        {dir_open_xpm                           , NULL, NULL, "dir_open", NULL},
        {dir_open_hrm_xpm                       , NULL, NULL, "dir_open_hrm", NULL},
+       {dir_close_mark_xpm                     , NULL, NULL, "dir_close_mark", NULL},
+       {dir_close_mark_xpm                     , NULL, NULL, "dir_close_mark_hrm", NULL},
+       {dir_open_mark_xpm                      , NULL, NULL, "dir_open_mark", NULL},
+       {dir_open_hrm_mark_xpm                  , NULL, NULL, "dir_open_mark_hrm", NULL},
        {down_arrow_xpm                         , NULL, NULL, "down_arrow", NULL},
        {up_arrow_xpm                           , NULL, NULL, "up_arrow", NULL},
        {mail_compose_xpm                       , NULL, NULL, "edit_extern", NULL},
@@ -184,6 +200,10 @@ static StockPixmapData pixmaps[] =
        {inbox_hrm_xpm                          , NULL, NULL, "inbox_close_hrm", NULL},
        {inbox_xpm                              , NULL, NULL, "inbox_open", NULL},
        {inbox_hrm_xpm                          , NULL, NULL, "inbox_open_hrm", NULL},
+       {inbox_mark_xpm                         , NULL, NULL, "inbox_close_mark", NULL},
+       {inbox_hrm_mark_xpm                     , NULL, NULL, "inbox_close_mark_hrm", NULL},
+       {inbox_mark_xpm                         , NULL, NULL, "inbox_open_mark", NULL},
+       {inbox_hrm_mark_xpm                     , NULL, NULL, "inbox_open_mark_hrm", NULL},
        {paste_xpm                              , NULL, NULL, "insert_file", NULL},
        {interface_xpm                          , NULL, NULL, "interface", NULL},
        {jpilot_xpm                             , NULL, NULL, "jpilot", NULL},
@@ -211,6 +231,10 @@ static StockPixmapData pixmaps[] =
        {outbox_hrm_xpm                         , NULL, NULL, "outbox_close_hrm", NULL},
        {outbox_xpm                             , NULL, NULL, "outbox_open", NULL},
        {outbox_hrm_xpm                         , NULL, NULL, "outbox_open_hrm", NULL},
+       {outbox_mark_xpm                        , NULL, NULL, "outbox_close_mark", NULL},
+       {outbox_hrm_mark_xpm                    , NULL, NULL, "outbox_close_mark_hrm", NULL},
+       {outbox_mark_xpm                        , NULL, NULL, "outbox_open_mark", NULL},
+       {outbox_hrm_mark_xpm                    , NULL, NULL, "outbox_open_mark_hrm", NULL},
        {replied_xpm                            , NULL, NULL, "replied", NULL},
        {paste_xpm                              , NULL, NULL, "paste", NULL},
        {preferences_xpm                        , NULL, NULL, "preferences", NULL},
@@ -223,6 +247,14 @@ static StockPixmapData pixmaps[] =
        {trash_hrm_xpm                          , NULL, NULL, "trash_open_hrm", NULL},
        {trash_xpm                              , NULL, NULL, "trash_close", NULL},
        {trash_hrm_xpm                          , NULL, NULL, "trash_close_hrm", NULL},
+       {outbox_mark_xpm                        , NULL, NULL, "queue_close_mark", NULL},
+       {outbox_hrm_mark_xpm                    , NULL, NULL, "queue_close_mark_hrm", NULL},
+       {outbox_mark_xpm                        , NULL, NULL, "queue_open_mark", NULL},
+       {outbox_hrm_mark_xpm                    , NULL, NULL, "queue_open_mark_hrm", NULL},
+       {trash_mark_xpm                         , NULL, NULL, "trash_open_mark", NULL},
+       {trash_hrm_mark_xpm                     , NULL, NULL, "trash_open_mark_hrm", NULL},
+       {trash_mark_xpm                         , NULL, NULL, "trash_close_mark", NULL},
+       {trash_hrm_mark_xpm                     , NULL, NULL, "trash_close_mark_hrm", NULL},
        {unread_xpm                             , NULL, NULL, "unread", NULL},
        {vcard_xpm                              , NULL, NULL, "vcard", NULL},
        {online_xpm                             , NULL, NULL, "online", NULL},
@@ -234,6 +266,8 @@ static StockPixmapData pixmaps[] =
        {gpg_signed_xpm                         , NULL, NULL, "gpg_signed", NULL},
        {drafts_close_xpm                       , NULL, NULL, "drafts_close", NULL},
        {drafts_open_xpm                        , NULL, NULL, "drafts_open", NULL},
+       {drafts_close_mark_xpm                  , NULL, NULL, "drafts_close_mark", NULL},
+       {drafts_open_mark_xpm                   , NULL, NULL, "drafts_open_mark", NULL},
        {mime_text_plain_xpm                    , NULL, NULL, "mime_text_plain", NULL},
        {mime_text_html_xpm                     , NULL, NULL, "mime_text_html", NULL},
        {mime_application_xpm                   , NULL, NULL, "mime_application", NULL},
index 3a9a4a51f9300c50d9c2573faac361f235ec685a..8e7e30fa509e30b683c722af3ae8dc863258f369 100644 (file)
@@ -44,6 +44,10 @@ typedef enum
        STOCK_PIXMAP_DIR_CLOSE_HRM,
        STOCK_PIXMAP_DIR_OPEN,
        STOCK_PIXMAP_DIR_OPEN_HRM,
+       STOCK_PIXMAP_DIR_CLOSE_MARK,
+       STOCK_PIXMAP_DIR_CLOSE_HRM_MARK,
+       STOCK_PIXMAP_DIR_OPEN_MARK,
+       STOCK_PIXMAP_DIR_OPEN_HRM_MARK,
        STOCK_PIXMAP_DOWN_ARROW,
        STOCK_PIXMAP_UP_ARROW,
        STOCK_PIXMAP_EDIT_EXTERN,
@@ -56,6 +60,10 @@ typedef enum
        STOCK_PIXMAP_INBOX_CLOSE_HRM,
        STOCK_PIXMAP_INBOX_OPEN,
        STOCK_PIXMAP_INBOX_OPEN_HRM,
+       STOCK_PIXMAP_INBOX_CLOSE_MARK,
+       STOCK_PIXMAP_INBOX_CLOSE_HRM_MARK,
+       STOCK_PIXMAP_INBOX_OPEN_MARK,
+       STOCK_PIXMAP_INBOX_OPEN_HRM_MARK,
        STOCK_PIXMAP_INSERT_FILE,
        STOCK_PIXMAP_INTERFACE,
        STOCK_PIXMAP_JPILOT,
@@ -83,6 +91,10 @@ typedef enum
        STOCK_PIXMAP_OUTBOX_CLOSE_HRM,
        STOCK_PIXMAP_OUTBOX_OPEN,
        STOCK_PIXMAP_OUTBOX_OPEN_HRM,
+       STOCK_PIXMAP_OUTBOX_CLOSE_MARK,
+       STOCK_PIXMAP_OUTBOX_CLOSE_HRM_MARK,
+       STOCK_PIXMAP_OUTBOX_OPEN_MARK,
+       STOCK_PIXMAP_OUTBOX_OPEN_HRM_MARK,
        STOCK_PIXMAP_REPLIED,
        STOCK_PIXMAP_PASTE,
        STOCK_PIXMAP_PREFERENCES,
@@ -95,6 +107,14 @@ typedef enum
        STOCK_PIXMAP_TRASH_OPEN_HRM,
        STOCK_PIXMAP_TRASH_CLOSE,
        STOCK_PIXMAP_TRASH_CLOSE_HRM,
+       STOCK_PIXMAP_QUEUE_CLOSE_MARK,
+       STOCK_PIXMAP_QUEUE_CLOSE_HRM_MARK,
+       STOCK_PIXMAP_QUEUE_OPEN_MARK,
+       STOCK_PIXMAP_QUEUE_OPEN_HRM_MARK,
+       STOCK_PIXMAP_TRASH_OPEN_MARK,
+       STOCK_PIXMAP_TRASH_OPEN_HRM_MARK,
+       STOCK_PIXMAP_TRASH_CLOSE_MARK,
+       STOCK_PIXMAP_TRASH_CLOSE_HRM_MARK,
        STOCK_PIXMAP_UNREAD,
        STOCK_PIXMAP_VCARD,
        STOCK_PIXMAP_ONLINE,
@@ -106,6 +126,8 @@ typedef enum
        STOCK_PIXMAP_GPG_SIGNED,
        STOCK_PIXMAP_DRAFTS_CLOSE,
        STOCK_PIXMAP_DRAFTS_OPEN,
+       STOCK_PIXMAP_DRAFTS_CLOSE_MARK,
+       STOCK_PIXMAP_DRAFTS_OPEN_MARK,
        STOCK_PIXMAP_MIME_TEXT_PLAIN,
        STOCK_PIXMAP_MIME_TEXT_HTML,
        STOCK_PIXMAP_MIME_APPLICATION,
index e6ff75175f91ccc028ad88f2aaf4907d6ccf54d7..8629ade7af561ee1b33d24f1bfe79e339beed27d 100644 (file)
@@ -1857,6 +1857,7 @@ void inc_all_account_mail_cb(gpointer data, guint action, GtkWidget *widget)
 void send_queue_cb(gpointer data, guint action, GtkWidget *widget)
 {
        GList *list;
+       gboolean found;
 
        if (prefs_common.work_offline)
                if (alertpanel(_("Offline warning"), 
@@ -1864,6 +1865,27 @@ void send_queue_cb(gpointer data, guint action, GtkWidget *widget)
                               _("Yes"), _("No"), NULL) != G_ALERTDEFAULT)
                return;
 
+       /* ask for confirmation before sending queued messages only
+          in online mode and if there is at least one message queued
+          in any of the folder queue
+       */
+       if (prefs_common.confirm_send_queued_messages) {
+               found = FALSE;
+               /* check if there's a queued message */
+               for (list = folder_get_list(); !found && list != NULL; list = list->next) {
+                       Folder *folder = list->data;
+
+                       found = !procmsg_queue_is_empty(folder->queue);
+               }
+               /* if necessary, ask for confirmation before sending */
+               if (found && !prefs_common.work_offline) {
+                       if (alertpanel(_("Send queued messages"), 
+                                  _("Send all queued messages?"),
+                                  _("Yes"), _("No"), NULL) != G_ALERTDEFAULT)
+                               return;
+               }
+       }
+
        for (list = folder_get_list(); list != NULL; list = list->next) {
                Folder *folder = list->data;