#pragma once #include "AbstractTimelineModel.h" #include "TimelineIndicator.h" #include "TimelineHeaderView.h" #include "LineMap.h" #include "Range.h" #include namespace LtsTimelineClassic { class TimelineView : public QTreeView { Q_OBJECT public: explicit TimelineView(QWidget *parent); EventGraphic *getEventOnPosition(QPoint position); void setTimelineModel(AbstractTimelineModel *model); AbstractTimelineModel *timelineModel(); void refreshData(); void setHeader(QHeaderView *header); void setKnownRanges(const QVector &newRanges) { m_knownRanges = newRanges; } void setDrawCache(bool show) { m_drawCache = show; } private: qint64 m_posMarkTime; AbstractTimelineModel *m_model; LineMap m_lineMap; QVector m_knownRanges; bool m_drawCache; protected: bool event(QEvent *event) override; void mouseReleaseEvent(QMouseEvent *) override; void wheelEvent(QWheelEvent *event) override; virtual void paintEvent(QPaintEvent *event) override; public slots: void slotResetLineList(); void slotAddLine(int posX, qint64 time); void slotSetPosMarkTime(qint64 posMarkTime); signals: void signalEventAction(EventGraphic *eg, int); void signalZoom(); void signalUnzoom(); }; }