Isis 3 Programmer Reference
ImageImageTreeModel.h
1 #ifndef ImageImageTreeModel_H
2 #define ImageImageTreeModel_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 
19 template <typename A> class QFutureWatcher;
20 class QString;
21 
22 
23 namespace Isis {
24  class ControlNet;
25  class ImageParentItem;
26  class TreeView;
27 
49  Q_OBJECT
50 
51  public:
53  QObject *parent = 0);
54  virtual ~ImageImageTreeModel();
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:
70  class CreateRootItemFunctor : public std::unary_function <
71  const QString, ImageParentItem * > {
72  public:
76  ImageParentItem *operator()(const QString imageSerial)
77  const;
78  CreateRootItemFunctor &operator=(const CreateRootItemFunctor &);
79 
80  static void addToRootItem(QAtomicPointer< RootItem > &,
81  ImageParentItem *const &);
82 
83  private:
84  int m_avgCharWidth;
85  AbstractTreeModel *m_treeModel;
86  QThread *m_targetThread;
87  ControlNet *m_controlNet;
88  };
89  };
90 }
91 
92 #endif
Isis::ImageParentItem
Tree item that is a parent and represents an image.
Definition: ImageParentItem.h:34
Isis::AbstractTreeModel
Base class for tree models.
Definition: AbstractTreeModel.h:47
Isis::ImageImageTreeModel
Tree model for images and images.
Definition: ImageImageTreeModel.h:48
Isis::ImageImageTreeModel::CreateRootItemFunctor
Definition: ImageImageTreeModel.h:71
Isis::ControlNet
a control network
Definition: ControlNet.h:257
QThread
QFutureWatcher
This is free and unencumbered software released into the public domain.
Definition: AbstractTableModel.h:24
QAtomicPointer
This is free and unencumbered software released into the public domain.
Definition: ConcurrentControlNetReader.h:20
Isis::TreeView
Definition: TreeView.h:31
QObject
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16