v2.0.0
Loading...
Searching...
No Matches
minimumnormsettingsview.cpp
Go to the documentation of this file.
1//=============================================================================================================
15
16//=============================================================================================================
17// INCLUDES
18//=============================================================================================================
19
21
22#include "ui_minimumnormsettingsview.h"
23
24//=============================================================================================================
25// QT INCLUDES
26//=============================================================================================================
27
28#include <QFileDialog>
29#include <QFileInfo>
30#include <QPushButton>
31#include <QSettings>
32
33//=============================================================================================================
34// EIGEN INCLUDES
35//=============================================================================================================
36
37//=============================================================================================================
38// USED NAMESPACES
39//=============================================================================================================
40
41using namespace DISPLIB;
42
43//=============================================================================================================
44// DEFINE MEMBER METHODS
45//=============================================================================================================
46
48 const QString& sMethod,
49 QWidget* parent,
50 Qt::WindowFlags f)
51: AbstractView(parent, f)
52, m_pUi(std::make_unique<Ui::MinimumNormSettingsViewWidget>())
53{
54 m_sSettingsPath = sSettingsPath;
55 m_sMethod = sMethod;
56 m_pUi->setupUi(this);
57
58 connect(m_pUi->m_comboBox_method, static_cast<void (QComboBox::*)(const QString&)>(&QComboBox::currentTextChanged),
60
61 connect(m_pUi->m_comboBox_triggerType, static_cast<void (QComboBox::*)(const QString&)>(&QComboBox::currentTextChanged),
63
64 connect(m_pUi->m_spinBox_timepoint, &QSpinBox::editingFinished,
66
67 connect(m_pUi->m_pushButton_browseModelCheckpoint, &QPushButton::clicked,
69
70 if (!m_sMethod.isEmpty()) {
71 m_pUi->m_comboBox_method->setCurrentIndex(m_pUi->m_comboBox_method->findText(m_sMethod));
72 m_pUi->m_comboBox_method->setEnabled(false);
73 }
74
75 updateCmneWidgetVisibility(m_pUi->m_comboBox_method->currentText());
76
77 this->setWindowTitle("InvMinimumNorm Settings");
78 this->setMinimumWidth(330);
79 this->setMaximumWidth(330);
80
82}
83
84//=============================================================================================================
85
90
91//=============================================================================================================
92
93void MinimumNormSettingsView::setTriggerTypes(const QStringList& lTriggerTypes)
94{
95 for (const QString& sTriggerType : lTriggerTypes) {
96 if (m_pUi->m_comboBox_triggerType->findText(sTriggerType) == -1) {
97 m_pUi->m_comboBox_triggerType->addItem(sTriggerType);
98 }
99 }
100}
101
102//=============================================================================================================
103
105{
106 if (m_sSettingsPath.isEmpty()) {
107 return;
108 }
109
110 QSettings settings("MNECPP");
111 settings.setValue(m_sSettingsPath + QString("/MinimumNormSettingsView/modelCheckpoint"),
113}
114
115//=============================================================================================================
116
118{
119 if (m_sSettingsPath.isEmpty()) {
120 return;
121 }
122
123 QSettings settings("MNECPP");
124 const QString sStored = settings.value(m_sSettingsPath + QString("/MinimumNormSettingsView/modelCheckpoint"),
125 QString())
126 .toString();
127 if (!sStored.isEmpty()) {
128 setModelCheckpoint(sStored);
129 }
130}
131
132//=============================================================================================================
133
135{
136 switch (mode) {
138 break;
139 default: // default is research mode
140 break;
141 }
142}
143
144//=============================================================================================================
145
147{
148 switch (mode) {
150 break;
151 default: // default is realtime mode
152 break;
153 }
154}
155
156//=============================================================================================================
157
159{
161 emit methodChanged(method);
162}
163
164//=============================================================================================================
165
167{
168 if (m_sModelCheckpoint == sPath) {
169 return;
170 }
171 m_sModelCheckpoint = sPath;
172 m_pUi->m_lineEdit_modelCheckpoint->setText(sPath);
173 saveSettings();
174 emit modelCheckpointChanged(sPath);
175}
176
177//=============================================================================================================
178
183
184//=============================================================================================================
185
187{
188 const bool bIsCmne = (method == QLatin1String("CMNE"));
189 m_pUi->m_label_modelCheckpoint->setVisible(bIsCmne);
190 m_pUi->m_lineEdit_modelCheckpoint->setVisible(bIsCmne);
191 m_pUi->m_pushButton_browseModelCheckpoint->setVisible(bIsCmne);
192}
193
194//=============================================================================================================
195
197{
198 const QString sStartDir = m_sModelCheckpoint.isEmpty() ? QString()
199 : QFileInfo(m_sModelCheckpoint).absolutePath();
200 const QString sFile = QFileDialog::getOpenFileName(this,
201 tr("Select CMNE model checkpoint"),
202 sStartDir,
203 tr("ONNX model (*.onnx);;All files (*)"));
204 if (!sFile.isEmpty()) {
205 setModelCheckpoint(sFile);
206 }
207}
208
209//=============================================================================================================
210
211void MinimumNormSettingsView::onTriggerTypeChanged(const QString& sTriggerType)
212{
213 emit triggerTypeChanged(sTriggerType);
214}
215
216//=============================================================================================================
217
219{
220 emit timePointChanged(m_pUi->m_spinBox_timepoint->value());
221}
222
223//=============================================================================================================
224
Minimum-norm inverse-solution method / regularisation panel (MNE, dSPM, sLORETA).
2-D display widgets and visualisation helpers (charts, topography, colour maps).
AbstractView(QWidget *parent=0, Qt::WindowFlags f=Qt::Widget)
void setModelCheckpoint(const QString &sPath)
void updateProcessingMode(ProcessingMode mode)
void onMethodChanged(const QString &method)
void onTriggerTypeChanged(const QString &sTriggerType)
MinimumNormSettingsView(const QString &sSettingsPath="", const QString &sMethod="", QWidget *parent=0, Qt::WindowFlags f=Qt::Widget)
void timePointChanged(int iTimePoint)
std::unique_ptr< Ui::MinimumNormSettingsViewWidget > m_pUi
void updateCmneWidgetVisibility(const QString &method)
void triggerTypeChanged(const QString &triggerType)
void setTriggerTypes(const QStringList &lTriggerTypes)
void modelCheckpointChanged(const QString &sPath)
void methodChanged(const QString &method)