Krita Source Code Documentation
Loading...
Searching...
No Matches
NodeDelegate.h
Go to the documentation of this file.
1/*
2 SPDX-FileCopyrightText: 2006 Gábor Lehel <illissius@gmail.com>
3
4 SPDX-License-Identifier: LGPL-2.0-or-later
5*/
6
7#ifndef KIS_DOCUMENT_SECTION_DELEGATE_H
8#define KIS_DOCUMENT_SECTION_DELEGATE_H
9
10#include <QAbstractItemDelegate>
11class NodeView;
12
13class KisNodeModel;
14
22class NodeDelegate: public QAbstractItemDelegate
23{
24 Q_OBJECT
25
26public:
27 explicit NodeDelegate(NodeView *view, QObject *parent = 0);
28 ~NodeDelegate() override;
29
30 void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
31 void drawBranches(QPainter *p, const QStyleOptionViewItem &option, const QModelIndex &index) const;
32 QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override;
33 bool editorEvent(QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option, const QModelIndex &index) override;
34
35 QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, 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
39 void toggleSolo(const QModelIndex &index);
40
41 void slotUpdateIcon();
42
43Q_SIGNALS:
45
46protected:
47 bool eventFilter(QObject *object, QEvent *event) override;
48
49private:
51 typedef NodeView View;
52 class Private;
53 Private* const d;
54
55 static QStyleOptionViewItem getOptions(const QStyleOptionViewItem &option, const QModelIndex &index);
56 void drawProgressBar(QPainter *p, const QStyleOptionViewItem &option, const QModelIndex &index) const;
57
58 void drawColorLabel(QPainter *p, const QStyleOptionViewItem &option, const QModelIndex &index) const;
59 void drawFrame(QPainter *p, const QStyleOptionViewItem &option, const QModelIndex &index) const;
60
61 QRect thumbnailClickRect(const QStyleOptionViewItem &option, const QModelIndex &index) const;
62 void drawThumbnail(QPainter *p, const QStyleOptionViewItem &option, const QModelIndex &index) const;
63
64 QRect iconsRect(const QStyleOptionViewItem &option, const QModelIndex &index) const;
65 QRect textRect(const QStyleOptionViewItem &option, const QModelIndex &index) const;
66 void drawText(QPainter *p, const QStyleOptionViewItem &option, const QModelIndex &index) const;
67 void drawIcons(QPainter *p, const QStyleOptionViewItem &option, const QModelIndex &index) const;
68
69 QRect visibilityClickRect(const QStyleOptionViewItem &option, const QModelIndex &index) const;
70 void drawVisibilityIcon(QPainter *p, const QStyleOptionViewItem &option, const QModelIndex &index) const;
71
72 QRect decorationClickRect(const QStyleOptionViewItem &option, const QModelIndex &index) const;
73 void drawDecoration(QPainter *p, const QStyleOptionViewItem &option, const QModelIndex &index) const;
74 void drawExpandButton(QPainter *p, const QStyleOptionViewItem &option, const QModelIndex &index) const;
75 void drawAnimatedDecoration(QPainter *p, const QStyleOptionViewItem &option, const QModelIndex &index) const;
76
77 void drawSelectedButton(QPainter *p, const QStyleOptionViewItem &option, const QModelIndex &index,
78 QStyle *style) const;
79
80 // In here we handle the intricacies required to tie the state of selection and "current" index.
81 void changeSelectionAndCurrentIndex(const QModelIndex &index);
82
83 // The area taken by the color preview rect for some types of filter masks.
84 QRect filterColorClickRect(const QStyleOptionViewItem &option, const QModelIndex &index) const;
85
86public Q_SLOTS:
87 void slotConfigChanged();
88private Q_SLOTS:
89 void slotResetState();
90};
91
92#endif
const Params2D p
void drawBranches(QPainter *p, const QStyleOptionViewItem &option, const QModelIndex &index) const
Private *const d
void drawFrame(QPainter *p, const QStyleOptionViewItem &option, const QModelIndex &index) const
void drawProgressBar(QPainter *p, const QStyleOptionViewItem &option, const QModelIndex &index) const
~NodeDelegate() override
void drawText(QPainter *p, const QStyleOptionViewItem &option, const QModelIndex &index) const
QRect textRect(const QStyleOptionViewItem &option, const QModelIndex &index) const
void drawIcons(QPainter *p, const QStyleOptionViewItem &option, const QModelIndex &index) const
void resetVisibilityStasis()
void changeSelectionAndCurrentIndex(const QModelIndex &index)
QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override
QRect thumbnailClickRect(const QStyleOptionViewItem &option, const QModelIndex &index) const
static QStyleOptionViewItem getOptions(const QStyleOptionViewItem &option, const QModelIndex &index)
bool eventFilter(QObject *object, QEvent *event) override
QRect decorationClickRect(const QStyleOptionViewItem &option, const QModelIndex &index) const
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override
QRect filterColorClickRect(const QStyleOptionViewItem &option, const QModelIndex &index) const
void toggleSolo(const QModelIndex &index)
QRect iconsRect(const QStyleOptionViewItem &option, const QModelIndex &index) const
QRect visibilityClickRect(const QStyleOptionViewItem &option, const QModelIndex &index) const
void drawThumbnail(QPainter *p, const QStyleOptionViewItem &option, const QModelIndex &index) const
bool editorEvent(QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option, const QModelIndex &index) override
NodeDelegate(NodeView *view, QObject *parent=0)
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override
void drawAnimatedDecoration(QPainter *p, const QStyleOptionViewItem &option, const QModelIndex &index) const
void drawVisibilityIcon(QPainter *p, const QStyleOptionViewItem &option, const QModelIndex &index) const
void drawSelectedButton(QPainter *p, const QStyleOptionViewItem &option, const QModelIndex &index, QStyle *style) const
void drawColorLabel(QPainter *p, const QStyleOptionViewItem &option, const QModelIndex &index) const
void slotConfigChanged()
void drawDecoration(QPainter *p, const QStyleOptionViewItem &option, const QModelIndex &index) const
void drawExpandButton(QPainter *p, const QStyleOptionViewItem &option, const QModelIndex &index) const
KisNodeModel Model
NodeView View
void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const override