31#include <QRegularExpression>
50: QAbstractTableModel(parent)
51, m_pFiffInfo(pFiffInfo)
53 setFiffInfo(m_pFiffInfo);
59: QAbstractTableModel(parent)
86 if(role != Qt::DisplayRole && role != Qt::TextAlignmentRole)
91 case Qt::TextAlignmentRole:
92 a = Qt::AlignHCenter | Qt::AlignVCenter;
95 case Qt::DisplayRole: {
97 if(orientation == Qt::Vertical)
98 if(section<m_pFiffInfo->chs.size())
99 return QString(
"Ch %1").arg(section);
102 if(orientation == Qt::Horizontal) {
105 return QString(
"%1").arg(
"Data number");
109 return QString(
"%1").arg(
"Original name");
113 return QString(
"%1").arg(
"Alias");
117 return QString(
"%1").arg(
"Mapped layout name");
121 return QString(
"%1").arg(
"Channel kind");
125 return QString(
"%1").arg(
"MEG type");
129 return QString(
"%1").arg(
"Unit");
133 return QString(
"%1").arg(
"Position");
137 return QString(
"%1").arg(
"Digitizer (cm)");
141 return QString(
"%1").arg(
"Active filter");
145 return QString(
"%1").arg(
"Coil Type");
149 return QString(
"%1").arg(
"Bad channel");
153 return QString(
"%1").arg(
"# of Compensators");
170 if (index.isValid()) {
172 if(index.column()==0) {
176 case Qt::DisplayRole:
177 v.setValue(index.row());
181 v.setValue(index.row());
184 case Qt::TextAlignmentRole:
185 Qt::Alignment a = Qt::AlignHCenter | Qt::AlignVCenter;
191 if(index.column()==1) {
195 case Qt::DisplayRole:
196 v.setValue(QString(
"%1").arg(
m_pFiffInfo->chs.at(index.row()).ch_name));
200 v.setValue(QString(
"%1").arg(
m_pFiffInfo->chs.at(index.row()).ch_name));
203 case Qt::TextAlignmentRole:
204 Qt::Alignment a = Qt::AlignHCenter | Qt::AlignVCenter;
210 if(index.column()==2) {
214 case Qt::DisplayRole:
216 v.setValue(QString(
"%1").arg(
m_aliasNames.at(index.row())));
221 v.setValue(QString(
"%1").arg(
m_aliasNames.at(index.row())));
224 case Qt::TextAlignmentRole:
225 Qt::Alignment a = Qt::AlignHCenter | Qt::AlignVCenter;
231 if(index.column()==3) {
235 case Qt::DisplayRole:
245 case Qt::TextAlignmentRole:
246 Qt::Alignment a = Qt::AlignHCenter | Qt::AlignVCenter;
252 if(index.column()==4) {
256 case Qt::DisplayRole:
257 v.setValue(QString(
"%1").arg(
m_pFiffInfo->chs.at(index.row()).kind));
264 case Qt::TextAlignmentRole:
265 Qt::Alignment a = Qt::AlignHCenter | Qt::AlignVCenter;
271 if(index.column()==5) {
274 v.setValue(QString(
"%1").arg(
"non_MEG"));
277 qint32 unit =
m_pFiffInfo->chs.at(index.row()).unit;
279 v.setValue(QString(
"MEG_grad"));
281 v.setValue(QString(
"MEG_mag"));
285 case Qt::DisplayRole:
291 case Qt::TextAlignmentRole:
292 Qt::Alignment a = Qt::AlignHCenter | Qt::AlignVCenter;
298 if(index.column()==6) {
302 case Qt::DisplayRole:
303 v.setValue(QString(
"%1").arg(
m_pFiffInfo->chs.at(index.row()).unit));
310 case Qt::TextAlignmentRole:
311 Qt::Alignment a = Qt::AlignHCenter | Qt::AlignVCenter;
317 if(index.column()==7) {
323 case Qt::DisplayRole:
324 v.setValue(QString(
"(%1|%2)").arg(point.x()).arg(point.y()));
331 case Qt::TextAlignmentRole:
332 Qt::Alignment a = Qt::AlignHCenter | Qt::AlignVCenter;
338 if(index.column()==8) {
341 QVector3D point3D(
m_pFiffInfo->chs.at(index.row()).chpos.r0[0] * 100,
342 m_pFiffInfo->chs.at(index.row()).chpos.r0[1] * 100,
343 m_pFiffInfo->chs.at(index.row()).chpos.r0[2] * 100 );
346 case Qt::DisplayRole:
347 v.setValue(QString(
"(%1|%2|%3)").arg(point3D.x()).arg(point3D.y()).arg(point3D.z()));
354 case Qt::TextAlignmentRole:
355 Qt::Alignment a = Qt::AlignHCenter | Qt::AlignVCenter;
361 if(index.column()==9) {
369 case Qt::DisplayRole: {
422 case Qt::TextAlignmentRole:
423 Qt::Alignment a = Qt::AlignHCenter | Qt::AlignVCenter;
429 if(index.column()==10) {
433 case Qt::DisplayRole:
434 v.setValue(QString(
"%1").arg(
m_pFiffInfo->chs.at(index.row()).chpos.coil_type));
438 v.setValue(
m_pFiffInfo->chs.at(index.row()).chpos.coil_type);
441 case Qt::TextAlignmentRole:
442 Qt::Alignment a = Qt::AlignHCenter | Qt::AlignVCenter;
448 if(index.column()==11) {
451 QString chName =
m_pFiffInfo->chs.at(index.row()).ch_name;
454 case Qt::DisplayRole:
464 case Qt::TextAlignmentRole:
465 Qt::Alignment a = Qt::AlignHCenter | Qt::AlignVCenter;
471 if(index.column()==12) {
475 case Qt::DisplayRole:
479 case Qt::TextAlignmentRole:
480 Qt::Alignment a = Qt::AlignHCenter | Qt::AlignVCenter;
516 return Qt::ItemIsEnabled | Qt::ItemIsSelectable ;
612 for(
int i = 0; i<channelList.size(); i++) {
615 QString chName = chInfo.
ch_name;
616 QRegularExpression regExpRemove;
619 switch(chInfo.
kind) {
622 regExpRemove = QRegularExpression(
"(MEG|-|_|/|\\| )");
623 chName.remove(regExpRemove);
633 regExpRemove = QRegularExpression(
"(EEG|-|_|/|\\| )");
634 chName.remove(regExpRemove);
661 qDebug(
"ChannelInfoModel cleared.");
QAbstractTableModel exposing per-channel FIFF metadata (name, type, unit, position,...
Light-weight wrapper describing one MNE pre-processing operator (FIR, SSP, compensation) inside a mod...
Full FIFF measurement metadata: everything from FIFFB_MEAS / FIFFB_MEAS_INFO needed to interpret a re...
FIFF file I/O, in-memory data structures and high-level readers/writers.
2-D display widgets and visualisation helpers (charts, topography, colour maps).
void channelsMappedToLayout(const QStringList &mappedLayoutChNames)
ChannelInfoModel(QSharedPointer< FIFFLIB::FiffInfo > &pFiffInfo, QObject *parent=0)
virtual QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const
void setFiffInfo(QSharedPointer< FIFFLIB::FiffInfo > &pFiffInfo)
void assignedOperatorsChanged(const QMultiMap< int, QSharedPointer< MNEOperator > > &assignedOperators)
QMultiMap< int, QSharedPointer< MNEOperator > > m_assignedOperators
virtual bool insertRows(int position, int span, const QModelIndex &parent=QModelIndex())
QStringList getBadChannelList()
QSharedPointer< FIFFLIB::FiffInfo > m_pFiffInfo
QSharedPointer< ChannelInfoModel > SPtr
void mapLayoutToChannels()
int getIndexFromMappedChName(QString chName)
virtual QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const
void layoutChanged(const QMap< QString, QPointF > &layoutMap)
virtual bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole)
int getIndexFromOrigChName(QString chName)
const QStringList & getMappedChannelsList()
QMap< QString, QPointF > m_layoutMap
virtual Qt::ItemFlags flags(const QModelIndex &index) const
virtual int rowCount(const QModelIndex &parent=QModelIndex()) const
virtual bool removeRows(int position, int span, const QModelIndex &parent=QModelIndex())
QStringList m_mappedLayoutChNames
virtual int columnCount(const QModelIndex &parent=QModelIndex()) const
Per-channel FIFF descriptor: identifiers, kind, calibration, coil type, channel-frame coil position a...
Full FIFF measurement info: per-channel descriptors, sampling and filter setup, projectors,...
QSharedPointer< FiffInfo > SPtr