20 : pointData1(_pointData1),
21 pointData2(_pointData2),
22 controller(_controller),
39 m_d(new
Private(pointData1, pointData2, controller, selection))
56 if (
m_d->pointData1.pathShape !=
m_d->pointData2.pathShape) {
61 m_d->combineCommand->redo();
67 m_d->mergeCommand->redo();
69 mergedShape =
m_d->combineCommand->combinedPath();
73 m_d->mergeCommand->redo();
75 mergedShape =
m_d->pointData1.pathShape;
79 m_d->selection->select(mergedShape);
87 return m_d->combineCommand ?
m_d->combineCommand->combinedPath() : 0;
94 if (
m_d->mergeCommand) {
95 m_d->mergeCommand->undo();
96 m_d->mergeCommand.reset();
99 if (
m_d->combineCommand) {
100 m_d->combineCommand->undo();
101 m_d->combineCommand.reset();
104 if (
m_d->selection) {
105 m_d->selection->select(
m_d->pointData1.pathShape);
106 if (
m_d->pointData1.pathShape !=
m_d->pointData2.pathShape) {
107 m_d->selection->select(
m_d->pointData2.pathShape);
The undo / redo command for combining two or more paths into one.
Describe a KoPathPoint by a KoPathShape and its indices.
The undo / redo command for merging two subpath end points.
The position of a path point within a path shape.
#define KIS_SAFE_ASSERT_RECOVER_RETURN(cond)
KUndo2MagicString kundo2_i18n(const char *text)
KoShapeControllerBase * controller
const QScopedPointer< Private > m_d
virtual KUndo2Command * createMergeCommand(const KoPathPointData &pointData1, const KoPathPointData &pointData2)
KoPathPointData pointData2
~KoMultiPathPointMergeCommand() override
QScopedPointer< KoPathCombineCommand > combineCommand
KoPathPointData pointData1
KoMultiPathPointMergeCommand(const KoPathPointData &pointData1, const KoPathPointData &pointData2, KoShapeControllerBase *controller, KoSelection *selection, KUndo2Command *parent=0)
KoPathShape * testingCombinedPath() const
QScopedPointer< KUndo2Command > mergeCommand
Private(const KoPathPointData &_pointData1, const KoPathPointData &_pointData2, KoShapeControllerBase *_controller, KoSelection *_selection)