gtkmm 4.16.0
|
A wrapper which makes an underlying Gtk::TreeModel sortable. More...
#include <gtkmm/treemodelsort.h>
Public Member Functions | |
TreeModelSort (TreeModelSort &&src) noexcept | |
TreeModelSort & | operator= (TreeModelSort &&src) noexcept |
~TreeModelSort () noexcept override | |
GtkTreeModelSort * | gobj () |
Provides access to the underlying C GObject. | |
const GtkTreeModelSort * | gobj () const |
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. | |
Glib::RefPtr< TreeModel > | get_model () |
Returns the model the Gtk::TreeModelSort is sorting. | |
Glib::RefPtr< const TreeModel > | get_model () const |
Returns the model the Gtk::TreeModelSort is sorting. | |
Path | convert_child_path_to_path (const Path &child_path) const |
Converts child_path to a path relative to tree_model_sort. | |
iterator | convert_child_iter_to_iter (const iterator &child_iter) |
Gets an iterator that points to the sorted row that corresponds to the child row pointed at by child_iter. | |
const_iterator | convert_child_iter_to_iter (const 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_path_to_child_path (const Path &sorted_path) const |
Converts sorted_path to a path on the child model of tree_model_sort. | |
iterator | convert_iter_to_child_iter (const iterator &sorted_iter) |
Gets an iterator that points to the child row that corresponds to the sorted row pointed at by sorted_iter. | |
const_iterator | convert_iter_to_child_iter (const 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. | |
void | reset_default_sort_func () |
This resets the default sort function to be in the “unsorted” state. | |
void | clear_cache () |
This function should almost never be called. | |
bool | iter_is_valid (const const_iterator &iter) const |
| |
Glib::PropertyProxy_ReadOnly< Glib::RefPtr< TreeModel > > | property_model () const |
The model of the tree model sort. | |
Public Member Functions inherited from Gtk::TreeModel | |
TreeModel (TreeModel &&src) noexcept | |
TreeModel & | operator= (TreeModel &&src) noexcept |
~TreeModel () noexcept override | |
GtkTreeModel * | gobj () |
Provides access to the underlying C GObject. | |
const GtkTreeModel * | gobj () const |
Provides access to the underlying C GObject. | |
iterator | get_iter (const Path & path) |
Returns a valid iterator pointing to path. | |
const_iterator | get_iter (const Path & path) const |
Returns a valid iterator pointing to path. | |
iterator | get_iter (const Glib::ustring &path_string) |
Returns a valid iterator pointing to path_string. | |
const_iterator | get_iter (const Glib::ustring &path_string) const |
Returns a valid iterator pointing to path_string. | |
Children | children () |
This returns an STL-like container API, for iterating over the rows. | |
const ConstChildren | children () const |
This returns an STL-like container API, for iterating over the rows. | |
void | foreach_iter (const SlotForeachIter &slot) |
Calls a callback of type SlotForeachIter on each node in the model in a depth-first fashion. | |
void | foreach_path (const SlotForeachPath &slot) |
Calls a callback of type SlotForeachPath on each node in the model in a depth-first fashion. | |
void | foreach (const SlotForeachPathAndIter &slot) |
Calls a callback of type SlotForeachPathAndIter on each node in the model in a depth-first fashion. | |
Flags | get_flags () const |
Returns a set of flags supported by this interface. | |
int | get_n_columns () const |
Returns the number of columns supported by tree_model. | |
GType | get_column_type (int index) const |
Returns the type of the column. | |
TreeModel::Path | get_path (const const_iterator &iter) const |
Returns a Gtk::TreePath referenced by iter. | |
void | row_changed (const Path & path, const const_iterator &iter) |
Emits the signal_row_changed() signal on tree_model. | |
void | row_inserted (const Path & path, const const_iterator &iter) |
Emits the signal_row_inserted() signal on tree_model. | |
void | row_has_child_toggled (const Path & path, const const_iterator &iter) |
Emits the signal_row_has_child_toggled() signal on tree_model. | |
void | row_deleted (const Path & path) |
Emits the signal_row_deleted() signal on tree_model. | |
void | rows_reordered (const Path & path, const const_iterator &iter, const std::vector< int > &new_order) |
Emits the "rows_reordered" signal on the tree model. | |
void | rows_reordered (const Path & path, const std::vector< int > &new_order) |
Emits the "rows_reordered" signal on the tree model. | |
void | rows_reordered (const Path & path, const const_iterator &iter, int *new_order) |
Emits the Gtk::TreeModel::signal_rows_reordered() signal on tree_model. | |
Glib::ustring | get_string (const const_iterator &iter) const |
Generates a string representation of the iter. | |
Glib::SignalProxy< void(const TreeModel::Path &, const TreeModel::iterator &)> | signal_row_changed () |
Glib::SignalProxy< void(const TreeModel::Path &, const TreeModel::iterator &)> | signal_row_inserted () |
Glib::SignalProxy< void(const TreeModel::Path &, const TreeModel::iterator &)> | signal_row_has_child_toggled () |
Glib::SignalProxy< void(const TreeModel::Path &)> | signal_row_deleted () |
Glib::SignalProxy< void(const TreeModel::Path &, const TreeModel::iterator &, int *)> | signal_rows_reordered () |
Public Member Functions inherited from Gtk::TreeSortable | |
TreeSortable (TreeSortable &&src) noexcept | |
TreeSortable & | operator= (TreeSortable &&src) noexcept |
~TreeSortable () noexcept override | |
GtkTreeSortable * | gobj () |
Provides access to the underlying C GObject. | |
const GtkTreeSortable * | gobj () const |
Provides access to the underlying C GObject. | |
bool | get_sort_column_id (int &sort_column_id, SortType & order) const |
Fills in sort_column_id and order with the current sort column and the order. | |
void | set_sort_column (const TreeModelColumnBase &sort_column_id, SortType order) |
Sets the current sort column to be sort_column_id. | |
void | set_sort_column (int sort_column_id, SortType order) |
Sets the current sort column to be sort_column_id. | |
void | set_sort_func (const TreeModelColumnBase &sort_column, const SlotCompare &slot) |
Sets the comparison function used when sorting a certain column. | |
void | set_sort_func (int sort_column_id, const SlotCompare &slot) |
Sets the comparison function used when sorting a certain column. | |
void | set_default_sort_func (const SlotCompare &slot) |
Sets the default comparison function used when sorting. | |
void | unset_default_sort_func () |
Sets the default comparison function used when sorting. | |
bool | has_default_sort_func () const |
Returns true if the model has a default sort function. | |
void | sort_column_changed () |
Emits a GtkTreeSortable::sort-column-changed signal on sortable. | |
Glib::SignalProxy< void()> | signal_sort_column_changed () |
Public Member Functions inherited from Gtk::TreeDragSource | |
TreeDragSource (TreeDragSource &&src) noexcept | |
TreeDragSource & | operator= (TreeDragSource &&src) noexcept |
~TreeDragSource () noexcept override | |
GtkTreeDragSource * | gobj () |
Provides access to the underlying C GObject. | |
const GtkTreeDragSource * | gobj () const |
Provides access to the underlying C GObject. | |
bool | row_draggable (const TreeModel::Path & path) const |
Asks the Gtk::TreeDragSource whether a particular row can be used as the source of a DND operation. | |
Glib::RefPtr< Gdk::ContentProvider > | drag_data_get (const TreeModel::Path & path) const |
Asks the Gtk::TreeDragSource to return a Gdk::ContentProvider representing the row at path. | |
bool | drag_data_delete (const TreeModel::Path & path) |
Asks the Gtk::TreeDragSource to delete the row at path, because it was moved somewhere else via drag-and-drop. | |
Static Public Member Functions | |
static GType | get_type () |
Get the GType for this class, for use with the underlying GObject type system. | |
static Glib::RefPtr< TreeModelSort > | create (const Glib::RefPtr< TreeModel > &model) |
Static Public Member Functions inherited from Gtk::TreeModel | |
static void | add_interface (GType gtype_implementer) |
static GType | get_type () |
Get the GType for this class, for use with the underlying GObject type system. | |
Static Public Member Functions inherited from Gtk::TreeSortable | |
static void | add_interface (GType gtype_implementer) |
static GType | get_type () |
Get the GType for this class, for use with the underlying GObject type system. | |
Static Public Member Functions inherited from Gtk::TreeDragSource | |
static void | add_interface (GType gtype_implementer) |
static GType | get_type () |
Get the GType for this class, for use with the underlying GObject type system. | |
Related Symbols | |
(Note that these are not member symbols.) | |
Glib::RefPtr< Gtk::TreeModelSort > | wrap (GtkTreeModelSort *object, bool take_copy=false) |
A Glib::wrap() method for this object. | |
Related Symbols inherited from Gtk::TreeModel | |
Glib::RefPtr< Gtk::TreeModel > | wrap (GtkTreeModel *object, bool take_copy=false) |
A Glib::wrap() method for this object. | |
Related Symbols inherited from Gtk::TreeSortable | |
Glib::RefPtr< Gtk::TreeSortable > | wrap (GtkTreeSortable *object, bool take_copy=false) |
A Glib::wrap() method for this object. | |
Related Symbols inherited from Gtk::TreeDragSource | |
Glib::RefPtr< Gtk::TreeDragSource > | wrap (GtkTreeDragSource *object, bool take_copy=false) |
A Glib::wrap() method for this object. | |
A wrapper which makes an underlying Gtk::TreeModel sortable.
The TreeModelSort is a model which implements the TreeSortable interface. It does not hold any data itself, but rather is created with a child model and proxies its data. It has identical column types to this child model, and the changes in the child are propagated. The primary purpose of this model is to provide a way to sort a different model without modifying it. Note that the sort function used by TreeModelSort is not guaranteed to be stable.
For instance, you might create two TreeView widgets each with a view of the same data. If the model is wrapped by a TreeModelSort then the two TreeViews can each sort their view of the data without affecting the other. By contrast, if we simply put the same model in each widget, then sorting the first would sort the second.
|
noexcept |
|
overridenoexcept |
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.
Deprecated: 4.10
const_iterator Gtk::TreeModelSort::convert_child_iter_to_iter | ( | const 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.
child_iter | A valid iterator pointing to a row on the child model. |
Gets an iterator that points to the sorted row that corresponds to the child row pointed at by child_iter.
child_iter | A valid iterator pointing to a row on the child model. |
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 nullptr
is returned.
Deprecated: 4.10
child_path | A Gtk::TreePath to convert. |
Gtk::TreePath
. const_iterator Gtk::TreeModelSort::convert_iter_to_child_iter | ( | const 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.
sorted_iter | A valid iterator pointing to a row on the sorted model. |
Gets an iterator that points to the child row that corresponds to the sorted row pointed at by sorted_iter.
sorted_iter | A valid iterator pointing to a row on the sorted model. |
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, nullptr
is returned.
Deprecated: 4.10
sorted_path | A Gtk::TreePath to convert. |
Gtk::TreePath
.
|
static |
Glib::RefPtr< TreeModel > Gtk::TreeModelSort::get_model | ( | ) |
Returns the model the Gtk::TreeModelSort
is sorting.
Returns the model the Gtk::TreeModelSort
is sorting.
|
static |
Get the GType for this class, for use with the underlying GObject type system.
|
inline |
Provides access to the underlying C GObject.
|
inline |
Provides access to the underlying C GObject.
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 const_iterator & | iter | ) | const |
This function is slow.
Only use it for debugging and/or testing purposes.
Checks if the given iter is a valid iter for this Gtk::TreeModelSort
.
Deprecated: 4.10
iter | A Gtk::TreeIter . |
true
if the iter is valid, false
if the iter is invalid.
|
noexcept |
Glib::PropertyProxy_ReadOnly< Glib::RefPtr< TreeModel > > Gtk::TreeModelSort::property_model | ( | ) | const |
The model of the tree model sort.
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.
Deprecated: 4.10
|
overrideprotectedvirtual |
Override and implement this in a derived TreeModel class, so that Row::operator() and Row::set_value() work.
Your implementation of set_value_impl() should call row_changed() after changing the value.
Reimplemented from Gtk::TreeModel.
|
related |
A Glib::wrap() method for this object.
object | The C instance. |
take_copy | False if the result should take ownership of the C instance. True if it should take a new copy or ref. |