AUI Framework  develop
Cross-platform base for C++ UI apps
Loading...
Searching...
No Matches
ITreeModel< T > Class Template Referenceabstract

Tree model. More...

#include <AUI/Model/ITreeModel.h>

Public Types

using stored_t = T
 

Public Member Functions

virtual size_t childrenCount (const ATreeModelIndexOrRoot &vertex)=0
 Count of children of the vertex.
 
virtual T itemAt (const ATreeModelIndex &index)=0
 value representation, used by ATreeView.
 
virtual ATreeModelIndex indexOfChild (size_t row, size_t column, const ATreeModelIndexOrRoot &vertex)=0
 Creates valid ATreeModelIndex of the child.
 
virtual ATreeModelIndexOrRoot parent (const ATreeModelIndex &vertex)=0
 Creates index of parent vertex of the specified vertex.
 
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 ()
 
template<typename Connectable, ACompatibleSlotFor< Connectable > Function>
void connect (const Connectable &connectable, Function &&function)
 Connects signal or property to slot of "this" object.
 
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 AObjectBase
 AObjectBase (AObjectBase &&rhs) noexcept
 
void clearSignals () noexcept
 
- 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< AObjectBase > Object, ACompatibleSlotFor< Signal > Function>
static void connect (const Signal &signal, Object *object, Function &&function)
 Connects signal to the slot of the specified object.
 
template<AAnyProperty Property, aui::derived_from< AObjectBase > Object, typename Function>
static void connect (const Property &property, Object *object, Function &&function)
 Connects property to the slot of the specified object.
 
template<APropertyReadable PropertySource, APropertyWritable PropertyDestination>
requires requires { { *propertySource } -> aui::convertible_to<std::decay_t<decltype(*propertyDestination)>>; }
static void connect (PropertySource &&propertySource, PropertyDestination &&propertyDestination)
 Connects source property to the destination property.
 
template<APropertyWritable PropertySource, APropertyWritable PropertyDestination>
requires requires { { *propertySource } -> aui::convertible_to<std::decay_t<decltype(*propertyDestination)>>; { *propertyDestination } -> aui::convertible_to<std::decay_t<decltype(*propertySource)>>; }
static void biConnect (PropertySource &&propertySource, PropertyDestination &&propertyDestination)
 Connects source property to the destination property and opposite (bidirectionally).
 
template<AAnySignalOrProperty Connectable, aui::derived_from< AObjectBase > Object, ACompatibleSlotFor< Connectable > Function>
static void connect (const Connectable &connectable, Object &object, Function &&function)
 Connects signal or property to the slot of the specified object.
 
template<AAnySignalOrProperty Connectable, aui::derived_from< AObjectBase > Object, ACompatibleSlotFor< Connectable > Function>
static void connect (const Connectable &connectable, _< Object > object, Function &&function)
 Connects signal or property to the slot of the specified object.
 
template<AAnySignalOrProperty Connectable, aui::derived_from< AObjectBase > Object, typename Function>
static void connect (const Connectable &connectable, ASlotDef< Object *, Function > slotDef)
 Connects signal to the slot of the specified object. Slot is packed to single argument.
 
template<AAnyProperty Property, typename Object, ACompatibleSlotFor< Property > Function>
requires (!aui::derived_from<Object, AObject>)
static void connect (const Property &property, _< Object > object, Function &&function)
 Connects signal or property to the slot of the specified non-AObject type.
 
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.
 

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.

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)
vertexvertex
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 ATreeModel< T >, and ViewHierarchyTreeModel.


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