Isis Developer Reference
ImagePointTreeModel.h
Go to the documentation of this file.
1#ifndef ImagePointTreeModel_H
2#define ImagePointTreeModel_H
3
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 ImageParentItem;
26 class TreeView;
27
49 Q_OBJECT
50
51 public:
53 QObject *parent = 0);
54 virtual ~ImagePointTreeModel();
55
56 // This is a slot!!! There is no "pubic slots:" because it has already
57 // been marked as a slot in the parent (pure virtual). Adding the slots
58 // keyword here would do nothing except make more work for both MOC and
59 // the compiler!
60 void rebuildItems();
61
62
63 private:
69 class CreateRootItemFunctor : public std::unary_function <
70 const QString, ImageParentItem * > {
71 public:
72 CreateRootItemFunctor(AbstractTreeModel *tm, ControlNet *net, QThread *tt);
73 CreateRootItemFunctor(const CreateRootItemFunctor &);
74 ~CreateRootItemFunctor();
75 ImageParentItem *operator()(const QString imageSerial) const;
76 CreateRootItemFunctor &operator=(const CreateRootItemFunctor &);
77
78 static void addToRootItem(QAtomicPointer< RootItem > &,
79 ImageParentItem *const &);
80
81 private:
82 int m_avgCharWidth;
83 AbstractTreeModel *m_treeModel;
84 QThread *m_targetThread;
85 ControlNet *m_controlNet;
86 };
87 };
88}
89
90#endif
Base class for tree models.
Definition: AbstractTreeModel.h:47
a control network
Definition: ControlNet.h:258
Tree item that is a parent and represents an image.
Definition: ImageParentItem.h:34
Tree model for images and control points.
Definition: ImagePointTreeModel.h:48
virtual ~ImagePointTreeModel()
Definition: ImagePointTreeModel.cpp:44
void rebuildItems()
Definition: ImagePointTreeModel.cpp:124
Definition: TreeView.h:31
This is free and unencumbered software released into the public domain.
Definition: ConcurrentControlNetReader.h:20
This is free and unencumbered software released into the public domain.
Definition: AbstractTableModel.h:24
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16