diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2011-12-09 23:34:55 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2011-12-11 10:34:19 +0800 |
commit | 7c0c40f83317228e0a725bfb5ca8854339d25588 (patch) | |
tree | db1197dd9f336e175c590c3a41201dfa78ee303e /mail/mail-folder-cache.h | |
parent | 2f32e1cc68cd416f4530ecc3d2ff08b0e6498d45 (diff) | |
download | gsoc2013-evolution-7c0c40f83317228e0a725bfb5ca8854339d25588.tar.gz gsoc2013-evolution-7c0c40f83317228e0a725bfb5ca8854339d25588.tar.zst gsoc2013-evolution-7c0c40f83317228e0a725bfb5ca8854339d25588.zip |
Reorder accounts by drag-and-drop.
This implements https://bugzilla.gnome.org/show_bug.cgi?id=663527#c3.
Account reordering is now done by drag-and-drop instead of up/down
buttons.
Turned out to be a wee bit more complicated than I initially thought.
This scraps EAccountManager and EAccountTreeView and replaces them with
new classes centered around EMailAccountStore, which EMailSession owns.
EMailAccountStore is the model behind the account list in Preferences.
The folder tree model now uses it to sort its own top-level rows using
gtk_tree_path_compare(). It also broadcasts account operations through
signals so we don't have to rely so heavily on EAccountList signals,
since EAccountList is going away soon.
Also as part of this work, the e-mail-local.h and e-mail-store.h APIs
have been merged into EMailSession and MailFolderCache.
Diffstat (limited to 'mail/mail-folder-cache.h')
-rw-r--r-- | mail/mail-folder-cache.h | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/mail/mail-folder-cache.h b/mail/mail-folder-cache.h index 146ead5012..78d5fd94de 100644 --- a/mail/mail-folder-cache.h +++ b/mail/mail-folder-cache.h @@ -49,6 +49,9 @@ G_BEGIN_DECLS +/* Avoid a circular dependency. */ +typedef struct _EMailSession EMailSession; + typedef struct _MailFolderCache MailFolderCache; typedef struct _MailFolderCacheClass MailFolderCacheClass; typedef struct _MailFolderCachePrivate MailFolderCachePrivate; @@ -107,34 +110,32 @@ struct _MailFolderCacheClass { GType mail_folder_cache_get_type (void) G_GNUC_CONST; MailFolderCache * - mail_folder_cache_new (void); -void mail_folder_cache_note_store (MailFolderCache *self, + mail_folder_cache_new (EMailSession *session); +EMailSession * mail_folder_cache_get_session (MailFolderCache *cache); +void mail_folder_cache_note_store (MailFolderCache *cache, CamelStore *store, GCancellable *cancellable, NoteDoneFunc done, gpointer data); -void mail_folder_cache_note_store_remove - (MailFolderCache *self, - CamelStore *store); -void mail_folder_cache_note_folder (MailFolderCache *self, +void mail_folder_cache_note_folder (MailFolderCache *cache, CamelFolder *folder); gboolean mail_folder_cache_get_folder_from_uri - (MailFolderCache *self, + (MailFolderCache *cache, const gchar *uri, CamelFolder **folderp); gboolean mail_folder_cache_get_folder_info_flags - (MailFolderCache *self, + (MailFolderCache *cache, CamelFolder *folder, CamelFolderInfoFlags *flags); gboolean mail_folder_cache_get_folder_has_children - (MailFolderCache *self, + (MailFolderCache *cache, CamelFolder *folder, gboolean *found); void mail_folder_cache_get_local_folder_uris - (MailFolderCache *self, + (MailFolderCache *cache, GQueue *out_queue); void mail_folder_cache_get_remote_folder_uris - (MailFolderCache *self, + (MailFolderCache *cache, GQueue *out_queue); G_END_DECLS |