3 #include "AbstractParentItem.h"
12 AbstractParentItem::AbstractParentItem(AbstractTreeItem *parent) :
13 AbstractTreeItem(parent) {
15 m_firstVisibleChild = NULL;
16 m_lastVisibleChild = NULL;
21 AbstractParentItem::~AbstractParentItem() {
23 for (
int i = 0; i < m_children->size(); i++) {
24 delete(*m_children)[i];
25 (*m_children)[i] = NULL;
31 if (m_firstVisibleChild) {
32 m_firstVisibleChild = NULL;
35 if (m_lastVisibleChild) {
36 m_lastVisibleChild = NULL;
41 AbstractTreeItem *AbstractParentItem::childAt(
int row)
const {
43 ASSERT(row >= 0 && row < m_children->size());
44 return m_children->value(row);
54 AbstractTreeItem *AbstractParentItem::getFirstVisibleChild()
const {
55 return m_firstVisibleChild;
59 AbstractTreeItem *AbstractParentItem::getLastVisibleChild()
const {
60 return m_lastVisibleChild;
64 int AbstractParentItem::indexOf(AbstractTreeItem *child)
const {
67 return m_children->indexOf(child);
71 int AbstractParentItem::childCount()
const {
73 return m_children->size();
77 void AbstractParentItem::addChild(AbstractTreeItem *child) {
80 ASSERT(!dynamic_cast< RootItem * >(child));
94 m_children->append(child);
95 child->setParent(
this);
105 void AbstractParentItem::setFirstVisibleChild(AbstractTreeItem *child) {
106 m_firstVisibleChild = child;
110 void AbstractParentItem::setLastVisibleChild(AbstractTreeItem *child) {
111 m_lastVisibleChild = child;