v2.0.0
Loading...
Searching...
No Matches
modalityselectionview.cpp
Go to the documentation of this file.
1//=============================================================================================================
14
15//=============================================================================================================
16// INCLUDES
17//=============================================================================================================
18
20
21//=============================================================================================================
22// QT INCLUDES
23//=============================================================================================================
24
25#include <QGridLayout>
26#include <QCheckBox>
27#include <QLabel>
28#include <QSettings>
29#include <QMapIterator>
30
31//=============================================================================================================
32// EIGEN INCLUDES
33//=============================================================================================================
34
35//=============================================================================================================
36// USED NAMESPACES
37//=============================================================================================================
38
39using namespace DISPLIB;
40
41//=============================================================================================================
42// DEFINE MEMBER METHODS
43//=============================================================================================================
44
45ModalitySelectionView::ModalitySelectionView(const QList<FIFFLIB::FiffChInfo>& lChannelList,
46 const QString &sSettingsPath,
47 QWidget *parent,
48 Qt::WindowFlags f)
49: AbstractView(parent, f)
50{
51 m_sSettingsPath = sSettingsPath;
52 this->setWindowTitle("Modality Selection");
53 this->setMinimumWidth(330);
54 this->setMaximumWidth(330);
55
56 // Specify which channel types are needed
57 for(int i = 0; i < lChannelList.size(); ++i) {
58 if(lChannelList.at(i).unit == FIFF_UNIT_T && !m_lChannelTypeList.contains("MAG")) {
59 m_lChannelTypeList << "MAG";
60 }
61 if(lChannelList.at(i).unit == FIFF_UNIT_T_M && !m_lChannelTypeList.contains("GRAD")) {
62 m_lChannelTypeList << "GRAD";
63 }
64 if(lChannelList.at(i).kind == FIFFV_EEG_CH && !m_lChannelTypeList.contains("EEG")) {
65 m_lChannelTypeList << "EEG";
66 }
67 if(lChannelList.at(i).kind == FIFFV_EOG_CH && !m_lChannelTypeList.contains("EOG")) {
68 m_lChannelTypeList << "EOG";
69 }
70 if(lChannelList.at(i).kind == FIFFV_STIM_CH && !m_lChannelTypeList.contains("STIM")) {
71 m_lChannelTypeList << "STIM";
72 }
73 if(lChannelList.at(i).kind == FIFFV_MISC_CH && !m_lChannelTypeList.contains("MISC")) {
74 m_lChannelTypeList << "MISC";
75 }
76 }
77
79 redrawGUI();
80}
81
82//=============================================================================================================
83
88
89//=============================================================================================================
90
92{
93 return m_modalityMap;
94}
95
96//=============================================================================================================
97
99{
100 if(m_sSettingsPath.isEmpty()) {
101 return;
102 }
103
104 QSettings settings("MNECPP");
105
106 if(m_modalityMap.contains("MAG")) {
107 settings.setValue(m_sSettingsPath + QString("/ModalitySelectionView/modalityMAG"), m_modalityMap["MAG"]);
108 }
109 if(m_modalityMap.contains("GRAD")) {
110 settings.setValue(m_sSettingsPath + QString("/ModalitySelectionView/modalityGRAD"), m_modalityMap["GRAD"]);
111 }
112 if(m_modalityMap.contains("EEG")) {
113 settings.setValue(m_sSettingsPath + QString("/ModalitySelectionView/modalityEEG"), m_modalityMap["EEG"]);
114 }
115 if(m_modalityMap.contains("EOG")) {
116 settings.setValue(m_sSettingsPath + QString("/ModalitySelectionView/modalityEOG"), m_modalityMap["EOG"]);
117 }
118 if(m_modalityMap.contains("STIM")) {
119 settings.setValue(m_sSettingsPath + QString("/ModalitySelectionView/modalitySTIM"), m_modalityMap["STIM"]);
120 }
121 if(m_modalityMap.contains("MISC")) {
122 settings.setValue(m_sSettingsPath + QString("/ModalitySelectionView/modalityMISC"), m_modalityMap["MISC"]);
123 }
124}
125
126//=============================================================================================================
127
129{
130 if(m_sSettingsPath.isEmpty()) {
131 return;
132 }
133
134 QSettings settings("MNECPP");
135
136 bool flag = settings.value(m_sSettingsPath + QString("/ModalitySelectionView/modalityMAG"), true).toBool();
137 m_modalityMap.insert("MAG", flag);
138
139 flag = settings.value(m_sSettingsPath + QString("/ModalitySelectionView/modalityGRAD"), true).toBool();
140 m_modalityMap.insert("GRAD", flag);
141
142 flag = settings.value(m_sSettingsPath + QString("/ModalitySelectionView/modalityEEG"), true).toBool();
143 m_modalityMap.insert("EEG", flag);
144
145 flag = settings.value(m_sSettingsPath + QString("/ModalitySelectionView/modalityEOG"), true).toBool();
146 m_modalityMap.insert("EOG", flag);
147
148 flag = settings.value(m_sSettingsPath + QString("/ModalitySelectionView/modalitySTIM"), true).toBool();
149 m_modalityMap.insert("STIM", flag);
150
151 flag = settings.value(m_sSettingsPath + QString("/ModalitySelectionView/modalityMISC"), true).toBool();
152 m_modalityMap.insert("MISC", flag);
153}
154
155//=============================================================================================================
156
158{
159 switch(mode) {
161 break;
162 default: // default is research mode
163 break;
164 }
165}
166
167//=============================================================================================================
168
170{
171 switch(mode) {
173 break;
174 default: // default is realtime mode
175 break;
176 }
177}
178
179//=============================================================================================================
180
181void ModalitySelectionView::setModalityMap(const QMap<QString, bool> &modalityMap)
182{
183 m_modalityMap = modalityMap;
184
185 redrawGUI();
186}
187
188//=============================================================================================================
189
191{
193
194 //Delete all widgets in the averages layout
195 QGridLayout* topLayout = static_cast<QGridLayout*>(this->layout());
196 if(!topLayout) {
197 topLayout = new QGridLayout();
198 }
199
200 QLayoutItem *child;
201 while ((child = topLayout->takeAt(0)) != 0) {
202 delete child->widget();
203 delete child;
204 }
205
206 QMapIterator<QString, bool> i(m_modalityMap);
207
208 int count = 0;
209 while (i.hasNext()) {
210 i.next();
211
212 if(m_lChannelTypeList.contains(i.key(), Qt::CaseInsensitive)) {
213 QCheckBox* t_pCheckBoxModality = new QCheckBox(i.key());
214 t_pCheckBoxModality->setChecked(i.value());
215 m_qListModalityCheckBox << t_pCheckBoxModality;
216 connect(t_pCheckBoxModality,&QCheckBox::checkStateChanged,
218 topLayout->addWidget(t_pCheckBoxModality,count,0);
219 count++;
220 }
221 }
222
223 //Find Modalities tab and add current layout
224 this->setLayout(topLayout);
225}
226
227//=============================================================================================================
228
230{
231 Q_UNUSED(state)
232
233 for(qint32 i = 0; i < m_qListModalityCheckBox.size(); ++i) {
234 m_modalityMap[m_qListModalityCheckBox.at(i)->text()] = m_qListModalityCheckBox.at(i)->isChecked();
235 }
236
238
239 saveSettings();
240}
241
242//=============================================================================================================
243
Per-modality visibility / activation checkbox panel (MEG-MAG, MEG-GRAD, EEG, EOG, …).
#define FIFFV_EOG_CH
#define FIFFV_EEG_CH
#define FIFFV_MISC_CH
#define FIFFV_STIM_CH
#define FIFF_UNIT_T
#define FIFF_UNIT_T_M
2-D display widgets and visualisation helpers (charts, topography, colour maps).
AbstractView(QWidget *parent=0, Qt::WindowFlags f=Qt::Widget)
ModalitySelectionView(const QList< FIFFLIB::FiffChInfo > &lChannelList, const QString &sSettingsPath="", QWidget *parent=0, Qt::WindowFlags f=Qt::Widget)
void setModalityMap(const QMap< QString, bool > &modalityMap)
void modalitiesChanged(const QMap< QString, bool > &modalityMap)
void updateProcessingMode(ProcessingMode mode)
void onUpdateModalityCheckbox(Qt::CheckState state)
QList< QCheckBox * > m_qListModalityCheckBox