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