35#ifndef CHANNELDATAVIEW_H
36#define CHANNELDATAVIEW_H
51#include <QSharedPointer>
124 typedef QSharedPointer<ChannelDataView>
SPtr;
125 typedef QSharedPointer<const ChannelDataView>
ConstSPtr;
136 QWidget *parent =
nullptr,
137 Qt::WindowFlags f = Qt::Widget);
149 void init(QSharedPointer<FIFFLIB::FiffInfo> pInfo);
160 void setData(
const Eigen::MatrixXd &data,
int firstSample = 0);
168 void addData(
const Eigen::MatrixXd &data);
296 void setEvents(
const QVector<ChannelRhiView::EventMarker> &events);
322 void setAnnotations(
const QVector<ChannelRhiView::AnnotationSpan> &annotations);
487 const QString &channelName,
const QString &unitLabel);
496 void onScrollBarMoved(
int value);
497 void onRhiScrollChanged(
float sample);
498 void updateScrollBarRange();
499 void onChannelScrollBarMoved(
int value);
500 void onChannelOffsetChanged(
int firstChannel);
501 void updateChannelScrollBarRange();
505 void updateSamplesPerPixel();
507 QString m_sSettingsPath;
508 QSharedPointer<ChannelDataModel> m_pModel;
513 QWidget* m_pRulerHeader =
nullptr;
514 QScrollBar* m_pScrollBar =
nullptr;
515 QScrollBar* m_pChannelScrollBar =
nullptr;
516 QToolButton* m_pScrollModeButton =
nullptr;
518 bool m_channelScrollBarUpdating =
false;
520 QSharedPointer<FIFFLIB::FiffInfo> m_pFiffInfo;
521 QMap<qint32, float> m_scaleMap;
522 QColor m_signalColor { Qt::darkGreen };
523 QColor m_bgColor { 250, 250, 250 };
525 float m_windowSizeSeconds = 10.f;
526 double m_zoomFactor = 1.0;
527 bool m_hideBadChannels =
false;
528 bool m_scrollBarUpdating =
false;
530 int m_firstFileSample = -1;
531 int m_lastFileSample = -1;
disp library export/import macros.
#define DISPSHARED_EXPORT
Declaration of the AbstractView Class.
Declaration of the TimeRulerWidget class.
Declaration of the OverviewBarWidget class.
Declaration of the ChannelRhiView class.
FIFF file I/O and data structures (raw, epochs, evoked, covariance, forward).
2-D display widgets and visualisation helpers (charts, topography, colour maps).
DetrendMode
Channel display metadata (read-only from the renderer's perspective).
AbstractView(QWidget *parent=0, Qt::WindowFlags f=Qt::Widget)
QRect signalViewportRect() const
ChannelDataView(const QString &sSettingsPath=QString(), QWidget *parent=nullptr, Qt::WindowFlags f=Qt::Widget)
void setScalingMap(const QMap< qint32, float > &scaleMap)
void referenceMarkerRemoveRequested(int sample)
void eventsVisibleToggled(bool on)
void loadSettings() override
void clippingToggled(bool on)
int viewportXToSample(int x) const
void setButterflyMode(bool enabled)
QSharedPointer< ChannelDataView > SPtr
void crosshairToggled(bool on)
void sortChannelsByType()
void setBackgroundColor(const QColor &color)
void setClockTimeFormat(bool useClock)
void setRemoveDC(bool dc)
int firstVisibleSample() const
void setWindowSize(float seconds)
void sampleClicked(int sample)
void saveSettings() override
DetrendMode detrendMode() const
bool badChannelsHidden() const
void referenceMarkersClearRequested()
void zScoreModeToggled(bool on)
void clearView() override
bool annotationsVisible() const
void annotationsVisibleToggled(bool on)
void setOverviewBarVisible(bool visible)
QSharedPointer< const ChannelDataView > ConstSPtr
void updateGuiMode(GuiMode mode) override
void setSignalColor(const QColor &color)
void scrollPositionChanged(int sample)
void setData(const Eigen::MatrixXd &data, int firstSample=0)
ChannelDataModel * model() const
void referenceMarkerAddRequested(int sample)
int visibleSampleCount() const
bool epochMarkersVisible() const
void setEpochMarkersVisible(bool visible)
void setEvents(const QVector< ChannelRhiView::EventMarker > &events)
float scrollSpeedFactor() const
void setZScoreMode(bool enabled)
void setDetrendMode(DetrendMode mode)
bool overviewBarVisible() const
void scrollToSample(int sample, bool animate=true)
QColor signalColor() const
void scalebarsToggled(bool on)
void setFileBounds(int first, int last)
bool butterflyMode() const
void resizeEvent(QResizeEvent *event) override
void init(QSharedPointer< FIFFLIB::FiffInfo > pInfo)
void hideBadChannels(bool hide)
bool clockTimeFormat() const
void butterflyToggled(bool on)
void setEpochMarkers(const QVector< int > &triggerSamples)
void setClippingVisible(bool visible)
int sampleToViewportX(int sample) const
void epochMarkersToggled(bool on)
void overviewBarToggled(bool on)
void setAnnotationsVisible(bool visible)
void setScalebarsVisible(bool visible)
void setAnnotationSelectionEnabled(bool enabled)
void updateProcessingMode(ProcessingMode mode) override
bool clippingVisible() const
void cursorDataChanged(float timeSec, float amplitude, const QString &channelName, const QString &unitLabel)
void addData(const Eigen::MatrixXd &data)
QMap< qint32, float > scalingMap() const
void sampleRangeSelected(int startSample, int endSample)
void setEventsVisible(bool visible)
bool eventsVisible() const
bool crosshairEnabled() const
bool scalebarsVisible() const
void scrollSpeedChanged(float factor)
void setCrosshairEnabled(bool enabled)
void annotationBoundaryMoved(int annotationIndex, bool isStartBoundary, int newSample)
void keyPressEvent(QKeyEvent *event) override
void setReferenceMarkers(const QVector< TimeRulerReferenceMark > &markers)
void setAnnotations(const QVector< ChannelRhiView::AnnotationSpan > &annotations)
void setScrollSpeedFactor(float factor)
QColor backgroundColor() const
void setZoom(double factor)
void setChannelFilter(const QStringList &names)
ChannelDataModel – lightweight data container for ChannelDataView / ChannelRhiView.
Fixed-width panel showing channel names and metadata, left of the render surface.
ChannelRhiView – QRhiWidget-based channel signal renderer.
Minimap / overview bar showing the full recording extent.
TimeRulerWidget – a thin horizontal time axis ruler for ChannelDataView.
FIFF measurement file information.