11#include <klocalizedstring.h>
22 QMap<KoPathPointData, QPointF >
points;
34 if (!
d->
points.contains(data)) {
45 Q_ASSERT(pointData.count() == offsets.count());
49 uint dataCount = pointData.count();
50 for (
uint i = 0; i < dataCount; ++i) {
52 if (!
d->
points.contains(data)) {
94 it.value() += other->
d->
points[it.key()];
104 std::copy(
paths.begin(),
paths.end(), std::back_inserter(shapes));
108 QMap<KoPathPointData, QPointF>::iterator it(
points.begin());
109 for (; it !=
points.end(); ++it) {
112 QPointF shapeOffset = path->
documentToShape(factor*it.value()) - path->documentToShape(QPointF());
114 matrix.translate(shapeOffset.x(), shapeOffset.y());
116 KoPathPoint *
p = path->pointByIndex(it.key().pointIndex);
void setText(const KUndo2MagicString &text)
Describe a KoPathPoint by a KoPathShape and its indices.
KoPathShape * pathShape
path shape the path point belongs too
QSet< KoPathShape * > paths
KoPathPointMoveCommandPrivate()
void applyOffset(qreal factor)
QMap< KoPathPointData, QPointF > points
The undo / redo command for path point moving.
void undo() override
revert the actions done in redo
bool mergeWith(const KUndo2Command *command) override
KoPathPointMoveCommandPrivate *const d
KoPathPointMoveCommand(const QList< KoPathPointData > &pointData, const QPointF &offset, KUndo2Command *parent=0)
~KoPathPointMoveCommand() override
void redo() override
redo the command
A KoPathPoint represents a point in a path.
void map(const QTransform &matrix)
apply matrix on the point
The position of a path point within a path shape.
static void bulkShapesUpdate(const UpdatesList &updates)
QPointF documentToShape(const QPointF &point) const
Transforms point from document coordinates to shape coordinates.
KUndo2MagicString kundo2_i18n(const char *text)
bool compareListsUnordered(const QList< T > &a, const QList< T > &b)