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");
108 return QString(
"%1").arg(
"Original name");
111 return QString(
"%1").arg(
"Alias");
114 return QString(
"%1").arg(
"Mapped layout name");
117 return QString(
"%1").arg(
"Channel kind");
120 return QString(
"%1").arg(
"MEG type");
123 return QString(
"%1").arg(
"Unit");
126 return QString(
"%1").arg(
"Position");
129 return QString(
"%1").arg(
"Digitizer (cm)");
132 return QString(
"%1").arg(
"Active filter");
135 return QString(
"%1").arg(
"Coil Type");
138 return QString(
"%1").arg(
"Bad channel");
141 return QString(
"%1").arg(
"# of Compensators");
157 if (index.isValid()) {
159 if (index.column() == 0) {
163 case Qt::DisplayRole:
164 v.setValue(index.row());
168 v.setValue(index.row());
171 case Qt::TextAlignmentRole:
172 Qt::Alignment a = Qt::AlignHCenter | Qt::AlignVCenter;
178 if (index.column() == 1) {
182 case Qt::DisplayRole:
183 v.setValue(QString(
"%1").arg(
m_pFiffInfo->chs.at(index.row()).ch_name));
187 v.setValue(QString(
"%1").arg(
m_pFiffInfo->chs.at(index.row()).ch_name));
190 case Qt::TextAlignmentRole:
191 Qt::Alignment a = Qt::AlignHCenter | Qt::AlignVCenter;
197 if (index.column() == 2) {
201 case Qt::DisplayRole:
203 v.setValue(QString(
"%1").arg(
m_aliasNames.at(index.row())));
208 v.setValue(QString(
"%1").arg(
m_aliasNames.at(index.row())));
211 case Qt::TextAlignmentRole:
212 Qt::Alignment a = Qt::AlignHCenter | Qt::AlignVCenter;
218 if (index.column() == 3) {
222 case Qt::DisplayRole:
232 case Qt::TextAlignmentRole:
233 Qt::Alignment a = Qt::AlignHCenter | Qt::AlignVCenter;
239 if (index.column() == 4) {
243 case Qt::DisplayRole:
244 v.setValue(QString(
"%1").arg(
m_pFiffInfo->chs.at(index.row()).kind));
251 case Qt::TextAlignmentRole:
252 Qt::Alignment a = Qt::AlignHCenter | Qt::AlignVCenter;
258 if (index.column() == 5) {
261 v.setValue(QString(
"%1").arg(
"non_MEG"));
264 qint32 unit =
m_pFiffInfo->chs.at(index.row()).unit;
266 v.setValue(QString(
"MEG_grad"));
268 v.setValue(QString(
"MEG_mag"));
272 case Qt::DisplayRole:
278 case Qt::TextAlignmentRole:
279 Qt::Alignment a = Qt::AlignHCenter | Qt::AlignVCenter;
285 if (index.column() == 6) {
289 case Qt::DisplayRole:
290 v.setValue(QString(
"%1").arg(
m_pFiffInfo->chs.at(index.row()).unit));
297 case Qt::TextAlignmentRole:
298 Qt::Alignment a = Qt::AlignHCenter | Qt::AlignVCenter;
304 if (index.column() == 7) {
310 case Qt::DisplayRole:
311 v.setValue(QString(
"(%1|%2)").arg(point.x()).arg(point.y()));
318 case Qt::TextAlignmentRole:
319 Qt::Alignment a = Qt::AlignHCenter | Qt::AlignVCenter;
325 if (index.column() == 8) {
328 QVector3D point3D(
m_pFiffInfo->chs.at(index.row()).chpos.r0[0] * 100,
329 m_pFiffInfo->chs.at(index.row()).chpos.r0[1] * 100,
330 m_pFiffInfo->chs.at(index.row()).chpos.r0[2] * 100);
333 case Qt::DisplayRole:
334 v.setValue(QString(
"(%1|%2|%3)").arg(point3D.x()).arg(point3D.y()).arg(point3D.z()));
341 case Qt::TextAlignmentRole:
342 Qt::Alignment a = Qt::AlignHCenter | Qt::AlignVCenter;
348 if (index.column() == 9) {
356 case Qt::DisplayRole: {
409 case Qt::TextAlignmentRole:
410 Qt::Alignment a = Qt::AlignHCenter | Qt::AlignVCenter;
416 if (index.column() == 10) {
420 case Qt::DisplayRole:
421 v.setValue(QString(
"%1").arg(
m_pFiffInfo->chs.at(index.row()).chpos.coil_type));
425 v.setValue(
m_pFiffInfo->chs.at(index.row()).chpos.coil_type);
428 case Qt::TextAlignmentRole:
429 Qt::Alignment a = Qt::AlignHCenter | Qt::AlignVCenter;
435 if (index.column() == 11) {
438 QString chName =
m_pFiffInfo->chs.at(index.row()).ch_name;
441 case Qt::DisplayRole:
451 case Qt::TextAlignmentRole:
452 Qt::Alignment a = Qt::AlignHCenter | Qt::AlignVCenter;
458 if (index.column() == 12) {
462 case Qt::DisplayRole:
466 case Qt::TextAlignmentRole:
467 Qt::Alignment a = Qt::AlignHCenter | Qt::AlignVCenter;
503 return Qt::ItemIsEnabled | Qt::ItemIsSelectable ;
598 for (
int i = 0; i < channelList.size(); i++) {
601 QString chName = chInfo.
ch_name;
602 QRegularExpression regExpRemove;
604 switch (chInfo.
kind) {
607 regExpRemove = QRegularExpression(
"(MEG|-|_|/|\\| )");
608 chName.remove(regExpRemove);
617 regExpRemove = QRegularExpression(
"(EEG|-|_|/|\\| )");
618 chName.remove(regExpRemove);
644 qDebug(
"ChannelInfoModel cleared.");
Full FIFF measurement metadata: everything from FIFFB_MEAS / FIFFB_MEAS_INFO needed to interpret a re...
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...
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)
QMultiMap< int, QSharedPointer< MNEOperator > > m_assignedOperators
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)
QMap< QString, QPointF > m_layoutMap
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()
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