NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
niftkIGIDataSourceManagerWidget.h
Go to the documentation of this file.
1 /*=============================================================================
2 
3  NifTK: A software platform for medical image computing.
4 
5  Copyright (c) University College London (UCL). All rights reserved.
6 
7  This software is distributed WITHOUT ANY WARRANTY; without even
8  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
9  PURPOSE.
10 
11  See LICENSE.txt in the top level directory for details.
12 
13 =============================================================================*/
14 
15 #ifndef niftkIGIDataSourceManagerWidget_h
16 #define niftkIGIDataSourceManagerWidget_h
17 
18 #include "niftkIGIDataSourcesManagerExports.h"
19 #include "ui_niftkIGIDataSourceManagerWidget.h"
21 
22 #include <mitkDataStorage.h>
23 #include <QWidget>
24 #include <QMutex>
25 
26 namespace niftk
27 {
28 
37 class NIFTKIGIDATASOURCESMANAGER_EXPORT IGIDataSourceManagerWidget :
38  public QWidget,
39  public Ui_IGIDataSourceManagerWidget
40 {
41 
42  Q_OBJECT
43 
44 public:
45 
46  IGIDataSourceManagerWidget(mitk::DataStorage::Pointer dataStorage, QWidget *parent = 0);
47  virtual ~IGIDataSourceManagerWidget();
48 
52  void SetDirectoryPrefix(const QString& directoryPrefix);
53 
57  void SetFramesPerSecond(const int& framesPerSecond);
58 
62  void StartRecording();
63 
67  void StopRecording();
68 
72  void PauseUpdate();
73 
77  void RestartUpdate();
78 
79 signals:
80 
84  void RecordingStarted(QString basedirectory);
85 
89  void UpdateGuiFinishedDataSources(niftk::IGIDataType::IGITimeType);
90 
94  void UpdateFinishedRendering();
95 
96 protected:
97 
98  IGIDataSourceManagerWidget(const IGIDataSourceManagerWidget&); // Purposefully not implemented.
99  IGIDataSourceManagerWidget& operator=(const IGIDataSourceManagerWidget&); // Purposefully not implemented.
100 
101 private slots:
102 
106  void OnPlayStart();
107 
111  void OnRecordStart();
112 
116  void OnStop();
117 
121  void OnAddSource();
122 
126  void OnRemoveSource();
127 
132  void OnCellDoubleClicked(int row, int column);
133 
137  void OnFreezeTableHeaderClicked(int section);
138 
143  void OnUpdateFinishedDataSources(niftk::IGIDataType::IGITimeType, QList< QList<IGIDataItemInfo> >);
144 
148  void OnPlaybackTimestampEditFinished();
149 
153  void OnPlaybackTimeAdvanced(int newSliderValue);
154 
158  void OnTimerUpdated(QString rawString, QString humanReadableString);
159 
163  void OnPlayingPushButtonClicked(bool isChecked);
164 
168  void OnEndPushButtonClicked(bool isChecked);
169 
173  void OnStartPushButtonClicked(bool isChecked);
174 
178  void OnSliderReleased();
179 
183  void OnBroadcastStatusString(QString);
184 
188  void OnGrabScreen(bool isChecked);
189 
190 private:
191 
192  QMutex m_Lock;
193  IGIDataSourceManager* m_Manager;
194 
198  void GrabScreen();
199 
200 }; // end class;
201 
202 } // end namespace
203 
204 #endif
Class to manage a list of IGIDataSources (trackers, ultra-sound machines, video etc).
Definition: niftkIGIDataSourceManager.h:53
SystemTimeServiceI::TimeType IGITimeType
Definition: niftkIGIDataType.h:39
Widget class to manage a list of IGIDataSources (trackers, ultra-sound machines, video etc)...
Definition: niftkIGIDataSourceManagerWidget.h:37
GLenum GLenum GLvoid GLvoid * column
Definition: glew.h:4074
GLenum GLenum GLvoid * row
Definition: glew.h:4074
Definition: niftkExceptionObject.h:21