Template Class Model

Inheritance Relationships

Derived Types

Class Documentation

template<typename ModelData>
class Model

A Model is providing Data for for - in repetitions or ListView elements of the .slint language

Subclassed by slint::FilterModel< ModelData >, slint::SortModel< ModelData >, slint::VectorModel< ModelData >

Public Functions

virtual ~Model() = default
Model() = default
Model(const Model&) = delete
Model &operator=(const Model&) = delete
virtual int row_count() const = 0

The amount of row in the model.

virtual std::optional<ModelData> row_data(int i) const = 0

Returns the data for a particular row. This function should be called with row < row_count().

inline virtual void set_row_data(int, const ModelData&)

Sets the data for a particular row.

This function should only be called with row < row_count().

If the model cannot support data changes, then it is ok to do nothing. The default implementation will print a warning to stderr.

If the model can update the data, it should also call row_changed

Protected Functions

inline void row_changed(int row)

Notify the views that a specific row was changed.

inline void row_added(int index, int count)

Notify the views that rows were added.

inline void row_removed(int index, int count)

Notify the views that rows were removed.

inline void reset()

Notify the views that the model has been changed and that everything needs to be reloaded.