Isis Developer Reference
ImageImageTreeModel.h
Go to the documentation of this file.
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:
73  CreateRootItemFunctor(AbstractTreeModel *tm, ControlNet *net, QThread *tt);
74  CreateRootItemFunctor(const CreateRootItemFunctor &);
75  ~CreateRootItemFunctor();
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::ImageImageTreeModel::~ImageImageTreeModel
virtual ~ImageImageTreeModel()
Definition: ImageImageTreeModel.cpp:44
Isis::ImageImageTreeModel::ImageImageTreeModel
ImageImageTreeModel(ControlNet *cNet, TreeView *v, QObject *parent=0)
Definition: ImageImageTreeModel.cpp:38
Isis::AbstractTreeModel::filterCountsChanged
void filterCountsChanged(int visibleTopLevelItemCount, int topLevelItemCount)
This signal is emitted after filtering to provide the number of visible top-level items remaining aft...
Isis::ImageParentItem
Tree item that is a parent and represents an image.
Definition: ImageParentItem.h:34
TreeViewContent.h
QList< QString >
Isis::AbstractTreeModel::getRebuildWatcher
QFutureWatcher< QAtomicPointer< RootItem > > * getRebuildWatcher() const
Definition: AbstractTreeModel.cpp:390
Isis::AbstractTreeModel
Base class for tree models.
Definition: AbstractTreeModel.h:47
Isis::ImageImageTreeModel
Tree model for images and images.
Definition: ImageImageTreeModel.h:48
Isis::AbstractTreeModel::isFrozen
bool isFrozen() const
Definition: AbstractTreeModel.cpp:345
ControlNet.h
Isis::AbstractTreeModel::setRebuilding
void setRebuilding(bool running)
Definition: AbstractTreeModel.h:81
ImageImageTreeModel.h
Isis::ImageImageTreeModel::rebuildItems
void rebuildItems()
Definition: ImageImageTreeModel.cpp:122
Isis::AbstractTreeModel::getControlNetwork
ControlNet * getControlNetwork() const
Definition: AbstractTreeModel.cpp:384
RootItem.h
Isis::ControlNet
a control network
Definition: ControlNet.h:257
TreeView.h
ImageParentItem.h
Isis::AbstractTreeModel::getTopLevelItemCount
int getTopLevelItemCount() const
Definition: AbstractTreeModel.cpp:266
Isis::AbstractTreeModel::cancelSort
void cancelSort()
PointLeafItem.h
QThread
AbstractTreeModel.h
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
ImageLeafItem.h
Isis::TreeView
Definition: TreeView.h:31
QObject
IsisDebug.h
Isis::AbstractTreeModel::queueRebuild
void queueRebuild()
Definition: AbstractTreeModel.cpp:350
ControlMeasure.h
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16