20 : pointData1(_pointData1),
21 pointData2(_pointData2),
22 controller(_controller),
39 m_d(new
Private(pointData1, pointData2, controller, selection))
55 if (!
m_d->mergeCommand && !
m_d->combineCommand)
57 if (
m_d->pointData1.pathShape !=
m_d->pointData2.pathShape) {
74 if (
m_d->mergeCommand)
76 m_d->mergeCommand->redo();
77 mergedShape =
m_d->pointData1.pathShape;
80 if (
m_d->combineCommand)
82 m_d->combineCommand->redo();
83 mergedShape =
m_d->combineCommand->combinedPath();
87 m_d->selection->select(mergedShape);
95 return m_d->combineCommand ?
m_d->combineCommand->combinedPath() : 0;
102 if (
m_d->mergeCommand) {
103 m_d->mergeCommand->undo();
106 if (
m_d->combineCommand) {
107 m_d->combineCommand->undo();
110 if (
m_d->selection) {
111 m_d->selection->select(
m_d->pointData1.pathShape);
112 if (
m_d->pointData1.pathShape !=
m_d->pointData2.pathShape) {
113 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)