Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_selection_mask.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2006 Boudewijn Rempt <boud@valdyas.org>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6#ifndef _KIS_SELECTION_MASK_
7#define _KIS_SELECTION_MASK_
8
9#include <QRect>
10
11#include "kis_base_node.h"
12
13#include "kis_types.h"
14#include "kis_effect_mask.h"
16
22class KRITAIMAGE_EXPORT KisSelectionMask : public KisEffectMask, public KisDecoratedNodeInterface
23{
24 Q_OBJECT
25public:
26
31 KisSelectionMask(KisImageWSP image, const QString &name = QString());
32
33 ~KisSelectionMask() override;
35
36 QIcon icon() const override;
37
38 KisNodeSP clone() const override {
39 return KisNodeSP(new KisSelectionMask(*this));
40 }
41
43 void setSelection(KisSelectionSP selection);
44
45 bool accept(KisNodeVisitor &v) override;
46 void accept(KisProcessingVisitor &visitor, KisUndoAdapter *undoAdapter) override;
47
49 void setSectionModelProperties(const KisBaseNode::PropertyList &properties) override;
50
51 void setVisible(bool visible, bool isLoading = false) override;
52 bool active() const;
53 void setActive(bool active);
54
55 QRect needRect(const QRect &rect, PositionToFilthy pos = N_FILTHY) const override;
56 QRect changeRect(const QRect &rect, PositionToFilthy pos = N_FILTHY) const override;
57
58 QRect extent() const override;
59 QRect exactBounds() const override;
60
66 void notifySelectionChangedCompressed();
67
68 bool decorationsVisible() const override;
69 void setDecorationsVisible(bool value, bool update) override;
71
72 void setDirty(const QVector<QRect> &rects) override;
74
75protected:
76 void flattenSelectionProjection(KisSelectionSP selection, const QRect &dirtyRect) const override;
77
79 KisSelectionSP effectiveSelection,
80 const QRect &applyRect, const QRect &preparedNeedRect,
81 KisNode::PositionToFilthy maskPos, KisRenderPassFlags flags) const override;
82
83 bool paintsOutsideSelection() const override;
84
85
86private:
87 Q_PRIVATE_SLOT(m_d, void slotSelectionChangedCompressed())
88 Q_PRIVATE_SLOT(m_d, void slotConfigChanged())
89
90 struct Private;
91 Private * const m_d;
92};
93
94#endif //_KIS_SELECTION_MASK_
float value(const T *src, size_t ch)
qreal v
virtual bool decorationsVisible() const =0
virtual void setDecorationsVisible(bool value, bool update)=0
QIcon icon() const override
KisSharedPtr< KisNode > KisNodeSP
Definition kis_types.h:86
virtual void setVisible(bool visible, bool loading=false)
virtual PropertyList sectionModelProperties() const
virtual void setSectionModelProperties(const PropertyList &properties)
virtual bool paintsOutsideSelection() const
Definition kis_mask.cc:284
virtual void flattenSelectionProjection(KisSelectionSP selection, const QRect &dirtyRect) const
Definition kis_mask.cc:361
QRect needRect(const QRect &rect, PositionToFilthy pos=N_FILTHY) const override
Definition kis_mask.cc:366
virtual void mergeInMaskInternal(KisPaintDeviceSP projection, KisSelectionSP effectiveSelection, const QRect &applyRect, const QRect &preparedNeedRect, PositionToFilthy maskPos, KisRenderPassFlags flags) const
Definition kis_mask.cc:337
QRect changeRect(const QRect &rect, PositionToFilthy pos=N_FILTHY) const override
Definition kis_mask.cc:386
QRect exactBounds() const override
Definition kis_mask.cc:411
void setSelection(KisSelectionSP selection)
Definition kis_mask.cc:252
QRect extent() const override
Definition kis_mask.cc:391
bool accept(KisNodeVisitor &v) override
Definition kis_node.cpp:269
PositionToFilthy
Definition kis_node.h:58
virtual void setDirty()
Definition kis_node.cpp:577
KisNodeSP clone() const override