22#ifndef CHANNELDATAVIEW_H
23#define CHANNELDATAVIEW_H
38#include <QSharedPointer>
94 typedef QSharedPointer<ChannelDataView>
SPtr;
95 typedef QSharedPointer<const ChannelDataView>
ConstSPtr;
106 QWidget* parent =
nullptr,
107 Qt::WindowFlags f = Qt::Widget);
119 void init(QSharedPointer<FIFFLIB::FiffInfo> pInfo);
130 void setData(
const Eigen::MatrixXd& matData,
int firstSample = 0);
138 void addData(
const Eigen::MatrixXd& matData);
270 void setEvents(
const QVector<ChannelRhiView::EventMarker>& events);
296 void setAnnotations(
const QVector<ChannelRhiView::AnnotationSpan>& annotations);
425 return m_pModel.data();
491 const QString& channelName,
const QString& unitLabel);
500 void onScrollBarMoved(
int value);
501 void onRhiScrollChanged(
float sample);
502 void updateScrollBarRange();
503 void onChannelScrollBarMoved(
int value);
504 void onChannelOffsetChanged(
int firstChannel);
505 void updateChannelScrollBarRange();
509 void updateSamplesPerPixel();
511 QString m_sSettingsPath;
512 QSharedPointer<ChannelDataModel> m_pModel;
517 QWidget* m_pRulerHeader =
nullptr;
518 QScrollBar* m_pScrollBar =
nullptr;
519 QScrollBar* m_pChannelScrollBar =
nullptr;
520 QToolButton* m_pScrollModeButton =
nullptr;
522 bool m_channelScrollBarUpdating =
false;
524 QSharedPointer<FIFFLIB::FiffInfo> m_pFiffInfo;
525 QMap<qint32, float> m_scaleMap;
526 QColor m_signalColor{Qt::darkGreen};
527 QColor m_bgColor{250, 250, 250};
529 float m_windowSizeSeconds = 10.f;
530 double m_zoomFactor = 1.0;
531 bool m_hideBadChannels =
false;
532 bool m_scrollBarUpdating =
false;
534 int m_firstFileSample = -1;
535 int m_lastFileSample = -1;
Export macros and build-info hooks for the DISPLIB shared library.
#define DISPSHARED_EXPORT
Common base widget for every dockable Quick-Control settings panel in DISPLIB.
Minimap thumbnail of the entire recording shown above the raw browser.
Horizontal time-axis ruler displayed beneath DISPLIB::ChannelDataView with sample / second ticks.
QRhi-based GPU-accelerated channel time-series renderer used by the modern raw browser.
FIFF file I/O, in-memory data structures and high-level readers/writers.
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 setData(const Eigen::MatrixXd &matData, int firstSample=0)
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)
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)
QImage renderToImage(const QSize &size=QSize()) const
void setAnnotationSelectionEnabled(bool enabled)
void updateProcessingMode(ProcessingMode mode) override
bool clippingVisible() const
void cursorDataChanged(float timeSec, float amplitude, const QString &channelName, const QString &unitLabel)
QMap< qint32, float > scalingMap() const
void sampleRangeSelected(int startSample, int endSample)
void setEventsVisible(bool visible)
bool eventsVisible() const
bool crosshairEnabled() const
void addData(const Eigen::MatrixXd &matData)
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)
Circular-buffer Qt model exposing a rolling window of the live FIFF stream as a table.
Vertical column of channel-name labels synced with ChannelDataView row geometry.
QRhi-based GPU-accelerated channel time-series renderer used by the modern raw browser.
Minimap thumbnail of the entire recording shown above the raw browser.
Horizontal time-axis ruler displayed beneath ChannelDataView.
Full FIFF measurement info: per-channel descriptors, sampling and filter setup, projectors,...