USGS

Isis 3.0 Object Programmers' Reference

Home

ImageImageTreeModel.h
1 #ifndef ImageImageTreeModel_H
2 #define ImageImageTreeModel_H
3 
4 
5 // parent
6 #include "AbstractTreeModel.h"
7 
8 // parent of inner class
9 #include <functional>
10 
11 
12 template <typename A> class QFutureWatcher;
13 class QString;
14 
15 
16 namespace Isis {
17  class ControlCubeGraphNode;
18  class ControlNet;
19 
20  namespace CnetViz {
21  class TreeView;
22  class ImageParentItem;
23 
42  Q_OBJECT
43 
44  public:
46  QObject *parent = 0);
47  virtual ~ImageImageTreeModel();
48 
49  // This is a slot!!! There is no "pubic slots:" because it has already
50  // been marked as a slot in the parent (pure virtual). Adding the slots
51  // keyword here would do nothing except make more work for both MOC and
52  // the compiler!
53  void rebuildItems();
54 
55 
56  private:
63  class CreateRootItemFunctor : public std::unary_function <
64  ControlCubeGraphNode *const &, ImageParentItem * > {
65  public:
69  ImageParentItem *operator()(ControlCubeGraphNode *const &)
70  const;
71  CreateRootItemFunctor &operator=(const CreateRootItemFunctor &);
72 
73  static void addToRootItem(QAtomicPointer< RootItem > &,
74  ImageParentItem *const &);
75 
76  private:
77  int m_avgCharWidth;
78  AbstractTreeModel *m_treeModel;
79  QThread *m_targetThread;
80  };
81  };
82  }
83 }
84 
85 #endif