MNE-CPP 0.1.9
A Framework for Electrophysiology
Loading...
Searching...
No Matches
filtersettingsview.cpp
Go to the documentation of this file.
1//=============================================================================================================
35//=============================================================================================================
36// INCLUDES
37//=============================================================================================================
38
39#include "filtersettingsview.h"
40
41#include "filterdesignview.h"
42
43#include "ui_filtersettingsview.h"
44
45//=============================================================================================================
46// QT INCLUDES
47//=============================================================================================================
48
49#include <QCheckBox>
50#include <QGridLayout>
51#include <QPushButton>
52#include <QSettings>
53
54//=============================================================================================================
55// EIGEN INCLUDES
56//=============================================================================================================
57
58//=============================================================================================================
59// USED NAMESPACES
60//=============================================================================================================
61
62using namespace DISPLIB;
63
64//=============================================================================================================
65// DEFINE MEMBER METHODS
66//=============================================================================================================
67
68FilterSettingsView::FilterSettingsView(const QString& sSettingsPath,
69 QWidget *parent,
70 Qt::WindowFlags f)
71: AbstractView(parent, f)
72, m_pUi(new Ui::FilterSettingsViewWidget)
73{
74 m_sSettingsPath = sSettingsPath;
75 this->setWindowTitle("Filter Settings");
76
77 m_pUi->setupUi(this);
78
80
81 //Create and connect design viewer
82 m_pFilterView = FilterDesignView::SPtr::create(m_sSettingsPath,
83 Q_NULLPTR,
84 Qt::Dialog);
85
86 connect(m_pFilterView.data(), &FilterDesignView::updateFilterFrom,[=](double dFrom){
87 m_pUi->m_pDoubleSpinBoxFrom->setValue(dFrom);
88 });
89 connect(m_pFilterView.data(), &FilterDesignView::updateFilterTo,[=](double dTo){
90 m_pUi->m_pDoubleSpinBoxTo->setValue(dTo);
91 });
92
95
96 m_pUi->m_pDoubleSpinBoxFrom->setValue(m_pFilterView->getFrom());
97 m_pUi->m_pDoubleSpinBoxTo->setValue(m_pFilterView->getTo());
98
99 //Connect GUI elements
100 connect(m_pUi->m_pCheckBoxActivateFilter, &QCheckBox::toggled,
102 connect(m_pUi->m_pPushButtonShowFilterOptions, &QPushButton::clicked,
104 connect(m_pUi->m_pDoubleSpinBoxFrom, &QDoubleSpinBox::editingFinished,
106 connect(m_pUi->m_pDoubleSpinBoxTo, &QDoubleSpinBox::editingFinished,
108 connect(m_pUi->m_pcomboBoxChannelTypes, &QComboBox::currentTextChanged,
110}
111
112//=============================================================================================================
113
119
120//=============================================================================================================
121
122QSharedPointer<FilterDesignView> FilterSettingsView::getFilterView()
123{
124 return m_pFilterView;
125}
126
127//=============================================================================================================
128
130{
131 return m_pUi->m_pCheckBoxActivateFilter->isChecked();
132}
133
134//=============================================================================================================
135
137{
138 //Update min max of spin boxes to nyquist
139 double nyquistFrequency = dSFreq/2;
140
141 m_pUi->m_pDoubleSpinBoxFrom->setMaximum(nyquistFrequency);
142 m_pUi->m_pDoubleSpinBoxTo->setMaximum(nyquistFrequency);
143
144 if(m_pUi->m_pDoubleSpinBoxFrom->value() > dSFreq/2) {
145 m_pUi->m_pDoubleSpinBoxFrom->setValue(dSFreq/2);
146 }
147
148 if(m_pUi->m_pDoubleSpinBoxTo->value() > dSFreq/2) {
149 m_pUi->m_pDoubleSpinBoxTo->setValue(dSFreq/2);
150 }
151
152 m_pFilterView->setSamplingRate(dSFreq);
153}
154
155//=============================================================================================================
156
158{
159 if(m_sSettingsPath.isEmpty()) {
160 return;
161 }
162
163 QSettings settings("MNECPP");
164
165 settings.setValue(m_sSettingsPath + QString("/FilterSettingsView/filterActivated"), m_pUi->m_pCheckBoxActivateFilter->isChecked());
166 settings.setValue(m_sSettingsPath + QString("/FilterSettingsView/filterFrom"), m_pUi->m_pDoubleSpinBoxFrom->value());
167 settings.setValue(m_sSettingsPath + QString("/FilterSettingsView/filterTo"), m_pUi->m_pDoubleSpinBoxTo->value());
168 settings.setValue(m_sSettingsPath + QString("/FilterSettingsView/filterChannelType"), m_pUi->m_pcomboBoxChannelTypes->currentText());
169}
170
171//=============================================================================================================
172
174{
175 if(m_sSettingsPath.isEmpty()) {
176 return;
177 }
178
179 QSettings settings("MNECPP");
180
181 m_pUi->m_pCheckBoxActivateFilter->setChecked(settings.value(m_sSettingsPath + QString("/FilterSettingsView/filterActivated"), false).toBool());
182 m_pUi->m_pDoubleSpinBoxTo->setValue(settings.value(m_sSettingsPath + QString("/FilterSettingsView/filterTo"), 0).toDouble());
183 m_pUi->m_pDoubleSpinBoxFrom->setValue(settings.value(m_sSettingsPath + QString("/FilterSettingsView/filterFrom"), 0).toDouble());
184 m_pUi->m_pcomboBoxChannelTypes->setCurrentText(settings.value(m_sSettingsPath + QString("/FilterSettingsView/filterChannelType"), "All").toString());
185}
186
187//=============================================================================================================
188
190{
191 switch(mode) {
192 case GuiMode::Clinical:
193 m_pUi->m_pPushButtonShowFilterOptions->hide();
194 break;
195 default: // default is research mode
196 m_pUi->m_pPushButtonShowFilterOptions->show();
197 break;
198 }
199}
200
201//=============================================================================================================
202
204{
205 switch(mode) {
206 case ProcessingMode::Offline:
207 break;
208 default: // default is realtime mode
209 break;
210 }
211}
212
213//=============================================================================================================
214
216{
217 if(m_pFilterView->isActiveWindow()) {
218 m_pFilterView->hide();
219 } else {
220 m_pFilterView->activateWindow();
221 m_pFilterView->show();
222 m_pFilterView->updateFilterPlot();
223 }
224}
225
226//=============================================================================================================
227
229{
230 emit filterActivationChanged(m_pUi->m_pCheckBoxActivateFilter->isChecked());
231
232 saveSettings();
233}
234
235//=============================================================================================================
236
238{
239 m_pFilterView->setFrom(m_pUi->m_pDoubleSpinBoxFrom->value());
240
241 saveSettings();
242}
243
244//=============================================================================================================
245
247{
248 if(m_pUi->m_pDoubleSpinBoxFrom->value() >= 2) {
249 m_pUi->m_pDoubleSpinBoxFrom->setMaximum(m_pUi->m_pDoubleSpinBoxTo->value()-1);
250 } else {
251 m_pUi->m_pDoubleSpinBoxFrom->setMaximum(m_pUi->m_pDoubleSpinBoxTo->value());
252 }
253
254 m_pFilterView->setTo(m_pUi->m_pDoubleSpinBoxTo->value());
255
256 saveSettings();
257}
258
259//=============================================================================================================
260
262{
263 m_pFilterView->setChannelType(sType);
264
265 saveSettings();
266}
267
268//=============================================================================================================
269
271{
272
273}
Declaration of the FilterSettingsView Class.
Contains the declaration of the FilterDesignView class.
The AbstractView class provides the base calss for all Disp viewers.
void guiStyleChanged(DISPLIB::AbstractView::StyleMode style)
void updateFilterFrom(double dFrom)
void updateFilterTo(double dTo)
void guiStyleChanged(DISPLIB::AbstractView::StyleMode style)
void filterActivationChanged(bool activated)
void onFilterChannelTypeChanged(const QString &sType)
QSharedPointer< FilterDesignView > getFilterView()
FilterSettingsView(const QString &sSettingsPath="", QWidget *parent=0, Qt::WindowFlags f=Qt::Widget)
void updateProcessingMode(ProcessingMode mode)
Ui::FilterSettingsViewWidget * m_pUi
QSharedPointer< FilterDesignView > m_pFilterView