1 #pragma once 2 3 class lcTimelineWidget : public QTreeWidget 4 { 5 Q_OBJECT 6 7 public: 8 lcTimelineWidget(QWidget* Parent); 9 ~lcTimelineWidget(); 10 11 void Update(bool Clear, bool UpdateItems); 12 void UpdateSelection(); 13 14 void InsertStepBefore(); 15 void InsertStepAfter(); 16 void RemoveStep(); 17 void MoveSelection(); 18 void SetCurrentStep(); 19 20 public slots: 21 void CurrentItemChanged(QTreeWidgetItem* Current, QTreeWidgetItem* Previous); 22 void ItemSelectionChanged(); 23 void CustomMenuRequested(QPoint Pos); 24 void PreviewSelection(QTreeWidgetItem* Current); 25 26 protected: 27 void dropEvent(QDropEvent* DropEvent) override; 28 void mousePressEvent(QMouseEvent* MouseEvent) override; 29 void mouseDoubleClickEvent(QMouseEvent* MouseEvent) override; 30 void UpdateModel(); 31 void UpdateCurrentStepItem(); 32 33 QMap<int, QIcon> mIcons; 34 QMap<lcPiece*, QTreeWidgetItem*> mItems; 35 QTreeWidgetItem* mCurrentStepItem; 36 bool mIgnoreUpdates; 37 }; 38