Krita Source Code Documentation
Loading...
Searching...
No Matches
KoParameterChangeStrategy.cpp
Go to the documentation of this file.
1
/* This file is part of the KDE project
2
SPDX-FileCopyrightText: 2006 Thorsten Zachmann <zachmann@kde.org>
3
SPDX-FileCopyrightText: 2007 Thomas Zander <zander@kde.org>
4
5
SPDX-License-Identifier: LGPL-2.0-or-later
6
*/
7
#include "
KoParameterChangeStrategy.h
"
8
#include "
KoParameterChangeStrategy_p.h
"
9
#include "
KoParameterShape.h
"
10
#include "
commands/KoParameterHandleMoveCommand.h
"
11
12
#include <
KoCanvasBase.h
>
13
#include "
KoSnapGuide.h
"
14
15
16
KoParameterChangeStrategy::KoParameterChangeStrategy
(
KoToolBase
*tool,
KoParameterShape
*parameterShape,
int
handleId)
17
:
KoInteractionStrategy
(*(new
KoParameterChangeStrategyPrivate
(tool, parameterShape, handleId)))
18
{
19
Q_D(
KoParameterChangeStrategy
);
20
d->tool->canvas()->snapGuide()->setIgnoredShapes({parameterShape});
21
}
22
23
KoParameterChangeStrategy::KoParameterChangeStrategy
(
KoParameterChangeStrategyPrivate
& dd)
24
:
KoInteractionStrategy
(dd)
25
{
26
27
}
28
29
KoParameterChangeStrategy::~KoParameterChangeStrategy
()
30
{
31
}
32
33
void
KoParameterChangeStrategy::handleMouseMove
(
const
QPointF &mouseLocation, Qt::KeyboardModifiers modifiers)
34
{
35
Q_D(
KoParameterChangeStrategy
);
36
37
const
QPointF snappedPosition = d->tool->canvas()->snapGuide()->snap(mouseLocation, modifiers);
38
39
d->parameterShape->moveHandle(d->handleId, snappedPosition, modifiers);
40
d->lastModifierUsed = modifiers;
41
d->releasePoint = snappedPosition;
42
}
43
44
KUndo2Command
*
KoParameterChangeStrategy::createCommand
()
45
{
46
Q_D(
KoParameterChangeStrategy
);
47
48
d->tool->canvas()->snapGuide()->reset();
49
50
KoParameterHandleMoveCommand
*cmd = 0;
51
// check if handle position changed
52
if
(d->startPoint != QPointF(0, 0) && d->startPoint != d->releasePoint) {
53
cmd =
new
KoParameterHandleMoveCommand
(d->parameterShape, d->handleId, d->startPoint, d->releasePoint, d->lastModifierUsed);
54
}
55
return
cmd;
56
}
57
58
void
KoParameterChangeStrategy::finishInteraction
(Qt::KeyboardModifiers
/*modifiers*/
)
59
{
60
}
61
62
KoCanvasBase.h
KoParameterChangeStrategy.h
KoParameterChangeStrategy_p.h
KoParameterHandleMoveCommand.h
KoParameterShape.h
KoSnapGuide.h
KUndo2Command
Definition
kundo2stack.h:87
KoInteractionStrategy
Definition
KoInteractionStrategy.h:38
KoParameterChangeStrategyPrivate
Definition
KoParameterChangeStrategy_p.h:15
KoParameterChangeStrategy
Strategy for changing control points of parametric shapes.
Definition
KoParameterChangeStrategy.h:19
KoParameterChangeStrategy::createCommand
KUndo2Command * createCommand() override
Definition
KoParameterChangeStrategy.cpp:44
KoParameterChangeStrategy::~KoParameterChangeStrategy
~KoParameterChangeStrategy() override
Definition
KoParameterChangeStrategy.cpp:29
KoParameterChangeStrategy::finishInteraction
void finishInteraction(Qt::KeyboardModifiers modifiers) override
Definition
KoParameterChangeStrategy.cpp:58
KoParameterChangeStrategy::KoParameterChangeStrategy
KoParameterChangeStrategy(KoToolBase *tool, KoParameterShape *parameterShape, int handleId)
Definition
KoParameterChangeStrategy.cpp:16
KoParameterChangeStrategy::handleMouseMove
void handleMouseMove(const QPointF &mouseLocation, Qt::KeyboardModifiers modifiers) override
Definition
KoParameterChangeStrategy.cpp:33
KoParameterHandleMoveCommand
The undo / redo command for changing a parameter.
Definition
KoParameterHandleMoveCommand.h:20
KoParameterShape
Definition
KoParameterShape.h:35
KoToolBase
Definition
KoToolBase.h:57
libs
flake
tools
KoParameterChangeStrategy.cpp
Generated at
2025-11-04 02:30:02+01:00
from
Krita
branch
master
, commit
c9dde2e79561a8aea4a7e8d9ac99c98a7bac9e52