Files
qt6-migration-pipeline/Lts/Common/LtsTimeline/timeline_view_resize_handler.h
T

43 lines
903 B
C++
Executable File

#pragma once
#include <LtsTimeline/ltstimeline_export.h>
#include <QMouseEvent>
namespace LtsTimeline
{
class Track;
class TimelineView;
class LTSTIMELINE_EXPORT TimelineViewResizeHandler
{
public:
enum class ResizePosition { eNone, eStart, eEnd };
explicit TimelineViewResizeHandler(TimelineView *view);
virtual ~TimelineViewResizeHandler();
virtual void mouseMoveEvent(QMouseEvent *e);
virtual void mousePressEvent(QMouseEvent *e);
virtual void mouseReleaseEvent(QMouseEvent *e);
virtual bool isActive() const { return m_currentTrackId != -1 && m_currentItemId != -1 && m_resizePos != ResizePosition::eNone; }
private:
virtual qint64 localSnapTime(int pos) const;
virtual qint64 globalSnapTime(int pos) const;
protected:
TimelineView *m_view{nullptr};
int m_currentTrackId{-1};
int m_currentItemId{-1};
ResizePosition m_resizePos{ResizePosition::eNone};
};
}