1 /*
2     SPDX-FileCopyrightText: 2007-2009 Sergio Pistone <sergio_pistone@yahoo.com.ar>
3     SPDX-FileCopyrightText: 2010-2020 Mladen Milinkovic <max@smoothware.net>
4 
5     SPDX-License-Identifier: GPL-2.0-or-later
6 */
7 
8 #ifndef LINESITEMDELEGATE_H
9 #define LINESITEMDELEGATE_H
10 
11 #include <QStyledItemDelegate>
12 
QT_FORWARD_DECLARE_CLASS(QTextDocument)13 QT_FORWARD_DECLARE_CLASS(QTextDocument)
14 
15 namespace SubtitleComposer {
16 class LinesWidget;
17 
18 class LinesItemDelegate : public QStyledItemDelegate
19 {
20 public:
21 	typedef enum {
22 		NoHint = QAbstractItemDelegate::NoHint,
23 		EditNextItem = QAbstractItemDelegate::EditNextItem,
24 		EditPreviousItem = QAbstractItemDelegate::EditPreviousItem,
25 		SubmitModelCache = QAbstractItemDelegate::SubmitModelCache,
26 		RevertModelCache = QAbstractItemDelegate::RevertModelCache,
27 		EditUpperItem,
28 		EditLowerItem,
29 	} ExtendedEditHint;
30 
31 	LinesItemDelegate(LinesWidget *parent);
32 	virtual ~LinesItemDelegate();
33 
34 	inline LinesWidget * linesWidget() const { return qobject_cast<LinesWidget *>(parent()); }
35 
36 	QString displayText(const QVariant &value, const QLocale &locale) const override;
37 	QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
38 	void setEditorData(QWidget *editor, const QModelIndex &index) const override;
39 
40 protected:
41 	bool eventFilter(QObject *object, QEvent *event) override;
42 
43 	void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
44 };
45 }
46 
47 #endif // LINESITEMDELEGATE_H
48