Eventviews

tododelegates.h
1/*
2 This file is part of KOrganizer.
3
4 SPDX-FileCopyrightText: 2008 Thomas Thrainer <tom_t@gmx.at>
5
6 SPDX-License-Identifier: GPL-2.0-or-later WITH Qt-Commercial-exception-1.0
7*/
8
9#pragma once
10
11#include <QStyledItemDelegate>
12
13class QPainter;
14class QSize;
16class QTextDocument;
17
18/**
19 This delegate is responsible for displaying progress bars for the completion
20 status of indivitual todos. It also provides a slider to change the completion
21 status of the todo when in editing mode.
22
23 @author Thomas Thrainer
24*/
25class TodoCompleteDelegate : public QStyledItemDelegate
26{
28public:
29 explicit TodoCompleteDelegate(QObject *parent = nullptr);
30
31 void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
32 QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override;
33
34 QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
35 void setEditorData(QWidget *editor, const QModelIndex &index) const override;
36 void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override;
37 void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
38
39private:
40 void initStyleOptionProgressBar(QStyleOptionProgressBar *option, const QModelIndex &index) const;
41};
42
43class TodoCompleteSlider : public QSlider
44{
46
47public:
48 explicit TodoCompleteSlider(QWidget *parent);
49
50private Q_SLOTS:
51 void updateTip(int value);
52};
53
54/**
55 This delegate is responsible for displaying the priority of todos.
56 It also provides a combo box to change the priority of the todo
57 when in editing mode.
58
59 @author Thomas Thrainer
60 */
61class TodoPriorityDelegate : public QStyledItemDelegate
62{
64public:
65 explicit TodoPriorityDelegate(QObject *parent = nullptr);
66
67 QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
68 void setEditorData(QWidget *editor, const QModelIndex &index) const override;
69 void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override;
70 void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
71};
72
73/**
74 This delegate is responsible for displaying the due date of todos.
75 It also provides a combo box to change the due date of the todo
76 when in editing mode.
77
78 @author Thomas Thrainer
79 */
80class TodoDueDateDelegate : public QStyledItemDelegate
81{
83public:
84 explicit TodoDueDateDelegate(QObject *parent = nullptr);
85
86 QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
87 void setEditorData(QWidget *editor, const QModelIndex &index) const override;
88 void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override;
89 void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
90};
91
92/**
93 This delegate is responsible for displaying the categories of todos.
94 It also provides a combo box to change the categories of the todo
95 when in editing mode.
96
97 @author Thomas Thrainer
98 */
99class TodoCategoriesDelegate : public QStyledItemDelegate
100{
102public:
103 explicit TodoCategoriesDelegate(QObject *parent = nullptr);
104
105 QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
106 void setEditorData(QWidget *editor, const QModelIndex &index) const override;
107 void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override;
108 void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
109};
110
111/**
112 This delegate is responsible for displaying possible rich text elements
113 of a todo. That's the summary and the description.
114
115 @author Thomas Thrainer
116 */
117class TodoRichTextDelegate : public QStyledItemDelegate
118{
120public:
121 explicit TodoRichTextDelegate(QObject *parent = nullptr);
122
123 void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
124 QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override;
125
126private:
127 QTextDocument *m_textDoc = nullptr;
128};
QObject(QObject *parent)
Q_OBJECTQ_OBJECT
Q_SLOTSQ_SLOTS
QObject * parent() const const
QStyledItemDelegate(QObject *parent)
This file is part of the KDE documentation.
Documentation copyright © 1996-2025 The KDE developers.
Generated on Fri Feb 14 2025 11:56:31 by doxygen 1.13.2 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.