aboutsummaryrefslogtreecommitdiffstats
path: root/e-util/e-source-selector.c
diff options
context:
space:
mode:
Diffstat (limited to 'e-util/e-source-selector.c')
-rw-r--r--e-util/e-source-selector.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/e-util/e-source-selector.c b/e-util/e-source-selector.c
index b746230a59..15f7781dcb 100644
--- a/e-util/e-source-selector.c
+++ b/e-util/e-source-selector.c
@@ -1911,6 +1911,37 @@ e_source_selector_set_primary_selection (ESourceSelector *selector,
}
/**
+ * e_source_selector_ref_source_by_iter:
+ * @selector: an #ESourceSelector
+ * @iter: a #GtkTreeIter
+ *
+ * Returns the #ESource object at @iter.
+ *
+ * The returned #ESource is referenced for thread-safety and must be
+ * unreferenced with g_object_unref() when finished with it.
+ *
+ * Returns: the #ESource object at @iter, or %NULL
+ *
+ * Since: 3.8
+ **/
+ESource *
+e_source_selector_ref_source_by_iter (ESourceSelector *selector,
+ GtkTreeIter *iter)
+{
+ ESource *source = NULL;
+ GtkTreeModel *model;
+
+ g_return_val_if_fail (E_IS_SOURCE_SELECTOR (selector), NULL);
+ g_return_val_if_fail (iter != NULL, NULL);
+
+ model = gtk_tree_view_get_model (GTK_TREE_VIEW (selector));
+
+ gtk_tree_model_get (model, iter, COLUMN_SOURCE, &source, -1);
+
+ return source;
+}
+
+/**
* e_source_selector_ref_source_by_path:
* @selector: an #ESourceSelector
* @path: a #GtkTreePath