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