aboutsummaryrefslogtreecommitdiffstats
path: root/mail/message-list.h
diff options
context:
space:
mode:
authorNot Zed <NotZed@HelixCode.com>2000-12-16 16:55:37 +0800
committerMichael Zucci <zucchi@src.gnome.org>2000-12-16 16:55:37 +0800
commita228c210b00d7f2967389f186238315ce0d2d1b0 (patch)
tree228fbc995de7844447c7c34cd895dfe965e3376c /mail/message-list.h
parentace6de83603f50292c1864783247506494a4f40b (diff)
downloadgsoc2013-evolution-a228c210b00d7f2967389f186238315ce0d2d1b0.tar
gsoc2013-evolution-a228c210b00d7f2967389f186238315ce0d2d1b0.tar.gz
gsoc2013-evolution-a228c210b00d7f2967389f186238315ce0d2d1b0.tar.bz2
gsoc2013-evolution-a228c210b00d7f2967389f186238315ce0d2d1b0.tar.lz
gsoc2013-evolution-a228c210b00d7f2967389f186238315ce0d2d1b0.tar.xz
gsoc2013-evolution-a228c210b00d7f2967389f186238315ce0d2d1b0.tar.zst
gsoc2013-evolution-a228c210b00d7f2967389f186238315ce0d2d1b0.zip
Always use the slow (full-update) version of the tree update code, to get
2000-12-16 Not Zed <NotZed@HelixCode.com> * message-list.c (build_tree): Always use the slow (full-update) version of the tree update code, to get around a bug(?) in etree. (build_flat): Likewise. 2000-12-15 Not Zed <NotZed@HelixCode.com> * mail-display.c (write_data_to_file): Dont blindly convert all parts to utf8, e.g. image/jpg. We only convert text/* parts, and only then if required. 2000-12-14 Not Zed <NotZed@HelixCode.com> * component-factory.c (create_view): cast over a warning. * folder-browser-factory.c: Add verbs for hide functions. * message-list.c (message_list_hide_clear): (message_list_hide_uids): (message_list_hide_add): Some api renaming. (message_list_hide_add): Allow ML_HIDE_SAME to be passed to mean not to change the upper/lower range at all. (hide_save_state): Save the state of the hide list to stable storage. (hide_load_state): Load the state of hte hide list. (message_list_set_folder): Load/save the state of the folder if it is changed/set. (message_list_destroy): Save the state of the folder hide list when done. (save_tree_state): If we wrote out an empty state file, simply remove it instead. * folder-browser.c (on_right_click): Add some hide menus. (hide_read): Hide read messages. (hide_deleted): Hide deleted messages. (hide_selected): Hide selected/current message. (hide_none): Show all hidden messages. (on_right_click): Lock around accesses to the message (inside mlist_detect_magic). (on_right_click): Free the mailing list name. 2000-12-13 Not Zed <NotZed@HelixCode.com> * folder-browser.c (on_right_click): Add camel locking since we call it directly. Whoever heard of a lock you 'down' to unlock? * message-list.c (mail_do_regenerate_messagelist): Added hide expression, messages to hide. Fixed all callers. (do_regenerate_messagelist): IF we have a hide expression, search and remove those from the uid list. If we have a hide range, apply that afterwards. (cleanup_regenerate_messagelist): Handle freeing the hide uid temporary data, if required. (message_list_destroy): Free hide data, also lock around all camel object stuff. (message_list_length): New function to get the number of messages avaialble to be hidden by range. (message_list_set_hide): Set the hide expression and range. Issue: Should hiding be remembered? (message_list_unhide_all): Turn off all hiding. (message_list_hide_uids): Hide a list of uid's. svn path=/trunk/; revision=7061
Diffstat (limited to 'mail/message-list.h')
-rw-r--r--mail/message-list.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/mail/message-list.h b/mail/message-list.h
index 0cdf0f78ea..8e150c8a3d 100644
--- a/mail/message-list.h
+++ b/mail/message-list.h
@@ -41,6 +41,11 @@ enum {
#define MESSAGE_LIST_COLUMN_IS_ACTIVE(col) (col == COL_MESSAGE_STATUS || \
col == COL_FLAGGED)
+#define ML_HIDE_NONE_START (0)
+#define ML_HIDE_NONE_END (2147483647)
+/* dont change */
+#define ML_HIDE_SAME (2147483646)
+
struct _MessageList {
ETableScrolled parent;
@@ -56,6 +61,13 @@ struct _MessageList {
GHashTable *uid_rowmap;
struct _EMemPool *uid_pool;
+ /* UID's to hide. Keys in the mempool */
+ /* IMPORTANT: You MUST have obtained the camel lock, to operate on these structures */
+ GHashTable *hidden;
+ struct _EMemPool *hidden_pool;
+ int hide_unhidden, /* total length, before hiding */
+ hide_before, hide_after; /* hide ranges of messages */
+
/* Current search string, or %NULL */
char *search;
@@ -100,6 +112,14 @@ void message_list_select (MessageList *message_list,
MessageListSelectDirection direction,
guint32 flags, guint32 mask);
+/* info */
+unsigned int message_list_length(MessageList *ml);
+
+/* hide specific messages */
+void message_list_hide_add(MessageList *ml, const char *expr, unsigned int lower, unsigned int upper);
+void message_list_hide_uids(MessageList *ml, GPtrArray *uids);
+void message_list_hide_clear(MessageList *ml);
+
void message_list_set_threaded(MessageList *ml, gboolean threaded);
void message_list_set_search(MessageList *ml, const char *search);