Krita Source Code Documentation
Loading...
Searching...
No Matches
KisLassoEnclosingProducer.cpp
Go to the documentation of this file.
1/*
2 * KDE. Krita Project.
3 *
4 * SPDX-FileCopyrightText: 2022 Deif Lou <ginoba@gmail.com>
5 *
6 * SPDX-License-Identifier: GPL-2.0-or-later
7 */
8
9#include <KisViewManager.h>
10#include <canvas/kis_canvas2.h>
12
14
16 : KisDynamicDelegateTool<KisToolOutlineBase>(canvas, KisToolOutlineBase::PAINT, KisCursor::load("tool_outline_selection_cursor.png", 5, 5))
17{
18 setObjectName("enclosing_tool_lasso");
20 setOutlineEnabled(false);
21
22 KisCanvas2 *kritaCanvas = dynamic_cast<KisCanvas2*>(canvas);
23
24 connect(kritaCanvas->viewManager()->canvasResourceProvider(), SIGNAL(sigEffectiveCompositeOpChanged()), SLOT(resetCursorStyle()));
25}
26
29
31{
32 if (isEraser()) {
33 useCursor(KisCursor::load("tool_outline_selection_enclose_eraser_cursor.png", 5, 5));
34 } else {
35 KisDynamicDelegateTool::resetCursorStyle();
36 }
37
39}
40
42{
43 if (points.size() < 3) {
44 return;
45 }
46
47 KisPixelSelectionSP enclosingMask = new KisPixelSelection();
48
49 KisPainter painter(enclosingMask);
50 painter.setPaintColor(KoColor(Qt::white, enclosingMask->colorSpace()));
51 painter.setAntiAliasPolygonFill(false);
54
55 painter.paintPolygon(points);
56
57 Q_EMIT enclosingMaskProduced(enclosingMask);
58}
59
64
69
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
KisViewManager * viewManager() const
static QCursor load(const QString &cursorName, int hotspotX=-1, int hotspotY=-1)
KisLassoEnclosingProducer(KoCanvasBase *canvas)
void finishOutline(const QVector< QPointF > &points) override
void enclosingMaskProduced(KisPixelSelectionSP enclosingMask)
const KoColorSpace * colorSpace() const
@ FillStyleForegroundColor
void setStrokeStyle(StrokeStyle strokeStyle)
Set the current brush stroke style.
void paintPolygon(const vQPointF &points)
void setFillStyle(FillStyle fillStyle)
Set the current style with which to fill.
void setPaintColor(const KoColor &color)
void setAntiAliasPolygonFill(bool antiAliasPolygonFill)
Set whether a polygon's filled area should be anti-aliased or not. The default is true.
void setSupportOutline(bool supportOutline)
bool isEraser() const
void setOutlineEnabled(bool enabled)
KisCanvasResourceProvider * canvasResourceProvider()
void useCursor(const QCursor &cursor)
bool overrideCursorIfNotEditable()
Override the cursor appropriately if current node is not editable.
Definition kis_tool.cc:618
KisCanvas2 * canvas