Krita Source Code Documentation
Loading...
Searching...
No Matches
KisSelection Class Reference

#include <kis_selection.h>

+ Inheritance diagram for KisSelection:

Classes

struct  ChangeShapeSelectionCommand
 

Public Member Functions

void clear ()
 
KUndo2CommandconvertToVectorSelection (KisSelectionComponent *shapeSelection)
 converts shape selection into the vector state
 
void convertToVectorSelectionNoUndo (KisSelectionComponent *shapeSelection)
 
KUndo2Commandflatten ()
 flatten creates a new pixel selection component from the shape selection and throws away the shape selection. This has no effect if there is no shape selection.
 
bool hasNonEmptyPixelSelection () const
 
bool hasNonEmptyShapeSelection () const
 
bool hasShapeSelection () const
 
bool isTotallyUnselected (const QRect &r) const
 
bool isVisible ()
 
 KisSelection ()
 
 KisSelection (const KisPaintDeviceSP copySource, KritaUtils::DeviceCopyMode copyMode, KisDefaultBoundsBaseSP defaultBounds, KisImageResolutionProxySP resolutionProxy)
 
 KisSelection (const KisSelection &rhs)
 
 KisSelection (KisDefaultBoundsBaseSP defaultBounds, KisImageResolutionProxySP resolutionProxy)
 
void notifySelectionChanged ()
 
KisSelectionoperator= (const KisSelection &rhs)
 
QPainterPath outlineCache () const
 
bool outlineCacheValid () const
 
KisNodeWSP parentNode () const
 
KisPixelSelectionSP pixelSelection () const
 
 Private (KisSelection *q)
 
KisPixelSelectionSP projection () const
 
void recalculateOutlineCache ()
 
void recalculateThumbnailImage (const QColor &maskColor)
 
void requestCompressedProjectionUpdate (const QRect &rc)
 
KisImageResolutionProxySP resolutionProxy () const
 
quint8 selected (qint32 x, qint32 y) const
 
QRect selectedExactRect () const
 Slow, but exact way of determining the rectangle that encloses the selection.
 
QRect selectedRect () const
 
void setDefaultBounds (KisDefaultBoundsBaseSP bounds)
 
void setParentNode (KisNodeWSP node)
 
void setResolutionProxy (KisImageResolutionProxySP proxy)
 
void setVisible (bool visible)
 
void setX (qint32 x)
 
void setY (qint32 y)
 
KisSelectionComponentshapeSelection () const
 
QImage thumbnailImage () const
 
QTransform thumbnailImageTransform () const
 
bool thumbnailImageValid () const
 
void updateProjection ()
 
void updateProjection (const QRect &rect)
 
qint32 x () const
 
qint32 y () const
 
virtual ~KisSelection ()
 
- Public Member Functions inherited from Private
 Private (KisCanvas2 *c)
 
- Public Member Functions inherited from KisShared
bool deref ()
 
bool ref ()
 
int refCount ()
 
QAtomicInt * sharedWeakReference ()
 

Static Public Member Functions

template<typename T >
static void safeDeleteShapeSelection (T *object, KisSelection *selection)
 

Public Attributes

bool isVisible
 
KisNodeWSP parentNode
 
KisPixelSelectionSP pixelSelection
 
KisImageResolutionProxySP resolutionProxy
 
KisSelectionComponentshapeSelection
 
QReadWriteLock shapeSelectionPointerLock
 
KisLazyStorage< KisSelectionUpdateCompressor, KisSelection * > updateCompressor
 
- Public Attributes inherited from Private
KisCanvas2canvas
 
int displayedFrame
 
int intendedFrame
 

Private Member Functions

void copyFrom (const KisSelection &rhs)
 

Private Attributes

Private *const m_d
 

Friends

class KisAdjustmentLayerTest
 
class KisDeselectActiveSelectionCommand
 
class KisMaskTest
 
class KisSelectionTest
 
class KisSelectionUpdateCompressor
 
class KisUpdateSelectionJob
 

Additional Inherited Members

- Protected Member Functions inherited from KisShared
 KisShared ()
 
 ~KisShared ()
 

Detailed Description

KisSelection is a composite object. It may contain an instance of KisPixelSelection and a KisShapeSelection object. Both these selections are merged into a projection of the KisSelection.

Every pixel in the paint device can indicate a degree of selectedness, varying between MIN_SELECTED and MAX_SELECTED.

The projection() paint device itself is only a projection: you can read from it, but not write to it. You need to keep track of the need for updating the projection yourself: there is no automatic updating after changing the contents of one or more of the selection components.

