36 : m_d(new
Private(_converter, _snapGuide))
54 Qt::KeyboardModifiers modifiersForSnapping = modifiers;
57 modifiersForSnapping.setFlag(Qt::ShiftModifier,
false);
60 pos =
m_d->snapGuide->snap(point,
m_d->dragOffset, modifiersForSnapping);
68 const QPointF rawImagePoint =
m_d->converter->documentToImage(event->
point);
78 if (
m_d->snapGuide && rawImagePoint != snappedImagePoint) {
79 QPointF imageOffset = snappedImagePoint - rawImagePoint;
80 m_d->dragOffset =
m_d->converter->imageToDocument(imageOffset);
85 QPointF imagePos =
m_d->converter->documentToImage(pos);
86 m_d->lastImagePos = imagePos;
88 m_d->modifiersAtStart =
event->modifiers();
107 const bool shiftIsActive =
event->modifiers() & Qt::ShiftModifier;
108 const bool altIsActive =
event->modifiers() & Qt::AltModifier;
111 QPointF imagePos =
m_d->converter->documentToImage(pos);
112 m_d->lastImagePos = imagePos;
119 Q_UNUSED(hasOriginalModifiersSet);
125 QPointF imagePos =
m_d->converter->documentToImage(event->
point);
126 m_d->lastImagePos = imagePos;
134 QPointF imagePos =
m_d->converter->documentToImage(pos);
135 m_d->lastImagePos = imagePos;
142 setTransformFunction(
m_d->lastImagePos,
m_d->anySamplerModifierActive && !
m_d->sampleFromNodeModifierActive,
m_d->changeSizeModifierActive,
m_d->sampleFromNodeModifierActive);
148 m_d->changeSizeModifierActive =
true;
150 m_d->anySamplerModifierActive =
true;
151 m_d->sampleFromNodeModifierActive =
true;
153 m_d->anySamplerModifierActive =
true;
154 m_d->sampleFromNodeModifierActive =
false;
157 setTransformFunction(
m_d->lastImagePos,
m_d->anySamplerModifierActive && !
m_d->sampleFromNodeModifierActive,
m_d->changeSizeModifierActive,
m_d->sampleFromNodeModifierActive);
163 m_d->changeSizeModifierActive =
false;
167 m_d->anySamplerModifierActive =
false;
168 m_d->sampleFromNodeModifierActive =
false;
176 if (!
m_d->changeSizeModifierActive && !
m_d->anySamplerModifierActive)
return false;
179 QPointF imagePos =
m_d->converter->documentToImage(pos);
180 m_d->lastImagePos = imagePos;
182 m_d->modifiersAtStart =
event->modifiers();
191 if (!
m_d->changeSizeModifierActive && !
m_d->anySamplerModifierActive)
return;
192 const bool altIsActive =
event->modifiers() & Qt::AltModifier;
195 QPointF imagePos =
m_d->converter->documentToImage(pos);
196 m_d->lastImagePos = imagePos;
205 if (!
m_d->changeSizeModifierActive && !
m_d->anySamplerModifierActive)
return false;
208 QPointF imagePos =
m_d->converter->documentToImage(pos);
209 m_d->lastImagePos = imagePos;
221 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
Qt::KeyboardModifiers modifiersAtStart
bool sampleFromNodeModifierActive