37 , updatesCompressor(0)
58 m_d->updatesCompressor =
64 m_d->slotConfigChangedImpl(
false);
71 m_d->updatesCompressor =
77 m_d->slotConfigChangedImpl(
false);
82 m_d->updatesCompressor->deleteLater();
92 const QRect &applyRect,
93 const QRect &preparedNeedRect,
95 KisRenderPassFlags flags)
const
98 Q_UNUSED(preparedNeedRect);
101 if (!effectiveSelection)
return;
105 if (mainMaskSelection &&
117 const QRect selectionExtent = effectiveSelection->
selectedRect();
119 if (selectionExtent.contains(applyRect) || selectionExtent.intersects(applyRect)) {
128 gc.
bitBlt(applyRect.topLeft(), fillDevice, applyRect);
132 gc.
bitBlt(applyRect.topLeft(), fillDevice, applyRect);
158 return v.visit(
this);
163 return visitor.
visit(
this, undoAdapter);
181 const bool oldVisible = this->
visible(
false);
184 if (!isLoading &&
visible != oldVisible) {
200 if (
active && parentLayer) {
202 if (activeMask && activeMask !=
this) {
207 const bool oldActive = this->
active();
272 m_d->updatesCompressor->start();
284 const QRect oldExtent =
extent();
308void KisSelectionMask::Private::slotSelectionChangedCompressed()
311 if (!currentSelection)
return;
316void KisSelectionMask::Private::slotConfigChangedImpl(
bool doUpdates)
326 maskColor =
KoColor(cfg.selectionOverlayMaskColor(), cs);
333void KisSelectionMask::Private::slotConfigChanged()
335 slotConfigChangedImpl(
true);
338#include "moc_kis_selection_mask.cpp"
float value(const T *src, size_t ch)
PythonPluginManager * instance
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
virtual bool externalFrameActive() const =0
virtual QRect bounds() const =0
void fillRect(qint32 x, qint32 y, qint32 w, qint32 h, const KoColor &c, quint8 opacity)
static KisImageConfigNotifier * instance()
KisUndoAdapter * undoAdapter() const
const KoColorSpace * colorSpace() const
KisSelectionMaskSP overlaySelectionMask() const
static const KoID selectionActive
static KisBaseNode::Property getProperty(const KoID &id, bool state)
void setDefaultPixel(const KoColor &defPixel)
void makeCloneFromRough(KisPaintDeviceSP src, const QRect &minimalRect)
KisDefaultBoundsBaseSP defaultBounds() const
void setSelection(KisSelectionSP selection)
void bitBlt(qint32 dstX, qint32 dstY, const KisPaintDeviceSP srcDev, qint32 srcX, qint32 srcY, qint32 srcWidth, qint32 srcHeight)
virtual void visit(KisNode *node, KisUndoAdapter *undoAdapter)=0
void emitSelectionChanged()
bool boolProperty(const QString &name, bool defaultValue=false) const
const quint8 MAX_SELECTED
KisSharedPtr< KisPaintDevice > KisPaintDeviceSP
QIcon loadIcon(const QString &name)
void setNodeProperty(const QString &name, const QVariant &value)
void setSupportsLodMoves(bool value)
virtual KisPaintDeviceSP projection() const =0
const KoProperties & nodeProperties() const
virtual QRect extent() const
virtual PropertyList sectionModelProperties() const
virtual bool visible(bool recursive=false) const
virtual void setSectionModelProperties(const PropertyList &properties)
KisPaintDeviceSP device() const
virtual KisSelectionMaskSP selectionMask() const
KisPaintDeviceSP projection() const override
void baseNodeChangedCallback() override
void setSelection(KisSelectionSP selection)
KisNodeGraphListener * graphListener
void setVisible(bool visible, bool isLoading=false) override
bool accept(KisNodeVisitor &v) override
QRect changeRect(const QRect &rect, PositionToFilthy pos=N_FILTHY) const override
Private(KisSelectionMask *_q)
KisCachedSelection cachedSelection
~KisSelectionMask() override
void mergeInMaskInternal(KisPaintDeviceSP projection, KisSelectionSP effectiveSelection, const QRect &applyRect, const QRect &preparedNeedRect, KisNode::PositionToFilthy maskPos, KisRenderPassFlags flags) const override
QIcon icon() const override
KisBaseNode::PropertyList sectionModelProperties() const override
void slotConfigChangedImpl(bool blockUpdates)
KisSelectionMask(KisImageWSP image, const QString &name=QString())
bool paintsOutsideSelection() const override
void flattenSelectionProjection(KisSelectionSP selection, const QRect &dirtyRect) const override
KisCachedPaintDevice paintDeviceCache
KisThreadSafeSignalCompressor * updatesCompressor
void notifySelectionChangedCompressed()
bool decorationsVisible() const override
QRect extent() const override
void setSelection(KisSelectionSP selection)
Set the selection of this adjustment layer to a copy of selection.
void setActive(bool active)
void setSectionModelProperties(const KisBaseNode::PropertyList &properties) override
QRect needRect(const QRect &rect, PositionToFilthy pos=N_FILTHY) const override
QRect exactBounds() const override
void setDecorationsVisible(bool value, bool update) override
void slotSelectionChangedCompressed()
void notifySelectionChanged()
KisPixelSelectionSP pixelSelection
QRect selectedRect() const
void setVisible(bool visible)
static KoColorSpaceRegistry * instance()
const KoColorSpace * rgb8(const QString &profileName=QString())
const KoColorSpace * alpha8()