Krita Source Code Documentation
Loading...
Searching...
No Matches
KisAsyncColorSamplerHelper::Private Struct Reference

Public Types

typedef KisSignalCompressorWithParam< QPointF > SamplingCompressor
 

Public Member Functions

QRectF colorPreviewDocRect (const QPointF &outlineDocPoint)
 
QRectF colorPreviewRectForCircle ()
 
QRectF colorPreviewRectForRectangle () const
 
const KoViewConverterconverter () const
 
 Private (KisCanvas2 *_canvas)
 
KisStrokesFacadestrokesFacade () const
 

Public Attributes

QTimer activationDelayTimer
 
QColor baseColor
 
QPixmap cache
 
bool cacheMirror = false
 
qreal cacheRotation = 0.0
 
KisCanvas2canvas
 
int circlePreviewDiameter {180}
 
bool circlePreviewExtraCircles {true}
 
bool circlePreviewOutlineEnabled {true}
 
qreal circlePreviewThickness {0.12}
 
QColor currentColor
 
bool haveSample {false}
 
bool isActive {false}
 
QRectF previewDocRect
 
bool sampleCurrentLayer {true}
 
int sampleResourceId {0}
 
QScopedPointer< SamplingCompressorsamplingCompressor
 
bool showPreview {false}
 
KisStrokeId strokeId
 
KisConfig::ColorSamplerPreviewStyle style = KisConfig::ColorSamplerPreviewStyle::Circle
 
bool updateGlobalColor {true}
 

Static Public Attributes

static constexpr qreal PREVIEW_RECT_SIZE = 48.0
 

Detailed Description

Definition at line 41 of file KisAsyncColorSamplerHelper.cpp.

Member Typedef Documentation

◆ SamplingCompressor

Constructor & Destructor Documentation

◆ Private()

KisAsyncColorSamplerHelper::Private::Private ( KisCanvas2 * _canvas)
inline

Definition at line 45 of file KisAsyncColorSamplerHelper.cpp.

Member Function Documentation

◆ colorPreviewDocRect()

QRectF KisAsyncColorSamplerHelper::Private::colorPreviewDocRect ( const QPointF & outlineDocPoint)
inline

Definition at line 142 of file KisAsyncColorSamplerHelper.cpp.

143 {
144 QRectF colorPreviewViewRect;
145 switch (style) {
147 return QRectF();
151 colorPreviewViewRect = colorPreviewRectForRectangle();
152 break;
153 default:
154 // Showing a preview without sampling a color (by just holding a
155 // modifier) is used to compare the foreground color with the
156 // canvas. The circle doesn't work well for that purpose, so we
157 // use the handedness-independent rectangle above instead.
158 if (haveSample) {
159 colorPreviewViewRect = colorPreviewRectForCircle();
160 } else {
161 colorPreviewViewRect = colorPreviewRectForRectangle();
162 }
163 break;
164 }
165
166 const QRectF colorPreviewDocumentRect = converter().viewToDocument(colorPreviewViewRect);
167 return colorPreviewDocumentRect.translated(outlineDocPoint);
168 }
virtual QPointF viewToDocument(const QPointF &viewPoint) const
KisConfig::ColorSamplerPreviewStyle style

References colorPreviewRectForCircle(), colorPreviewRectForRectangle(), converter(), haveSample, KisConfig::None, KisConfig::RectangleAbove, KisConfig::RectangleLeft, KisConfig::RectangleRight, style, and KoViewConverter::viewToDocument().

◆ colorPreviewRectForCircle()

QRectF KisAsyncColorSamplerHelper::Private::colorPreviewRectForCircle ( )
inline

◆ colorPreviewRectForRectangle()

QRectF KisAsyncColorSamplerHelper::Private::colorPreviewRectForRectangle ( ) const
inline

Definition at line 87 of file KisAsyncColorSamplerHelper.cpp.

88 {
89 // Offsetting to the sides is both vertical and horizontal, when
90 // offsetting above it's only vertical, so it needs a bit more space.
91 constexpr qreal OFFSET = 32.0;
92 constexpr qreal OFFSET_ABOVE = OFFSET * 1.5;
93 constexpr qreal SIZE = PREVIEW_RECT_SIZE;
94
95 bool mirrored = canvas->xAxisMirrored();
96 bool flipped = canvas->yAxisMirrored();
97
103 } else {
104 effectiveStyle = style;
105 }
106
107 qreal width = haveSample ? SIZE * 2.0 : SIZE;
108
109 qreal x, y;
110 switch (effectiveStyle) {
112 x = -(OFFSET + width);
113 y = flipped ? -(OFFSET + SIZE) : OFFSET;
114 break;
116 x = OFFSET;
117 y = flipped ? -(OFFSET + SIZE) : OFFSET;
118 break;
119 default:
120 x = width / -2.0;
121 y = flipped ? OFFSET_ABOVE : -(OFFSET_ABOVE + SIZE);
122 break;
123 }
124
125 QRectF rect(x, y, width, SIZE);
126
127 qreal canvasRotationAngle = canvas->rotationAngle();
128 if (!qFuzzyIsNull(canvasRotationAngle)) {
129 QTransform tf;
130 tf.rotate(mirrored ? canvasRotationAngle : -canvasRotationAngle);
131 rect = tf.mapRect(rect);
132 }
133
134 return rect;
135 }
qreal rotationAngle() const
canvas rotation in degrees
bool xAxisMirrored() const
Bools indicating canvasmirroring.
bool yAxisMirrored() const
ColorSamplerPreviewStyle
Definition kis_config.h:138
static bool qFuzzyIsNull(half h)

