aboutsummaryrefslogtreecommitdiffstats
path: root/mail/em-folder-tree.c
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2011-05-31 17:10:38 +0800
committerMilan Crha <mcrha@redhat.com>2011-05-31 17:10:38 +0800
commit95ec5734c1c5fb0a513e716b6aad8ad5419c2ca2 (patch)
treec70d4e90180343985ef534ee0a42bd0a28048250 /mail/em-folder-tree.c
parent420ac55791b7b481b5b734cf0d5ca709bd829117 (diff)
downloadgsoc2013-evolution-95ec5734c1c5fb0a513e716b6aad8ad5419c2ca2.tar
gsoc2013-evolution-95ec5734c1c5fb0a513e716b6aad8ad5419c2ca2.tar.gz
gsoc2013-evolution-95ec5734c1c5fb0a513e716b6aad8ad5419c2ca2.tar.bz2
gsoc2013-evolution-95ec5734c1c5fb0a513e716b6aad8ad5419c2ca2.tar.lz
gsoc2013-evolution-95ec5734c1c5fb0a513e716b6aad8ad5419c2ca2.tar.xz
gsoc2013-evolution-95ec5734c1c5fb0a513e716b6aad8ad5419c2ca2.tar.zst
gsoc2013-evolution-95ec5734c1c5fb0a513e716b6aad8ad5419c2ca2.zip
Bug #649939 - Cann't create new folder
Diffstat (limited to 'mail/em-folder-tree.c')
-rw-r--r--mail/em-folder-tree.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/mail/em-folder-tree.c b/mail/em-folder-tree.c
index 1a045991ed..04e544e47b 100644
--- a/mail/em-folder-tree.c
+++ b/mail/em-folder-tree.c
@@ -3193,6 +3193,42 @@ em_folder_tree_get_selected (EMFolderTree *folder_tree,
return TRUE;
}
+gboolean
+em_folder_tree_store_root_selected (EMFolderTree *folder_tree, CamelStore **out_store)
+{
+ GtkTreeView *tree_view;
+ GtkTreeSelection *selection;
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ CamelStore *store = NULL;
+ gboolean is_store = FALSE;
+
+ g_return_val_if_fail (folder_tree != NULL, FALSE);
+ g_return_val_if_fail (EM_IS_FOLDER_TREE (folder_tree), FALSE);
+
+ tree_view = GTK_TREE_VIEW (folder_tree);
+ selection = gtk_tree_view_get_selection (tree_view);
+
+ if (!gtk_tree_selection_get_selected (selection, &model, &iter))
+ return FALSE;
+
+ gtk_tree_model_get (
+ model, &iter,
+ COL_POINTER_CAMEL_STORE, &store,
+ COL_BOOL_IS_STORE, &is_store, -1);
+
+ /* We should always get a valid store. */
+ g_return_val_if_fail (CAMEL_IS_STORE (store), FALSE);
+
+ if (!is_store)
+ return FALSE;
+
+ if (out_store != NULL)
+ *out_store = g_object_ref (store);
+
+ return TRUE;
+}
+
gchar *
em_folder_tree_get_selected_uri (EMFolderTree *folder_tree)
{