F_MOVE_FAILED_DEST_IS_PARENT = -1,
F_MOVE_FAILED_DEST_IS_CHILD = -2,
F_MOVE_FAILED_DEST_OUTSIDE_MAILBOX = -3,
- F_MOVE_FAILED = -4,
+ F_MOVE_FAILED = -4
} FolderItemMoveResult;
typedef enum
FOLDER_REMOVE_FOLDER = 1 << 1,
FOLDER_TREE_CHANGED = 1 << 2,
FOLDER_ADD_FOLDERITEM = 1 << 3,
- FOLDER_REMOVE_FOLDERITEM = 1 << 4,
+ FOLDER_REMOVE_FOLDERITEM = 1 << 4
} FolderUpdateFlags;
typedef enum
F_ITEM_UPDATE_CONTENT = 1 << 1,
F_ITEM_UPDATE_ADDMSG = 1 << 2,
F_ITEM_UPDATE_REMOVEMSG = 1 << 3,
- F_ITEM_UPDATE_NAME = 1 << 4,
+ F_ITEM_UPDATE_NAME = 1 << 4
} FolderItemUpdateFlags;
typedef void (*FolderUIFunc) (Folder *folder,
gchar *(*fetch_msg) (Folder *folder,
FolderItem *item,
gint num);
+ gchar *(*fetch_msg_full) (Folder *folder,
+ FolderItem *item,
+ gint num,
+ gboolean headers,
+ gboolean body);
/**
* Add a single message file to a folder with the given flags (if
* flag handling is supported by the folder)
gint (*remove_msg) (Folder *folder,
FolderItem *item,
gint num);
+ gint (*remove_msgs) (Folder *folder,
+ FolderItem *item,
+ MsgInfoList *msglist,
+ GRelation *relation);
/**
* Remove all messages in a \ c FolderItem
*
FolderItem *item,
MsgInfoList *msglist,
GRelation *msgflags);
+
+ void (*set_batch) (Folder *folder,
+ FolderItem *item,
+ gboolean batch);
+ void (*synchronise) (FolderItem *item);
};
struct _FolderItem
gint unread_msgs;
gint total_msgs;
gint unreadmarked_msgs;
+ gint marked_msgs;
gint last_num;
guint threaded : 1; /* threaded folder view */
guint hide_read_msgs : 1; /* hide read messages */
guint ret_rcpt : 1; /* return receipt */
+ guint search_match : 1;
gint op_count;
guint opened : 1; /* opened by summary view */
gpointer data;
FolderItemPrefs * prefs;
+
+ /* for faster search of special parents */
+ SpecialFolderItemType parent_stype;
};
struct _PersistPrefs
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);
/* return value is locale charset */
gchar *folder_item_fetch_msg (FolderItem *item,
gint num);
+gchar *folder_item_fetch_msg_full (FolderItem *item,
+ gint num,
+ gboolean get_headers,
+ gboolean get_body);
gint folder_item_fetch_all_msg (FolderItem *item);
gint folder_item_add_msg (FolderItem *dest,
const gchar *file,
void folder_item_restore_persist_prefs (FolderItem *item, GHashTable *pptable);
void folder_clean_cache_memory (void);
+void folder_clean_cache_memory_force (void);
void folder_item_write_cache (FolderItem *item);
void folder_item_set_default_flags (FolderItem *dest, MsgFlags *flags);
FolderItemUpdateFlags update_flags);
void folder_item_update_freeze (void);
void folder_item_update_thaw (void);
+void folder_item_set_batch (FolderItem *item, gboolean batch);
+gboolean folder_has_parent_of_type (FolderItem *item, SpecialFolderItemType type);
+void folder_synchronise (Folder *folder);
+gboolean folder_want_synchronise (Folder *folder);
#endif /* __FOLDER_H__ */