1#ifndef TREEMODELINTERFACE_H
2#define TREEMODELINTERFACE_H
28#define TREEMODEL_REMOVE_ROWS_DEF(classname) \
29bool classname::removeRows(int row, int count, QModelIndex const & parent) \
34 int const last = row + count - 1;\
35 emit beginRemoveRows(parent, row, last);\
36 for (int current = last; current != row - 1; --current)\
38 QModelIndex src_index = this->mapToSource(index(current, parent.column(), parent));\
39 treenode * element = this->getnode(src_index);\
41 if (element != nullptr)\
43 treenode * element_parent = element->GetParent();\
44 if (element_parent != nullptr)\
46 element_parent->RemoveChild(element);\
54 emit endRemoveRows();\
virtual ~TreeModelInterface()=default
virtual treenode * getnode(const QModelIndex &index) const =0