Krita Source Code Documentation
Loading...
Searching...
No Matches
NodeView.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_VIEW_H
8#define KIS_DOCUMENT_SECTION_VIEW_H
9
10#include <QTreeView>
11#include <QScroller>
12
13#include "kritalayerdocker_export.h"
14
15class QStyleOptionViewItem;
16class KisNodeModel;
17
28class KRITALAYERDOCKER_EXPORT NodeView : public QTreeView
29{
30 Q_OBJECT
31Q_SIGNALS:
37 void contextMenuRequested(const QPoint &globalPos, const QModelIndex &index);
39public:
40
42 DEFAULT_COL = 0,
43 VISIBILITY_COL = 1,
44 SELECTED_COL = 2,
45 };
46
50 explicit NodeView(QWidget *parent = 0);
51 ~NodeView() override;
52
53 void setModel(QAbstractItemModel *model) override;
54 void resizeEvent(QResizeEvent * event) override;
55 void paintEvent (QPaintEvent *event) override;
56 void drawBranches(QPainter *painter, const QRect &rect,
57 const QModelIndex &index) const override;
58
59 void dropEvent(QDropEvent *ev) override;
60
61 void dragEnterEvent(QDragEnterEvent *e) override;
62
63 void dragMoveEvent(QDragMoveEvent *ev) override;
64
65 void dragLeaveEvent(QDragLeaveEvent *e) override;
66
94 void addPropertyActions(QMenu *menu, const QModelIndex &index);
95
96 void updateNode(const QModelIndex &index);
97
98 void toggleSolo(const QModelIndex &index);
99
100protected:
101 QItemSelectionModel::SelectionFlags selectionCommand(const QModelIndex &index,
102 const QEvent *event) const override;
103
104 QModelIndex indexAt(const QPoint &point) const override;
105 bool viewportEvent(QEvent *event) override;
106 void contextMenuEvent(QContextMenuEvent *event) override;
107 virtual void showContextMenu(const QPoint &globalPos, const QModelIndex &index);
108 void startDrag (Qt::DropActions supportedActions) override;
109 QPixmap createDragPixmap() const;
110
114 int cursorPageIndex() const;
115
116public Q_SLOTS:
118 void slotUpdateIcons();
119 void slotScrollerStateChanged(QScroller::State state);
120 void slotConfigurationChanged();
121
122protected Q_SLOTS:
123 void currentChanged(const QModelIndex &current, const QModelIndex &previous) override;
124 void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles = QVector<int>()) override;
125 void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected) override;
126
127private Q_SLOTS:
128 void slotActionToggled(bool on, const QPersistentModelIndex &index, int property);
129
130private:
131
137 bool isDragging() const;
138
144 void setDraggingFlag(bool flag = true);
145
146 void updateSelectedCheckboxColumn();
147
149
150 QStyleOptionViewItem optionForIndex(const QModelIndex &index) const;
152 class PropertyAction;
153 class Private;
154 Private* const d;
155};
156
157#endif
void contextMenuRequested(const QPoint &globalPos, const QModelIndex &index)
Private *const d
Definition NodeView.h:154
KisNodeModel Model
Definition NodeView.h:151
void selectionChanged(const QModelIndexList &)
bool m_draggingFlag
Definition NodeView.h:148