35 : m_d(new
Private(_converter, _snapGuide))
53 Qt::KeyboardModifiers modifiersForSnapping = modifiers;
56 modifiersForSnapping.setFlag(Qt::ShiftModifier,
false);
59 pos =
m_d->snapGuide->snap(point,
m_d->dragOffset, modifiersForSnapping);
67 const QPointF rawImagePoint =
m_d->converter->documentToImage(event->
point);
77 if (
m_d->snapGuide && rawImagePoint != snappedImagePoint) {
78 QPointF imageOffset = snappedImagePoint - rawImagePoint;
79 m_d->dragOffset =
m_d->converter->imageToDocument(imageOffset);
84 QPointF imagePos =
m_d->converter->documentToImage(pos);
85 m_d->lastImagePos = imagePos;
104 const bool shiftIsActive =
event->modifiers() & Qt::ShiftModifier;
105 const bool altIsActive =
event->modifiers() & Qt::AltModifier;
108 QPointF imagePos =
m_d->converter->documentToImage(pos);
109 m_d->lastImagePos = imagePos;
116 QPointF imagePos =
m_d->converter->documentToImage(event->
point);
117 m_d->lastImagePos = imagePos;
125 QPointF imagePos =
m_d->converter->documentToImage(pos);
126 m_d->lastImagePos = imagePos;
133 setTransformFunction(
m_d->lastImagePos,
m_d->anySamplerModifierActive && !
m_d->sampleFromNodeModifierActive,
m_d->changeSizeModifierActive,
m_d->sampleFromNodeModifierActive);
139 m_d->changeSizeModifierActive =
true;
141 m_d->anySamplerModifierActive =
true;
142 m_d->sampleFromNodeModifierActive =
true;
144 m_d->anySamplerModifierActive =
true;
145 m_d->sampleFromNodeModifierActive =
false;
148 setTransformFunction(
m_d->lastImagePos,
m_d->anySamplerModifierActive && !
m_d->sampleFromNodeModifierActive,
m_d->changeSizeModifierActive,
m_d->sampleFromNodeModifierActive);
154 m_d->changeSizeModifierActive =
false;
158 m_d->anySamplerModifierActive =
false;
159 m_d->sampleFromNodeModifierActive =
false;
167 if (!
m_d->changeSizeModifierActive && !
m_d->anySamplerModifierActive)
return false;
170 QPointF imagePos =
m_d->converter->documentToImage(pos);
171 m_d->lastImagePos = imagePos;
180 if (!
m_d->changeSizeModifierActive && !
m_d->anySamplerModifierActive)
return;
181 const bool altIsActive =
event->modifiers() & Qt::AltModifier;
184 QPointF imagePos =
m_d->converter->documentToImage(pos);
185 m_d->lastImagePos = imagePos;
194 if (!
m_d->changeSizeModifierActive && !
m_d->anySamplerModifierActive)
return false;
197 QPointF imagePos =
m_d->converter->documentToImage(pos);
198 m_d->lastImagePos = imagePos;
210 setTransformFunction(pt,
m_d->anySamplerModifierActive && !
m_d->sampleFromNodeModifierActive,
m_d->changeSizeModifierActive,
m_d->sampleFromNodeModifierActive);
virtual bool endPrimaryAction()=0
void deactivateAlternateAction(KisTool::AlternateAction action) override
virtual bool shiftModifierIsUsed() const
void continueAlternateAction(KoPointerEvent *event, KisTool::AlternateAction action) override
virtual void setTransformFunction(const QPointF &mousePos, bool perspectiveModifierActive, bool shiftModifierActive, bool altModifierActive)=0
virtual QPointF handleSnapPoint(const QPointF &imagePos)
bool beginPrimaryAction(KoPointerEvent *event) override
void activatePrimaryAction() override
void activateAlternateAction(KisTool::AlternateAction action) override
bool beginAlternateAction(KoPointerEvent *event, KisTool::AlternateAction action) override
~KisSimplifiedActionPolicyStrategy() override
bool endAlternateAction(KoPointerEvent *event, KisTool::AlternateAction action) override
void continuePrimaryAction(KoPointerEvent *event) override
const QScopedPointer< Private > m_d
void hoverActionCommon(KoPointerEvent *event) override
QPointF snapDocPoint(const QPointF &point, Qt::KeyboardModifiers modifiers) const
KisSimplifiedActionPolicyStrategy(const KisCoordinatesConverter *_converter, KoSnapGuide *snapGuide=0)
Qt::KeyboardModifiers modifiers() const
QPointF point
The point in document coordinates.
const KisCoordinatesConverter * converter
bool changeSizeModifierActive
Private(const KisCoordinatesConverter *_converter, KoSnapGuide *_snapGuide)
bool anySamplerModifierActive
bool sampleFromNodeModifierActive