aboutsummaryrefslogtreecommitdiffstats
path: root/e-util
diff options
context:
space:
mode:
Diffstat (limited to 'e-util')
-rw-r--r--e-util/e-source-selector.c31
-rw-r--r--e-util/e-source-selector.h3
2 files changed, 34 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
diff --git a/e-util/e-source-selector.h b/e-util/e-source-selector.h
index e25142146a..b49d65a782 100644
--- a/e-util/e-source-selector.h
+++ b/e-util/e-source-selector.h
@@ -130,6 +130,9 @@ ESource * e_source_selector_ref_primary_selection
void e_source_selector_set_primary_selection
(ESourceSelector *selector,
ESource *source);
+ESource * e_source_selector_ref_source_by_iter
+ (ESourceSelector *selector,
+ GtkTreeIter *iter);
ESource * e_source_selector_ref_source_by_path
(ESourceSelector *selector,
GtkTreePath *path);