Isis 3.0 Object Programmers' Reference
Home
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
ImagePointTreeModel.h
1
#ifndef ImagePointTreeModel_H
2
#define ImagePointTreeModel_H
3
4
// parent
5
#include "AbstractTreeModel.h"
6
7
// parent of inner class
8
#include <functional>
9
10
11
template
<
typename
A>
class
QFutureWatcher
;
12
class
QString;
13
14
15
namespace
Isis {
16
class
ControlCubeGraphNode;
17
class
ControlNet;
18
19
namespace
CnetViz {
20
class
TreeView;
21
class
ImageParentItem;
22
40
class
ImagePointTreeModel
:
public
AbstractTreeModel
{
41
Q_OBJECT
42
43
public
:
44
ImagePointTreeModel
(
ControlNet
*cNet,
TreeView
*v,
45
QObject
*parent = 0);
46
virtual
~
ImagePointTreeModel
();
47
48
// This is a slot!!! There is no "pubic slots:" because it has already
49
// been marked as a slot in the parent (pure virtual). Adding the slots
50
// keyword here would do nothing except make more work for both MOC and
51
// the compiler!
52
void
rebuildItems();
53
54
55
private
:
61
class
CreateRootItemFunctor
:
public
std::unary_function <
62
ControlCubeGraphNode *const &, ImageParentItem * > {
63
public
:
64
CreateRootItemFunctor
(
AbstractTreeModel
*tm,
QThread
*tt);
65
CreateRootItemFunctor
(
const
CreateRootItemFunctor
&);
66
~
CreateRootItemFunctor
();
67
ImageParentItem
*operator()(
ControlCubeGraphNode
*
const
&)
const
;
68
CreateRootItemFunctor
&operator=(
const
CreateRootItemFunctor
&);
69
70
static
void
addToRootItem(
QAtomicPointer< RootItem >
&,
71
ImageParentItem
*
const
&);
72
73
private
:
74
int
m_avgCharWidth;
75
AbstractTreeModel
*m_treeModel;
76
QThread
*m_targetThread;
77
};
78
};
79
}
80
}
81
82
#endif