MNE-CPP  beta 1.0
mnesetupwidget.cpp
Go to the documentation of this file.
1 //=============================================================================================================
36 //*************************************************************************************************************
37 //=============================================================================================================
38 // INCLUDES
39 //=============================================================================================================
40 
41 #include "mnesetupwidget.h"
42 #include "mneaboutwidget.h"
43 
44 #include "../mne.h"
45 
46 #include <fs/annotationset.h>
47 #include <fs/surfaceset.h>
49 
50 
51 //*************************************************************************************************************
52 //=============================================================================================================
53 // QT INCLUDES
54 //=============================================================================================================
55 
56 #include <QDebug>
57 #include <QFileDialog>
58 #include <QtConcurrent>
59 
60 
61 //*************************************************************************************************************
62 //=============================================================================================================
63 // USED NAMESPACES
64 //=============================================================================================================
65 
66 using namespace MNEPlugin;
67 
68 
69 //*************************************************************************************************************
70 //=============================================================================================================
71 // DEFINE MEMBER METHODS
72 //=============================================================================================================
73 
74 MNESetupWidget::MNESetupWidget(MNE* toolbox, QWidget *parent)
75 : QWidget(parent)
76 , m_pMNE(toolbox)
77 {
78  ui.setupUi(this);
79 
80  ui.m_qLineEdit_FwdFileName->setText(m_pMNE->m_qFileFwdSolution.fileName());
81 
82  ui.m_qLineEdit_AtlasDirName->setText(m_pMNE->m_sAtlasDir);
83  if(m_pMNE->m_pAnnotationSet->isEmpty())
84  ui.m_qLabel_atlasStat->setText("not loaded");
85  else
86  ui.m_qLabel_atlasStat->setText("loaded");
87 
88  ui.m_qLineEdit_SurfaceDirName->setText(m_pMNE->m_sSurfaceDir);
89  if(m_pMNE->m_pSurfaceSet->isEmpty())
90  ui.m_qLabel_surfaceStat->setText("not loaded");
91  else
92  ui.m_qLabel_surfaceStat->setText("loaded");
93 
94  connect(ui.m_qPushButton_About, &QPushButton::released, this, &MNESetupWidget::showAboutDialog);
95  connect(ui.m_qPushButton_FwdFileDialog, &QPushButton::released, this, &MNESetupWidget::showFwdFileDialog);
96  connect(ui.m_qPushButton_AtlasDirDialog, &QPushButton::released, this, &MNESetupWidget::showAtlasDirDialog);
97  connect(ui.m_qPushButton_SurfaceDirDialog, &QPushButton::released, this, &MNESetupWidget::showSurfaceDirDialog);
98  connect(ui.m_qPushButonStartClustering, &QPushButton::released, this, &MNESetupWidget::clusteringTriggered);
99 }
100 
101 
102 //*************************************************************************************************************
103 
105 {
106 
107 }
108 
109 
110 //*************************************************************************************************************
111 
113 {
114  ui.m_qPushButonStartClustering->setEnabled(false);
115  ui.m_qPushButonStartClustering->setText("Clustering...");
116 }
117 
118 
119 //*************************************************************************************************************
120 
122 {
123  ui.m_qPushButonStartClustering->setEnabled(true);
124  ui.m_qPushButonStartClustering->setText("Start Clustering");
125 }
126 
127 
128 //*************************************************************************************************************
129 
130 void MNESetupWidget::clusteringTriggered()
131 {
132  // start clustering
133  QFuture<void> future = QtConcurrent::run(m_pMNE, &MNE::doClustering);
134 }
135 
136 
137 //*************************************************************************************************************
138 
139 void MNESetupWidget::showAboutDialog()
140 {
141  MNEAboutWidget aboutDialog(this);
142  aboutDialog.exec();
143 }
144 
145 
146 //*************************************************************************************************************
147 
148 void MNESetupWidget::showFwdFileDialog()
149 {
150  QString t_sFileName = QFileDialog::getOpenFileName(this,
151  tr("Open Forward Solution"),
152  QString(),
153  tr("Fif Files (*.fif)"));
154 
155  QFile file(t_sFileName);
157 
158  if(!t_pFwd->isEmpty())
159  {
160  ui.m_qLineEdit_FwdFileName->setText(t_sFileName);
161  m_pMNE->m_qFileFwdSolution.setFileName(t_sFileName);
162  m_pMNE->m_pFwd = t_pFwd;
163  }
164 }
165 
166 
167 //*************************************************************************************************************
168 
169 void MNESetupWidget::showAtlasDirDialog()
170 {
171  QString t_sAtlasDir = QFileDialog::getExistingDirectory(this, tr("Open Atlas Directory"),
172  QString(),
173  QFileDialog::ShowDirsOnly
174  | QFileDialog::DontResolveSymlinks);
175 
176  m_pMNE->m_sAtlasDir = t_sAtlasDir;
177 
178  ui.m_qLineEdit_AtlasDirName->setText(m_pMNE->m_sAtlasDir);
179 
180  AnnotationSet::SPtr t_pAnnotationSet = AnnotationSet::SPtr(new AnnotationSet(t_sAtlasDir+"/lh.aparc.a2009s.annot", t_sAtlasDir+"/rh.aparc.a2009s.annot"));
181 
182  if(!t_pAnnotationSet->isEmpty() && t_pAnnotationSet->size() == 2)
183  {
184  m_pMNE->m_pAnnotationSet = t_pAnnotationSet;
185 
186  m_pMNE->m_sAtlasDir = t_sAtlasDir;
187 
188  ui.m_qLabel_atlasStat->setText("loaded");
189  }
190  else
191  {
192  m_pMNE->m_pAnnotationSet = AnnotationSet::SPtr(new AnnotationSet());
193  ui.m_qLabel_atlasStat->setText("not loaded");
194  }
195 }
196 
197 
198 //*************************************************************************************************************
199 
200 void MNESetupWidget::showSurfaceDirDialog()
201 {
202  QString t_sSurfaceDir = QFileDialog::getExistingDirectory( this, tr("Open Surface Directory"),
203  QString(),
204  QFileDialog::ShowDirsOnly
205  | QFileDialog::DontResolveSymlinks);
206 
207  SurfaceSet::SPtr t_pSurfaceSet = SurfaceSet::SPtr(new SurfaceSet(t_sSurfaceDir+"/lh.white", t_sSurfaceDir+"/rh.white"));
208 
209  if(!t_pSurfaceSet->isEmpty() && t_pSurfaceSet->size() == 2)
210  {
211  m_pMNE->m_pSurfaceSet = t_pSurfaceSet;
212 
213  m_pMNE->m_sSurfaceDir = t_sSurfaceDir;
214 
215  ui.m_qLabel_surfaceStat->setText("loaded");
216  }
217  else
218  {
219  m_pMNE->m_pSurfaceSet = SurfaceSet::SPtr(new SurfaceSet());
220  ui.m_qLabel_surfaceStat->setText("not loaded");
221  }
222 }
SurfaceSet class declaration.
QSharedPointer< MNEForwardSolution > SPtr
MNEForwardSolution class declaration, which provides the forward solution including the source space ...
Contains the declaration of the MNESetupWidget class.
Annotation set.
Definition: annotationset.h:96
QSharedPointer< SurfaceSet > SPtr
Definition: surfaceset.h:86
QSharedPointer< AnnotationSet > SPtr
Definition: annotationset.h:99
The MNEAboutWidget class provides the about dialog for the MNE.
AnnotationSet class declaration.
Contains the declaration of the MNEAboutWidget class.
The MNE class provides wrapper functions to stay consistent with mne matlab toolbox.
Definition: mne.h:103
MNESetupWidget(MNE *toolbox, QWidget *parent=0)
A hemisphere set of surfaces.
Definition: surfaceset.h:83