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)) {
177 QSvgGenerator svgGen;
178 svgGen.setFileName(fileName);
180 svgGen.setSize(QSize(rect.width(), rect.height()));
182 QPainter painter(&svgGen);
186 if (fileName.contains(
".png", Qt::CaseInsensitive)) {
188 QPixmap pixMap = QWidget::grab(rect);
189 pixMap.save(fileName);
198 qDebug() <<
"AverageLayoutView::setScaleMap - m_pAverageScene is NULL. Returning. ";
228 qDebug() <<
"AverageLayoutView::setAverageColor - m_pAverageScene is NULL. Returning. ";
253 qDebug() <<
"AverageLayoutView::setAverageActivation - m_pAverageScene is NULL. Returning. ";
266 qDebug() <<
"AverageLayoutView::channelSelectionManagerChanged - m_pAverageScene is NULL. Returning. ";
282 qDebug() <<
"AverageLayoutView::channelSelectionManagerChanged - m_pAverageScene is NULL. Returning. ";
301 QList<QGraphicsItem*> currentAverageSceneItems =
m_pAverageScene->items();
304 for (
int i = 0; i < currentAverageSceneItems.size(); i++) {
316 if (channelNumber != -1) {
321 if (!averageData.isEmpty()) {
337 qDebug() <<
"AverageLayoutView::updateData - m_pAverageScene, m_pEvokedSetModel or m_pChannelInfoModel are NULL. Returning. ";
341 QList<QGraphicsItem*> currentAverageSceneItems =
m_pAverageScene->items();
344 for (
int i = 0; i < currentAverageSceneItems.size(); i++) {
355 if (channelNumber != -1) {
362 if (!averageData.isEmpty()) {
384 QSettings settings(
"MNECPP");
395 QSettings settings(
"MNECPP");
Full FIFF measurement metadata: everything from FIFFB_MEAS / FIFFB_MEAS_INFO needed to interpret a re...
2-D sensor-layout view placing per-channel evoked traces at their physical positions.
QAbstractTableModel wrapping a FiffEvokedSet so views can render per-condition averages without copyi...
QGraphicsScene that lays DISPLIB::AverageSceneItem mini-traces on the active sensor layout.
QAbstractTableModel exposing per-channel FIFF metadata (name, type, unit, position,...
Channel-selection group descriptor (DISPLIB::SelectionItem) and the matching QGraphicsItem (DISPLIB::...
QGraphicsObject painting one channel's averaged evoked trace at its sensor position.
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)
void setEvokedSetModel(QSharedPointer< EvokedSetModel > pEvokedSetModel)
void setChannelInfoModel(QSharedPointer< ChannelInfoModel > &pChannelInfoModel)
QSharedPointer< QMap< QString, bool > > getAverageActivation() const
QSharedPointer< FIFFLIB::FiffInfo > m_pFiffInfo
QSharedPointer< DISPLIB::EvokedSetModel > m_pEvokedSetModel
QMap< qint32, float > m_scaleMap
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
void channelSelectionChanged(const QVariant &selectionData)
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
int m_iTotalNumberChannels
QPair< int, int > m_firstLastSample
Value type describing one named selection group (label + list of channel names).