Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_tool_colorsampler.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 1999 Matthias Elter <elter@kde.org>
3 * SPDX-FileCopyrightText: 2002 Patrick Julien <freak@codepimps.org>
4 * SPDX-FileCopyrightText: 2010 Lukáš Tvrdý <lukast.dev@gmail.com>
5 * SPDX-FileCopyrightText: 2018 Emmet & Eoin O'Neill <emmetoneill.pdx@gmail.com>
6 *
7 * SPDX-License-Identifier: GPL-2.0-or-later
8 */
9
10#ifndef KIS_TOOL_COLOR_SAMPLER_H_
11#define KIS_TOOL_COLOR_SAMPLER_H_
12
13#include "KoToolFactoryBase.h"
14#include "ui_wdgcolorsampler.h"
15#include "kis_tool.h"
16#include <kis_icon.h>
17#include <KoColorSet.h>
18#include <QPainter>
20
22
23namespace KisToolUtils {
24struct ColorSamplerConfig;
25}
26
27class ColorSamplerOptionsWidget : public QWidget, public Ui::ColorSamplerOptionsWidget
28{
29 Q_OBJECT
30
31public:
32 ColorSamplerOptionsWidget(QWidget *parent) : QWidget(parent) {
33 setupUi(this);
34 }
35};
36
38{
39 Q_OBJECT
40
41public:
43 ~KisToolColorSampler() override;
44
45public:
48
54 int radius;
55 int blend;
56
57 void save() const;
58 void load();
59 };
60
61public:
62 QWidget* createOptionWidget() override;
63
64 void beginPrimaryAction(KoPointerEvent *event) override;
65 void continuePrimaryAction(KoPointerEvent *event) override;
66 void mouseMoveEvent(KoPointerEvent *event) override;
67 void endPrimaryAction(KoPointerEvent *event) override;
68 void requestUpdateOutline(const QPointF &outlineDocPoint, const KoPointerEvent *event);
69
70 void activatePrimaryAction() override;
71 void deactivatePrimaryAction() override;
72
73 void paint(QPainter &gc, const KoViewConverter &converter) override;
74
75protected:
76 void activate(const QSet<KoShape*> &) override;
77 void deactivate() override;
78
79public Q_SLOTS:
80 void slotSetUpdateColor(bool);
81 void slotSetNormaliseValues(bool);
82 void slotSetAddPalette(bool);
83 void slotChangeRadius(int);
84 void slotChangeBlend(int);
85 void slotSetColorSource(int value);
86
87private Q_SLOTS:
88 void slotChangePalette(int);
89
90 void slotColorPickerRequestedCursor(const QCursor &cursor);
93 void slotColorPickerSelectedColor(const KoColor &color);
95
96private:
97 void displaySampledColor(const KoColor &color);
98 void updateOptionWidget();
99
100 // Configuration
101 QScopedPointer<KisToolUtils::ColorSamplerConfig> m_config;
102
103 bool m_isActivated {false};
105
107
109
111
114};
115
117{
118public:
120 : KoToolFactoryBase("KritaSelected/KisToolColorSampler") {
121 setToolTip(i18n("Color Sampler Tool"));
123 setPriority(2);
124 setIconName(koIconNameCStr("krita_tool_color_sampler"));
125 setShortcut(QKeySequence(Qt::Key_P));
127 }
128
130
134};
135
136#endif // KIS_TOOL_COLOR_SAMPLER_H_
float value(const T *src, size_t ch)
ColorSamplerOptionsWidget(QWidget *parent)
The KisTagFilterResourceProxyModel class filters the resources by tag or resource name.
KoToolBase * createTool(KoCanvasBase *canvas) override
void slotSetColorSource(int value)
KisTagFilterResourceProxyModel * m_tagFilterProxyModel
void slotColorPickerRequestedCursor(const QCursor &cursor)
void paint(QPainter &gc, const KoViewConverter &converter) override
QWidget * createOptionWidget() override
void displaySampledColor(const KoColor &color)
void slotColorPickerSelectedColor(const KoColor &color)
void endPrimaryAction(KoPointerEvent *event) override
QScopedPointer< KisToolUtils::ColorSamplerConfig > m_config
void beginPrimaryAction(KoPointerEvent *event) override
void continuePrimaryAction(KoPointerEvent *event) override
void activate(const QSet< KoShape * > &) override
KisToolColorSampler(KoCanvasBase *canvas)
ColorSamplerOptionsWidget * m_optionsWidget
KisAsyncColorSamplerHelper m_helper
void deactivatePrimaryAction() override
void requestUpdateOutline(const QPointF &outlineDocPoint, const KoPointerEvent *event)
void activatePrimaryAction() override
void slotColorPickerSelectionFinished(const KoColor &color)
void mouseMoveEvent(KoPointerEvent *event) override
void setShortcut(const QKeySequence &shortcut)
void setSection(const QString &section)
void setActivationShapeId(const QString &activationShapeId)
void setIconName(const char *iconName)
void setToolTip(const QString &tooltip)
void setPriority(int newPriority)
#define koIconNameCStr(name)
Definition kis_icon.h:28
static const QString KRITA_TOOL_ACTIVATION_ID
Definition kis_tool.h:37
static const QString Fill
Tools that fill parts of the canvas.
QCursor cursor
Definition kis_tool.cc:64
KisCanvas2 * canvas