MNE-CPP  beta 0.1
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
sourcelabsetupwidget.cpp
Go to the documentation of this file.
1 //=============================================================================================================
36 //*************************************************************************************************************
37 //=============================================================================================================
38 // INCLUDES
39 //=============================================================================================================
40 
41 #include "sourcelabsetupwidget.h"
42 #include "sourcelababoutwidget.h"
43 
44 #include "../sourcelab.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 SourceLabPlugin;
67 
68 
69 //*************************************************************************************************************
70 //=============================================================================================================
71 // DEFINE MEMBER METHODS
72 //=============================================================================================================
73 
75 : QWidget(parent)
76 , m_pSourceLab(toolbox)
77 {
78  ui.setupUi(this);
79 
80  ui.m_qLineEdit_FwdFileName->setText(m_pSourceLab->m_qFileFwdSolution.fileName());
81 
82  ui.m_qLineEdit_AtlasDirName->setText(m_pSourceLab->m_sAtlasDir);
83  if(m_pSourceLab->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_pSourceLab->m_sSurfaceDir);
89  if(m_pSourceLab->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, &SourceLabSetupWidget::showAboutDialog);
95  connect(ui.m_qPushButton_FwdFileDialog, &QPushButton::released, this, &SourceLabSetupWidget::showFwdFileDialog);
96  connect(ui.m_qPushButton_AtlasDirDialog, &QPushButton::released, this, &SourceLabSetupWidget::showAtlasDirDialog);
97  connect(ui.m_qPushButton_SurfaceDirDialog, &QPushButton::released, this, &SourceLabSetupWidget::showSurfaceDirDialog);
98  connect(ui.m_qPushButonStartClustering, &QPushButton::released, this, &SourceLabSetupWidget::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 SourceLabSetupWidget::clusteringTriggered()
131 {
132  // start clustering
133  QFuture<void> future = QtConcurrent::run(m_pSourceLab, &SourceLab::doClustering);
134 }
135 
136 
137 //*************************************************************************************************************
138 
139 void SourceLabSetupWidget::showAboutDialog()
140 {
141  SourceLabAboutWidget aboutDialog(this);
142  aboutDialog.exec();
143 }
144 
145 
146 //*************************************************************************************************************
147 
148 void SourceLabSetupWidget::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_pSourceLab->m_qFileFwdSolution.setFileName(t_sFileName);
162  m_pSourceLab->m_pFwd = t_pFwd;
163  }
164 }
165 
166 
167 //*************************************************************************************************************
168 
169 void SourceLabSetupWidget::showAtlasDirDialog()
170 {
171  QString t_sAtlasDir = QFileDialog::getExistingDirectory(this, tr("Open Atlas Directory"),
172  QString(),
173  QFileDialog::ShowDirsOnly
174  | QFileDialog::DontResolveSymlinks);
175 
176  m_pSourceLab->m_sAtlasDir = t_sAtlasDir;
177 
178  ui.m_qLineEdit_AtlasDirName->setText(m_pSourceLab->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_pSourceLab->m_pAnnotationSet = t_pAnnotationSet;
185 
186  m_pSourceLab->m_sAtlasDir = t_sAtlasDir;
187 
188  ui.m_qLabel_atlasStat->setText("loaded");
189  }
190  else
191  {
192  m_pSourceLab->m_pAnnotationSet = AnnotationSet::SPtr(new AnnotationSet());
193  ui.m_qLabel_atlasStat->setText("not loaded");
194  }
195 }
196 
197 
198 //*************************************************************************************************************
199 
200 void SourceLabSetupWidget::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_pSourceLab->m_pSurfaceSet = t_pSurfaceSet;
212 
213  m_pSourceLab->m_sSurfaceDir = t_sSurfaceDir;
214 
215  ui.m_qLabel_surfaceStat->setText("loaded");
216  }
217  else
218  {
219  m_pSourceLab->m_pSurfaceSet = SurfaceSet::SPtr(new SurfaceSet());
220  ui.m_qLabel_surfaceStat->setText("not loaded");
221  }
222 }
SurfaceSet class declaration.
QSharedPointer< MNEForwardSolution > SPtr
Contains the declaration of the SourceLabAboutWidget class.
The SourceLab class provides a dummy algorithm structure.
Definition: sourcelab.h:110
MNEForwardSolution class declaration, which provides the forward solution including the source space ...
Annotation set.
Definition: annotationset.h:96
QSharedPointer< SurfaceSet > SPtr
Definition: surfaceset.h:86
SourceLabSetupWidget(SourceLab *toolbox, QWidget *parent=0)
QSharedPointer< AnnotationSet > SPtr
Definition: annotationset.h:99
The SourceLabAboutWidget class provides the about dialog for the SourceLab.
Contains the declaration of the SourceLabSetupWidget class.
AnnotationSet class declaration.
A hemisphere set of surfaces.
Definition: surfaceset.h:83