28const int SAMPLE_MERGED = 0;
36 setObjectName(
"tool_colorsampler");
81 if (
m_config->addColorToCurrentPalette) {
90 KisSwatchGroup::SwatchInfo info =
91 palette->getClosestSwatchInfo(color);
93 if (info.swatch.color() != color) {
183 QRectF colorPreviewDocUpdateRect;
188 qreal xoffset = 2.0/zoomX;
189 qreal yoffset = 2.0/zoomY;
195 if (!colorPreviewDocUpdateRect.isEmpty()) {
196 colorPreviewDocUpdateRect = colorPreviewDocUpdateRect.adjusted(-xoffset,-yoffset,xoffset,yoffset);
203 if (!colorPreviewDocUpdateRect.isEmpty()){
224 for (
int i = 0; i < channels.count(); ++i) {
228 for (
int i = 0; i < channels.count(); ++i) {
231 pc.
name = channels[i]->name();
239 sampledChannels[channels[i]->displayPosition()] = pc;
244 QTreeWidgetItem *item =
new QTreeWidgetItem(
m_optionsWidget->listViewChannels);
245 item->setText(0, pc.
name);
250 if (qEnvironmentVariableIsSet(
"KRITA_DEBUG_DISPLAY_COLOR")) {
259 for (
int i = 0; i < values.size(); i++) {
260 QTreeWidgetItem *item =
new QTreeWidgetItem(
m_optionsWidget->listViewChannels);
261 item->setText(0, QString(
"DisplayCh%1").arg(i));
262 item->setText(1, QString::number(values[i]));
276 specialSpacer->setObjectName(
"SpecialSpacer");
277 specialSpacer->setFixedSize(0, 0);
283 i18nc(
"{n} is the number value, % is the percent sign",
"{n}%"));
304 KConfigGroup config = KSharedConfig::openConfig()->group(
toolId());
305 QString paletteName = config.readEntry(
"ColorSamplerPalette",
"");
306 if (!paletteName.isEmpty()) {
310 if (name == paletteName) {
347 m_config->addColorToCurrentPalette = state;
368 KConfigGroup config = KSharedConfig::openConfig()->group(
toolId());
369 config.writeEntry(
"ColorSamplerPalette", paletteName);
float value(const T *src, size_t ch)
const KoID Float32BitsColorDepthID("F32", ki18n("32-bit float/channel"))
const KoID RGBAColorModelID("RGBA", ki18n("RGB/Alpha"))
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
void activate(bool sampleCurrentLayer, bool pickFgColor)
void setUpdateGlobalColor(bool value)
void paint(QPainter &gc, const KoViewConverter &converter)
void updateCursor(bool sampleCurrentLayer, bool pickFgColor)
void continueAction(const QPointF &docPoint)
void startAction(const QPointF &docPoint, int radius, int blend)
QRectF colorPreviewDocRect(const QPointF &docPoint)
KisDisplayColorConverter displayColorConverter
void updateCanvas(const QRectF &rc) override
const KoViewConverter * viewConverter() const override
KoColor applyDisplayFiltering(const KoColor &srcColor, const KoID &bitDepthId) const
void setColor(const KoColor &color)
The KisTagFilterResourceProxyModel class filters the resources by tag or resource name.
KoResourceSP resourceForIndex(QModelIndex index=QModelIndex()) const override
resourceForIndex returns a properly versioned and id'ed resource object
QPointer< KoCanvasResourceProvider > resourceManager
virtual QString channelValueText(const quint8 *pixel, quint32 channelIndex) const =0
QList< KoChannelInfo * > channels
virtual KoID colorModelId() const =0
virtual void normalisedChannelsValue(const quint8 *pixel, QVector< float > &channels) const =0
virtual QString normalisedChannelValueText(const quint8 *pixel, quint32 channelIndex) const =0
const KoColorSpace * colorSpace() const
return the current colorSpace
QPointF point
The point in document coordinates.
virtual void zoom(qreal *zoomX, qreal *zoomY) const
#define KIS_SAFE_ASSERT_RECOVER_RETURN(cond)
void setText(QSpinBox *spinBox, const QStringView textTemplate)
rgba palette[MAX_PALETTE]