MNE-CPP  beta 1.0
displaymanager.cpp
Go to the documentation of this file.
1 //=============================================================================================================
36 //*************************************************************************************************************
37 //=============================================================================================================
38 // INCLUDES
39 //=============================================================================================================
40 
41 #include "displaymanager.h"
42 
43 
46 #if defined(QT3D_LIBRARY_AVAILABLE)
47 #include <xDisp/realtimesourceestimatewidget.h>
48 #endif
52 
56 #include <xMeas/realtimeevoked.h>
57 #include <xMeas/realtimecov.h>
59 
60 
61 //#include <xDisp/measurementwidget.h>
62 //#include <xDisp/numericwidget.h>
63 //#include <xDisp/realtimemultisamplearraywidget.h>
64 //#include <xDisp/realtimemultisamplearray_new_widget.h>
65 //#include <xDisp/realtimesourceestimatewidget.h>
66 //#include <xDisp/progressbarwidget.h>
67 //#include <xDisp/textwidget.h>
68 
69 //#include <xMeas/Measurement/text.h>
70 //#include <xMeas/Measurement/realtimesourceestimate.h>
71 //#include <xMeas/Measurement/realtimemultisamplearray_new.h>
72 //#include <xMeas/Measurement/realtimemultisamplearray.h>
73 //#include <xMeas/Measurement/progressbar.h>
74 //#include <xMeas/Measurement/numeric.h>
75 
76 
77 //*************************************************************************************************************
78 //=============================================================================================================
79 // QT INCLUDES
80 //=============================================================================================================
81 
82 #include <QHBoxLayout>
83 #include <QVBoxLayout>
84 
85 #include <QDebug>
86 
87 //*************************************************************************************************************
88 //=============================================================================================================
89 // USED NAMESPACES
90 //=============================================================================================================
91 
92 using namespace MNEX;
93 using namespace XDISPLIB;
94 using namespace XMEASLIB;
95 
96 
97 //*************************************************************************************************************
98 //=============================================================================================================
99 // DEFINE MEMBER METHODS
100 //=============================================================================================================
101 
103 : QObject(parent)
104 {
105 
106 }
107 
108 
109 //*************************************************************************************************************
110 
112 {
113  clean();
114 }
115 
116 
117 //*************************************************************************************************************
118 
119 QWidget* DisplayManager::show(IPlugin::OutputConnectorList &outputConnectorList, QSharedPointer<QTime>& pT, QList< QAction* >& qListActions, QList< QWidget* >& qListWidgets)
120 {
121  QWidget* newDisp = new QWidget;
122  QVBoxLayout* vboxLayout = new QVBoxLayout;
123  QHBoxLayout* hboxLayout = new QHBoxLayout;
124 
125  qListActions.clear();
126 
127  foreach (QSharedPointer< PluginOutputConnector > pPluginOutputConnector, outputConnectorList)
128  {
129  if(pPluginOutputConnector.dynamicCast< PluginOutputData<NewRealTimeSampleArray> >())
130  {
131  QSharedPointer<NewRealTimeSampleArray>* pRealTimeSampleArray = &pPluginOutputConnector.dynamicCast< PluginOutputData<NewRealTimeSampleArray> >()->data();
132  RealTimeSampleArrayWidget* rtsaWidget = new RealTimeSampleArrayWidget(*pRealTimeSampleArray, pT, newDisp);
133 
134  qListActions.append(rtsaWidget->getDisplayActions());
135  qListWidgets.append(rtsaWidget->getDisplayWidgets());
136 
137  connect(pPluginOutputConnector.data(), &PluginOutputConnector::notify,
138  rtsaWidget, &RealTimeSampleArrayWidget::update, Qt::BlockingQueuedConnection);
139 
140  vboxLayout->addWidget(rtsaWidget);
141  rtsaWidget->init();
142  }
143  else if(pPluginOutputConnector.dynamicCast< PluginOutputData<NewRealTimeMultiSampleArray> >())
144  {
145  QSharedPointer<NewRealTimeMultiSampleArray>* pNewRealTimeMultiSampleArray = &pPluginOutputConnector.dynamicCast< PluginOutputData<NewRealTimeMultiSampleArray> >()->data();
146  RealTimeMultiSampleArrayWidget* rtmsaWidget = new RealTimeMultiSampleArrayWidget(*pNewRealTimeMultiSampleArray, pT, newDisp);
147 
148  qListActions.append(rtmsaWidget->getDisplayActions());
149  qListWidgets.append(rtmsaWidget->getDisplayWidgets());
150 
151  connect(pPluginOutputConnector.data(), &PluginOutputConnector::notify,
152  rtmsaWidget, &RealTimeMultiSampleArrayWidget::update, Qt::BlockingQueuedConnection);
153 
154  vboxLayout->addWidget(rtmsaWidget);
155  rtmsaWidget->init();
156  }
157  #if defined(QT3D_LIBRARY_AVAILABLE)
158  else if(pPluginOutputConnector.dynamicCast< PluginOutputData<RealTimeSourceEstimate> >())
159  {
160  QSharedPointer<RealTimeSourceEstimate>* pRealTimeSourceEstimate = &pPluginOutputConnector.dynamicCast< PluginOutputData<RealTimeSourceEstimate> >()->data();
161  RealTimeSourceEstimateWidget* rtseWidget = new RealTimeSourceEstimateWidget(*pRealTimeSourceEstimate, newDisp);//new RealTimeSourceEstimateWidget(*pRealTimeSourceEstimate, pT, newDisp);
162 
163  qListActions.append(rtseWidget->getDisplayActions());
164  qListWidgets.append(rtseWidget->getDisplayWidgets());
165 
166  connect(pPluginOutputConnector.data(), &PluginOutputConnector::notify,
167  rtseWidget, &RealTimeSourceEstimateWidget::update, Qt::BlockingQueuedConnection);
168 
169  vboxLayout->addWidget(rtseWidget);
170  rtseWidget->init();
171  }
172  #endif
173  else if(pPluginOutputConnector.dynamicCast< PluginOutputData<RealTimeEvoked> >())
174  {
175  QSharedPointer<RealTimeEvoked>* pRealTimeEvoked = &pPluginOutputConnector.dynamicCast< PluginOutputData<RealTimeEvoked> >()->data();
176 
177  RealTimeEvokedWidget* rteWidget = new RealTimeEvokedWidget(*pRealTimeEvoked, pT, newDisp);
178 
179  qListActions.append(rteWidget->getDisplayActions());
180  qListWidgets.append(rteWidget->getDisplayWidgets());
181 
182  connect(pPluginOutputConnector.data(), &PluginOutputConnector::notify,
183  rteWidget, &RealTimeEvokedWidget::update, Qt::BlockingQueuedConnection);
184 
185  vboxLayout->addWidget(rteWidget);
186  rteWidget->init();
187  }
188  else if(pPluginOutputConnector.dynamicCast< PluginOutputData<RealTimeCov> >())
189  {
190  QSharedPointer<RealTimeCov>* pRealTimeCov = &pPluginOutputConnector.dynamicCast< PluginOutputData<RealTimeCov> >()->data();
191 
192  RealTimeCovWidget* rtcWidget = new RealTimeCovWidget(*pRealTimeCov, pT, newDisp);
193 
194  qListActions.append(rtcWidget->getDisplayActions());
195  qListWidgets.append(rtcWidget->getDisplayWidgets());
196 
197  connect(pPluginOutputConnector.data(), &PluginOutputConnector::notify,
198  rtcWidget, &RealTimeCovWidget::update, Qt::BlockingQueuedConnection);
199 
200  vboxLayout->addWidget(rtcWidget);
201  rtcWidget->init();
202  }
203  else if(pPluginOutputConnector.dynamicCast< PluginOutputData<FrequencySpectrum> >())
204  {
205  QSharedPointer<FrequencySpectrum>* pFrequencySpectrum = &pPluginOutputConnector.dynamicCast< PluginOutputData<FrequencySpectrum> >()->data();
206 
207  FrequencySpectrumWidget* fsWidget = new FrequencySpectrumWidget(*pFrequencySpectrum, pT, newDisp);
208 
209  qListActions.append(fsWidget->getDisplayActions());
210  qListWidgets.append(fsWidget->getDisplayWidgets());
211 
212  connect(pPluginOutputConnector.data(), &PluginOutputConnector::notify,
213  fsWidget, &FrequencySpectrumWidget::update, Qt::BlockingQueuedConnection);
214 
215  vboxLayout->addWidget(fsWidget);
216  fsWidget->init();
217  }
218  }
219 
220 // // Add all widgets but NumericWidgets to layout and display them
221 // foreach(MeasurementWidget* pMSRW, s_hashMeasurementWidgets.values())
222 // {
223 // if(dynamic_cast<NumericWidget*>(pMSRW))
224 // continue;
225 // vboxLayout->addWidget(pMSRW);
226 // pMSRW->show();
227 // }
228 
229 // foreach(NumericWidget* pNUMW, s_hashNumericWidgets.values())
230 // {
231 // hboxLayout->addWidget(pNUMW);
232 // pNUMW->show();
233 // }
234 
235  vboxLayout->addLayout(hboxLayout);
236  newDisp->setLayout(vboxLayout);
237 
238  return newDisp;
239 }
240 
241 
242 //*************************************************************************************************************
243 
245 {
246  qDebug() << "DisplayManager::clean()";
247 }
248 
QVector< QSharedPointer< PluginOutputConnector > > OutputConnectorList
Definition: IPlugin.h:112
Contains the declaration of the RealTimeSourceEstimate class.
The RealTimeMultiSampleArrayNewWidget class provides a real-time curve display.
QWidget * show(IPlugin::OutputConnectorList &outputConnectorList, QSharedPointer< QTime > &pT, QList< QAction * > &qListActions, QList< QWidget * > &qListWidgets)
Declaration of the DisplayManager Class.
DisplayManager(QObject *parent=0)
QList< QWidget * > getDisplayWidgets()
Declaration of the RealTimeSampleArrayWidget Class.
Contains the declaration of the RealTimeEvoked class.
Contains the declaration of the NewRealTimeSampleArray class.
QList< QAction * > getDisplayActions()
Declaration of the RealTimeMultiSampleArrayWidget Class.
Definition: arrow.h:75
The NewRealTimeSampleArrayWidget class provides a real-time curve display.
PluginOutputConnector with specified Measurement.
Contains the declaration of the NewRealTimeMultiSampleArray class.
The RealTimeMultiSampleArrayNewWidget class provides a real-time curve display.
Contains the declaration of the FrequencySpectrum class.
Declaration of the RealTimeEvokedWidget Class.
Declaration of the FrequencySpectrumWidget Class.
The RealTimeMultiSampleArrayNewWidget class provides a real-time curve display.
Declaration of the RealTimeCovWidget Class.
Contains the declaration of the RealTimeCov class.
The FrequencySpectrumWidget class provides a equalizer display.
The RealTimeMultiSampleArrayNewWidget class provides a real-time curve display.