MNE-CPP  0.1.9
A Framework for Electrophysiology
fiffrawviewsettings.cpp
Go to the documentation of this file.
1 //=============================================================================================================
35 //=============================================================================================================
36 // INCLUDES
37 //=============================================================================================================
38 
39 #include "fiffrawviewsettings.h"
40 
41 #include "ui_fiffrawviewsettings.h"
42 
43 //=============================================================================================================
44 // QT INCLUDES
45 //=============================================================================================================
46 
47 #include <QColorDialog>
48 #include <QSettings>
49 #include <QDebug>
50 
51 //=============================================================================================================
52 // EIGEN INCLUDES
53 //=============================================================================================================
54 
55 //=============================================================================================================
56 // USED NAMESPACES
57 //=============================================================================================================
58 
59 using namespace DISPLIB;
60 
61 //========================================= ====================================================================
62 // DEFINE MEMBER METHODS
63 //=============================================================================================================
64 
65 FiffRawViewSettings::FiffRawViewSettings(const QString &sSettingsPath,
66  QWidget *parent,
67  Qt::WindowFlags f)
68 : AbstractView(parent, f)
69 , m_pUi(new Ui::FiffRawViewSettingsWidget)
70 {
71  m_sSettingsPath = sSettingsPath;
72  m_pUi->setupUi(this);
73 
74  this->setWindowTitle("Fiff Raw View Settings");
75  this->setMinimumWidth(330);
76 
77  setWidgetList();
78 
79  loadSettings();
80 }
81 
82 //=============================================================================================================
83 
85 {
86  saveSettings();
87  delete m_pUi;
88 }
89 
90 //=============================================================================================================
91 
92 void FiffRawViewSettings::setWidgetList(const QStringList& lVisibleWidgets)
93 {
94  if(lVisibleWidgets.contains("numberChannels", Qt::CaseInsensitive) || lVisibleWidgets.isEmpty()) {
95  //Number of visible channels
96  connect(m_pUi->m_doubleSpinBox_numberVisibleChannels, static_cast<void (QDoubleSpinBox::*)(double)>(&QDoubleSpinBox::valueChanged),
98  } else {
99  m_pUi->m_doubleSpinBox_numberVisibleChannels->hide();
100  m_pUi->label_numberChannels->hide();
101  }
102 
103  if(lVisibleWidgets.contains("windowSize", Qt::CaseInsensitive) || lVisibleWidgets.isEmpty()) {
104  //Window size
105  connect(m_pUi->m_spinBox_windowSize, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged),
107  } else {
108  m_pUi->m_spinBox_windowSize->hide();
109  m_pUi->label_windowSize->hide();
110  }
111 
112  if(lVisibleWidgets.contains("distanceSpacers", Qt::CaseInsensitive) || lVisibleWidgets.isEmpty()) {
113  //Distance for timer spacer
114  connect(m_pUi->m_comboBox_distaceTimeSpacer, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
116  } else {
117  m_pUi->m_comboBox_distaceTimeSpacer->hide();
118  m_pUi->label_timeSpacers->hide();
119  }
120 
121  if(lVisibleWidgets.contains("backgroundColor", Qt::CaseInsensitive) || lVisibleWidgets.isEmpty()) {
122  //Background Colors
123  connect(m_pUi->m_pushButton_backgroundColor, static_cast<void (QPushButton::*)(bool)>(&QPushButton::clicked),
125  } else {
126  m_pUi->m_pushButton_backgroundColor->hide();
127  m_pUi->label_backgroundColor->hide();
128  }
129 
130  if(lVisibleWidgets.contains("signalColor", Qt::CaseInsensitive) || lVisibleWidgets.isEmpty()) {
131  //Signal Colors
132  connect(m_pUi->m_pushButton_signalColor, static_cast<void (QPushButton::*)(bool)>(&QPushButton::clicked),
134  } else {
135  m_pUi->m_pushButton_signalColor->hide();
136  m_pUi->label_signalColor->hide();
137  }
138 
139  if(lVisibleWidgets.contains("screenshot", Qt::CaseInsensitive) || lVisibleWidgets.isEmpty()) {
140  //Signal Colors
141  connect(m_pUi->m_pushButton_makeScreenshot, static_cast<void (QPushButton::*)(bool)>(&QPushButton::clicked),
143  } else {
144  m_pUi->m_pushButton_makeScreenshot->hide();
145  m_pUi->m_comboBox_imageType->hide();
146  }
147 
148  this->adjustSize();
149 }
150 
151 //=============================================================================================================
152 
154 {
155  m_pUi->m_spinBox_windowSize->setValue(windowSize);
156 }
157 
158 //=============================================================================================================
159 
160 void FiffRawViewSettings::setZoom(double zoomFactor)
161 {
162  m_pUi->m_doubleSpinBox_numberVisibleChannels->setValue(zoomFactor);
163 }
164 
165 //=============================================================================================================
166 
168 {
169  return m_pUi->m_comboBox_distaceTimeSpacer->currentText().toInt();
170 }
171 
172 //=============================================================================================================
173 
175 {
176  m_pUi->m_comboBox_distaceTimeSpacer->setCurrentText(QString::number(value));
177 }
178 
179 //=============================================================================================================
180 
181 void FiffRawViewSettings::setBackgroundColor(const QColor& backgroundColor)
182 {
183  m_pUi->m_pushButton_backgroundColor->setStyleSheet(QString("background-color: rgb(%1, %2, %3);").arg(backgroundColor.red()).arg(backgroundColor.green()).arg(backgroundColor.blue()));
184 
185  m_colCurrentBackgroundColor = backgroundColor;
186 }
187 
188 //=============================================================================================================
189 
190 void FiffRawViewSettings::setSignalColor(const QColor& signalColor)
191 {
192  m_pUi->m_pushButton_signalColor->setStyleSheet(QString("background-color: rgb(%1, %2, %3);").arg(signalColor.red()).arg(signalColor.green()).arg(signalColor.blue()));
193 
194  m_colCurrentSignalColor = signalColor;
195 }
196 
197 //=============================================================================================================
198 
200 {
202 }
203 
204 //=============================================================================================================
205 
207 {
209 }
210 
211 //=============================================================================================================
212 
214 {
215  return m_pUi->m_doubleSpinBox_numberVisibleChannels->value();
216 }
217 
218 //=============================================================================================================
219 
221 {
222  return m_pUi->m_spinBox_windowSize->value();
223 }
224 
225 //=============================================================================================================
226 
228 {
229  if(m_sSettingsPath.isEmpty()) {
230  return;
231  }
232 
233  QSettings settings("MNECPP");
234 
235  settings.setValue(m_sSettingsPath + QString("/FiffRawViewSettings/viewZoomFactor"), getZoom());
236  settings.setValue(m_sSettingsPath + QString("/FiffRawViewSettings/viewWindowSize"), getWindowSize());
237  settings.setValue(m_sSettingsPath + QString("/FiffRawViewSettings/signalColor"), getSignalColor());
238  settings.setValue(m_sSettingsPath + QString("/FiffRawViewSettings/backgroundColor"), getBackgroundColor());
239  settings.setValue(m_sSettingsPath + QString("/FiffRawViewSettings/distanceTimeSpacer"), getDistanceTimeSpacer());
240 }
241 
242 //=============================================================================================================
243 
245 {
246  if(m_sSettingsPath.isEmpty()) {
247  return;
248  }
249 
250  QSettings settings("MNECPP");
251 
252  m_pUi->m_doubleSpinBox_numberVisibleChannels->setValue(settings.value(m_sSettingsPath + QString("/FiffRawViewSettings/viewZoomFactor"), 16).toDouble());
253  m_pUi->m_spinBox_windowSize->setValue(settings.value(m_sSettingsPath + QString("/FiffRawViewSettings/viewWindowSize"), 10).toInt());
254 
255  QColor colorDefault = Qt::blue;
256  m_colCurrentSignalColor = settings.value(m_sSettingsPath + QString("/FiffRawViewSettings/signalColor"), colorDefault).value<QColor>();
257  m_pUi->m_pushButton_signalColor->setStyleSheet(QString("background-color: rgb(%1, %2, %3);").arg(m_colCurrentSignalColor.red()).arg(m_colCurrentSignalColor.green()).arg(m_colCurrentSignalColor.blue()));
258 
259  colorDefault = Qt::white;
260  m_colCurrentBackgroundColor = settings.value(m_sSettingsPath + QString("/FiffRawViewSettings/backgroundColor"), colorDefault).value<QColor>();
261  m_pUi->m_pushButton_backgroundColor->setStyleSheet(QString("background-color: rgb(%1, %2, %3);").arg(m_colCurrentBackgroundColor.red()).arg(m_colCurrentBackgroundColor.green()).arg(m_colCurrentBackgroundColor.blue()));
262 
263  m_pUi->m_comboBox_distaceTimeSpacer->setCurrentText(QString::number(settings.value(m_sSettingsPath + QString("/FiffRawViewSettings/distanceTimeSpacer"), 1000).toInt()));
264 }
265 
266 //=============================================================================================================
267 
269 {
270  switch(mode) {
271  case GuiMode::Clinical:
272  break;
273  default: // default is research mode
274  break;
275  }
276 }
277 
278 //=============================================================================================================
279 
281 {
282  switch(mode) {
283  case ProcessingMode::Offline:
284  break;
285  default: // default is realtime mode
286  break;
287  }
288 }
289 
290 //=============================================================================================================
291 
293 {
294  switch(value) {
295  case 0:
296  emit distanceTimeSpacerChanged(100);
297  break;
298 
299  case 1:
300  emit distanceTimeSpacerChanged(200);
301  break;
302 
303  case 2:
304  emit distanceTimeSpacerChanged(500);
305  break;
306 
307  case 3:
308  emit distanceTimeSpacerChanged(1000);
309  break;
310  }
311 
312  //emit updateConnectedView();
313 
314  saveSettings();
315 }
316 
317 //=============================================================================================================
318 
320 {
321  QColorDialog* pDialog = new QColorDialog(m_colCurrentSignalColor, this);
322 
323  QObject* obj = sender();
324  if(obj == m_pUi->m_pushButton_signalColor) {
325  pDialog->setCurrentColor(m_colCurrentSignalColor);
326  pDialog->setWindowTitle("Signal Color");
327 
328  pDialog->exec();
329  m_colCurrentSignalColor = pDialog->currentColor();
330 
331  //Set color of button new new scene color
332  m_pUi->m_pushButton_signalColor->setStyleSheet(QString("background-color: rgb(%1, %2, %3);").arg(m_colCurrentSignalColor.red()).arg(m_colCurrentSignalColor.green()).arg(m_colCurrentSignalColor.blue()));
333 
335  }
336 
337  if( obj == m_pUi->m_pushButton_backgroundColor ) {
338  pDialog->setCurrentColor(m_colCurrentBackgroundColor);
339  pDialog->setWindowTitle("Background Color");
340 
341  pDialog->exec();
342  m_colCurrentBackgroundColor = pDialog->currentColor();
343 
344  //Set color of button new new scene color
345  m_pUi->m_pushButton_backgroundColor->setStyleSheet(QString("background-color: rgb(%1, %2, %3);").arg(m_colCurrentBackgroundColor.red()).arg(m_colCurrentBackgroundColor.green()).arg(m_colCurrentBackgroundColor.blue()));
346 
348  }
349 
350  saveSettings();
351 }
352 
353 //=============================================================================================================
354 
356 {
357  emit timeWindowChanged(value);
358 
359  saveSettings();
360 }
361 
362 //=============================================================================================================
363 
365 {
366  emit zoomChanged(value);
367 
368  saveSettings();
369 }
370 
371 //=============================================================================================================
372 
374 {
375  emit makeScreenshot(m_pUi->m_comboBox_imageType->currentText());
376 }
377 
378 //=============================================================================================================
379 
381 {
382 
383 }
void setBackgroundColor(const QColor &backgroundColor)
void makeScreenshot(const QString &imageType)
void distanceTimeSpacerChanged(int value)
void setWidgetList(const QStringList &lVisibleWidgets=QStringList())
FiffRawViewSettings(const QString &sSettingsPath="", QWidget *parent=0, Qt::WindowFlags f=Qt::Widget)
The AbstractView class provides the base calss for all Disp viewers.
Definition: abstractview.h:75
void timeWindowChanged(int value)
Declaration of the FiffRawViewSettings Class.
void backgroundColorChanged(const QColor &backgroundColor)
void setZoom(double zoomFactor)
void onDistanceTimeSpacerChanged(qint32 value)
void updateProcessingMode(ProcessingMode mode)
void setSignalColor(const QColor &signalColor)
Definition: applytoview.h:58
void zoomChanged(double value)
void signalColorChanged(const QColor &signalColor)