7#ifndef CUT_THROUGH_SHAPE_STRATEGY_H_
8#define CUT_THROUGH_SHAPE_STRATEGY_H_
10#include <QScopedPointer>
33 void handleMouseMove(
const QPointF &mouseLocation, Qt::KeyboardModifiers modifiers)
override;
42 bool willShapeBeCutGeneral(
KoShape* referenceShape,
const QPainterPath &srcOutline,
const QRectF &leftOppositeRect,
const QRectF &rightOppositeRect,
bool checkGapLineRect,
const QRectF &gapLineRect);
43 bool willShapeBeCutPrecise(
const QPainterPath& srcOutline,
const QLineF gapLine,
const QLineF& leftLine,
const QLineF& rightLine,
const QPolygonF& gapLinePolygon);
bool willShapeBeCutGeneral(KoShape *referenceShape, const QPainterPath &srcOutline, const QRectF &leftOppositeRect, const QRectF &rightOppositeRect, bool checkGapLineRect, const QRectF &gapLineRect)
~CutThroughShapeStrategy() override
void finishInteraction(Qt::KeyboardModifiers modifiers) override
qreal calculateLineAngle(QPointF start, QPointF end)
bool willShapeBeCutPrecise(const QPainterPath &srcOutline, const QLineF gapLine, const QLineF &leftLine, const QLineF &rightLine, const QPolygonF &gapLinePolygon)
QList< KoShape * > m_selectedShapes
void handleMouseMove(const QPointF &mouseLocation, Qt::KeyboardModifiers modifiers) override
QRectF m_previousLineDirtyRect
KUndo2Command * createCommand() override
QList< KoShape * > m_allShapes
CutThroughShapeStrategy(KoToolBase *tool, KoSelection *selection, const QList< KoShape * > &allShapes, QPointF startPoint, const GutterWidthsConfig &width)
qreal gutterWidthInDocumentCoordinates(qreal lineAngle)
GutterWidthsConfig m_width
void paint(QPainter &painter, const KoViewConverter &converter) override
KoToolBase * tool() const