Isis 3 Programmer Reference
PointMeasureTreeModel.h
1#ifndef PointMeasureTreeModel_H
2#define PointMeasureTreeModel_H
3
9
10/* SPDX-License-Identifier: CC0-1.0 */
11
12// parent
13#include "AbstractTreeModel.h"
14
15// parent of inner class
16#include <functional>
17
18
19template <typename A> class QFutureWatcher;
20class QString;
21
22
23namespace Isis {
24 class ControlNet;
25 class ControlPoint;
26 class PointParentItem;
27 class RootItem;
28 class TreeView;
29
30
49 class PointMeasureTreeModel : public AbstractTreeModel {
50 Q_OBJECT
51
52 public:
53 PointMeasureTreeModel(ControlNet *cNet, TreeView *v,
54 QObject *parent = 0);
55 virtual ~PointMeasureTreeModel();
56
57 // These are slots!!! There is no "pubic slots:" because it has already
58 // been done in the parent (they are pure virtual). Adding the slots
59 // keyword here would do nothing except make more work for both MOC and
60 // the compiler!
61 void rebuildItems();
62
63
64 private:
70 class CreateRootItemFunctor : public std::function <PointParentItem *(ControlPoint *const &)> {
71 public:
72 CreateRootItemFunctor(AbstractTreeModel *tm, QThread *tt);
73 CreateRootItemFunctor(const CreateRootItemFunctor &);
74 ~CreateRootItemFunctor();
75 PointParentItem *operator()(ControlPoint *const &) const;
76
77 static void addToRootItem(QAtomicPointer< RootItem > &,
78 PointParentItem *const &);
79 CreateRootItemFunctor &operator=(const CreateRootItemFunctor &);
80
81
82 private:
83 int m_avgCharWidth;
84 AbstractTreeModel *m_treeModel;
85 QThread *m_targetThread;
86 };
87 };
88}
89
90#endif
a control network
Definition ControlNet.h:258
A single control point.
Tree item that is a parent and represents a control point.
The root of a tree.
Definition RootItem.h:37
This is free and unencumbered software released into the public domain.
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