Definition at line 33 of file kis_selection.cc.

Constructor & Destructor Documentation

◆ KisSelection() [1/4]

KisSelection::KisSelection ( )

Create a new KisSelection.

Definition at line 244 of file kis_selection.cc.

245 : KisSelection(nullptr, nullptr)
246{
247}

◆ KisSelection() [2/4]

KisSelection::KisSelection ( KisDefaultBoundsBaseSP defaultBounds,
KisImageResolutionProxySP resolutionProxy )

Create a new KisSelection.

Parameters
defaultBoundsdefines the bounds of the selection when Select All is initiated.
resolutionProxydefines resolution with which vector selections are rendered

Definition at line 249 of file kis_selection.cc.

250 : m_d(new Private(this))
251{
252 if (!defaultBounds) {
253 defaultBounds = new KisSelectionEmptyBounds(nullptr);
254 }
255
256 if (!resolutionProxy) {
257 resolutionProxy.reset(new KisImageResolutionProxy(nullptr));
258 }
259
260 m_d->resolutionProxy = resolutionProxy;
261
262 m_d->pixelSelection = new KisPixelSelection(defaultBounds, this);
263 m_d->pixelSelection->setParentNode(m_d->parentNode);
264}
KisImageResolutionProxySP resolutionProxy
Private *const m_d

References m_d, and resolutionProxy.

◆ KisSelection() [3/4]

KisSelection::KisSelection ( const KisSelection & rhs)

Copy the selection. The selection components are copied, too.

Definition at line 266 of file kis_selection.cc.

267 : KisShared(),
268 m_d(new Private(this))
269{
270 copyFrom(rhs);
271}
void copyFrom(const KisSelection &rhs)

References copyFrom().

◆ ~KisSelection()

KisSelection::~KisSelection ( )
virtual

Delete the selection. The shape selection component is deleted, the pixel selection component is contained in a shared pointer, so that may still be valid.

Definition at line 325 of file kis_selection.cc.

326{
327 delete m_d->shapeSelection;
328 delete m_d;
329}

References m_d.

◆ KisSelection() [4/4]

KisSelection::KisSelection ( const KisPaintDeviceSP copySource,
KritaUtils::DeviceCopyMode copyMode,
KisDefaultBoundsBaseSP defaultBounds,
KisImageResolutionProxySP resolutionProxy )

Create a new selection using the content of copySource as the mask.

Definition at line 273 of file kis_selection.cc.

275 : m_d(new Private(this))
276{
277 if (!defaultBounds) {
278 defaultBounds = new KisSelectionEmptyBounds(0);
279 }
280
281 m_d->resolutionProxy = resolutionProxy;
282 m_d->pixelSelection = new KisPixelSelection(source, copyMode);
283 m_d->pixelSelection->setParentSelection(this);
284 m_d->pixelSelection->setParentNode(m_d->parentNode);
285 m_d->pixelSelection->setDefaultBounds(defaultBounds);
286}
KisMagneticGraph::vertex_descriptor source(typename KisMagneticGraph::edge_descriptor e, KisMagneticGraph g)

References m_d, resolutionProxy, and source().

Member Function Documentation

◆ clear()

void KisSelection::clear ( )

Definition at line 559 of file kis_selection.cc.

560{
561 QReadLocker readLocker(&m_d->shapeSelectionPointerLock);
562
563 if (m_d->shapeSelection) {
564 readLocker.unlock();
565 QWriteLocker writeLocker(&m_d->shapeSelectionPointerLock);
566 if (m_d->shapeSelection) {
567 Private::safeDeleteShapeSelection(m_d->shapeSelection, this);
568 m_d->shapeSelection = 0;
569 }
570 }
571
572 m_d->pixelSelection->clear();
573}

References m_d.

◆ convertToVectorSelection()

KUndo2Command * KisSelection::convertToVectorSelection ( KisSelectionComponent * shapeSelection)

converts shape selection into the vector state

The selection must not have any shape selection active. It should be checked by calling hasShapeSelection() in advance.

Parameters
shapeSelectionnew shape selection object that should be attached to the selection
Returns
undo command that executes and undos the conversion

Definition at line 440 of file kis_selection.cc.

441{
442 KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE(!m_d->shapeSelection, nullptr);
443
444 shapeSelection->setResolutionProxy(m_d->resolutionProxy);
445 return new ChangeShapeSelectionCommand(this, shapeSelection);
446}
virtual void setResolutionProxy(KisImageResolutionProxySP)
#define KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE(cond, val)
Definition kis_assert.h:129
KisSelectionComponent * shapeSelection

References KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE, m_d, KisSelectionComponent::setResolutionProxy(), and shapeSelection.

◆ convertToVectorSelectionNoUndo()

void KisSelection::convertToVectorSelectionNoUndo ( KisSelectionComponent * shapeSelection)
See also
convertToVectorSelection()

Definition at line 431 of file kis_selection.cc.

432{
434
435 shapeSelection->setResolutionProxy(m_d->resolutionProxy);
436 QScopedPointer<KUndo2Command> cmd(new ChangeShapeSelectionCommand(this, shapeSelection));
437 cmd->redo();
438}
#define KIS_SAFE_ASSERT_RECOVER_RETURN(cond)
Definition kis_assert.h:128

References KIS_SAFE_ASSERT_RECOVER_RETURN, m_d, KisSelectionComponent::setResolutionProxy(), and shapeSelection.

◆ copyFrom()

void KisSelection::copyFrom ( const KisSelection & rhs)
private

Definition at line 296 of file kis_selection.cc.

297{
298 m_d->isVisible = rhs.m_d->isVisible;
299 m_d->resolutionProxy = rhs.m_d->resolutionProxy;
300 m_d->parentNode = 0; // not supposed to be shared
301
302 Q_ASSERT(rhs.m_d->pixelSelection);
303 m_d->pixelSelection = new KisPixelSelection(*rhs.m_d->pixelSelection, KritaUtils::CopyAllFrames);
304 m_d->pixelSelection->setParentSelection(this);
305
306 QReadLocker l1(&rhs.m_d->shapeSelectionPointerLock);
307 QWriteLocker l2(&m_d->shapeSelectionPointerLock);
308
309 if (rhs.m_d->shapeSelection && !rhs.m_d->shapeSelection->isEmpty()) {
310 m_d->shapeSelection = rhs.m_d->shapeSelection->clone(this);
311 KIS_SAFE_ASSERT_RECOVER_NOOP(m_d->shapeSelection);
312 KIS_SAFE_ASSERT_RECOVER(m_d->shapeSelection &&
313 m_d->shapeSelection != rhs.m_d->shapeSelection) {
314 m_d->shapeSelection = 0;
315 }
316 }
317 else {
318 if (m_d->shapeSelection) {
319 Private::safeDeleteShapeSelection(m_d->shapeSelection, this);
320 m_d->shapeSelection = 0;
321 }
322 }
323}
#define KIS_SAFE_ASSERT_RECOVER(cond)
Definition kis_assert.h:126
#define KIS_SAFE_ASSERT_RECOVER_NOOP(cond)
Definition kis_assert.h:130

References KritaUtils::CopyAllFrames, KIS_SAFE_ASSERT_RECOVER, KIS_SAFE_ASSERT_RECOVER_NOOP, and m_d.

◆ flatten()

KUndo2Command * KisSelection::flatten ( )

flatten creates a new pixel selection component from the shape selection and throws away the shape selection. This has no effect if there is no shape selection.

Definition at line 575 of file kis_selection.cc.

576{
577 QReadLocker readLocker(&m_d->shapeSelectionPointerLock);
578
579 KUndo2Command *command = 0;
580
581 if (m_d->shapeSelection) {
582 command = m_d->shapeSelection->resetToEmpty();
583 readLocker.unlock();
584
585 if (command) {
587 cmd->addCommand(command);
588 cmd->addCommand(new ChangeShapeSelectionCommand(this, nullptr));
589 command = cmd;
590 } else {
591 command = new ChangeShapeSelectionCommand(this, nullptr);
592 }
593 }
594
595 return command;
596}

References KisCommandUtils::CompositeCommand::addCommand(), and m_d.

◆ hasNonEmptyPixelSelection()

bool KisSelection::hasNonEmptyPixelSelection ( ) const

Definition at line 404 of file kis_selection.cc.

405{
406 return m_d->pixelSelection && !m_d->pixelSelection->isEmpty();
407}

References m_d.

◆ hasNonEmptyShapeSelection()

bool KisSelection::hasNonEmptyShapeSelection ( ) const

Definition at line 409 of file kis_selection.cc.

410{
411 QReadLocker l(&m_d->shapeSelectionPointerLock);
412 return m_d->shapeSelection && !m_d->shapeSelection->isEmpty();
413}

References m_d.

◆ hasShapeSelection()

