Krita Source Code Documentation
Loading...
Searching...
No Matches
KoShapeShearCommand.cpp
Go to the documentation of this file.
1
/* This file is part of the KDE project
2
* SPDX-FileCopyrightText: 2006 Thomas Zander <zander@kde.org>
3
* SPDX-FileCopyrightText: 2006 Jan Hambrecht <jaham@gmx.net>
4
*
5
* SPDX-License-Identifier: LGPL-2.0-or-later
6
*/
7
8
#include "
KoShapeShearCommand.h
"
9
#include "
KoShape.h
"
10
11
#include <klocalizedstring.h>
12
13
class
KoShapeShearCommandPrivate
14
{
15
public
:
16
QList<KoShape*>
shapes
;
17
QList<qreal>
previousShearXs
;
18
QList<qreal>
previousShearYs
;
19
QList<qreal>
newShearXs
;
20
QList<qreal>
newShearYs
;
21
};
22
23
KoShapeShearCommand::KoShapeShearCommand
(
const
QList<KoShape*>
&shapes,
const
QList<qreal>
&previousShearXs,
const
QList<qreal>
&previousShearYs,
const
QList<qreal>
&newShearXs,
const
QList<qreal>
&newShearYs,
KUndo2Command
*parent)
24
:
KUndo2Command
(parent),
25
d(new
KoShapeShearCommandPrivate
())
26
{
27
d
->
shapes
= shapes;
28
d
->
previousShearXs
= previousShearXs;
29
d
->
previousShearYs
= previousShearYs;
30
d
->
newShearXs
= newShearXs;
31
d
->
newShearYs
= newShearYs;
32
33
Q_ASSERT(
d
->
shapes
.count() ==
d
->
previousShearXs
.count());
34
Q_ASSERT(
d
->
shapes
.count() ==
d
->
previousShearYs
.count());
35
Q_ASSERT(
d
->
shapes
.count() ==
d
->
newShearXs
.count());
36
Q_ASSERT(
d
->
shapes
.count() ==
d
->
newShearYs
.count());
37
38
setText
(
kundo2_i18n
(
"Shear shapes"
));
39
}
40
41
KoShapeShearCommand::~KoShapeShearCommand
()
42
{
43
delete
d
;
44
}
45
46
void
KoShapeShearCommand::redo
()
47
{
48
KUndo2Command::redo
();
49
for
(
int
i = 0; i <
d
->
shapes
.count(); i++) {
50
d
->
shapes
.at(i)->update();
51
d
->
shapes
.at(i)->shear(
d
->
newShearXs
.at(i),
d
->
newShearYs
.at(i));
52
d
->
shapes
.at(i)->update();
53
}
54
}
55
56
void
KoShapeShearCommand::undo
()
57
{
58
KUndo2Command::undo
();
59
for
(
int
i = 0; i <
d
->
shapes
.count(); i++) {
60
d
->
shapes
.at(i)->update();
61
d
->
shapes
.at(i)->shear(
d
->
previousShearXs
.at(i),
d
->
previousShearYs
.at(i));
62
d
->
shapes
.at(i)->update();
63
}
64
}
KoShapeShearCommand.h
KoShape.h
KUndo2Command
Definition
kundo2stack.h:87
KUndo2Command::undo
virtual void undo()
Definition
kundo2stack.cpp:240
KUndo2Command::setText
void setText(const KUndo2MagicString &text)
Definition
kundo2stack.cpp:288
KUndo2Command::redo
virtual void redo()
Definition
kundo2stack.cpp:222
KoShapeShearCommandPrivate
Definition
KoShapeShearCommand.cpp:14
KoShapeShearCommandPrivate::newShearXs
QList< qreal > newShearXs
Definition
KoShapeShearCommand.cpp:19
KoShapeShearCommandPrivate::shapes
QList< KoShape * > shapes
Definition
KoShapeShearCommand.cpp:16
KoShapeShearCommandPrivate::newShearYs
QList< qreal > newShearYs
Definition
KoShapeShearCommand.cpp:20
KoShapeShearCommandPrivate::previousShearXs
QList< qreal > previousShearXs
Definition
KoShapeShearCommand.cpp:17
KoShapeShearCommandPrivate::previousShearYs
QList< qreal > previousShearYs
Definition
KoShapeShearCommand.cpp:18
KoShapeShearCommand::KoShapeShearCommand
KoShapeShearCommand(const QList< KoShape * > &shapes, const QList< qreal > &previousShearXs, const QList< qreal > &previousShearYs, const QList< qreal > &newShearXs, const QList< qreal > &newShearYs, KUndo2Command *parent=0)
Definition
KoShapeShearCommand.cpp:23
KoShapeShearCommand::undo
void undo() override
revert the actions done in redo
Definition
KoShapeShearCommand.cpp:56
KoShapeShearCommand::d
KoShapeShearCommandPrivate *const d
Definition
KoShapeShearCommand.h:44
KoShapeShearCommand::~KoShapeShearCommand
~KoShapeShearCommand() override
Definition
KoShapeShearCommand.cpp:41
KoShapeShearCommand::redo
void redo() override
redo the command
Definition
KoShapeShearCommand.cpp:46
QList
Definition
KisQStringListFwd.h:16
kundo2_i18n
KUndo2MagicString kundo2_i18n(const char *text)
Definition
kundo2magicstring.h:180
libs
flake
commands
KoShapeShearCommand.cpp
Generated at
2025-11-04 02:30:02+01:00
from
Krita
branch
master
, commit
c9dde2e79561a8aea4a7e8d9ac99c98a7bac9e52