#pragma once #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 }; }; }