Krita Source Code Documentation
Loading...
Searching...
No Matches
ShapeMeshGradientEditStrategy.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2020 Sharaf Zaman <sharafzaz121@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
8
9#include <KoToolBase.h>
10#include <KoCanvasBase.h>
11#include <kundo2command.h>
12#include <kis_command_utils.h>
13
15 Private(const QPointF& start, KoShape *shape, KoFlake::FillVariant fillVariant)
16 : start(start)
17 , handles(fillVariant, shape)
18 {
19 }
20
21 // TODO: for snapping..
22 QPointF start;
25 QScopedPointer<KUndo2Command> intermediateCommand;
26};
27
29 KoFlake::FillVariant fillVariant,
30 KoShape *shape,
32 const QPointF &clicked)
34 , m_d(new Private(clicked, shape, fillVariant))
35{
36 m_d->startHandle = startHandle;
37}
38
42
43void ShapeMeshGradientEditStrategy::handleMouseMove(const QPointF &mouseLocation,
44 Qt::KeyboardModifiers modifiers)
45{
46 Q_UNUSED(modifiers);
47
48
50 m_d->handles.moveGradientHandle(m_d->startHandle, mouseLocation),
51 m_d->intermediateCommand);
52}
53
55{
56 return m_d->intermediateCommand ?
57 new KisCommandUtils::SkipFirstRedoWrapper(m_d->intermediateCommand.take()) :
58 nullptr;
59}
60
61void ShapeMeshGradientEditStrategy::finishInteraction(Qt::KeyboardModifiers modifiers)
62{
63 Q_UNUSED(modifiers)
64}
ShapeMeshGradientEditStrategy(KoToolBase *tool, KoFlake::FillVariant fillVariant, KoShape *shape, KoShapeMeshGradientHandles::Handle startHandle, const QPointF &clicked)
void finishInteraction(Qt::KeyboardModifiers modifiers) override
void handleMouseMove(const QPointF &mouseLocation, Qt::KeyboardModifiers modifiers) override
void redoAndMergeIntoAccumulatingCommand(KUndo2Command *cmd, QScopedPointer< KUndo2Command > &accumulatingCommand)
FillVariant
Definition KoFlake.h:28
Private(const QPointF &start, KoShape *shape, KoFlake::FillVariant fillVariant)