#pragma once #include "AbstractTimelineModel.h" #include "LineMap.h" #include "Range.h" #include "TimelineHeaderView.h" #include "TimelineIndicator.h" #include #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(); }; } // namespace LtsTimelineClassic