libs/flake
KoPathControlPointMoveStrategy.cppGo to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "KoPathControlPointMoveStrategy.h"
00022 #include "KoCanvasBase.h"
00023 #include "KoSnapGuide.h"
00024
00025 #include "KoPathTool.h"
00026 #include "commands/KoPathControlPointMoveCommand.h"
00027
00028 KoPathControlPointMoveStrategy::KoPathControlPointMoveStrategy(KoPathTool *tool, KoCanvasBase *canvas, const KoPathPointData &pointData, KoPathPoint::KoPointType type, const QPointF &pos)
00029 : KoInteractionStrategy(tool, canvas)
00030 , m_lastPosition(pos)
00031 , m_move(0, 0)
00032 , m_tool(tool)
00033 , m_pointData(pointData)
00034 , m_pointType(type)
00035 {
00036 }
00037
00038 KoPathControlPointMoveStrategy::~KoPathControlPointMoveStrategy()
00039 {
00040 }
00041
00042 void KoPathControlPointMoveStrategy::handleMouseMove(const QPointF &mouseLocation, Qt::KeyboardModifiers modifiers)
00043 {
00044 QPointF docPoint = m_tool->canvas()->snapGuide()->snap(mouseLocation, modifiers);
00045 QPointF move = docPoint - m_lastPosition;
00046
00047
00048 m_lastPosition = docPoint;
00049
00050 m_move += move;
00051
00052 KoPathControlPointMoveCommand cmd(m_pointData, move, m_pointType);
00053 cmd.redo();
00054 }
00055
00056 void KoPathControlPointMoveStrategy::finishInteraction(Qt::KeyboardModifiers modifiers)
00057 {
00058 Q_UNUSED(modifiers);
00059 }
00060
00061 QUndoCommand* KoPathControlPointMoveStrategy::createCommand()
00062 {
00063 QUndoCommand *cmd = 0;
00064 if (!m_move.isNull()) {
00065 cmd = new KoPathControlPointMoveCommand(m_pointData, m_move, m_pointType);
00066 cmd->undo();
00067 }
00068 return cmd;
00069 }
|