33 #include <QModelIndex>
50 ModelItem_wtr Parent_;
51 ModelItemsList_t Children_;
53 QAbstractItemModel *
const Model_;
60 ModelItem (QAbstractItemModel *model,
const QModelIndex& idx,
const ModelItem_wtr& parent);
64 const_iterator begin ()
const;
65 const_iterator end ()
const;
67 ModelItem_ptr GetChild (
int row)
const;
68 const ModelItemsList_t& GetChildren ()
const;
69 int GetRowCount ()
const;
73 iterator EraseChild (iterator it);
74 iterator EraseChildren (iterator begin, iterator end);
76 template<
typename... Args>
79 Children_ << std::make_shared<ModelItem> (std::forward<Args> (args)...);
82 template<
typename... Args>
85 Children_.insert (pos, std::make_shared<ModelItem> (std::forward<Args> (args)...));
88 const QModelIndex& GetIndex ()
const;
90 void RefreshIndex (
int modelStartingRow);
92 QAbstractItemModel* GetModel ()
const;
94 ModelItem_ptr GetParent ()
const;
96 int GetRow (
const ModelItem_ptr& item)
const;
97 int GetRow (
const ModelItem_cptr& item)
const;
100 ModelItem_ptr FindChild (QModelIndex index)
const;
std::shared_ptr< ModelItem > ModelItem_ptr
QVector< ModelItem_ptr > ModelItemsList_t
ModelItemsList_t::const_iterator const_iterator
std::shared_ptr< const ModelItem > ModelItem_cptr
std::weak_ptr< ModelItem > ModelItem_wtr
void InsertChild(int pos, Args &&...args)
void AppendChild(Args &&...args)
ModelItemsList_t::iterator iterator