bool KisSelection::hasShapeSelection ( ) const

Definition at line 415 of file kis_selection.cc.

416{
417 QReadLocker l(&m_d->shapeSelectionPointerLock);
418 return m_d->shapeSelection;
419}

References m_d.

◆ isTotallyUnselected()

bool KisSelection::isTotallyUnselected ( const QRect & r) const

Convenience functions. Just call the corresponding methods of the underlying projection

Definition at line 490 of file kis_selection.cc.

491{
492 return m_d->pixelSelection->isTotallyUnselected(r);
493}

References m_d.

◆ isVisible()

bool KisSelection::isVisible ( )

◆ notifySelectionChanged()

void KisSelection::notifySelectionChanged ( )

Definition at line 598 of file kis_selection.cc.

599{
601 if (!(parentNode = this->parentNode())) return;
602
603 KisNodeGraphListener *listener;
604 if (!(listener = parentNode->graphListener())) return;
605
606 listener->notifySelectionChanged();
607}
KisNodeGraphListener * graphListener
Definition kis_node.cpp:87
KisNodeWSP parentNode

References KisNode::graphListener, KisNodeGraphListener::notifySelectionChanged(), and parentNode.

◆ operator=()

KisSelection & KisSelection::operator= ( const KisSelection & rhs)

Definition at line 288 of file kis_selection.cc.

289{
290 if (&rhs != this) {
291 copyFrom(rhs);
292 }
293 return *this;
294}

References copyFrom().

◆ outlineCache()

QPainterPath KisSelection::outlineCache ( ) const

Definition at line 356 of file kis_selection.cc.

357{
358 QReadLocker l(&m_d->shapeSelectionPointerLock);
359
360 QPainterPath outline;
361
362 if (m_d->shapeSelection) {
363 outline += m_d->shapeSelection->outlineCache();
364 } else if (m_d->pixelSelection->outlineCacheValid()) {
365 outline += m_d->pixelSelection->outlineCache();
366 }
367
368 return outline;
369}

References m_d.

◆ outlineCacheValid()

bool KisSelection::outlineCacheValid ( ) const

Definition at line 349 of file kis_selection.cc.

350{
351 QReadLocker l(&m_d->shapeSelectionPointerLock);
352 return m_d->shapeSelection ||
353 m_d->pixelSelection->outlineCacheValid();
354}

References m_d.

◆ parentNode()

KisNodeWSP KisSelection::parentNode ( ) const

◆ pixelSelection()

KisPixelSelectionSP KisSelection::pixelSelection ( ) const

return the pixel selection component of this selection. Pixel selection component is always present in the selection. In case the user wants a vector selection, pixel selection will store the pixelated version of it.

NOTE: use pixelSelection() for changing the selection only. For reading the selection and passing the data to bitBlt function use projection(). Although projection() and pixelSelection() currently point to the same paint device, this behavior may change in the future.

◆ Private()

KisSelection::Private ( KisSelection * q)
inline

Definition at line 34 of file kis_selection.cc.

35 : isVisible(true),
38
39 {
40 }
KisLazyStorage< KisSelectionUpdateCompressor, KisSelection * > updateCompressor

◆ projection()

KisPixelSelectionSP KisSelection::projection ( ) const

Returns the projection of the selection. It may be the same as pixel selection. You must read selection data from this paint device only

Definition at line 448 of file kis_selection.cc.

449{
450 return m_d->pixelSelection;
451}

References m_d.

◆ recalculateOutlineCache()

void KisSelection::recalculateOutlineCache ( )

Definition at line 371 of file kis_selection.cc.

372{
373 QReadLocker l(&m_d->shapeSelectionPointerLock);
374
375 Q_ASSERT(m_d->pixelSelection);
376
377 if (m_d->shapeSelection) {
378 m_d->shapeSelection->recalculateOutlineCache();
379 } else if (!m_d->pixelSelection->outlineCacheValid()) {
380 m_d->pixelSelection->recalculateOutlineCache();
381 }
382}

References m_d.

◆ recalculateThumbnailImage()

void KisSelection::recalculateThumbnailImage ( const QColor & maskColor)

Recalculates the thumbnail of the selection

Definition at line 389 of file kis_selection.cc.

390{
391 m_d->pixelSelection->recalculateThumbnailImage(maskColor);
392}

References m_d.

◆ requestCompressedProjectionUpdate()

void KisSelection::requestCompressedProjectionUpdate ( const QRect & rc)

