Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
QmitkSliceNavigationListener.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 
14 #ifndef __Q_MITK_SLICE_NAVIGATION_LISTENER_H
15 #define __Q_MITK_SLICE_NAVIGATION_LISTENER_H
16 
17 #include <itkEventObject.h>
18 
19 #include <QObject>
20 
22 
23 namespace itk
24 {
25  class Object;
26 }
27 
28 namespace mitk
29 {
30  class SliceNavigationController;
31  struct IRenderWindowPart;
32 }
33 
34 
61  {
62  Q_OBJECT
63 
64  public:
66  ~QmitkSliceNavigationListener() override;
67 
68  signals:
69  void SliceChanged();
70 
71  public slots:
72  void RenderWindowPartActivated(mitk::IRenderWindowPart* renderWindowPart);
73  void RenderWindowPartDeactivated(mitk::IRenderWindowPart* renderWindowPart);
74 
75  protected slots:
77  void OnSliceChangedDelayed();
78 
79  protected:
80 
82  void OnSliceChangedInternal(const itk::EventObject& e);
83 
84  void OnSliceNavigationControllerDeleted(const itk::Object* sender, const itk::EventObject& /*e*/);
85 
88  bool InitObservers();
89  void RemoveObservers(const mitk::SliceNavigationController* deletedSlicer);
91  void RemoveAllObservers(mitk::IRenderWindowPart* deletedPart = nullptr);
92 
94 
95  // Needed for observing the events for when a slice or time step is changed.
97 
99  struct ObserverInfo
100  {
103  std::string renderWindowName;
105 
106  ObserverInfo(mitk::SliceNavigationController* controller, int observerTag,
107  const std::string& renderWindowName, mitk::IRenderWindowPart* part);
108  };
109 
110  typedef std::multimap<const mitk::SliceNavigationController*, ObserverInfo> ObserverMapType;
111  ObserverMapType m_ObserverMap;
112 
115  };
116 
117 #endif
118 
Interface for a MITK Workbench Part providing a render window.
DataCollection - Class to facilitate loading/accessing structured data.
Controls the selection of the slice the associated BaseRenderer will display.
Helper class to allow QmitkAbstractView and derived classes to react on changes of the slice/time nav...
mitk::IRenderWindowPart * m_renderWindowPart
std::multimap< const mitk::SliceNavigationController *, ObserverInfo > ObserverMapType
#define MITK_QT_COMMON
bool m_internalUpdateFlag
Is a visualization currently running?