+
+ return update_model (self, MODEST_TNY_ACCOUNT_STORE(account_store)); /* ugly */
+}
+
+TnyFolder *
+modest_folder_view_get_selected (ModestFolderView *self)
+{
+ ModestFolderViewPrivate *priv;
+
+ g_return_val_if_fail (self, NULL);
+
+ priv = MODEST_FOLDER_VIEW_GET_PRIVATE(self);
+ if (priv->cur_folder)
+ g_object_ref (priv->cur_folder);
+
+ return priv->cur_folder;
+}
+
+
+static gint
+cmp_rows (GtkTreeModel *tree_model, GtkTreeIter *iter1, GtkTreeIter *iter2,
+ gpointer user_data)
+{
+ gint cmp;
+ gchar *name1, *name2;
+ TnyFolderType type;
+ TnyFolder *folder1, *folder2;
+
+ gtk_tree_model_get (tree_model, iter1,
+ TNY_GTK_FOLDER_STORE_TREE_MODEL_NAME_COLUMN, &name1,
+ TNY_GTK_FOLDER_STORE_TREE_MODEL_TYPE_COLUMN, &type,
+ TNY_GTK_FOLDER_STORE_TREE_MODEL_INSTANCE_COLUMN, &folder1,
+ -1);
+ gtk_tree_model_get (tree_model, iter2,
+ TNY_GTK_FOLDER_STORE_TREE_MODEL_NAME_COLUMN, &name2,
+ TNY_GTK_FOLDER_STORE_TREE_MODEL_INSTANCE_COLUMN, &folder2,
+ -1);
+
+ /* local_folders should be the last one */
+ if (type == TNY_FOLDER_TYPE_ROOT) {
+ /* the account name is also the name of the root folder
+ * in case of local folders */
+ if (strcmp (name1, MODEST_LOCAL_FOLDERS_ACCOUNT_NAME) == 0)
+ cmp = +1;
+ else if (strcmp (name2, MODEST_LOCAL_FOLDERS_ACCOUNT_NAME) == 0)
+ cmp = -1;
+ else
+ cmp = modest_text_utils_utf8_strcmp (name1, name2, TRUE);
+ } else {
+ cmp = modest_text_utils_utf8_strcmp (name1, name2, TRUE);
+ }
+ g_free (name1);
+ g_free (name2);