#pragma once #include #include "Range.h" #include #include namespace Ui { class Timeline; } namespace LtsTimelineClassic { class AbstractTimelineModel; class EventGraphic; class TimelineHeaderView; class LTSTIMELINECLASSIC_EXPORT TimelineWidget : public QWidget { Q_OBJECT public: explicit TimelineWidget(QWidget *parent = nullptr); ~TimelineWidget(); void setPositionMarkerTime(const qint64 time); qint64 getRangeMinimum() const; qint64 getRangeMaximum() const; void setPos(qint64 pos); void setMaxPos(); int getPos() const; int getMaxPos() const; void knownRangesChanged(const QVector &newRanges); void hideDebugWidget(); void setLiveTime(qint64 time); private: void setTimelineRange(qint64 min, qint64 max); void refreshData(); NGL::INGLLogger &m_logger; Ui::Timeline *m_timelineUi; qint64 m_min; qint64 m_max; qint64 m_sbPos; qint64 m_zoomFactor; TimelineHeaderView *m_headerView; AbstractTimelineModel *m_model; signals: void signalLoadNewEvents(qint64 from, qint64 to); void signalEventAction(EventGraphic *eg, int); void signalRangeChanged(); void signalArm(bool arm); void signalZoomChanged(); public slots: void scrollBarFilter1(int x); void scrollBarFilter2(); void slotSetZoomFactor(qint64 zoomFactor); void slotSectionResized(int logicalIndex, int oldSize, int newSize); void setTimelineModel(AbstractTimelineModel *model); void slotUpdateTimeline(); void slotRefreshData(); }; }