### Method

# EDataServer SourceRegistry build_display_tree

since: 3.6

#### Declaration [src]

    GNode*
    e_source_registry_build_display_tree (
      ESourceRegistry* registry,
      const gchar* extension_name
    )

#### Description [src]

Returns a single `GNode` tree of registered sources that can be used to populate a `GtkTreeModel`. (The root `GNode` is just an empty placeholder.)

Similar to e_source_registry_list_sources(), an `extension_name` can be given to restrict the tree to sources having that extension name. Parents of matched sources are included in the tree regardless of whether they have an extension named `extension_name`.

Disabled leaf nodes are automatically excluded from the `GNode` tree.

The sources returned in the tree are referenced for thread-safety. They must each be unreferenced with `g_object_unref()` when finished with them. Free the returned tree itself with g_node_destroy(). For convenience, `e_source_registry_free_display_tree()` does all that in one step.

Available since: 3.6

This method is not directly available to language bindings.

#### Parameters

`extension_name`

  Type: `const gchar*`

  An extension name, or `NULL`.

  The argument can be `NULL`.
  The data is owned by the caller of the method.
  The value is a NUL terminated UTF-8 string.

#### Return value

Type: `GNode`

A tree of sources, arranged for display.

The caller of the method takes ownership of the returned data, and is responsible for freeing it.