Request rerendering of the shape selection component in a compressed way. Usually, you don't need to call it manually, because all the work is done by KisShapeSelectionModel.

Definition at line 609 of file kis_selection.cc.

610{
611 m_d->updateCompressor->requestUpdate(rc);
612}

References m_d.

◆ resolutionProxy()

KisImageResolutionProxySP KisSelection::resolutionProxy ( ) const

◆ safeDeleteShapeSelection()

template<typename T >
static void KisSelection::safeDeleteShapeSelection ( T * object,
KisSelection * selection )
static

◆ selected()

quint8 KisSelection::selected ( qint32 x,
qint32 y ) const

XXX: This method was marked KDE_DEPRECATED but without information on what to replace it with. Undeprecate, therefore.

Definition at line 614 of file kis_selection.cc.

615{
616 KisHLineConstIteratorSP iter = m_d->pixelSelection->createHLineConstIteratorNG(x, y, 1);
617
618 const quint8 *pix = iter->oldRawData();
619
620 return *pix;
621}
virtual const quint8 * oldRawData() const =0
qint32 x() const
qint32 y() const

References m_d, KisBaseConstAccessor::oldRawData(), x(), and y().

◆ selectedExactRect()

QRect KisSelection::selectedExactRect ( ) const

Slow, but exact way of determining the rectangle that encloses the selection.

Default pixel of the selection device may vary and you would get wrong bounds. selectedExactRect() handles all these cases.

Definition at line 500 of file kis_selection.cc.

501{
502 return m_d->pixelSelection->selectedExactRect();
503}

References m_d.

◆ selectedRect()

QRect KisSelection::selectedRect ( ) const

Definition at line 495 of file kis_selection.cc.

496{
497 return m_d->pixelSelection->selectedRect();
498}

References m_d.

◆ setDefaultBounds()

void KisSelection::setDefaultBounds ( KisDefaultBoundsBaseSP bounds)

Definition at line 541 of file kis_selection.cc.

542{
543 m_d->pixelSelection->setDefaultBounds(bounds);
544}
#define bounds(x, a, b)

References bounds, and m_d.

◆ setParentNode()

void KisSelection::setParentNode ( KisNodeWSP node)

The paint device of the pixel selection should report about it's setDirty events to its parent. The creator should set the parent manually if it wants to get the signals

Definition at line 331 of file kis_selection.cc.

332{
333 m_d->parentNode = node;
334 m_d->pixelSelection->setParentNode(node);
335
336 // the updates come through the parent image, so all the updates
337 // that happened in the meantime are considered "stalled"
338 if (node) {
339 m_d->updateCompressor->tryProcessStalledUpdate();
340 }
341}

References m_d.

◆ setResolutionProxy()

void KisSelection::setResolutionProxy ( KisImageResolutionProxySP proxy)

Definition at line 546 of file kis_selection.cc.

547{
548 m_d->resolutionProxy = proxy;
549 if (m_d->shapeSelection) {
550 m_d->shapeSelection->setResolutionProxy(proxy);
551 }
552}

References m_d.

◆ setVisible()

void KisSelection::setVisible ( bool visible)

Definition at line 474 of file kis_selection.cc.

475{
476 bool needsNotification = visible != m_d->isVisible;
477
478 m_d->isVisible = visible;
479
480 if (needsNotification) {
482 }
483}
void notifySelectionChanged()

References m_d, and notifySelectionChanged().

◆ setX()

void KisSelection::setX ( qint32 x)

Definition at line 515 of file kis_selection.cc.

516{
517 QReadLocker l(&m_d->shapeSelectionPointerLock);
518
519 Q_ASSERT(m_d->pixelSelection);
520
521 qint32 delta = x - m_d->pixelSelection->x();
522 m_d->pixelSelection->setX(x);
523 if (m_d->shapeSelection) {
524 m_d->shapeSelection->moveX(delta);
525 }
526}

References m_d, and x().

◆ setY()

void KisSelection::setY ( qint32 y)

Definition at line 528 of file kis_selection.cc.

529{
530 QReadLocker l(&m_d->shapeSelectionPointerLock);
531
532 Q_ASSERT(m_d->pixelSelection);
533
534 qint32 delta = y - m_d->pixelSelection->y();
535 m_d->pixelSelection->setY(y);
536 if (m_d->shapeSelection) {
537 m_d->shapeSelection->moveY(delta);
538 }
539}

References m_d, and y().

◆ shapeSelection()

KisSelectionComponent * KisSelection::shapeSelection ( ) const

