aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/reference/libeutil/libeutil-sections.txt1
-rw-r--r--e-util/e-source-selector.c31
-rw-r--r--e-util/e-source-selector.h3
3 files changed, 35 insertions, 0 deletions
diff --git a/doc/reference/libeutil/libeutil-sections.txt b/doc/reference/libeutil/libeutil-sections.txt
index 78e3b72d7d..f4eee6f7d5 100644
--- a/doc/reference/libeutil/libeutil-sections.txt
+++ b/doc/reference/libeutil/libeutil-sections.txt
@@ -3113,6 +3113,7 @@ e_source_selector_set_select_new
e_source_selector_edit_primary_selection
e_source_selector_ref_primary_selection
e_source_selector_set_primary_selection
+e_source_selector_ref_source_by_iter
e_source_selector_ref_source_by_path
e_source_selector_queue_write
e_source_selector_update_row
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);