aboutsummaryrefslogtreecommitdiffstats
path: root/mail/em-folder-tree-model.c
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2011-12-09 23:34:55 +0800
committerMatthew Barnes <mbarnes@redhat.com>2011-12-11 10:34:19 +0800
commit7c0c40f83317228e0a725bfb5ca8854339d25588 (patch)
treedb1197dd9f336e175c590c3a41201dfa78ee303e /mail/em-folder-tree-model.c
parent2f32e1cc68cd416f4530ecc3d2ff08b0e6498d45 (diff)
downloadgsoc2013-evolution-7c0c40f83317228e0a725bfb5ca8854339d25588.tar
gsoc2013-evolution-7c0c40f83317228e0a725bfb5ca8854339d25588.tar.gz
gsoc2013-evolution-7c0c40f83317228e0a725bfb5ca8854339d25588.tar.bz2
gsoc2013-evolution-7c0c40f83317228e0a725bfb5ca8854339d25588.tar.lz
gsoc2013-evolution-7c0c40f83317228e0a725bfb5ca8854339d25588.tar.xz
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/em-folder-tree-model.c')
-rw-r--r--mail/em-folder-tree-model.c442
1 files changed, 113 insertions, 329 deletions
diff --git a/mail/em-folder-tree-model.c b/mail/em-folder-tree-model.c
index 27fa44aea4..dea9daa7ff 100644
--- a/mail/em-folder-tree-model.c
+++ b/mail/em-folder-tree-model.c
@@ -51,8 +51,6 @@
#include "em-event.h"
#include "e-mail-folder-utils.h"
-#include "e-mail-local.h"
-#include "e-mail-store.h"
#include "shell/e-shell.h"
#define EM_FOLDER_TREE_MODEL_GET_PRIVATE(obj) \
@@ -67,24 +65,20 @@ struct _EMFolderTreeModelPrivate {
* mimic the sidebar. */
GtkTreeSelection *selection; /* weak reference */
- EAccountList *accounts;
- EMailBackend *backend;
+ EMailSession *session;
+ EMailAccountStore *account_store;
/* CamelStore -> EMFolderTreeStoreInfo */
GHashTable *store_index;
/* URI -> GtkTreeRowReference */
GHashTable *uri_index;
-
- gulong account_changed_id;
- gulong account_removed_id;
- gulong account_added_id;
};
enum {
PROP_0,
PROP_SELECTION,
- PROP_BACKEND
+ PROP_SESSION
};
enum {
@@ -123,111 +117,66 @@ folder_tree_model_sort (GtkTreeModel *model,
gpointer unused)
{
EMFolderTreeModel *folder_tree_model;
- EMailBackend *backend;
gchar *aname, *bname;
- CamelStore *store;
- gboolean is_store;
+ CamelService *service_a;
+ CamelService *service_b;
+ gboolean a_is_store;
+ gboolean b_is_store;
const gchar *store_uid = NULL;
- guint32 aflags, bflags;
- guint asortorder, bsortorder;
+ guint32 flags_a, flags_b;
gint rv = -2;
folder_tree_model = EM_FOLDER_TREE_MODEL (model);
- backend = em_folder_tree_model_get_backend (folder_tree_model);
- g_return_val_if_fail (backend != NULL, -1);
gtk_tree_model_get (
model, a,
- COL_BOOL_IS_STORE, &is_store,
- COL_POINTER_CAMEL_STORE, &store,
+ COL_BOOL_IS_STORE, &a_is_store,
+ COL_POINTER_CAMEL_STORE, &service_a,
COL_STRING_DISPLAY_NAME, &aname,
- COL_UINT_FLAGS, &aflags,
- COL_UINT_SORTORDER, &asortorder,
+ COL_UINT_FLAGS, &flags_a,
-1);
gtk_tree_model_get (
model, b,
+ COL_BOOL_IS_STORE, &b_is_store,
+ COL_POINTER_CAMEL_STORE, &service_b,
COL_STRING_DISPLAY_NAME, &bname,
- COL_UINT_FLAGS, &bflags,
- COL_UINT_SORTORDER, &bsortorder,
+ COL_UINT_FLAGS, &flags_b,
-1);
- if (CAMEL_IS_SERVICE (store))
- store_uid = camel_service_get_uid (CAMEL_SERVICE (store));
+ if (CAMEL_IS_SERVICE (service_a))
+ store_uid = camel_service_get_uid (service_a);
- if (is_store) {
- EShell *shell;
- EShellBackend *shell_backend;
- EShellSettings *shell_settings;
-
- shell_backend = E_SHELL_BACKEND (backend);
- shell = e_shell_backend_get_shell (shell_backend);
- shell_settings = e_shell_get_shell_settings (shell);
-
- if (e_shell_settings_get_boolean (
- shell_settings, "mail-sort-accounts-alpha")) {
- const gchar *on_this_computer = _("On This Computer");
- const gchar *search_folders = _("Search Folders");
-
- /* On This Computer is always first, and Search Folders
- * is always last. */
- if (e_shell_get_express_mode (shell)) {
- if (g_str_equal (aname, on_this_computer) &&
- g_str_equal (bname, search_folders))
- rv = -1;
- else if (g_str_equal (bname, on_this_computer) &&
- g_str_equal (aname, search_folders))
- rv = 1;
- else if (g_str_equal (aname, on_this_computer))
- rv = 1;
- else if (g_str_equal (bname, on_this_computer))
- rv = -1;
- else if (g_str_equal (aname, search_folders))
- rv = 1;
- else if (g_str_equal (bname, search_folders))
- rv = -1;
- } else {
- if (g_str_equal (aname, on_this_computer))
- rv = -1;
- else if (g_str_equal (bname, on_this_computer))
- rv = 1;
- else if (g_str_equal (aname, search_folders))
- rv = 1;
- else if (g_str_equal (bname, search_folders))
- rv = -1;
- }
- } else if (asortorder || bsortorder) {
- if (asortorder < bsortorder)
- rv = -1;
- else if (asortorder > bsortorder)
- rv = 1;
- else
- rv = 0;
- }
- } else if (g_strcmp0 (store_uid, "vfolder") == 0) {
+ if (a_is_store && b_is_store) {
+ rv = e_mail_account_store_compare_services (
+ folder_tree_model->priv->account_store,
+ service_a, service_b);
+
+ } else if (g_strcmp0 (store_uid, E_MAIL_SESSION_VFOLDER_UID) == 0) {
/* UNMATCHED is always last. */
if (aname && !strcmp (aname, _("UNMATCHED")))
rv = 1;
else if (bname && !strcmp (bname, _("UNMATCHED")))
rv = -1;
+
} else {
/* Inbox is always first. */
- if ((aflags & CAMEL_FOLDER_TYPE_MASK) == CAMEL_FOLDER_TYPE_INBOX)
+ if ((flags_a & CAMEL_FOLDER_TYPE_MASK) == CAMEL_FOLDER_TYPE_INBOX)
rv = -1;
- else if ((bflags & CAMEL_FOLDER_TYPE_MASK) == CAMEL_FOLDER_TYPE_INBOX)
+ else if ((flags_b & CAMEL_FOLDER_TYPE_MASK) == CAMEL_FOLDER_TYPE_INBOX)
rv = 1;
}
- if (aname == NULL) {
- if (bname == NULL)
+ if (rv == -2) {
+ if (aname != NULL && bname != NULL)
+ rv = g_utf8_collate (aname, bname);
+ else if (aname == bname)
rv = 0;
- else
+ else if (aname == NULL)
rv = -1;
- } else if (bname == NULL)
- rv = 1;
-
- if (rv == -2)
- rv = g_utf8_collate (aname, bname);
+ else
+ rv = 1;
+ }
g_free (aname);
g_free (bname);
@@ -236,175 +185,44 @@ folder_tree_model_sort (GtkTreeModel *model,
}
static void
-account_changed_cb (EAccountList *accounts,
- EAccount *account,
- EMFolderTreeModel *model)
+folder_tree_model_service_removed (EMailAccountStore *account_store,
+ CamelService *service,
+ EMFolderTreeModel *folder_tree_model)
{
- EMailBackend *backend;
- EMailSession *session;
- CamelService *service;
-
- backend = em_folder_tree_model_get_backend (model);
- session = e_mail_backend_get_session (backend);
-
- service = camel_session_get_service (
- CAMEL_SESSION (session), account->uid);
-
- if (!CAMEL_IS_STORE (service))
- return;
-
- em_folder_tree_model_remove_store (model, CAMEL_STORE (service));
-
- /* check if store needs to be added at all*/
- if (!account->enabled)
- return;
-
- em_folder_tree_model_add_store (model, CAMEL_STORE (service));
+ em_folder_tree_model_remove_store (
+ folder_tree_model, CAMEL_STORE (service));
}
static void
-account_removed_cb (EAccountList *accounts,
- EAccount *account,
- EMFolderTreeModel *model)
+folder_tree_model_service_enabled (EMailAccountStore *account_store,
+ CamelService *service,
+ EMFolderTreeModel *folder_tree_model)
{
- EMailBackend *backend;
- EMailSession *session;
- CamelService *service;
-
- backend = em_folder_tree_model_get_backend (model);
- session = e_mail_backend_get_session (backend);
-
- service = camel_session_get_service (
- CAMEL_SESSION (session), account->uid);
-
- if (!CAMEL_IS_STORE (service))
- return;
-
- em_folder_tree_model_remove_store (model, CAMEL_STORE (service));
+ em_folder_tree_model_add_store (
+ folder_tree_model, CAMEL_STORE (service));
}
-/* HACK: FIXME: the component should listen to the account object directly */
static void
-account_added_cb (EAccountList *accounts,
- EAccount *account,
- EMFolderTreeModel *model)
+folder_tree_model_service_disabled (EMailAccountStore *account_store,
+ CamelService *service,
+ EMFolderTreeModel *folder_tree_model)
{
- EMailBackend *backend;
- EMailSession *session;
-
- backend = em_folder_tree_model_get_backend (model);
- session = e_mail_backend_get_session (backend);
-
- e_mail_store_add_by_account (session, account);
+ em_folder_tree_model_remove_store (
+ folder_tree_model, CAMEL_STORE (service));
}
static void
-folder_tree_model_sort_changed (EMFolderTreeModel *tree_model)
+folder_tree_model_services_reordered (EMailAccountStore *account_store,
+ gboolean default_restored,
+ EMFolderTreeModel *folder_tree_model)
{
- GtkTreeModel *model;
-
- g_return_if_fail (tree_model != NULL);
- g_return_if_fail (EM_IS_FOLDER_TREE_MODEL (tree_model));
-
- model = GTK_TREE_MODEL (tree_model);
- if (!model)
- return;
-
- /* this invokes also sort on a GtkTreeStore */
+ /* This forces the tree store to re-sort. */
gtk_tree_sortable_set_default_sort_func (
- GTK_TREE_SORTABLE (model),
+ GTK_TREE_SORTABLE (folder_tree_model),
folder_tree_model_sort, NULL, NULL);
}
static void
-account_sort_order_changed_cb (EMFolderTreeModel *folder_tree_model)
-{
- EMailBackend *mail_backend;
- GtkTreeModel *model;
- GtkTreeStore *tree_store;
- GtkTreeIter iter;
-
- g_return_if_fail (folder_tree_model != NULL);
-
- model = GTK_TREE_MODEL (folder_tree_model);
- g_return_if_fail (model != NULL);
-
- tree_store = GTK_TREE_STORE (folder_tree_model);
- g_return_if_fail (tree_store != NULL);
-
- if (!gtk_tree_model_get_iter_first (model, &iter))
- return;
-
- mail_backend = em_folder_tree_model_get_backend (folder_tree_model);
-
- do {
- CamelStore *store = NULL;
-
- gtk_tree_model_get (model, &iter, COL_POINTER_CAMEL_STORE, &store, -1);
-
- if (store) {
- const gchar *account_uid;
- guint sortorder;
-
- account_uid = camel_service_get_uid (CAMEL_SERVICE (store));
- sortorder = em_utils_get_account_sort_order (mail_backend, account_uid);
-
- gtk_tree_store_set (tree_store, &iter, COL_UINT_SORTORDER, sortorder, -1);
- }
- } while (gtk_tree_model_iter_next (model, &iter));
-
- folder_tree_model_sort_changed (folder_tree_model);
-}
-
-static void
-add_remove_special_folder (EMFolderTreeModel *model,
- const gchar *account_uid,
- gboolean add)
-{
- EMailBackend *backend;
- EMailSession *session;
- CamelService *service;
-
- backend = em_folder_tree_model_get_backend (model);
- session = e_mail_backend_get_session (backend);
-
- service = camel_session_get_service (
- CAMEL_SESSION (session), account_uid);
-
- if (!CAMEL_IS_STORE (service))
- return;
-
- if (add)
- em_folder_tree_model_add_store (model, CAMEL_STORE (service));
- else
- em_folder_tree_model_remove_store (model, CAMEL_STORE (service));
-}
-
-static void
-enable_local_folders_changed_cb (EMFolderTreeModel *model,
- GParamSpec *spec,
- EShellSettings *shell_settings)
-{
- g_return_if_fail (model != NULL);
- g_return_if_fail (shell_settings != NULL);
-
- add_remove_special_folder (model, "local",
- e_shell_settings_get_boolean (shell_settings, "mail-enable-local-folders"));
-}
-
-static void
-enable_search_folders_changed_cb (EMFolderTreeModel *model,
- GParamSpec *spec,
- EShellSettings *shell_settings)
-{
- g_return_if_fail (model != NULL);
- g_return_if_fail (shell_settings != NULL);
-
- add_remove_special_folder (model, "vfolder",
- e_shell_settings_get_boolean (shell_settings, "mail-enable-search-folders"));
-}
-
-static void
folder_tree_model_selection_finalized_cb (EMFolderTreeModel *model)
{
model->priv->selection = NULL;
@@ -425,8 +243,8 @@ folder_tree_model_set_property (GObject *object,
g_value_get_object (value));
return;
- case PROP_BACKEND:
- em_folder_tree_model_set_backend (
+ case PROP_SESSION:
+ em_folder_tree_model_set_session (
EM_FOLDER_TREE_MODEL (object),
g_value_get_object (value));
return;
@@ -449,10 +267,10 @@ folder_tree_model_get_property (GObject *object,
EM_FOLDER_TREE_MODEL (object)));
return;
- case PROP_BACKEND:
+ case PROP_SESSION:
g_value_set_object (
value,
- em_folder_tree_model_get_backend (
+ em_folder_tree_model_get_session (
EM_FOLDER_TREE_MODEL (object)));
return;
}
@@ -474,26 +292,17 @@ folder_tree_model_dispose (GObject *object)
priv->selection = NULL;
}
- if (priv->backend != NULL) {
- EShell *shell;
- EShellBackend *shell_backend;
- EShellSettings *shell_settings;
-
- shell_backend = E_SHELL_BACKEND (priv->backend);
- shell = e_shell_backend_get_shell (shell_backend);
- shell_settings = e_shell_get_shell_settings (shell);
-
- g_signal_handlers_disconnect_by_func (
- priv->backend, account_sort_order_changed_cb, object);
- g_signal_handlers_disconnect_by_func (
- shell_settings, account_sort_order_changed_cb, object);
- g_signal_handlers_disconnect_by_func (
- shell_settings, enable_local_folders_changed_cb, object);
- g_signal_handlers_disconnect_by_func (
- shell_settings, enable_search_folders_changed_cb, object);
-
- g_object_unref (priv->backend);
- priv->backend = NULL;
+ if (priv->session != NULL) {
+ g_object_unref (priv->session);
+ priv->session = NULL;
+ }
+
+ if (priv->account_store != NULL) {
+ g_signal_handlers_disconnect_matched (
+ priv->account_store, G_SIGNAL_MATCH_DATA,
+ 0, 0, NULL, NULL, object);
+ g_object_unref (priv->account_store);
+ priv->account_store = NULL;
}
/* Chain up to parent's dispose() method. */
@@ -510,13 +319,6 @@ folder_tree_model_finalize (GObject *object)
g_hash_table_destroy (priv->store_index);
g_hash_table_destroy (priv->uri_index);
- g_signal_handler_disconnect (
- priv->accounts, priv->account_changed_id);
- g_signal_handler_disconnect (
- priv->accounts, priv->account_removed_id);
- g_signal_handler_disconnect (
- priv->accounts, priv->account_added_id);
-
/* Chain up to parent's finalize() method. */
G_OBJECT_CLASS (parent_class)->finalize (object);
}
@@ -524,8 +326,6 @@ folder_tree_model_finalize (GObject *object)
static void
folder_tree_model_constructed (GObject *object)
{
- EMFolderTreeModelPrivate *priv;
-
GType col_types[] = {
G_TYPE_STRING, /* display name */
G_TYPE_POINTER, /* store object */
@@ -542,8 +342,6 @@ folder_tree_model_constructed (GObject *object)
G_TYPE_UINT /* user's sortorder */
};
- priv = EM_FOLDER_TREE_MODEL_GET_PRIVATE (object);
-
gtk_tree_store_set_column_types (
GTK_TREE_STORE (object), NUM_COLUMNS, col_types);
gtk_tree_sortable_set_default_sort_func (
@@ -554,17 +352,6 @@ folder_tree_model_constructed (GObject *object)
GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID,
GTK_SORT_ASCENDING);
- priv->accounts = e_get_account_list ();
- priv->account_changed_id = g_signal_connect (
- priv->accounts, "account-changed",
- G_CALLBACK (account_changed_cb), object);
- priv->account_removed_id = g_signal_connect (
- priv->accounts, "account-removed",
- G_CALLBACK (account_removed_cb), object);
- priv->account_added_id = g_signal_connect (
- priv->accounts, "account-added",
- G_CALLBACK (account_added_cb), object);
-
/* Chain up to parent's constructed() method. */
G_OBJECT_CLASS (parent_class)->constructed (object);
}
@@ -586,12 +373,12 @@ em_folder_tree_model_class_init (EMFolderTreeModelClass *class)
g_object_class_install_property (
object_class,
- PROP_BACKEND,
+ PROP_SESSION,
g_param_spec_object (
- "backend",
+ "session",
NULL,
NULL,
- E_TYPE_MAIL_BACKEND,
+ E_TYPE_MAIL_SESSION,
G_PARAM_READWRITE));
g_object_class_install_property (
@@ -754,60 +541,63 @@ em_folder_tree_model_set_selection (EMFolderTreeModel *model,
g_object_notify (G_OBJECT (model), "selection");
}
-EMailBackend *
-em_folder_tree_model_get_backend (EMFolderTreeModel *model)
+EMailSession *
+em_folder_tree_model_get_session (EMFolderTreeModel *model)
{
g_return_val_if_fail (EM_IS_FOLDER_TREE_MODEL (model), NULL);
- return model->priv->backend;
+ return model->priv->session;
}
void
-em_folder_tree_model_set_backend (EMFolderTreeModel *model,
- EMailBackend *backend)
+em_folder_tree_model_set_session (EMFolderTreeModel *model,
+ EMailSession *session)
{
g_return_if_fail (EM_IS_FOLDER_TREE_MODEL (model));
- if (backend != NULL) {
- g_return_if_fail (E_IS_MAIL_BACKEND (backend));
- g_object_ref (backend);
+ if (session != NULL) {
+ g_return_if_fail (E_IS_MAIL_SESSION (session));
+ g_object_ref (session);
}
- if (model->priv->backend != NULL)
- g_object_unref (model->priv->backend);
+ if (model->priv->session != NULL)
+ g_object_unref (model->priv->session);
- model->priv->backend = backend;
+ model->priv->session = session;
/* FIXME Technically we should be disconnecting this signal
- * when replacing an old backend with a new backend,
+ * when replacing an old session with a new session,
* but at present this function is only called once. */
- if (backend != NULL) {
+ if (session != NULL) {
+ EMailAccountStore *account_store;
MailFolderCache *folder_cache;
- EMailSession *session;
- EShell *shell;
- EShellBackend *shell_backend;
- EShellSettings *shell_settings;
-
- shell_backend = E_SHELL_BACKEND (backend);
- shell = e_shell_backend_get_shell (shell_backend);
- shell_settings = e_shell_get_shell_settings (shell);
- session = e_mail_backend_get_session (backend);
folder_cache = e_mail_session_get_folder_cache (session);
+ account_store = e_mail_session_get_account_store (session);
- g_signal_connect_swapped (
- backend, "account-sort-order-changed",
- G_CALLBACK (account_sort_order_changed_cb), model);
+ /* Keep our own reference since we connect to its signals. */
+ g_warn_if_fail (model->priv->account_store == NULL);
+ model->priv->account_store = g_object_ref (account_store);
- g_signal_connect_swapped (
- shell_settings, "notify::mail-sort-accounts-alpha",
- G_CALLBACK (account_sort_order_changed_cb), model);
- g_signal_connect_swapped (
- shell_settings, "notify::mail-enable-local-folders",
- G_CALLBACK (enable_local_folders_changed_cb), model);
- g_signal_connect_swapped (
- shell_settings, "notify::mail-enable-search-folders",
- G_CALLBACK (enable_search_folders_changed_cb), model);
+ g_signal_connect (
+ account_store, "service-removed",
+ G_CALLBACK (folder_tree_model_service_removed),
+ model);
+
+ g_signal_connect (
+ account_store, "service-enabled",
+ G_CALLBACK (folder_tree_model_service_enabled),
+ model);
+
+ g_signal_connect (
+ account_store, "service-disabled",
+ G_CALLBACK (folder_tree_model_service_disabled),
+ model);
+
+ g_signal_connect (
+ account_store, "services-reordered",
+ G_CALLBACK (folder_tree_model_services_reordered),
+ model);
g_signal_connect_swapped (
folder_cache, "folder-unread-updated",
@@ -815,7 +605,7 @@ em_folder_tree_model_set_backend (EMFolderTreeModel *model,
model);
}
- g_object_notify (G_OBJECT (model), "backend");
+ g_object_notify (G_OBJECT (model), "session");
}
void
@@ -828,7 +618,6 @@ em_folder_tree_model_set_folder_info (EMFolderTreeModel *model,
GtkTreeRowReference *uri_row, *path_row;
GtkTreeStore *tree_store;
MailFolderCache *folder_cache;
- EMailBackend *backend;
EMailSession *session;
EAccount *account;
guint unread;
@@ -845,6 +634,7 @@ em_folder_tree_model_set_folder_info (EMFolderTreeModel *model,
gboolean folder_is_drafts = FALSE;
gboolean folder_is_outbox = FALSE;
gboolean folder_is_templates = FALSE;
+ gboolean store_is_local;
gchar *uri;
/* Make sure we don't already know about it. */
@@ -853,11 +643,11 @@ em_folder_tree_model_set_folder_info (EMFolderTreeModel *model,
tree_store = GTK_TREE_STORE (model);
- backend = em_folder_tree_model_get_backend (model);
- session = e_mail_backend_get_session (backend);
+ session = em_folder_tree_model_get_session (model);
folder_cache = e_mail_session_get_folder_cache (session);
uid = camel_service_get_uid (CAMEL_SERVICE (si->store));
+ store_is_local = (g_strcmp0 (uid, E_MAIL_SESSION_LOCAL_UID) == 0);
account = e_get_account_by_uid (uid);
if (!fully_loaded)
@@ -907,7 +697,7 @@ em_folder_tree_model_set_folder_info (EMFolderTreeModel *model,
flags = fi->flags;
display_name = fi->display_name;
- if (si->store == e_mail_local_get_store ()) {
+ if (store_is_local) {
if (strcmp (fi->full_name, "Drafts") == 0) {
folder_is_drafts = TRUE;
display_name = _("Drafts");
@@ -1202,7 +992,6 @@ void
em_folder_tree_model_add_store (EMFolderTreeModel *model,
CamelStore *store)
{
- EMailBackend *mail_backend;
EMFolderTreeModelStoreInfo *si;
GtkTreeRowReference *reference;
GtkTreeStore *tree_store;
@@ -1212,7 +1001,6 @@ em_folder_tree_model_add_store (EMFolderTreeModel *model,
CamelProvider *provider;
CamelURL *service_url;
const gchar *display_name;
- const gchar *account_uid;
gchar *uri;
g_return_if_fail (EM_IS_FOLDER_TREE_MODEL (model));
@@ -1223,7 +1011,6 @@ em_folder_tree_model_add_store (EMFolderTreeModel *model,
service = CAMEL_SERVICE (store);
provider = camel_service_get_provider (service);
display_name = camel_service_get_display_name (service);
- account_uid = camel_service_get_uid (service);
/* Ignore stores that should not be added to the tree model. */
@@ -1245,8 +1032,6 @@ em_folder_tree_model_add_store (EMFolderTreeModel *model,
if (si != NULL)
em_folder_tree_model_remove_store (model, store);
- mail_backend = em_folder_tree_model_get_backend (model);
-
/* Add the store to the tree. */
gtk_tree_store_append (tree_store, &iter, NULL);
gtk_tree_store_set (
@@ -1257,7 +1042,6 @@ em_folder_tree_model_add_store (EMFolderTreeModel *model,
COL_BOOL_LOAD_SUBDIRS, TRUE,
COL_BOOL_IS_STORE, TRUE,
COL_STRING_URI, uri,
- COL_UINT_SORTORDER, em_utils_get_account_sort_order (mail_backend, account_uid),
-1);
path = gtk_tree_model_get_path (GTK_TREE_MODEL (model), &iter);