Isis 3 Programmer Reference
AbstractParentItem.cpp
1
7/* SPDX-License-Identifier: CC0-1.0 */
8
9#include "AbstractParentItem.h"
10
11#include <QList>
12
13#include "RootItem.h"
14
15
16namespace Isis {
17 AbstractParentItem::AbstractParentItem(AbstractTreeItem *parent) :
18 AbstractTreeItem(parent) {
19 m_children = NULL;
20 m_firstVisibleChild = NULL;
21 m_lastVisibleChild = NULL;
22 m_children = new QList< AbstractTreeItem * >;
23 }
24
25
26 AbstractParentItem::~AbstractParentItem() {
27 if (m_children) {
28 for (int i = 0; i < m_children->size(); i++) {
29 delete(*m_children)[i];
30 (*m_children)[i] = NULL;
31 }
32 delete m_children;
33 m_children = NULL;
34 }
35
36 if (m_firstVisibleChild) {
37 m_firstVisibleChild = NULL;
38 }
39
40 if (m_lastVisibleChild) {
41 m_lastVisibleChild = NULL;
42 }
43 }
44
45
46 AbstractTreeItem *AbstractParentItem::childAt(int row) const {
47 return m_children->value(row);
48 }
49
50
51 QList< AbstractTreeItem * > AbstractParentItem::getChildren() const {
52 return *m_children;
53 }
54
55
56 AbstractTreeItem *AbstractParentItem::getFirstVisibleChild() const {
57 return m_firstVisibleChild;
58 }
59
60
61 AbstractTreeItem *AbstractParentItem::getLastVisibleChild() const {
62 return m_lastVisibleChild;
63 }
64
65
66 int AbstractParentItem::indexOf(AbstractTreeItem *child) const {
67 return m_children->indexOf(child);
68 }
69
70
71 int AbstractParentItem::childCount() const {
72 return m_children->size();
73 }
74
75
76 void AbstractParentItem::addChild(AbstractTreeItem *child) {
77
78 // if (!m_firstVisibleChild && child->isVisible())
79 // {
80 // m_firstVisibleChild = child;
81 // m_lastVisibleChild = child;
82 // }
83 //
84 // AbstractTreeItem * childWithNewNext = NULL;
85 // if (m_lastVisibleChild && m_firstVisibleChild != child)
86 // {
87 // childWithNewNext = m_lastVisibleChild;
88 // }
89
90 m_children->append(child);
91 child->setParent(this);
92
93 // if (childWithNewNext && child->isVisible())
94 // {
95 // childWithNewNext->setNextVisiblePeer(child);
96 // m_lastVisibleChild = child;
97 // }
98 }
99
100
101 void AbstractParentItem::setFirstVisibleChild(AbstractTreeItem *child) {
102 m_firstVisibleChild = child;
103 }
104
105
106 void AbstractParentItem::setLastVisibleChild(AbstractTreeItem *child) {
107 m_lastVisibleChild = child;
108 }
109}
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16