aboutsummaryrefslogtreecommitdiffstats
path: root/mail
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2013-11-17 02:10:04 +0800
committerMatthew Barnes <mbarnes@redhat.com>2013-11-17 08:24:02 +0800
commit19708882803f5dbd763b202da297c8cbf8f6b7f7 (patch)
tree741846881e718abd3a9f32b79d2aaa74f559ca1a /mail
parenta1f9e24189fac8a8420936f08311f535c7c94ccd (diff)
downloadgsoc2013-evolution-19708882803f5dbd763b202da297c8cbf8f6b7f7.tar
gsoc2013-evolution-19708882803f5dbd763b202da297c8cbf8f6b7f7.tar.gz
gsoc2013-evolution-19708882803f5dbd763b202da297c8cbf8f6b7f7.tar.bz2
gsoc2013-evolution-19708882803f5dbd763b202da297c8cbf8f6b7f7.tar.lz
gsoc2013-evolution-19708882803f5dbd763b202da297c8cbf8f6b7f7.tar.xz
gsoc2013-evolution-19708882803f5dbd763b202da297c8cbf8f6b7f7.tar.zst
gsoc2013-evolution-19708882803f5dbd763b202da297c8cbf8f6b7f7.zip
Add em_folder_tree_ref_selected_store().
Replaces em_folder_tree_get_selected_store(). Same as before, but adds a reference to the returned CamelStore.
Diffstat (limited to 'mail')
-rw-r--r--mail/em-folder-tree.c16
-rw-r--r--mail/em-folder-tree.h2
2 files changed, 15 insertions, 3 deletions
diff --git a/mail/em-folder-tree.c b/mail/em-folder-tree.c
index aaf3488307..9add844e0b 100644
--- a/mail/em-folder-tree.c
+++ b/mail/em-folder-tree.c
@@ -3432,8 +3432,20 @@ em_folder_tree_get_selected_uri (EMFolderTree *folder_tree)
return folder_uri;
}
+/**
+ * em_folder_tree_ref_selected_store:
+ * @folder_tree: an #EMFolderTree
+ *
+ * Returns the #CamelStore for the selected row in @folder_tree, or %NULL
+ * if no row is selected.
+ *
+ * The returned #CamelStore is referenced for thread-safety and must be
+ * unreferenced with g_object_unref() when finished with it.
+ *
+ * Returns: a #CamelStore, or %NULL
+ **/
CamelStore *
-em_folder_tree_get_selected_store (EMFolderTree *folder_tree)
+em_folder_tree_ref_selected_store (EMFolderTree *folder_tree)
{
GtkTreeView *tree_view;
GtkTreeSelection *selection;
@@ -3454,7 +3466,7 @@ em_folder_tree_get_selected_store (EMFolderTree *folder_tree)
model, &iter,
COL_POINTER_CAMEL_STORE, &store, -1);
- return CAMEL_IS_STORE (store) ? store : NULL;
+ return (store != NULL) ? g_object_ref (store) : NULL;
}
void
diff --git a/mail/em-folder-tree.h b/mail/em-folder-tree.h
index adf4528c35..ae54133e8c 100644
--- a/mail/em-folder-tree.h
+++ b/mail/em-folder-tree.h
@@ -133,7 +133,7 @@ gboolean em_folder_tree_store_root_selected
(EMFolderTree *folder_tree,
CamelStore **out_store);
gchar * em_folder_tree_get_selected_uri (EMFolderTree *folder_tree);
-CamelStore * em_folder_tree_get_selected_store
+CamelStore * em_folder_tree_ref_selected_store
(EMFolderTree *folder_tree);
gboolean em_folder_tree_create_folder (EMFolderTree *folder_tree,
const gchar *full_name,