USGS

Isis 3.0 Object Programmers' Reference

Home

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 
41  Q_OBJECT
42 
43  public:
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:
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