36#include <QGraphicsView>
37#include <QSvgGenerator>
39#include <QGraphicsItem>
63 this->setWindowTitle(
"Average Layout");
67 auto *rhiViewport =
new QRhiWidget;
68#if defined(WASMBUILD) || defined(__EMSCRIPTEN__)
69 rhiViewport->setApi(QRhiWidget::Api::OpenGL);
70#elif defined(Q_OS_MACOS) || defined(Q_OS_IOS)
71 rhiViewport->setApi(QRhiWidget::Api::Metal);
72#elif defined(Q_OS_WIN)
73 rhiViewport->setApi(QRhiWidget::Api::Direct3D11);
75 rhiViewport->setApi(QRhiWidget::Api::OpenGL);
88 QVBoxLayout *neLayout =
new QVBoxLayout(
this);
89 neLayout->setContentsMargins(0,0,0,0);
91 this->setLayout(neLayout);
107 auto *rhiViewport =
new QRhiWidget;
108#if defined(WASMBUILD) || defined(__EMSCRIPTEN__)
109 rhiViewport->setApi(QRhiWidget::Api::OpenGL);
110#elif defined(Q_OS_MACOS) || defined(Q_OS_IOS)
111 rhiViewport->setApi(QRhiWidget::Api::Metal);
112#elif defined(Q_OS_WIN)
113 rhiViewport->setApi(QRhiWidget::Api::Direct3D11);
115 rhiViewport->setApi(QRhiWidget::Api::OpenGL);
132 if (pEvokedSetModel){
133 connect(pEvokedSetModel.data(), &EvokedSetModel::dataChanged,
145 qDebug() <<
"AverageLayoutView::setBackgroundColor - m_pAverageScene is NULL. Returning. ";
150 backgroundBrush.setColor(backgroundColor);
159 qDebug() <<
"AverageLayoutView::getBackgroundColor - m_pAverageScene is NULL. Returning. ";
171 qDebug() <<
"AverageLayoutView::takeScreenshot - m_pAverageScene is NULL. Returning. ";
175 if(fileName.contains(
".svg", Qt::CaseInsensitive))
178 QSvgGenerator svgGen;
179 svgGen.setFileName(fileName);
181 svgGen.setSize(QSize(rect.width(), rect.height()));
183 QPainter painter(&svgGen);
187 if(fileName.contains(
".png", Qt::CaseInsensitive))
190 QPixmap pixMap = QWidget::grab(rect);
191 pixMap.save(fileName);
200 qDebug() <<
"AverageLayoutView::setScaleMap - m_pAverageScene is NULL. Returning. ";
230 qDebug() <<
"AverageLayoutView::setAverageColor - m_pAverageScene is NULL. Returning. ";
255 qDebug() <<
"AverageLayoutView::setAverageActivation - m_pAverageScene is NULL. Returning. ";
268 qDebug() <<
"AverageLayoutView::channelSelectionManagerChanged - m_pAverageScene is NULL. Returning. ";
284 qDebug() <<
"AverageLayoutView::channelSelectionManagerChanged - m_pAverageScene is NULL. Returning. ";
303 QList<QGraphicsItem *> currentAverageSceneItems =
m_pAverageScene->items();
306 for(
int i = 0; i < currentAverageSceneItems.size(); i++) {
318 if(channelNumber != -1) {
323 if(!averageData.isEmpty()) {
339 qDebug() <<
"AverageLayoutView::updateData - m_pAverageScene, m_pEvokedSetModel or m_pChannelInfoModel are NULL. Returning. ";
343 QList<QGraphicsItem *> currentAverageSceneItems =
m_pAverageScene->items();
346 for(
int i = 0; i < currentAverageSceneItems.size(); i++) {
357 if(channelNumber != -1) {
364 if(!averageData.isEmpty()) {
386 QSettings settings(
"MNECPP");
397 QSettings settings(
"MNECPP");
QGraphicsObject painting one channel's averaged evoked trace at its sensor position.
QAbstractTableModel exposing per-channel FIFF metadata (name, type, unit, position,...
QGraphicsScene that lays AverageSceneItem mini-traces on the active sensor layout.
QAbstractTableModel wrapping a FiffEvokedSet so views can render per-condition averages without copyi...
Channel-selection group descriptor (SelectionItem) and the matching QGraphicsItem (SelectionSceneItem...
2-D sensor-layout view placing per-channel evoked traces at their physical positions.
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).
AbstractView(QWidget *parent=0, Qt::WindowFlags f=Qt::Widget)
void setBackgroundColor(const QColor &backgroundColor)
void updateGuiMode(GuiMode mode)
QMap< qint32, float > m_scaleMap
void setEvokedSetModel(QSharedPointer< EvokedSetModel > pEvokedSetModel)
void channelSelectionChanged(const QVariant &data)
void setChannelInfoModel(QSharedPointer< ChannelInfoModel > &pChannelInfoModel)
QSharedPointer< QMap< QString, bool > > getAverageActivation() const
QSharedPointer< FIFFLIB::FiffInfo > m_pFiffInfo
QSharedPointer< DISPLIB::EvokedSetModel > m_pEvokedSetModel
void setAverageColor(const QSharedPointer< QMap< QString, QColor > > qMapAverageColor)
QPointer< QGraphicsView > m_pAverageLayoutView
QSharedPointer< AverageScene > m_pAverageScene
QSharedPointer< QMap< QString, QColor > > m_qMapAverageColor
QSharedPointer< QMap< QString, QColor > > getAverageColor() const
QSharedPointer< QMap< QString, bool > > m_qMapAverageActivation
void setScaleMap(const QMap< qint32, float > &scaleMap)
void takeScreenshot(const QString &fileName)
void setAverageActivation(const QSharedPointer< QMap< QString, bool > > qMapAverageActivation)
QSharedPointer< DISPLIB::ChannelInfoModel > m_pChannelInfoModel
void setFiffInfo(const QSharedPointer< FIFFLIB::FiffInfo > pFiffInfo)
AverageLayoutView(const QString &sSettingsPath="", QWidget *parent=0, Qt::WindowFlags f=Qt::Widget)
void updateProcessingMode(ProcessingMode mode)
void channelSelectionManagerChanged(const QList< QGraphicsItem * > &selectedChannelItems)
void setSingleAverageColor(const QColor &avgColor)
QColor getBackgroundColor()
QSharedPointer< EvokedSetModel > getEvokedSetModel()
Sensor-layout QGraphicsScene placing one AverageSceneItem per visible channel.
QSharedPointer< AverageScene > SPtr
QGraphicsObject painting one channel's averaged evoked traces inside AverageScene.
QList< QPair< QString, RowVectorPair > > m_lAverageData
QPair< int, int > m_firstLastSample
int m_iTotalNumberChannels
Value type describing one named selection group (label + list of channel names).