22#ifndef CHANNELDATAVIEW_H
23#define CHANNELDATAVIEW_H
38#include <QSharedPointer>
93 typedef QSharedPointer<ChannelDataView>
SPtr;
94 typedef QSharedPointer<const ChannelDataView>
ConstSPtr;
105 QWidget *parent =
nullptr,
106 Qt::WindowFlags f = Qt::Widget);
118 void init(QSharedPointer<FIFFLIB::FiffInfo> pInfo);
129 void setData(
const Eigen::MatrixXd &data,
int firstSample = 0);
137 void addData(
const Eigen::MatrixXd &data);
265 void setEvents(
const QVector<ChannelRhiView::EventMarker> &events);
291 void setAnnotations(
const QVector<ChannelRhiView::AnnotationSpan> &annotations);
456 const QString &channelName,
const QString &unitLabel);
465 void onScrollBarMoved(
int value);
466 void onRhiScrollChanged(
float sample);
467 void updateScrollBarRange();
468 void onChannelScrollBarMoved(
int value);
469 void onChannelOffsetChanged(
int firstChannel);
470 void updateChannelScrollBarRange();
474 void updateSamplesPerPixel();
476 QString m_sSettingsPath;
477 QSharedPointer<ChannelDataModel> m_pModel;
482 QWidget* m_pRulerHeader =
nullptr;
483 QScrollBar* m_pScrollBar =
nullptr;
484 QScrollBar* m_pChannelScrollBar =
nullptr;
485 QToolButton* m_pScrollModeButton =
nullptr;
487 bool m_channelScrollBarUpdating =
false;
489 QSharedPointer<FIFFLIB::FiffInfo> m_pFiffInfo;
490 QMap<qint32, float> m_scaleMap;
491 QColor m_signalColor { Qt::darkGreen };
492 QColor m_bgColor { 250, 250, 250 };
494 float m_windowSizeSeconds = 10.f;
495 double m_zoomFactor = 1.0;
496 bool m_hideBadChannels =
false;
497 bool m_scrollBarUpdating =
false;
499 int m_firstFileSample = -1;
500 int m_lastFileSample = -1;
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 with sample / second ticks.
Common base widget for every dockable Quick-Control settings panel in DISPLIB.
Export macros and build-info hooks for the DISPLIB shared library.
#define DISPSHARED_EXPORT
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 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)
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,...