Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
QmitkRenderWindowDataStorageListModel.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #ifndef QMITKDATASTORAGERENDERWINDOWLISTMODEL_H
14 #define QMITKDATASTORAGERENDERWINDOWLISTMODEL_H
15 
16 // render window manager UI model
18 
19 // render window manager module
22 
23 //mitk core
24 #include <mitkBaseRenderer.h>
25 
26 // qt widgets module
28 
29 /*
30 * @brief The 'QmitkDataStorageRenderWindowListModel' is a list model derived from the 'QmitkAbstractDataStorageModel'.
31 */
33 {
34  Q_OBJECT
35 
36 public:
37 
38  QmitkRenderWindowDataStorageListModel(QObject* parent = nullptr);
39 
40  // override from 'QmitkAbstractDataStorageModel'
44  void DataStorageChanged() override;
48  void NodePredicateChanged() override;
52  void NodeAdded(const mitk::DataNode* node) override;
56  void NodeChanged(const mitk::DataNode* node) override;
60  void NodeRemoved(const mitk::DataNode* node) override;
61 
62  // override from 'QAbstractItemModel'
63  QModelIndex index(int row, int column, const QModelIndex& parent = QModelIndex()) const override;
64  QModelIndex parent(const QModelIndex& child) const override;
65 
66  int rowCount(const QModelIndex& parent = QModelIndex()) const override;
67  int columnCount(const QModelIndex& parent = QModelIndex()) const override;
68 
69  QVariant data(const QModelIndex& index, int role) const override;
70  bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole) override;
71 
72  Qt::ItemFlags flags(const QModelIndex& index) const override;
73 
74  Qt::DropActions supportedDropActions() const override;
75  Qt::DropActions supportedDragActions() const override;
76  QStringList mimeTypes() const override;
77  QMimeData* mimeData(const QModelIndexList& indexes) const override;
78 
79  bool dropMimeData(const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent) override;
80 
81  void SetControlledRenderer(mitk::RenderWindowLayerUtilities::RendererVector controlledRenderer);
82 
83  void SetCurrentRenderer(mitk::BaseRenderer* baseRenderer);
84  mitk::BaseRenderer* GetCurrentRenderer() const;
85 
92  void AddDataNodeToAllRenderer(mitk::DataNode* dataNode);
93 
94 private:
95 
96  void UpdateModelData();
97 
98  std::unique_ptr<mitk::RenderWindowLayerController> m_RenderWindowLayerController;
101 
102 };
103 
104 #endif // QMITKDATASTORAGERENDERWINDOWLISTMODEL_H
virtual void NodePredicateChanged()=0
virtual void DataStorageChanged()=0
Organizes the rendering process.
virtual void NodeChanged(const mitk::DataNode *node)=0
std::vector< BaseRenderer * > RendererVector
virtual void NodeRemoved(const mitk::DataNode *node)=0
virtual void NodeAdded(const mitk::DataNode *node)=0
std::map< int, DataNode::Pointer, std::greater< int > > LayerStack
#define MITKRENDERWINDOWMANAGERUI_EXPORT
Class for nodes of the DataTree.
Definition: mitkDataNode.h:57