MNE-CPP  beta 1.0
ecgsetupwidget.cpp
Go to the documentation of this file.
1 //=============================================================================================================
36 //*************************************************************************************************************
37 //=============================================================================================================
38 // INCLUDES
39 //=============================================================================================================
40 
41 #include "ecgsetupwidget.h"
42 #include "ecgaboutwidget.h"
43 #include "../ecgsimulator.h"
44 
45 
46 //*************************************************************************************************************
47 //=============================================================================================================
48 // QT INCLUDES
49 //=============================================================================================================
50 
51 #include <QDir>
52 #include <QDebug>
53 
54 
55 //*************************************************************************************************************
56 //=============================================================================================================
57 // USED NAMESPACES
58 //=============================================================================================================
59 
60 using namespace ECGSimulatorPlugin;
61 
62 
63 //*************************************************************************************************************
64 //=============================================================================================================
65 // DEFINE MEMBER METHODS
66 //=============================================================================================================
67 
68 ECGSetupWidget::ECGSetupWidget(ECGSimulator* simulator, QWidget* parent)
69 : QWidget(parent)
70 , m_pECGSimulator(simulator)
71 {
72  ui.setupUi(this);
73 
74  connect(ui.m_qDoubleSpinBox_SamplingRate, static_cast<void (QDoubleSpinBox::*)(double)>(&QDoubleSpinBox::valueChanged),
75  this, &ECGSetupWidget::setSamplingRate);
76  connect(ui.m_qSpinBox_Downsampling, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged),
77  this, &ECGSetupWidget::setDownsamplingRate);
78 
79 
80  QString path(m_pECGSimulator->m_qStringResourcePath+"data/");
81 
82  QDir directory = QDir(path);
83  QStringList files;
84  QString fileName("*.txt");
85  files = directory.entryList(QStringList(fileName),
86  QDir::Files | QDir::NoSymLinks);
87 
88  ui.m_qComboBox_Channel_1->addItems(files);
89  ui.m_qComboBox_Channel_2->addItems(files);
90  ui.m_qComboBox_Channel_3->addItems(files);
91 
92  connect(ui.m_qComboBox_Channel_1, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
93  this, &ECGSetupWidget::setFileOfChannel_I);
94  connect(ui.m_qComboBox_Channel_2, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
95  this, &ECGSetupWidget::setFileOfChannel_II);
96  connect(ui.m_qComboBox_Channel_3, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
97  this, &ECGSetupWidget::setFileOfChannel_III);
98 
99  connect(ui.m_qCheckBox_Channel_Enable_1, &QCheckBox::toggled, this, &ECGSetupWidget::setEnabledChannel_I);
100  connect(ui.m_qCheckBox_Channel_Enable_2, &QCheckBox::toggled, this, &ECGSetupWidget::setEnabledChannel_II);
101  connect(ui.m_qCheckBox_Channel_Enable_3, &QCheckBox::toggled, this, &ECGSetupWidget::setEnabledChannel_III);
102 
103  connect(ui.m_qCheckBox_Channel_Visible_1, &QCheckBox::toggled, this, &ECGSetupWidget::setVisibleChannel_I);
104  connect(ui.m_qCheckBox_Channel_Visible_2, &QCheckBox::toggled, this, &ECGSetupWidget::setVisibleChannel_II);
105  connect(ui.m_qCheckBox_Channel_Visible_3, &QCheckBox::toggled, this, &ECGSetupWidget::setVisibleChannel_III);
106 
107  connect(ui.m_qPushButton_About, &QPushButton::released, this, &ECGSetupWidget::showAboutDialog);
108 
109 
110  QFile file(m_pECGSimulator->m_qStringResourcePath+"readme.txt");
111  if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
112  return;
113 
114  QTextStream in(&file);
115  while (!in.atEnd()) {
116  QString line = in.readLine();
117  ui.m_qTextBrowser_Information->insertHtml(line);
118  ui.m_qTextBrowser_Information->insertHtml("<br>");
119  }
120 }
121 
122 
123 //*************************************************************************************************************
124 
126 {
127 
128 }
129 
130 
131 //*************************************************************************************************************
132 
134 {
135  ui.m_qDoubleSpinBox_SamplingRate->setValue(m_pECGSimulator->m_fSamplingRate);
136  ui.m_qSpinBox_Downsampling->setValue(m_pECGSimulator->m_iDownsamplingFactor);
137 }
138 
139 
140 //*************************************************************************************************************
141 
143 {
144  int idx;
145  idx = ui.m_qComboBox_Channel_1->findText(m_pECGSimulator->m_pECGChannel_ECG_I->getChannelFile());
146  if(idx >= 0)
147  ui.m_qComboBox_Channel_1->setCurrentIndex(idx);
148 
149  idx = ui.m_qComboBox_Channel_2->findText(m_pECGSimulator->m_pECGChannel_ECG_II->getChannelFile());
150  if(idx >= 0)
151  ui.m_qComboBox_Channel_2->setCurrentIndex(idx);
152 
153  idx = ui.m_qComboBox_Channel_3->findText(m_pECGSimulator->m_pECGChannel_ECG_III->getChannelFile());
154  if(idx >= 0)
155  ui.m_qComboBox_Channel_3->setCurrentIndex(idx);
156 
157 }
158 
159 
160 //*************************************************************************************************************
161 
163 {
164  setEnabledChannel_I(m_pECGSimulator->m_pECGChannel_ECG_I->isEnabled());
165  setVisibleChannel_I(m_pECGSimulator->m_pECGChannel_ECG_I->isVisible());
166 
167  setEnabledChannel_II(m_pECGSimulator->m_pECGChannel_ECG_II->isEnabled());
168  setVisibleChannel_II(m_pECGSimulator->m_pECGChannel_ECG_II->isVisible());
169 
170  setEnabledChannel_III(m_pECGSimulator->m_pECGChannel_ECG_III->isEnabled());
171  setVisibleChannel_III(m_pECGSimulator->m_pECGChannel_ECG_III->isVisible());
172 }
173 
174 
175 
176 //*************************************************************************************************************
177 
178 void ECGSetupWidget::setSamplingRate(double value)
179 {
180  m_pECGSimulator->m_fSamplingRate = value;
181 }
182 
183 
184 //*************************************************************************************************************
185 
186 void ECGSetupWidget::setDownsamplingRate(int value)
187 {
188  m_pECGSimulator->m_iDownsamplingFactor = value;
189 }
190 
191 //*************************************************************************************************************
192 
193 void ECGSetupWidget::setEnabledChannel_I(bool state)
194 {
195  m_pECGSimulator->m_pECGChannel_ECG_I->setEnabled(state);
196  ui.m_qCheckBox_Channel_Enable_1->setChecked(state);
197  ui.m_qLabel_Channel_1->setEnabled(state);
198  ui.m_qCheckBox_Channel_Visible_1->setEnabled(state);
199  ui.m_qComboBox_Channel_1->setEnabled(state);
200 }
201 
202 
203 //*************************************************************************************************************
204 
205 void ECGSetupWidget::setEnabledChannel_II(bool state)
206 {
207  m_pECGSimulator->m_pECGChannel_ECG_II->setEnabled(state);
208  ui.m_qCheckBox_Channel_Enable_2->setChecked(state);
209  ui.m_qLabel_Channel_2->setEnabled(state);
210  ui.m_qCheckBox_Channel_Visible_2->setEnabled(state);
211  ui.m_qComboBox_Channel_2->setEnabled(state);
212 }
213 
214 
215 //*************************************************************************************************************
216 
217 void ECGSetupWidget::setEnabledChannel_III(bool state)
218 {
219  m_pECGSimulator->m_pECGChannel_ECG_III->setEnabled(state);
220  ui.m_qCheckBox_Channel_Enable_3->setChecked(state);
221  ui.m_qLabel_Channel_3->setEnabled(state);
222  ui.m_qCheckBox_Channel_Visible_3->setEnabled(state);
223  ui.m_qComboBox_Channel_3->setEnabled(state);
224 }
225 
226 
227 //*************************************************************************************************************
228 
229 void ECGSetupWidget::setVisibleChannel_I(bool state)
230 {
231  m_pECGSimulator->m_pECGChannel_ECG_I->setVisible(state);
232  ui.m_qCheckBox_Channel_Visible_1->setChecked(state);
233 }
234 
235 
236 //*************************************************************************************************************
237 
238 void ECGSetupWidget::setVisibleChannel_II(bool state)
239 {
240  m_pECGSimulator->m_pECGChannel_ECG_II->setVisible(state);
241  ui.m_qCheckBox_Channel_Visible_2->setChecked(state);
242 }
243 
244 
245 //*************************************************************************************************************
246 
247 void ECGSetupWidget::setVisibleChannel_III(bool state)
248 {
249  m_pECGSimulator->m_pECGChannel_ECG_III->setVisible(state);
250  ui.m_qCheckBox_Channel_Visible_3->setChecked(state);
251 }
252 
253 
254 //*************************************************************************************************************
255 
256 void ECGSetupWidget::setFileOfChannel_I(qint32)
257 {
258  m_pECGSimulator->m_pECGChannel_ECG_I->setChannelFile(ui.m_qComboBox_Channel_1->currentText());
259 }
260 
261 
262 //*************************************************************************************************************
263 
264 void ECGSetupWidget::setFileOfChannel_II(qint32)
265 {
266  m_pECGSimulator->m_pECGChannel_ECG_II->setChannelFile(ui.m_qComboBox_Channel_2->currentText());
267 }
268 
269 
270 //*************************************************************************************************************
271 
272 void ECGSetupWidget::setFileOfChannel_III(qint32)
273 {
274  m_pECGSimulator->m_pECGChannel_ECG_III->setChannelFile(ui.m_qComboBox_Channel_3->currentText());
275 }
276 
277 
278 //*************************************************************************************************************
279 
280 void ECGSetupWidget::showAboutDialog()
281 {
282  ECGAboutWidget aboutDialog(this);
283  aboutDialog.exec();
284 }
Contains the declaration of the ECGSetupWidget class.
Contains the declaration of the ECGAboutWidget class.
ECGSetupWidget(ECGSimulator *simulator, QWidget *parent=0)
The ECGSimulator class provides a ECG simulator.
Definition: ecgsimulator.h:97
The ECGAboutWidget class provides the about dialog for the ECGSimulator.