#pragma once #include "ltstimeline_export.h" #include #include #include namespace LtsTimeline { class TimelineView; class TimelineModel; class LTSTIMELINE_EXPORT ItemDelegate : public QStyledItemDelegate { Q_OBJECT public: ItemDelegate(TimelineView* parent = nullptr); ~ItemDelegate(); QSize sizeHint(const QStyleOptionViewItem& option = {}, const QModelIndex& index = {}) const override; virtual void paintDragItems(QPainter* painter) const; virtual void paintTrackButtons(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const; protected: virtual void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const override; protected: TimelineView* m_view{nullptr}; QPushButton* m_pushButton{nullptr}; QPushButton* m_pushButtonPressed{nullptr}; }; } // namespace LtsTimeline