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
This commit is contained in:
Colin Leroy 2005-07-01 17:33:02 +00:00
parent 5b24d887bf
commit 399eedb94d
27 changed files with 877 additions and 74 deletions

View 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

View file

@ -604,3 +604,4 @@
( 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

View 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=

View 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 \

View 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);
}

View 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);

View 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;
}
}

View file

@ -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+",
" ++++++++++++ ",
" ",
" "};

View file

@ -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++",
" ++++++++++++ ",
" ",
" "};

View file

@ -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++",
" ++++++++++++ ",
" ",
" "};

View file

@ -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+",
" ++++++++++++ ",
" ",
" "};

View file

@ -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++",
" ++++++++++++ ",
" ",
" "};

View file

@ -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",
" . ++",
" ... @ +#+",
" ... @@$@ +##+",
" ...++$%@+###+",
" @@..+#+%+###+ ",
"@@$$$.+##+###+ ",
"@%@$..+#####+@ ",
"@%%@$$%+###+%%@ ",
"@%%%@$$%+#+%&%$@",
" @%%%@$$$+%%%&%@",
" @%%%@$$%%%%$&@",
" @%%%@$$%$$$$@",
" @%%$&$$$$@@ ",
" @%%@$$@@ ",
" @%@@@ ",
" @@ "};

View file

@ -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",
" . ++ ",
" ... @ +#+ ",
" ... @@$@ +##+ ",
" ..++.$%+###+ ",
" @@.+#+&+###+ ",
"@@$$$+##+###+ ",
"@%@$.+#####+%@ ",
"@%%@$$+###+&%%@ ",
"@%%%@$$+#+%%&%$@",
" @%%%@$$+%%%%&%@",
" @%%%@$$%%%%$&@",
" @%%%@$$%$$$$@",
" @%%$&$$$$@@ ",
" @%%@$$@@ ",
" @%@@@ ",
" @@ "};

View file

@ -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",
" ..",
" + @.#.",
" ++$+ .##.",
" ++..$%+.###.",
" ++$$.#.%.###.@",
"++$$$$.##.###. ",
"+%+$&&.#####.+ ",
"+%%+$*%.###.%%+ ",
"+%%%+**%.#.%&%$+",
" +%%%+**%.%%%&%+",
" +%%%+**%%%%*&+",
" +%%%+*%%***$+",
" +%%$&***$++ ",
" +%%+*$++ ",
" +%+++ ",
" ++ "};

View file

@ -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",
" ..",
" + @.#.",
" ++$+ .##.",
" ++..$%+.###.",
" ++$$.#.%.###.@",
"++$$$$.##.###. ",
"+%+$&&.#####.+ ",
"+%%+$*=.###.%%+ ",
"+%%%+**=.#.=&%$+",
" +%%%+**=.===&=+",
" +%%%+**====*&+",
" +%%%+*==***$+",
" +%%$&***$++ ",
" +%=+*$++ ",
" +%+++ ",
" ++ "};

View file

@ -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",
" .. ",
" ++++++ .+. ",
" ++@@#$##++.++. ",
"+#@@@..###.+++. ",
"+%@&&.+.#.+++. ",
"+*%##.++.+++. ",
" +$%*.+++++. ",
" +*===.+++. ",
" +*@-#-.+.++++ ",
" +*@-#-%.*+++++ ",
" +*@-#-%-*+++++ ",
" +%@-#-%-*++++ ",
" +%%%*%*+++ ",
" +++++++ ",
" ",
" "};

View file

@ -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",
" ..",
" ++++++ .+.",
" ++@@#$##++ .++.",
"+#@@@%..##&.+++.",
"+&@**#.+.&.+++. ",
"+=&##&.++.+++. ",
" +-&==.+++++. ",
" +=----.+++. ",
" +=@$#$&.+.+++ ",
" +=@$#$&$.+++++ ",
" +=@$#$&$=+++++ ",
" +&@$#$&$=++++ ",
" +&&&=&=+++ ",
" +++++++ ",
" ",
" "};

View 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, "");

View 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},

View 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;

View 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));

View 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--;
}
}

View 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);

View file

@ -39,14 +39,9 @@
#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"
@ -118,6 +107,29 @@
#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},

View 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,

View 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;