20 void SettingsWidget::sourceChanged(
int id)
22 if ((
id >= 0) && (
id < 5)) {
23 QSettings settings(iniPath, QSettings::IniFormat);
24 settings.setValue(
"ECGCapture/Source",
id);
35 void SettingsWidget::sampleRateChanged(
int id)
37 if ((
id >= 0) && (
id < 3)) {
38 QSettings settings(iniPath, QSettings::IniFormat);
39 settings.setValue(
"ECGCapture/SampleRate",
id);
45 int SettingsWidget::idToSampleRate(
int id)
49 if ((
id >= 0) && (
id < 3)) {
69 QString SettingsWidget::idToSource(
int id)
79 source =
"10 Hz sin test tone";
82 source =
"150 Hz sin test tone";
85 source =
"1 Hz Square wave test tone";
104 void SettingsWidget::applyCaptureSettings()
106 QString fileName = fileNameTextBox->text();
107 QString name = nameTextBox->text();
108 QString recordingName = recordingNameTextBox->text();
109 QString gender = genderTextBox->text();
110 QString birthDate = birthdateTextBox->text();
111 QString patientCode = patientCodeTextBox->text();
112 QString notes = notesTextBox->toPlainText();
114 if (fileName !=
"") {
122 if (recordingName !=
"") {
130 if (birthDate !=
"") {
134 if (patientCode !=
"") {
142 if (saveAsEDFCheckbox->isChecked()) {
153 void SettingsWidget::setupComponents()
156 iniPath = qApp->applicationDirPath() +
"/settings.ini";
157 QSettings settings(iniPath, QSettings::IniFormat);
160 QVector<QAbstractButton *> sourceButtonArray;
161 sourceControlButtonGroup =
new QButtonGroup;
163 ecgSource =
new QRadioButton(
"ECG");
164 sin10Source =
new QRadioButton(
"10 Hz sin test tone");
165 sin150Source =
new QRadioButton(
"150 Hz sin test tone");
166 squareSource =
new QRadioButton(
"1 Hz square wave test tone");
167 ecgMockSource =
new QRadioButton(
"EcgMock");
169 sourceButtonArray.append(ecgSource);
170 sourceButtonArray.append(sin10Source);
171 sourceButtonArray.append(sin150Source);
172 sourceButtonArray.append(squareSource);
173 sourceButtonArray.append(ecgMockSource);
175 for (
int ii=0; ii<sourceButtonArray.size(); ii++) {
176 sourceControlButtonGroup->addButton(sourceButtonArray.at(ii), ii);
179 int sourceId = settings.value(
"/ECGCapture/Source", 0).toInt();
180 sourceButtonArray.at(sourceId)->setChecked(
true);
181 settings.setValue(
"ECGCapture/Source", sourceId);
186 QVector<QAbstractButton *> sampleRateButtonArray;
187 sampleRateControlButtonGroup =
new QButtonGroup;
189 lowSampleRate =
new QRadioButton(
"500 Hz");
190 midSampleRate =
new QRadioButton(
"1000 Hz");
191 highSampleRate =
new QRadioButton(
"2000 Hz");
193 sampleRateButtonArray.append(lowSampleRate);
194 sampleRateButtonArray.append(midSampleRate);
195 sampleRateButtonArray.append(highSampleRate);
197 for (
int ii=0; ii<sampleRateButtonArray.size(); ii++) {
198 sampleRateControlButtonGroup->addButton(sampleRateButtonArray.at(ii), ii);
201 int sampleRateId = settings.value(
"/ECGCapture/SampleRate", 0).toInt();
202 sampleRateButtonArray.at(sampleRateId)->setChecked(
true);
203 settings.setValue(
"ECGCapture/SampleRate", sampleRateId);
208 fileNameTextBox =
new QLineEdit;
209 nameTextBox =
new QLineEdit;
210 recordingNameTextBox =
new QLineEdit;
211 genderTextBox =
new QLineEdit;
212 birthdateTextBox =
new QLineEdit;
213 patientCodeTextBox =
new QLineEdit;
214 notesTextBox =
new QTextEdit;
215 applyCaptureSettingsButton =
new QPushButton(
"Apply settings");
216 saveAsEDFCheckbox =
new QCheckBox;
222 void SettingsWidget::setupActions()
225 connect(sourceControlButtonGroup, SIGNAL(buttonClicked(
int)),
this, SLOT(sourceChanged(
int)));
226 connect(sampleRateControlButtonGroup, SIGNAL(buttonClicked(
int)),
this, SLOT(sampleRateChanged(
int)));
227 connect(applyCaptureSettingsButton, SIGNAL(clicked()),
this, SLOT(applyCaptureSettings()));
233 void SettingsWidget::setupLayout()
235 QGroupBox *sampleRateControlGroup =
new QGroupBox(
"Sample rate");
236 QGroupBox *sourceControlGroup =
new QGroupBox(
"Source");
237 QGroupBox *captureSettingsGroup =
new QGroupBox(
"ECG capture settings");
239 QLabel *sampleFreqNote =
new QLabel(
"NOTE: some frames are dropped at 2000 Hz.");
240 QLabel *fileNameLabel =
new QLabel(
"Filename: ");
241 QLabel *nameLabel =
new QLabel(
"Name: ");
242 QLabel *recordingNameLabel =
new QLabel(
"Recording name: ");
243 QLabel *genderLabel =
new QLabel(
"Gender: ");
244 QLabel *birthdateLabel =
new QLabel(
"Birth date: ");
245 QLabel *patientCodeLabel =
new QLabel(
"Patient code: ");
246 QLabel *notesLabel =
new QLabel(
"Notes: ");
247 QLabel *saveAsEDFLabel =
new QLabel(
"Save as EDF: ");
250 QFormLayout *captureSettingsLayout =
new QFormLayout;
251 captureSettingsLayout->addRow(fileNameLabel, fileNameTextBox);
252 captureSettingsLayout->addRow(nameLabel, nameTextBox);
253 captureSettingsLayout->addRow(recordingNameLabel, recordingNameTextBox);
254 captureSettingsLayout->addRow(genderLabel, genderTextBox);
255 captureSettingsLayout->addRow(birthdateLabel, birthdateTextBox);
256 captureSettingsLayout->addRow(patientCodeLabel, patientCodeTextBox);
257 captureSettingsLayout->addRow(notesLabel, notesTextBox);
258 captureSettingsLayout->addRow(saveAsEDFLabel, saveAsEDFCheckbox);
259 captureSettingsLayout->addWidget(applyCaptureSettingsButton);
261 captureSettingsGroup->setLayout(captureSettingsLayout);
264 QVBoxLayout *sourceControlLayout =
new QVBoxLayout;
266 sourceControlLayout->addWidget(ecgSource);
267 sourceControlLayout->addWidget(sin10Source);
268 sourceControlLayout->addWidget(sin150Source);
269 sourceControlLayout->addWidget(squareSource);
270 sourceControlLayout->addWidget(ecgMockSource);
272 sourceControlGroup->setLayout(sourceControlLayout);
275 QVBoxLayout *sampleRateControlLayout =
new QVBoxLayout;
276 sampleRateControlLayout->addWidget(lowSampleRate);
277 sampleRateControlLayout->addWidget(midSampleRate);
278 sampleRateControlLayout->addWidget(highSampleRate);
279 sampleRateControlLayout->addWidget(sampleFreqNote);
281 sampleRateControlGroup->setLayout(sampleRateControlLayout);
284 QVBoxLayout *mainLayout =
new QVBoxLayout;
285 mainLayout->addWidget(sourceControlGroup);
286 mainLayout->addStretch();
287 mainLayout->addWidget(sampleRateControlGroup);
288 mainLayout->addStretch();
289 mainLayout->addWidget(captureSettingsGroup);
290 mainLayout->addStretch();
292 setLayout(mainLayout);
void setSourceId(int sourceId)
Used to set private int name.
void setName(QString name)
Used to set private variable name.
void setBirthDate(QString birthDate)
Used to set private variable birthDate.
void setSampleRate(int sampleRate)
Used to set private variable sampleRate.
void setSource(QString source)
Used to set private QString source.
static SettingsSingleton & instance()
Retrives a reference to the ONE and ONLY SettingsSingleton created for the application.
void setRecordingName(QString recordingName)
Used to set private variable recordingName.
void setPatientCode(QString patientCode)
Used to set private variable patientCode.
void setSaveAsEdf(bool saveAsEdf)
Set the private bool saveAsEdf.
void setNotes(QString notes)
Used to set private variable notes.
void setFileName(QString fileName)
Used to set private variable fileName.
void setGender(QString gender)
Used to set private variable gender.