v2.0.0
Loading...
Searching...
No Matches
rtfiffrawviewdelegate.h
Go to the documentation of this file.
1//=============================================================================================================
22
23#ifndef RTFIFFRAWVIEWDELEGATE_H
24#define RTFIFFRAWVIEWDELEGATE_H
25
26//=============================================================================================================
27// INCLUDES
28//=============================================================================================================
29
30#include "../../disp_global.h"
31#include "../scalingview.h"
32
33//=============================================================================================================
34// QT INCLUDES
35//=============================================================================================================
36
37#include <QAbstractItemDelegate>
38#include <QPen>
39#include <QPainterPath>
40
41//=============================================================================================================
42// EIGEN INCLUDES
43//=============================================================================================================
44
45//=============================================================================================================
46// FORWARD DECLARATIONS
47//=============================================================================================================
48
50{
51class EventList;
52}
53
54//=============================================================================================================
55// DEFINE NAMESPACE DISPLIB
56//=============================================================================================================
57
58namespace DISPLIB
59{
60
61//=============================================================================================================
62// DISPLIB FORWARD DECLARATIONS
63//=============================================================================================================
64
65class RtFiffRawView;
66
67//=============================================================================================================
68// DEFINE TYPEDEFS
69//=============================================================================================================
70
71typedef QPair<const double*, qint32> RowVectorPair;
72
73//=============================================================================================================
82class DISPSHARED_EXPORT RtFiffRawViewDelegate : public QAbstractItemDelegate
83{
84 Q_OBJECT
85
86public:
87 typedef QSharedPointer<RtFiffRawViewDelegate> SPtr;
88 typedef QSharedPointer<const RtFiffRawViewDelegate> ConstSPtr;
89
90 //=========================================================================================================
97
98 //=========================================================================================================
104 void initPainterPaths(const QAbstractTableModel* model);
105
106 //=========================================================================================================
116 virtual void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const;
117
118 //=========================================================================================================
127 virtual QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index) const;
128
129 //=========================================================================================================
136 void markerMoved(QPoint position, int activeRow);
137
138 //=========================================================================================================
144 void setSignalColor(const QColor& signalColor);
145
146 //=========================================================================================================
152 QColor getSignalColor();
153
154 //=========================================================================================================
161 void setUpperItemIndex(int iUpperItemIndex);
162
163private:
164 //=========================================================================================================
173 void createPlotPath(const QModelIndex& index,
174 const QStyleOptionViewItem& option,
175 QPainterPath& path,
176 const DISPLIB::RowVectorPair& data) const;
177
178 //=========================================================================================================
186 void createCurrentPositionMarkerPath(const QModelIndex& index, const QStyleOptionViewItem& option, QPainterPath& path) const;
187
188 //=========================================================================================================
197 void createGridPath(const QModelIndex& index, const QStyleOptionViewItem& option, QPainterPath& path, RowVectorPair& data) const;
198
199 //=========================================================================================================
208 void createTimeSpacersPath(const QModelIndex& index, const QStyleOptionViewItem& option, QPainterPath& path, RowVectorPair& data) const;
209
210 //=========================================================================================================
220 void createTriggerPath(QPainter* painter, const QModelIndex& index, const QStyleOptionViewItem& option, QPainterPath& path, RowVectorPair& data) const;
221
222 //=========================================================================================================
232 void createTriggerThresholdPath(const QModelIndex& index, const QStyleOptionViewItem& option, QPainterPath& path, RowVectorPair& data, QPointF& textPosition) const;
233
234 //=========================================================================================================
242 void createMarkerPath(const QModelIndex& index, const QStyleOptionViewItem& option, QPainterPath& path) const;
243
244 //=========================================================================================================
254 inline QPointF calcPoint(QPainterPath& path, const double dx, const double y, const double ybase, const double yScale) const;
255
256 //=========================================================================================================
265 void paintCrosshair(QPainter* painter, const QModelIndex& index, const QStyleOptionViewItem& option, const DISPLIB::RowVectorPair& data) const;
266
267 //=========================================================================================================
272 inline double retrieveSamplingPeriod() const;
273
274 RtFiffRawView* m_pParent;
275 QPoint m_markerPosition;
276 QList<QPainterPath> m_painterPaths;
277
278 double m_dMaxValue;
279 double m_dScaleY;
280 int m_iActiveRow;
281 int m_iUpperItemIndex;
282
283 QPen m_penMarker;
284 QPen m_penCrosshair;
285 QPen m_penGrid;
286 QPen m_penTimeSpacers;
287 QPen m_penFreeze;
288 QPen m_penFreezeSelected;
289 QPen m_penFreezeBad;
290 QPen m_penFreezeSelectedBad;
291 QPen m_penNormal;
292 QPen m_penNormalSelected;
293 QPen m_penNormalBad;
294 QPen m_penNormalSelectedBad;
295
296 QMap<double, QColor> m_mapTriggerColors;
297};
298} // NAMESPACE
299
300#endif // RTFIFFRAWVIEWDELEGATE_H
Export macros and build-info hooks for the DISPLIB shared library.
#define DISPSHARED_EXPORT
Definition disp_global.h:38
Per-modality vertical-scale spinbox panel (one spin per channel type).
2-D display widgets and visualisation helpers (charts, topography, colour maps).
QPair< const double *, qint32 > RowVectorPair
void setUpperItemIndex(int iUpperItemIndex)
RtFiffRawViewDelegate(RtFiffRawView *parent=0)
virtual QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
QSharedPointer< RtFiffRawViewDelegate > SPtr
QSharedPointer< const RtFiffRawViewDelegate > ConstSPtr
void initPainterPaths(const QAbstractTableModel *model)
void setSignalColor(const QColor &signalColor)
void markerMoved(QPoint position, int activeRow)
virtual void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
QTableView-based real-time FIFF raw-data browser host.