References canvas, haveSample, PREVIEW_RECT_SIZE, qFuzzyIsNull(), KisConfig::RectangleLeft, KisConfig::RectangleRight, KisCanvas2::rotationAngle(), style, KisCanvas2::xAxisMirrored(), and KisCanvas2::yAxisMirrored().

◆ converter()

const KoViewConverter & KisAsyncColorSamplerHelper::Private::converter ( ) const
inline

Definition at line 83 of file KisAsyncColorSamplerHelper.cpp.

83 {
84 return *canvas->imageView()->viewConverter();
85 }
QPointer< KisView > imageView() const

References canvas, and KisCanvas2::imageView().

◆ strokesFacade()

KisStrokesFacade * KisAsyncColorSamplerHelper::Private::strokesFacade ( ) const
inline

Definition at line 79 of file KisAsyncColorSamplerHelper.cpp.

79 {
80 return canvas->image().data();
81 }
KisImageWSP image() const

References canvas, KisWeakSharedPtr< T >::data(), and KisCanvas2::image().

Member Data Documentation

◆ activationDelayTimer

QTimer KisAsyncColorSamplerHelper::Private::activationDelayTimer

Definition at line 63 of file KisAsyncColorSamplerHelper.cpp.

◆ baseColor

QColor KisAsyncColorSamplerHelper::Private::baseColor

Definition at line 73 of file KisAsyncColorSamplerHelper.cpp.

◆ cache

QPixmap KisAsyncColorSamplerHelper::Private::cache

Definition at line 75 of file KisAsyncColorSamplerHelper.cpp.

◆ cacheMirror

bool KisAsyncColorSamplerHelper::Private::cacheMirror = false

Definition at line 77 of file KisAsyncColorSamplerHelper.cpp.

◆ cacheRotation

qreal KisAsyncColorSamplerHelper::Private::cacheRotation = 0.0

Definition at line 76 of file KisAsyncColorSamplerHelper.cpp.

◆ canvas

KisCanvas2* KisAsyncColorSamplerHelper::Private::canvas

Definition at line 49 of file KisAsyncColorSamplerHelper.cpp.

◆ circlePreviewDiameter

int KisAsyncColorSamplerHelper::Private::circlePreviewDiameter {180}

Definition at line 66 of file KisAsyncColorSamplerHelper.cpp.

66{180};

◆ circlePreviewExtraCircles

bool KisAsyncColorSamplerHelper::Private::circlePreviewExtraCircles {true}

Definition at line 69 of file KisAsyncColorSamplerHelper.cpp.

69{true};

◆ circlePreviewOutlineEnabled

bool KisAsyncColorSamplerHelper::Private::circlePreviewOutlineEnabled {true}

Definition at line 68 of file KisAsyncColorSamplerHelper.cpp.

68{true};

◆ circlePreviewThickness

qreal KisAsyncColorSamplerHelper::Private::circlePreviewThickness {0.12}

Definition at line 67 of file KisAsyncColorSamplerHelper.cpp.

67{0.12};

◆ currentColor

QColor KisAsyncColorSamplerHelper::Private::currentColor

Definition at line 72 of file KisAsyncColorSamplerHelper.cpp.

◆ haveSample

bool KisAsyncColorSamplerHelper::Private::haveSample {false}

Definition at line 57 of file KisAsyncColorSamplerHelper.cpp.

57{false};

◆ isActive

bool KisAsyncColorSamplerHelper::Private::isActive {false}

Definition at line 55 of file KisAsyncColorSamplerHelper.cpp.

55{false};

◆ PREVIEW_RECT_SIZE

constexpr qreal KisAsyncColorSamplerHelper::Private::PREVIEW_RECT_SIZE = 48.0
staticconstexpr

Definition at line 43 of file KisAsyncColorSamplerHelper.cpp.

◆ previewDocRect

QRectF KisAsyncColorSamplerHelper::Private::previewDocRect

Definition at line 70 of file KisAsyncColorSamplerHelper.cpp.

◆ sampleCurrentLayer

bool KisAsyncColorSamplerHelper::Private::sampleCurrentLayer {true}

Definition at line 52 of file KisAsyncColorSamplerHelper.cpp.

52{true};

◆ sampleResourceId

int KisAsyncColorSamplerHelper::Private::sampleResourceId {0}

Definition at line 51 of file KisAsyncColorSamplerHelper.cpp.

51{0};

◆ samplingCompressor

QScopedPointer<SamplingCompressor> KisAsyncColorSamplerHelper::Private::samplingCompressor

Definition at line 61 of file KisAsyncColorSamplerHelper.cpp.

◆ showPreview

bool KisAsyncColorSamplerHelper::Private::showPreview {false}

Definition at line 56 of file KisAsyncColorSamplerHelper.cpp.

56{false};

◆ strokeId

KisStrokeId KisAsyncColorSamplerHelper::Private::strokeId

Definition at line 59 of file KisAsyncColorSamplerHelper.cpp.

◆ style

Definition at line 65 of file KisAsyncColorSamplerHelper.cpp.

◆ updateGlobalColor

bool KisAsyncColorSamplerHelper::Private::updateGlobalColor {true}

Definition at line 53 of file KisAsyncColorSamplerHelper.cpp.

53{true};

The documentation for this struct was generated from the following file: