File failed to load: https://isis.astrogeology.usgs.gov/9.0.0/Object/assets/jax/output/NativeMML/config.js
Isis 3 Programmer Reference
AbstractParentItem.cpp
1
6
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}
Base class for an item in the tree.
This is free and unencumbered software released into the public domain.
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16