return the vector selection component of this selection or zero if hasShapeSelection() returns false.

◆ thumbnailImage()

QImage KisSelection::thumbnailImage ( ) const

Returns the thumbnail of the selection.

Definition at line 394 of file kis_selection.cc.

395{
396 return m_d->pixelSelection->thumbnailImage();
397}

References m_d.

◆ thumbnailImageTransform()

QTransform KisSelection::thumbnailImageTransform ( ) const

Returns the transformation which should be applied to the thumbnail before being painted over the image

Definition at line 399 of file kis_selection.cc.

400{
401 return m_d->pixelSelection->thumbnailImageTransform();
402}

References m_d.

◆ thumbnailImageValid()

bool KisSelection::thumbnailImageValid ( ) const

Tells whether the cached thumbnail of the selection is still valid

Definition at line 384 of file kis_selection.cc.

385{
386 return m_d->pixelSelection->thumbnailImageValid();
387}

References m_d.

◆ updateProjection() [1/2]

void KisSelection::updateProjection ( )

Definition at line 463 of file kis_selection.cc.

464{
465 QReadLocker l(&m_d->shapeSelectionPointerLock);
466
467 if(m_d->shapeSelection) {
468 m_d->pixelSelection->clear();
469 m_d->shapeSelection->renderToProjection(m_d->pixelSelection);
470 m_d->pixelSelection->setOutlineCache(m_d->shapeSelection->outlineCache());
471 }
472}

References m_d.

◆ updateProjection() [2/2]

void KisSelection::updateProjection ( const QRect & rect)

Updates the projection of the selection. You should call this method after the every change of the selection components. There is no automatic updates framework present

Definition at line 453 of file kis_selection.cc.

454{
455 QReadLocker l(&m_d->shapeSelectionPointerLock);
456
457 if(m_d->shapeSelection) {
458 m_d->shapeSelection->renderToProjection(m_d->pixelSelection, rc);
459 m_d->pixelSelection->setOutlineCache(m_d->shapeSelection->outlineCache());
460 }
461}

References m_d.

◆ x()

qint32 KisSelection::x ( ) const

Definition at line 505 of file kis_selection.cc.

506{
507 return m_d->pixelSelection->x();
508}

References m_d.

◆ y()

qint32 KisSelection::y ( ) const

Definition at line 510 of file kis_selection.cc.

511{
512 return m_d->pixelSelection->y();
513}

References m_d.

Friends And Related Symbol Documentation

◆ KisAdjustmentLayerTest

friend class KisAdjustmentLayerTest
friend

Definition at line 225 of file kis_selection.h.

◆ KisDeselectActiveSelectionCommand

friend class KisDeselectActiveSelectionCommand
friend

Definition at line 228 of file kis_selection.h.

◆ KisMaskTest

friend class KisMaskTest
friend

Definition at line 224 of file kis_selection.h.

◆ KisSelectionTest

friend class KisSelectionTest
friend

Definition at line 223 of file kis_selection.h.

◆ KisSelectionUpdateCompressor

friend class KisSelectionUpdateCompressor
friend

Definition at line 227 of file kis_selection.h.

◆ KisUpdateSelectionJob

friend class KisUpdateSelectionJob
friend

Definition at line 226 of file kis_selection.h.

Member Data Documentation

◆ isVisible

bool KisSelection::isVisible

Definition at line 48 of file kis_selection.cc.

◆ m_d

Private* const KisSelection::m_d
private

Definition at line 235 of file kis_selection.h.

◆ parentNode

KisNodeWSP KisSelection::parentNode

Definition at line 46 of file kis_selection.cc.

◆ pixelSelection

KisPixelSelectionSP KisSelection::pixelSelection

Definition at line 50 of file kis_selection.cc.

◆ resolutionProxy

KisImageResolutionProxySP KisSelection::resolutionProxy

Definition at line 49 of file kis_selection.cc.

◆ shapeSelection

KisSelectionComponent * KisSelection::shapeSelection

Definition at line 51 of file kis_selection.cc.

◆ shapeSelectionPointerLock

QReadWriteLock KisSelection::shapeSelectionPointerLock

This lock makes sure that the shape selection is not reincarnated, while some update jobs still access it via KisSelection::updateProjection().

Definition at line 58 of file kis_selection.cc.

◆ updateCompressor

KisLazyStorage<KisSelectionUpdateCompressor, KisSelection*> KisSelection::updateCompressor

Definition at line 52 of file kis_selection.cc.


The documentation for this class was generated from the following files: