AUI Framework  master
Cross-platform base for C++ UI apps
Loading...
Searching...
No Matches
ATreeModel< T > Class Template Reference

Basic implementation of ITreeModel. More...

#include <AUI/Model/ATreeModel.h>

Classes#

struct  Item
 

Public Member Functions#

 ATreeModel (AVector< Item > items)
 
size_t childrenCount (const ATreeModelIndexOrRoot &vertex) override
 Count of children of the vertex.
 
itemAt (const ATreeModelIndex &index) override
 value representation, used by ATreeView.
 
ATreeModelIndex indexOfChild (size_t row, size_t column, const ATreeModelIndexOrRoot &vertex) override
 Creates valid ATreeModelIndex of the child.
 
ATreeModelIndex makeIndex (_< Node > node)
 
ATreeModelIndexOrRoot parent (const ATreeModelIndex &vertex) override
 Creates index of parent vertex of the specified vertex.
 
- Public Member Functions inherited from ITreeModel< T >
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>
decltype(auto) 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) noexcept
 
_< AAbstractThreadgetThread () const
 
bool isSlotsCallsOnlyOnMyThread () const noexcept
 
void setSlotsCallsOnlyOnMyThread (bool slotsCallsOnlyOnMyThread)
 
- Public Member Functions inherited from AObjectBase
 AObjectBase (AObjectBase &&rhs) noexcept
 
 AObjectBase (const AObjectBase &rhs) noexcept
 
AObjectBaseoperator= (const AObjectBase &rhs) noexcept
 
AObjectBaseoperator= (AObjectBase &&rhs) noexcept
 
- Public Member Functions inherited from aui::noncopyable
 noncopyable (const noncopyable &)=delete
 
noncopyableoperator= (const noncopyable &)=delete
 

Additional Inherited Members#

- Public Types inherited from ITreeModel< T >
using stored_t = T
 
- Static Public Member Functions inherited from AObject
static void disconnect ()
 
template<AAnySignal Signal, aui::derived_from< AObjectBase > Object, ACompatibleSlotFor< Signal > Function>
static decltype(auto) 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 decltype(auto) 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 decltype(auto) 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 decltype(auto) 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 decltype(auto) 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)
 
- Signals and public fields inherited from ITreeModel< T >
emits< ATreeModelIndexdataChanged
 Model data was changed.
 
emits< ATreeModelIndexdataInserted
 Model data was added.
 
emits< ATreeModelIndexdataRemoved
 Model data about to remove.
 
- Static Public Attributes inherited from AObject
static constexpr AObjectBaseGENERIC_OBSERVER = nullptr
 Indicates that a connection should not be explicitly linked to receiver's lifetime.
 
- Static Public Attributes inherited from AObjectBase
static ASpinlockMutex SIGNAL_SLOT_GLOBAL_SYNC
 
- Protected Member Functions inherited from AObject
void setThread (_< AAbstractThread > thread)
 Set thread of the object.
 
- Protected Member Functions inherited from AObjectBase
void clearAllIngoingConnections () noexcept
 
virtual void handleSlotException (std::exception_ptr exception)
 Called then an exception has thrown during slot processing of the signal emitted by this object.
 

Detailed Description#

template<typename T>
class ATreeModel< T >
Examples
examples/ui/views/src/ExampleWindow.cpp.

Member Function Documentation#

◆ childrenCount()#

template<typename T>
size_t ATreeModel< T >::childrenCount ( const ATreeModelIndexOrRoot & vertex)
inlineoverridevirtual
Parameters
vertexthe vertex to determine the children count of

Implements ITreeModel< T >.

◆ indexOfChild()#

template<typename T>
ATreeModelIndex ATreeModel< T >::indexOfChild ( size_t row,
size_t column,
const ATreeModelIndexOrRoot & vertex )
inlineoverridevirtual
Parameters
rowchild row (index)
columnchild column (typically 0)
vertexvertex
Returns
The child of the parent index with specified row and column.

Implements ITreeModel< T >.

◆ itemAt()#

template<typename T>
T ATreeModel< T >::itemAt ( const ATreeModelIndex & index)
inlineoverridevirtual

Implements ITreeModel< T >.

◆ parent()#

template<typename T>
ATreeModelIndexOrRoot ATreeModel< T >::parent ( const ATreeModelIndex & vertex)
inlineoverridevirtual

Implements ITreeModel< T >.