20#include "ui_dipolefitview.h"
42, m_pUi(std::make_unique<Ui::DipoleFitViewWidget>())
45 this->setMinimumWidth(330);
94 m_pUi->comboBox_bem->addItem(sFileName);
101 m_pUi->comboBox_mri->addItem(sFileName);
108 m_pUi->comboBox_noise->addItem(sFileName);
116 m_pUi->spinBox_tmax->value(),
117 m_pUi->spinBox_tstep->value(),
118 m_pUi->spinBox_tint->value());
120 emit
modalityChanged(m_pUi->checkBox_EEG->isChecked(), m_pUi->checkBox_MEG->isChecked());
123 m_pUi->doubleSpinBox_grid->value());
125 if (m_pUi->spinBox_bmin->value() != m_pUi->spinBox_bmax->value()) {
127 m_pUi->spinBox_bmax->value());
132 emit
noiseChanged(m_pUi->doubleSpinBox_gradnoise->value(),
133 m_pUi->doubleSpinBox_magnoise->value(),
134 m_pUi->doubleSpinBox_eegnoise->value());
136 emit
regChanged(m_pUi->doubleSpinBox_gradreg->value(),
137 m_pUi->doubleSpinBox_magreg->value(),
138 m_pUi->doubleSpinBox_eegreg->value());
141 m_pUi->doubleSpinBox_orgy->value(),
142 m_pUi->doubleSpinBox_orgz->value(),
143 m_pUi->doubleSpinBox_rad->value());
148void DipoleFitView::initGui()
151 m_pUi->comboBox_bem->addItem(
"None");
152 m_pUi->comboBox_noise->addItem(
"None");
153 m_pUi->comboBox_mri->addItem(
"None");
154 m_pUi->comboBox_meas->addItem(
"None");
157 connect(m_pUi->pushButton_fit, &QPushButton::clicked, [=,
this] {
158 emit performDipoleFit(m_pUi->lineEdit_name->text());
161 connect(m_pUi->spinBox_set, QOverload<int>::of(&QSpinBox::valueChanged),
165 connect(m_pUi->spinBox_tmin, QOverload<int>::of(&QSpinBox::valueChanged), [=,
this](
int iValue) {
166 emit timeChanged(iValue,
167 m_pUi->spinBox_tmax->value(),
168 m_pUi->spinBox_tstep->value(),
169 m_pUi->spinBox_tint->value());
171 connect(m_pUi->spinBox_tmax, QOverload<int>::of(&QSpinBox::valueChanged), [=,
this](
int iValue) {
172 emit timeChanged(m_pUi->spinBox_tmin->value(),
174 m_pUi->spinBox_tstep->value(),
175 m_pUi->spinBox_tint->value());
177 connect(m_pUi->spinBox_tstep, QOverload<int>::of(&QSpinBox::valueChanged), [=,
this](
int iValue) {
178 emit timeChanged(m_pUi->spinBox_tmin->value(),
179 m_pUi->spinBox_tmax->value(),
181 m_pUi->spinBox_tint->value());
183 connect(m_pUi->spinBox_tint, QOverload<int>::of(&QSpinBox::valueChanged), [=,
this](
int iValue) {
184 emit timeChanged(m_pUi->spinBox_tmin->value(),
185 m_pUi->spinBox_tmax->value(),
186 m_pUi->spinBox_tstep->value(),
191 connect(m_pUi->spinBox_bmin, QOverload<int>::of(&QSpinBox::valueChanged), [=,
this](
int iValue) {
192 if (iValue != m_pUi->spinBox_bmax->value()) {
193 emit baselineChanged(iValue,
194 m_pUi->spinBox_bmax->value());
196 emit baselineChanged(1e6, 1e6);
199 connect(m_pUi->spinBox_bmax, QOverload<int>::of(&QSpinBox::valueChanged), [=,
this](
int iValue) {
200 if (iValue != m_pUi->spinBox_bmin->value()) {
201 emit baselineChanged(m_pUi->spinBox_bmin->value(),
204 emit baselineChanged(1e6, 1e6);
209 connect(m_pUi->checkBox_EEG, &QCheckBox::toggled, [=,
this](
bool bChecked) {
210 emit modalityChanged(bChecked, m_pUi->checkBox_MEG->isChecked());
212 connect(m_pUi->checkBox_MEG, &QCheckBox::toggled, [=,
this](
bool bChecked) {
213 emit modalityChanged(m_pUi->checkBox_EEG->isChecked(), bChecked);
217 connect(m_pUi->doubleSpinBox_dist, QOverload<double>::of(&QDoubleSpinBox::valueChanged), [=,
this](
double dValue) {
218 emit fittingChanged(dValue,
219 m_pUi->doubleSpinBox_grid->value());
221 connect(m_pUi->doubleSpinBox_grid, QOverload<double>::of(&QDoubleSpinBox::valueChanged), [=,
this](
double dValue) {
222 emit fittingChanged(m_pUi->doubleSpinBox_dist->value(),
227 connect(m_pUi->doubleSpinBox_gradnoise, QOverload<double>::of(&QDoubleSpinBox::valueChanged), [=,
this](
double dValue) {
228 emit noiseChanged(dValue,
229 m_pUi->doubleSpinBox_magnoise->value(),
230 m_pUi->doubleSpinBox_eegnoise->value());
232 connect(m_pUi->doubleSpinBox_magnoise, QOverload<double>::of(&QDoubleSpinBox::valueChanged), [=,
this](
double dValue) {
233 emit noiseChanged(m_pUi->doubleSpinBox_gradnoise->value(),
235 m_pUi->doubleSpinBox_eegnoise->value());
237 connect(m_pUi->doubleSpinBox_eegnoise, QOverload<double>::of(&QDoubleSpinBox::valueChanged), [=,
this](
double dValue) {
238 emit noiseChanged(m_pUi->doubleSpinBox_gradnoise->value(),
239 m_pUi->doubleSpinBox_magnoise->value(),
244 connect(m_pUi->doubleSpinBox_gradreg, QOverload<double>::of(&QDoubleSpinBox::valueChanged), [=,
this](
double dValue) {
245 emit regChanged(dValue,
246 m_pUi->doubleSpinBox_magreg->value(),
247 m_pUi->doubleSpinBox_eegreg->value());
249 connect(m_pUi->doubleSpinBox_magreg, QOverload<double>::of(&QDoubleSpinBox::valueChanged), [=,
this](
double dValue) {
250 emit regChanged(m_pUi->doubleSpinBox_gradreg->value(),
252 m_pUi->doubleSpinBox_eegreg->value());
254 connect(m_pUi->doubleSpinBox_eegreg, QOverload<double>::of(&QDoubleSpinBox::valueChanged), [=,
this](
double dValue) {
255 emit regChanged(m_pUi->doubleSpinBox_gradreg->value(),
256 m_pUi->doubleSpinBox_magreg->value(),
261 connect(m_pUi->doubleSpinBox_orgx, QOverload<double>::of(&QDoubleSpinBox::valueChanged), [=,
this](
double dValue) {
262 emit sphereChanged(dValue,
263 m_pUi->doubleSpinBox_orgy->value(),
264 m_pUi->doubleSpinBox_orgz->value(),
265 m_pUi->doubleSpinBox_rad->value());
267 connect(m_pUi->doubleSpinBox_orgy, QOverload<double>::of(&QDoubleSpinBox::valueChanged), [=,
this](
double dValue) {
268 emit sphereChanged(m_pUi->doubleSpinBox_orgx->value(),
270 m_pUi->doubleSpinBox_orgz->value(),
271 m_pUi->doubleSpinBox_rad->value());
273 connect(m_pUi->doubleSpinBox_orgz, QOverload<double>::of(&QDoubleSpinBox::valueChanged), [=,
this](
double dValue) {
274 emit sphereChanged(m_pUi->doubleSpinBox_orgx->value(),
275 m_pUi->doubleSpinBox_orgy->value(),
277 m_pUi->doubleSpinBox_rad->value());
279 connect(m_pUi->doubleSpinBox_rad, QOverload<double>::of(&QDoubleSpinBox::valueChanged), [=,
this](
double dValue) {
280 emit sphereChanged(m_pUi->doubleSpinBox_orgx->value(),
281 m_pUi->doubleSpinBox_orgy->value(),
282 m_pUi->doubleSpinBox_orgz->value(),
287 connect(m_pUi->comboBox_bem, &QComboBox::currentTextChanged,
289 connect(m_pUi->comboBox_noise, &QComboBox::currentTextChanged,
291 connect(m_pUi->comboBox_mri, &QComboBox::currentTextChanged,
293 connect(m_pUi->comboBox_meas, &QComboBox::currentTextChanged, [=,
this](
const QString& sFileName) {
294#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
295 auto skip = QString::SkipEmptyParts;
297 auto skip = Qt::SkipEmptyParts;
300 const QStringList parts = sFileName.split(
".", skip);
301 if (parts.isEmpty()) {
302 m_pUi->lineEdit_name->clear();
303 emit selectedMeas(sFileName);
306 QString sName = parts.at(0);
307 if (sName.endsWith(
"-ave") || sName.endsWith(
"_ave") || sName.endsWith(
"-raw") || sName.endsWith(
"_raw")) {
310 m_pUi->lineEdit_name->setText(
"Dipole Fit - " + sName +
" - " + QDateTime::currentDateTime().toString(
"MMMM d yyyy hh:mm:ss"));
311 emit selectedMeas(sFileName);
319 m_pUi->comboBox_meas->addItem(sFileName);
333 m_pUi->comboBox_meas->clear();
334 m_pUi->comboBox_bem->clear();
335 m_pUi->comboBox_mri->clear();
336 m_pUi->comboBox_noise->clear();
345 int iIndex = m_pUi->comboBox_meas->findText(sModelName);
347 m_pUi->comboBox_meas->removeItem(iIndex);
352 int iIndex = m_pUi->comboBox_bem->findText(sModelName);
354 m_pUi->comboBox_bem->removeItem(iIndex);
359 int iIndex = m_pUi->comboBox_mri->findText(sModelName);
361 m_pUi->comboBox_mri->removeItem(iIndex);
366 int iIndex = m_pUi->comboBox_noise->findText(sModelName);
368 m_pUi->comboBox_noise->removeItem(iIndex);
373 qWarning() <<
"[DipoleFitView::removeModel] Model type not recognized";
Input / output panel for the single-equivalent-current-dipole fit tool.
2-D display widgets and visualisation helpers (charts, topography, colour maps).
AbstractView(QWidget *parent=0, Qt::WindowFlags f=Qt::Widget)
void addNoise(const QString &sFileName)
void addMri(const QString &sFileName)
void noiseChanged(double dGrad, double dMag, double dEeg)
void sphereChanged(double dX, double dY, double dZ, double dRadius)
void updateProcessingMode(ProcessingMode mode) override
void addBem(const QString &sFileName)
void selectedNoise(const QString &sName)
void saveSettings() override
~DipoleFitView() override
void regChanged(double dRegGrad, double dRegMag, double dRegEeg)
void removeModel(const QString &sModelName, int iType)
void selectedMri(const QString &sName)
void addMeas(const QString &sFileName)
void timeChanged(int iMin, int iMax, int iStep, int iInt)
void selectedBem(const QString &sName)
void baselineChanged(int iBMin, int iBMax)
void modalityChanged(bool bEEG, bool bMEG)
void clearView() override
void setChanged(int iSet)
DipoleFitView(QWidget *parent=0, Qt::WindowFlags f=Qt::Widget)
void loadSettings() override
void updateGuiMode(GuiMode mode) override
void fittingChanged(int iMinDistance, int iSize)