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

U.S. Department of the Interior | U.S. Geological Survey
ISIS | Privacy & Disclaimers | Astrogeology Research Program
To contact us, please post comments and questions on the ISIS Support Center
File Modified: 07/12/2023 23:13:41