# Trait gtk::prelude::TreeModelSortExt

source · [−]```
pub trait TreeModelSortExt: 'static {
fn clear_cache(&self);
fn convert_child_iter_to_iter(
```

&self,

child_iter: &TreeIter

) -> Option<TreeIter>;
fn convert_child_path_to_path(

&self,

child_path: &TreePath

) -> Option<TreePath>;
fn convert_iter_to_child_iter(&self, sorted_iter: &TreeIter) -> TreeIter;
fn convert_path_to_child_path(

&self,

sorted_path: &TreePath

) -> Option<TreePath>;
fn model(&self) -> TreeModel;
fn iter_is_valid(&self, iter: &TreeIter) -> bool;
fn reset_default_sort_func(&self);
}

## Expand description

## Required Methods

#### fn clear_cache(&self)

#### fn clear_cache(&self)

This function should almost never be called. It clears the `self`

of any cached iterators that haven’t been reffed with
`gtk_tree_model_ref_node()`

. This might be useful if the child model being
sorted is static (and doesn’t change often) and there has been a lot of
unreffed access to nodes. As a side effect of this function, all unreffed
iters will be invalid.

#### fn convert_child_iter_to_iter(&self, child_iter: &TreeIter) -> Option<TreeIter>

#### fn convert_child_iter_to_iter(&self, child_iter: &TreeIter) -> Option<TreeIter>

Sets `sort_iter`

to point to the row in `self`

that corresponds to
the row pointed at by `child_iter`

. If `sort_iter`

was not set, `false`

is returned. Note: a boolean is only returned since 2.14.

`child_iter`

A valid `TreeIter`

pointing to a row on the child model

##### Returns

`true`

, if `sort_iter`

was set, i.e. if `sort_iter`

is a
valid iterator pointer to a visible row in the child model.

`sort_iter`

An uninitialized `TreeIter`

.

#### fn convert_child_path_to_path(&self, child_path: &TreePath) -> Option<TreePath>

#### fn convert_child_path_to_path(&self, child_path: &TreePath) -> Option<TreePath>

Converts `child_path`

to a path relative to `self`

. That is,
`child_path`

points to a path in the child model. The returned path will
point to the same row in the sorted model. If `child_path`

isn’t a valid
path on the child model, then `None`

is returned.

`child_path`

A `TreePath`

to convert

##### Returns

#### fn convert_iter_to_child_iter(&self, sorted_iter: &TreeIter) -> TreeIter

#### fn convert_iter_to_child_iter(&self, sorted_iter: &TreeIter) -> TreeIter

Sets `child_iter`

to point to the row pointed to by `sorted_iter`

.

`sorted_iter`

A valid `TreeIter`

pointing to a row on `self`

.

##### Returns

`child_iter`

An uninitialized `TreeIter`

#### fn convert_path_to_child_path(&self, sorted_path: &TreePath) -> Option<TreePath>

#### fn convert_path_to_child_path(&self, sorted_path: &TreePath) -> Option<TreePath>

Converts `sorted_path`

to a path on the child model of `self`

.
That is, `sorted_path`

points to a location in `self`

. The
returned path will point to the same location in the model not being
sorted. If `sorted_path`

does not point to a location in the child model,
`None`

is returned.

`sorted_path`

A `TreePath`

to convert

##### Returns

#### fn iter_is_valid(&self, iter: &TreeIter) -> bool

#### fn iter_is_valid(&self, iter: &TreeIter) -> bool

#### fn reset_default_sort_func(&self)

#### fn reset_default_sort_func(&self)

This resets the default sort function to be in the “unsorted” state. That
is, it is in the same order as the child model. It will re-sort the model
to be in the same order as the child model only if the `TreeModelSort`

is in “unsorted” state.