Main Page Widgets Namespaces Book

# Gtk::TreeModelSort Class Reference
[TreeView Classes]

Inheritance diagram for Gtk::TreeModelSort:

[legend]
List of all members.

## Detailed Description

A wrapper which makes an underlying Gtk::TreeModel sortable.

## Public Member Functions

void | clear_cache ()
| This function should almost never be called.
iterator | convert_child_iter_to_iter (const iterator& child_iter) const
| Gets an iterator that points to the sorted row that corresponds to the child row pointed at by child_iter.
Path | convert_child_path_to_path (const Path& child_path) const
| Converts child_path to a path relative to tree_model_sort .
iterator | convert_iter_to_child_iter (const iterator& sorted_iter) const
| Gets an iterator that points to the child row that corresponds to the sorted row pointed at by sorted_iter.
Path | convert_path_to_child_path (const Path& sorted_path) const
| Converts sorted_path to a path on the child model of tree_model_sort .
Glib::RefPtr<const TreeModel> | get_model () const
| Returns the model the Gtk::TreeModelSort is sorting.
Glib::RefPtr<TreeModel> | get_model ()
| Returns the model the Gtk::TreeModelSort is sorting.
const GtkTreeModelSort* | gobj () const
| Provides access to the underlying C GObject.
GtkTreeModelSort* | gobj ()
| Provides access to the underlying C GObject.
GtkTreeModelSort* | gobj_copy ()
| Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
bool | iter_is_valid (const iterator& iter) const
| <warning> This function is slow.
void | reset_default_sort_func ()
| This resets the default sort function to be in the 'unsorted' state.
virtual | ~TreeModelSort ()

## Static Public Member Functions

static Glib::RefPtr<TreeModelSort> | create (const Glib::RefPtr<TreeModel>& model)

## Protected Member Functions

virtual void | set_value_impl (const iterator& row, int column, const Glib::ValueBase& value)
| Override and implement this in a derived TreeModel class, so that Row::operator() and Row::set_value() work.
| TreeModelSort (const Glib::RefPtr<TreeModel>& model)

## Related Functions

(Note that these are not member functions.)
Glib::RefPtr<Gtk::TreeModelSort> | wrap (GtkTreeModelSort* object, bool take_copy=false)

Parameters:

  | object | The C instance

## Constructor & Destructor Documentation

virtual Gtk::TreeModelSort::~TreeModelSort | ( |  | ) | `[virtual]`

Gtk::TreeModelSort::TreeModelSort | ( | const Glib::RefPtr<TreeModel>& | model | ) | `[explicit, protected]`

## Member Function Documentation

void Gtk::TreeModelSort::clear_cache | ( |  | ) |

This function should almost never be called.

It clears the tree_model_sort of any cached iterators that haven't been reffed with 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.

iterator Gtk::TreeModelSort::convert_child_iter_to_iter | ( | const iterator& | child_iter | ) | const

Gets an iterator that points to the sorted row that corresponds to the child row pointed at by child_iter.

Parameters:

  | child_iter | A valid iterator pointing to a row on the child model.

Returns:
  A valid iterator that points to the row in this sorted model.

Path Gtk::TreeModelSort::convert_child_path_to_path | ( | const Path& | child_path | ) | const

Converts child_path to a path relative to tree_model_sort .

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 `0` is returned.

Parameters:

  | child_path | A Gtk::TreePath to convert.

Returns:
  A newly allocated Gtk::TreePath, or `0`.

iterator Gtk::TreeModelSort::convert_iter_to_child_iter | ( | const iterator& | sorted_iter | ) | const

Gets an iterator that points to the child row that corresponds to the sorted row pointed at by sorted_iter.

Parameters:

  | sorted_iter | A valid iterator pointing to a row on the sorted model.

Returns:
  A valid iterator that points to the row in the child model.

Path Gtk::TreeModelSort::convert_path_to_child_path | ( | const Path& | sorted_path | ) | const

Converts sorted_path to a path on the child model of tree_model_sort .

That is, sorted_path points to a location in tree_model_sort . 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, `0` is returned.

Parameters:

  | sorted_path | A Gtk::TreePath to convert.

Returns:
  A newly allocated Gtk::TreePath, or `0`.

static Glib::RefPtr<TreeModelSort> Gtk::TreeModelSort::create | ( | const Glib::RefPtr<TreeModel>& | model | ) | `[static]`

Glib::RefPtr<const TreeModel> Gtk::TreeModelSort::get_model | ( |  | ) | const

Returns the model the Gtk::TreeModelSort is sorting.

Returns:
  The "child model" being sorted.

Glib::RefPtr<TreeModel> Gtk::TreeModelSort::get_model | ( |  | ) |

Returns the model the Gtk::TreeModelSort is sorting.

Returns:
  The "child model" being sorted.

const GtkTreeModelSort* Gtk::TreeModelSort::gobj | ( |  | ) | const`[inline]`

Provides access to the underlying C GObject.

Reimplemented from Gtk::TreeModel.

GtkTreeModelSort* Gtk::TreeModelSort::gobj | ( |  | ) | `[inline]`

Provides access to the underlying C GObject.

Reimplemented from Gtk::TreeModel.

GtkTreeModelSort* Gtk::TreeModelSort::gobj_copy | ( |  | ) |

Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.

bool Gtk::TreeModelSort::iter_is_valid | ( | const iterator& | iter | ) | const`[virtual]`

<warning> This function is slow.

Only use it for debugging and/or testing purposes. </warning>

Checks if the given iter is a valid iter for this Gtk::TreeModelSort.

Parameters:

  | iter | A Gtk::TreeIter.

Returns:
  `true` if the iter is valid, `false` if the iter is invalid.

Since gtkmm 2.2:

Reimplemented from Gtk::TreeModel.

void Gtk::TreeModelSort::reset_default_sort_func | ( |  | ) |

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 Gtk::TreeModelSort is in 'unsorted' state.

virtual void Gtk::TreeModelSort::set_value_impl | ( | const iterator& | row,
|  | int | column,
|  | const Glib::ValueBase & | value |
| ) |  |  | `[protected, virtual]`

Override and implement this in a derived TreeModel class, so that Row::operator() and Row::set_value() work.

You can probably just implement this by calling set_value_vfunc(). Your implementation of set_value_impl() should also call set_row_changed() after changing the value.

Reimplemented from Gtk::TreeModel.

## Friends And Related Function Documentation

Glib::RefPtr<Gtk::TreeModelSort> wrap | ( | GtkTreeModelSort * | object,
|  | bool | take_copy = `false` |
| ) |  |  | `[related]`

Parameters:

  | object | The C instance

Parameters:

  | take_copy | False if the result should take ownership of the C instance. True if it should take a new copy or ref.

Returns:
  A C++ instance that wraps this C instance.

The documentation for this class was generated from the following file:

- treemodelsort.h