Krita Source Code Documentation
Loading...
Searching...
No Matches
KisAsyncColorSamplerHelper.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2022 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef KISASYNCCOLORSAMPLERHELPER_H
8#define KISASYNCCOLORSAMPLERHELPER_H
9
10#include "kritaui_export.h"
11
12#include <QScopedPointer>
13#include <QObject>
14
15#include "kis_types.h"
16
17class QPainter;
18class QPainterPath;
19class KoViewConverter;
21class KisCanvas2;
22class KoColor;
23
24class KRITAUI_EXPORT KisAsyncColorSamplerHelper : public QObject
25{
26 Q_OBJECT
27public:
30
31 bool isActive() const;
32
33 void activate(bool sampleCurrentLayer, bool pickFgColor);
34 void deactivate();
35
36 void startAction(const QPointF &docPoint, int radius, int blend);
37 void continueAction(const QPointF &docPoint);
38 void endAction();
39
40 QRectF colorPreviewDocRect(const QPointF &docPoint);
41 void paint(QPainter &gc, const KoViewConverter &converter);
42
43 void updateCursor(bool sampleCurrentLayer, bool pickFgColor);
44
45 void setUpdateGlobalColor(bool value);
46 bool updateGlobalColor() const;
47
48Q_SIGNALS:
50 void sigRequestCursor(const QCursor &cursor);
56 void sigRawColorSelected(const KoColor &color);
57
62 void sigColorSelected(const KoColor &color);
63
71 void sigFinalColorSelected(const KoColor &color);
72
73private Q_SLOTS:
74 void activateDelayedPreview();
75 void slotAddSamplingJob(const QPointF &docPoint);
76 void slotColorSamplingFinished(const KoColor &rawColor);
77 void slotUpdateBgColor();
78 void slotCanvasZoomPreviewUpdated(const QImage &canvasImage, QRect canvasRect);
79
80private:
81 void activatePreview();
82 void paintRectangle(QPainter &gc, const QRectF &viewRectF, const QColor &currentColor, const QColor &baseColor);
83 void paintCircle(QPainter &gc, const QRectF &viewRectF, const QColor &currentColor, const QColor &baseColor);
84
85 void prepareZoomPreview(const QRectF &docRect);
86
87 void paintCircleCrosshair(QPainter &gc, const QRectF &viewRectF, const QColor &currentColor);
88 void paintCircleCanvasPreview(QPainter &gc, const QRectF &viewRectF, const QPainterPath &clip);
89 void paintCircleReferenceImagePreview(QPainter &gc, const QRectF &viewRectF, const QPainterPath &clip);
90
91 struct Private;
92 QScopedPointer<Private> m_d;
93};
94
95#endif // KISASYNCCOLORSAMPLERHELPER_H
float value(const T *src, size_t ch)
void sigFinalColorSelected(const KoColor &color)
void sigRequestCursor(const QCursor &cursor)
void sigColorSelected(const KoColor &color)
void sigRawColorSelected(const KoColor &color)