13#include <klocalizedstring.h>
71 float currentExposure{1.0};
73 QWidget* optionWidget{0};
75 bool m_isActive{
false};
100 if (!
canvas()->resourceManager())
return;
115 if (preset && preset->settings()) {
116 preset->settings()->activate();
127 d->m_isActive =
true;
133 d->m_isActive =
false;
155 d->currentExposure =
static_cast<float>(
v.toDouble());
175 Q_ASSERT(kritaCanvas);
184 Q_ASSERT(kritaCanvas);
220 QPointF pos = snapGuide->
snap(e->
point, offset, useModifiers ? e->
modifiers() : Qt::NoModifier);
231 QPointF pos = snapGuide->
snap(pt, offset, Qt::NoModifier);
239 return e->
point.toPoint();
266 return value / avgResolution;
290 QPointF topLeft =
pixelToView(pixelRect.topLeft());
291 QPointF bottomRight =
pixelToView(pixelRect.bottomRight());
292 return {topLeft, bottomRight};
300 matrix.scale(zoomX/
image()->xRes(), zoomY/
image()->yRes());
301 return matrix.map(pixelPolygon);
318 matrix.scale(zoomX/
image()->xRes(), zoomY/
image()->yRes());
319 return matrix.map(pixelPath);
351 return d->currentPattern;
356 return d->currentGradient;
385 return d->currentFgColor;
390 return d->currentBgColor;
400 return d->currentGenerator;
551 if (node->inherits(
"KisShapeLayer")) {
554 if (node->inherits(
"KisCloneLayer")) {
575 Q_UNUSED(externalSource);
580 d->optionWidget =
new QLabel(i18n(
"No options"));
581 d->optionWidget->setObjectName(
"SpecialSpacer");
582 return d->optionWidget;
585#define NEAR_VAL -1000.0
586#define FAR_VAL 1000.0
587#define PROGRAM_VERTEX_ATTRIBUTE 0
593 painter->beginNativePainting();
595 painter->endNativePainting();
599 painter->setCompositionMode(QPainter::RasterOp_SourceXorDestination);
600 QPen
p = QColor(128, 255, 128);
605 for (
auto it = path.begin(); it != path.end(); ++it) {
606 painter->drawPolyline(*it);
648 return d->m_isActive;
662 bool blockedNoIndirectPainting =
false;
664 const bool presetUsesIndirectPainting =
667 if (!presetUsesIndirectPainting) {
670 if (indirectPaintingLayer) {
681 message = i18n(
"Layer is locked and invisible.");
683 message = i18n(
"Layer is locked.");
685 message = i18n(
"Layer is invisible.");
686 }
else if (blockedNoIndirectPainting) {
687 message = i18n(
"Layer can be painted in Wash Mode only.");
689 message = i18n(
"Group not editable.");
float value(const T *src, size_t ch)
const KoID RGBAColorModelID("RGBA", ki18n("RGB/Alpha"))
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
void setCursor(const QCursor &cursor) override
KisImageWSP currentImage() const
KisCoordinatesConverter * coordinatesConverter
void updateCanvas(const QRectF &rc) override
KisViewManager * viewManager() const
KisAbstractCanvasWidget * canvasWidget
const KoViewConverter * viewConverter() const override
static KisConfigNotifier * instance()
QTransform imageToDocumentTransform() const
QTransform documentToFlakeTransform() const
_Private::Traits< T >::Result documentToWidget(const T &obj) const
_Private::Traits< T >::Result flakeToWidget(const T &obj) const
QPointF flakeCenterPoint() const
_Private::Traits< T >::Result widgetToImage(const T &obj) const
QPointF documentToPixel(const QPointF &documentCoord) const
QPointF pixelToDocument(const QPointF &pixelCoord) const
QPoint documentToImagePixelFloored(const QPointF &documentCoord) const
KisNodeList selectedNodes()
void paintToolOutline(const KisOptimizedBrushOutline &path, int thickness=1)
const KoColorSpace * colorSpace() const
The KisResourcesSnapshot class takes a snapshot of the various resources like colors and settings use...
KisNodeList selectedNodes() const
KisSelectionSP activeSelection() const
bool blockUntilOperationsFinished(KisImageSP image)
blockUntilOperationsFinished blocks the GUI of the application until execution of actions on image is...
void blockUntilOperationsFinishedForced(KisImageSP image)
blockUntilOperationsFinished blocks the GUI of the application until execution of actions on image is...
KisNodeManager * nodeManager() const
The node manager handles everything about nodes.
bool selectionEditable()
Checks if the current global or local selection is editable.
void showFloatingMessage(const QString &message, const QIcon &icon, int timeout=4500, KisFloatingMessage::Priority priority=KisFloatingMessage::Medium, int alignment=Qt::AlignCenter|Qt::TextWordWrap)
shows a floating message in the top right corner of the canvas
QPointer< KoCanvasResourceProvider > resourceManager
virtual KoID colorModelId() const =0
Qt::KeyboardModifiers modifiers() const
QPointF point
The point in document coordinates.
QPointF snap(const QPointF &mousePosition, Qt::KeyboardModifiers modifiers)
snaps the mouse position, returns if mouse was snapped
virtual void zoom(qreal *zoomX, qreal *zoomY) const
virtual QPointF documentToView(const QPointF &documentPoint) const
#define KIS_ASSERT_RECOVER_RETURN_VALUE(cond, val)
QIcon loadIcon(const QString &name)
@ CurrentGeneratorConfiguration
@ BackgroundColor
The active background color selected for this canvas.
@ ForegroundColor
The active foreground color selected for this canvas.
bool isEditable(bool checkVisibility=true) const
virtual KisPaintDeviceSP paintDevice() const =0
virtual bool visible(bool recursive=false) const
virtual bool supportsNonIndirectPainting() const