AUI Framework  master
Cross-platform module-based framework for developing C++20 desktop applications
ITreeModel< T > Class Template Referenceabstract

Tree model. More...

Detailed Description

template<typename T>
class ITreeModel< T >

Tree model.

Template Parameters
TitemAt value (typically AString)

ITreeModel is an interface to a tree data structure used for ATreeView.

Basic implementation of the tree model is available in ATreeModel.

Public Types

using stored_t = T
 

Public Member Functions

virtual size_t childrenCount (const ATreeModelIndexOrRoot &vertex)=0
 Count of children of the vertex. More...
 
virtual T itemAt (const ATreeModelIndex &index)=0
 value representation, used by ATreeView. More...
 
virtual ATreeModelIndex indexOfChild (size_t row, size_t column, const ATreeModelIndexOrRoot &vertex)=0
 Creates valid ATreeModelIndex of the child. More...
 
virtual ATreeModelIndexOrRoot parent (const ATreeModelIndex &vertex)=0
 Creates index of parent vertex of the specified vertex. More...
 
template<aui::predicate< ATreeModelIndex > Predicate>
AOptional< ATreeModelIndexfind (const Predicate &predicate)
 
template<aui::invocable< ATreeModelIndex > Callback>
void forEachDirectChildOf (const ATreeModelIndexOrRoot &vertex, Callback callback)
 
- Public Member Functions inherited from AObject
_< AObjectsharedPtr ()
 
_weak< AObjectweakPtr ()
 
void clearSignals () noexcept
 
template<AAnySignal Signal, ACompatibleSlotFor< Signal > Function>
void connect (Signal &signal, Function &&function)
 
void setSignalsEnabled (bool enabled)
 
bool isSignalsEnabled () const noexcept
 
template<ASignalInvokable T>
void operator^ (T &&t)
 
_< AAbstractThreadgetThread () const
 
bool isSlotsCallsOnlyOnMyThread () const noexcept
 
void setSlotsCallsOnlyOnMyThread (bool slotsCallsOnlyOnMyThread)
 
- Public Member Functions inherited from aui::noncopyable
 noncopyable (const noncopyable &)=delete
 
noncopyableoperator= (const noncopyable &)=delete
 

Signals and public fields

emits< ATreeModelIndexdataChanged
 Model data was changed.
 
emits< ATreeModelIndexdataInserted
 Model data was added.
 
emits< ATreeModelIndexdataRemoved
 Model data about to remove.
 

Additional Inherited Members

- Static Public Member Functions inherited from AObject
static void disconnect ()
 
template<AAnySignal Signal, aui::derived_from< AObject > Object, ACompatibleSlotFor< Signal > Function>
static void connect (Signal &signal, Object *object, Function &&function)
 
template<AAnySignal Signal, aui::derived_from< AObject > Object, ACompatibleSlotFor< Signal > Function>
static void connect (Signal &signal, Object &object, Function &&function)
 
template<AAnySignal Signal, aui::derived_from< AObject > Object, ACompatibleSlotFor< Signal > Function>
static void connect (Signal &signal, _< Object > object, Function &&function)
 
static void moveToThread (aui::no_escape< AObject > object, _< AAbstractThread > thread)
 
- Protected Member Functions inherited from AObject
void setThread (_< AAbstractThread > thread)
 Set thread of the object.
 

Member Function Documentation

◆ childrenCount()

template<typename T >
virtual size_t ITreeModel< T >::childrenCount ( const ATreeModelIndexOrRoot &  vertex)
pure virtual

Count of children of the vertex.

Parameters
vertexthe vertex to determine the children count of

Implemented in ATreeModel< T >, and ViewHierarchyTreeModel.

◆ indexOfChild()

template<typename T >
virtual ATreeModelIndex ITreeModel< T >::indexOfChild ( size_t  row,
size_t  column,
const ATreeModelIndexOrRoot &  vertex 
)
pure virtual

Creates valid ATreeModelIndex of the child.

Parameters
rowchild row (index)
columnchild column (typically 0)
parentvertex. std::nullopt indicates root vertex
Returns
The child of the parent index with specified row and column.

Implemented in ATreeModel< T >, and ViewHierarchyTreeModel.

◆ itemAt()

template<typename T >
virtual T ITreeModel< T >::itemAt ( const ATreeModelIndex index)
pure virtual

value representation, used by ATreeView.

Implemented in ATreeModel< T >, and ViewHierarchyTreeModel.

◆ parent()

template<typename T >
virtual ATreeModelIndexOrRoot ITreeModel< T >::parent ( const ATreeModelIndex vertex)
pure virtual

Creates index of parent vertex of the specified vertex.

Implemented in ViewHierarchyTreeModel, and ATreeModel< T >.

#include <AUI/Model/ITreeModel.h>


The documentation for this class was generated from the following file:
Inheritance diagram for ITreeModel< T >:
Collaboration diagram for ITreeModel< T >: