#pragma once #include "timeline_view.h" #include #include class QMouseEvent; class QKeyEvent; namespace LtsTimeline { class TimelineView; class LTSTIMELINE_EXPORT TimelineViewSelectHandler { friend class TimelineView; public: explicit TimelineViewSelectHandler(TimelineView *view); virtual ~TimelineViewSelectHandler(); virtual void mouseDoubleClickEvent(QMouseEvent *e); virtual void mouseMoveEvent(QMouseEvent *e); virtual void mousePressEvent(QMouseEvent *e); virtual void mouseReleaseEvent(QMouseEvent *e); virtual void keyPressEvent(QKeyEvent *e); virtual bool isActive() const; virtual bool isRubberBandActive() const { return m_isRubberBandActive; } protected: virtual QVector getItemsWithinRubberBand() const; protected: TimelineView *m_view{nullptr}; int m_selectedItemId{-1}; QRect m_rubberBand; bool m_isRubberBandActive{false}; }; }