#pragma once #include "ltstimeline_export.h" #include "timeline_view.h" #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}; }; } // namespace LtsTimeline