Krita Source Code Documentation
Loading...
Searching...
No Matches
RotateImage Class Reference

#include <rotateimage.h>

+ Inheritance diagram for RotateImage:

Public Member Functions

 RotateImage (QObject *parent, const QVariantList &)
 
 ~RotateImage () override
 
- Public Member Functions inherited from KisActionPlugin
 KisActionPlugin (QObject *parent=0)
 
 ~KisActionPlugin () override
 

Private Slots

void slotMirrorImageHorizontal ()
 
void slotMirrorImageVertical ()
 
void slotRotateAllLayers ()
 
void slotRotateAllLayers180 ()
 
void slotRotateAllLayersCCW90 ()
 
void slotRotateAllLayersCW90 ()
 
void slotRotateImage ()
 
void slotRotateImage180 ()
 
void slotRotateImage270 ()
 
void slotRotateImage90 ()
 
void slotRotateLayer ()
 
void slotRotateLayer180 ()
 
void slotRotateLayerCCW90 ()
 
void slotRotateLayerCW90 ()
 

Private Member Functions

void rotateLayerCustomImpl (KisNodeSP rootNode)
 
void rotateLayerImpl (KisNodeSP rootNode, qreal radians)
 
void rotateLayersCustomImpl (KisNodeList nodes)
 
void rotateLayersImpl (KisNodeList nodes, qreal radians)
 

Additional Inherited Members

- Protected Member Functions inherited from KisActionPlugin
void addAction (const QString &name, KisAction *action)
 
void addOperation (KisOperation *operation)
 
void addUIFactory (KisOperationUIFactory *factory)
 
KisActioncreateAction (const QString &name)
 
QPointer< KisViewManagerviewManager () const
 

Detailed Description

Definition at line 17 of file rotateimage.h.

Constructor & Destructor Documentation

◆ RotateImage()

RotateImage::RotateImage ( QObject * parent,
const QVariantList &  )

Definition at line 30 of file rotateimage.cc.

31 : KisActionPlugin(parent)
32{
33
34 KisAction *action = createAction("rotateimage");
35 connect(action, SIGNAL(triggered()), this, SLOT(slotRotateImage()));
36
37 action = createAction("rotateImageCW90");
38 connect(action, SIGNAL(triggered()), this, SLOT(slotRotateImage90()));
39
40 action = createAction("rotateImage180");
41 connect(action, SIGNAL(triggered()), this, SLOT(slotRotateImage180()));
42
43 action = createAction("rotateImageCCW90");
44 connect(action, SIGNAL(triggered()), this, SLOT(slotRotateImage270()));
45
46 action = createAction("mirrorImageHorizontal");
47 connect(action, SIGNAL(triggered()), this, SLOT(slotMirrorImageHorizontal()));
48
49 action = createAction("mirrorImageVertical");
50 connect(action, SIGNAL(triggered()), this, SLOT(slotMirrorImageVertical()));
51
52 action = createAction("rotatelayer");
53 connect(action, SIGNAL(triggered()), this, SLOT(slotRotateLayer()));
54
55 action = createAction("rotateLayer180");
56 connect(action, SIGNAL(triggered()), this, SLOT(slotRotateLayer180()));
57
58 action = createAction("rotateLayerCW90");
59 connect(action, SIGNAL(triggered()), this, SLOT(slotRotateLayerCW90()));
60
61 action = createAction("rotateLayerCCW90");
62 connect(action, SIGNAL(triggered()), this, SLOT(slotRotateLayerCCW90()));
63
64 action = createAction("rotateAllLayers");
65 connect(action, SIGNAL(triggered()), this, SLOT(slotRotateAllLayers()));
66
67 action = createAction("rotateAllLayersCW90");
68 connect(action, SIGNAL(triggered()), this, SLOT(slotRotateAllLayersCW90()));
69
70 action = createAction("rotateAllLayersCCW90");
71 connect(action, SIGNAL(triggered()), this, SLOT(slotRotateAllLayersCCW90()));
72
73 action = createAction("rotateAllLayers180");
74 connect(action, SIGNAL(triggered()), this, SLOT(slotRotateAllLayers180()));
75}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
KisAction * createAction(const QString &name)
KisActionPlugin(QObject *parent=0)
void slotRotateAllLayers()
void slotRotateImage90()
void slotRotateLayer180()
void slotRotateLayer()
void slotRotateLayerCCW90()
void slotRotateAllLayersCW90()
void slotRotateAllLayersCCW90()
void slotRotateAllLayers180()
void slotRotateImage270()
void slotRotateImage()
void slotMirrorImageHorizontal()
void slotMirrorImageVertical()
void slotRotateImage180()
void slotRotateLayerCW90()

References connect().

◆ ~RotateImage()

RotateImage::~RotateImage ( )
override

Definition at line 77 of file rotateimage.cc.

78{
79}

Member Function Documentation

◆ rotateLayerCustomImpl()

void RotateImage::rotateLayerCustomImpl ( KisNodeSP rootNode)
private

Definition at line 134 of file rotateimage.cc.

135{
137}
void rotateLayersCustomImpl(KisNodeList nodes)

References rotateLayersCustomImpl().

◆ rotateLayerImpl()

void RotateImage::rotateLayerImpl ( KisNodeSP rootNode,
qreal radians )
private

Definition at line 157 of file rotateimage.cc.

158{
159 rotateLayersImpl(KisNodeList{rootNode}, radians);
160}
void rotateLayersImpl(KisNodeList nodes, qreal radians)

References rotateLayersImpl().

◆ rotateLayersCustomImpl()

void RotateImage::rotateLayersCustomImpl ( KisNodeList nodes)
private

Definition at line 138 of file rotateimage.cc.

139{
140 KisImageWSP image = viewManager()->image();
141 if (!image) return;
142
143 if (!viewManager()->blockUntilOperationsFinished(image)) return;
144
145 DlgRotateImage * dlgRotateImage = new DlgRotateImage(viewManager()->mainWindowAsQWidget(), "RotateLayer");
146 Q_CHECK_PTR(dlgRotateImage);
147
148 dlgRotateImage->setCaption(i18np("Rotate Layer", "Rotate %1 Layers", nodes.size()));
149
150 if (dlgRotateImage->exec() == QDialog::Accepted) {
151 double angle = dlgRotateImage->angle() * M_PI / 180;
152 image->rotateNodes(nodes, angle, viewManager()->selection());
153 }
154 delete dlgRotateImage;
155}
QPointer< KisViewManager > viewManager() const
void rotateNodes(KisNodeList nodes, double radians, KisSelectionSP selection)
virtual void setCaption(const QString &caption)
Definition KoDialog.cpp:498
#define M_PI
Definition kis_global.h:111

References DlgRotateImage::angle(), M_PI, KisImage::rotateNodes(), KoDialog::setCaption(), and KisActionPlugin::viewManager().

◆ rotateLayersImpl()

void RotateImage::rotateLayersImpl ( KisNodeList nodes,
qreal radians )
private

Definition at line 161 of file rotateimage.cc.

162{
163 KisImageWSP image = viewManager()->image();
164 if (!image) return;
165
166 if (!viewManager()->blockUntilOperationsFinished(image)) return;
167
168 image->rotateNodes(nodes, radians, viewManager()->selection());
169}

References KisImage::rotateNodes(), and KisActionPlugin::viewManager().

◆ slotMirrorImageHorizontal

void RotateImage::slotMirrorImageHorizontal ( )
privateslot

Definition at line 124 of file rotateimage.cc.

125{
126 KisImageWSP image = viewManager()->image();
127 if (!image) return;
128 viewManager()->nodeManager()->mirrorNode(image->rootLayer(),
129 kundo2_i18n("Mirror Image Horizontally"),
130 Qt::Horizontal, 0);
131}
KisGroupLayerSP rootLayer() const
KUndo2MagicString kundo2_i18n(const char *text)

References kundo2_i18n(), KisImage::rootLayer(), and KisActionPlugin::viewManager().

◆ slotMirrorImageVertical

void RotateImage::slotMirrorImageVertical ( )
privateslot

Definition at line 115 of file rotateimage.cc.

116{
117 KisImageWSP image = viewManager()->image();
118 if (!image) return;
119 viewManager()->nodeManager()->mirrorNode(image->rootLayer(),
120 kundo2_i18n("Mirror Image Vertically"),
121 Qt::Vertical, 0);
122}

References kundo2_i18n(), KisImage::rootLayer(), and KisActionPlugin::viewManager().

◆ slotRotateAllLayers

void RotateImage::slotRotateAllLayers ( )
privateslot

Definition at line 176 of file rotateimage.cc.

177{
178 KisImageWSP image = viewManager()->image();
179 if (!image) return;
180
181 rotateLayerCustomImpl(image->root());
182}
void rotateLayerCustomImpl(KisNodeSP rootNode)

References KisNodeFacade::root, rotateLayerCustomImpl(), and KisActionPlugin::viewManager().

◆ slotRotateAllLayers180

void RotateImage::slotRotateAllLayers180 ( )
privateslot

Definition at line 215 of file rotateimage.cc.

216{
217 KisImageWSP image = viewManager()->image();
218 if (!image) return;
219
220 rotateLayerImpl(image->root(), M_PI);
221}
void rotateLayerImpl(KisNodeSP rootNode, qreal radians)

References M_PI, KisNodeFacade::root, rotateLayerImpl(), and KisActionPlugin::viewManager().

◆ slotRotateAllLayersCCW90

void RotateImage::slotRotateAllLayersCCW90 ( )
privateslot

Definition at line 207 of file rotateimage.cc.

208{
209 KisImageWSP image = viewManager()->image();
210 if (!image) return;
211
212 rotateLayerImpl(image->root(), -M_PI / 2);
213}

References M_PI, KisNodeFacade::root, rotateLayerImpl(), and KisActionPlugin::viewManager().

◆ slotRotateAllLayersCW90

void RotateImage::slotRotateAllLayersCW90 ( )
privateslot

Definition at line 199 of file rotateimage.cc.

200{
201 KisImageWSP image = viewManager()->image();
202 if (!image) return;
203
204 rotateLayerImpl(image->root(), M_PI / 2);
205}

References M_PI, KisNodeFacade::root, rotateLayerImpl(), and KisActionPlugin::viewManager().

◆ slotRotateImage

void RotateImage::slotRotateImage ( )
privateslot

Definition at line 81 of file rotateimage.cc.

82{
83 KisImageWSP image = viewManager()->image();
84 if (!image) return;
85
86 if (!viewManager()->blockUntilOperationsFinished(image)) return;
87
88 DlgRotateImage * dlgRotateImage = new DlgRotateImage(viewManager()->mainWindowAsQWidget(), "RotateImage");
89 Q_CHECK_PTR(dlgRotateImage);
90
91 dlgRotateImage->setCaption(i18n("Rotate Image"));
92
93 if (dlgRotateImage->exec() == QDialog::Accepted) {
94 double angle = dlgRotateImage->angle() * M_PI / 180;
95 viewManager()->imageManager()->rotateCurrentImage(angle);
96 }
97 delete dlgRotateImage;
98}

References DlgRotateImage::angle(), M_PI, KoDialog::setCaption(), and KisActionPlugin::viewManager().

◆ slotRotateImage180

void RotateImage::slotRotateImage180 ( )
privateslot

Definition at line 105 of file rotateimage.cc.

106{
107 viewManager()->imageManager()->rotateCurrentImage(M_PI);
108}

References M_PI, and KisActionPlugin::viewManager().

◆ slotRotateImage270

void RotateImage::slotRotateImage270 ( )
privateslot

Definition at line 110 of file rotateimage.cc.

111{
112 viewManager()->imageManager()->rotateCurrentImage(- M_PI / 2 + M_PI*2);
113}

References M_PI, and KisActionPlugin::viewManager().

◆ slotRotateImage90

void RotateImage::slotRotateImage90 ( )
privateslot

Definition at line 100 of file rotateimage.cc.

101{
102 viewManager()->imageManager()->rotateCurrentImage(M_PI / 2);
103}

References M_PI, and KisActionPlugin::viewManager().

◆ slotRotateLayer

void RotateImage::slotRotateLayer ( )
privateslot

Definition at line 171 of file rotateimage.cc.

172{
173 rotateLayersCustomImpl(viewManager()->nodeManager()->selectedNodes());
174}

References rotateLayersCustomImpl(), and KisActionPlugin::viewManager().

◆ slotRotateLayer180

void RotateImage::slotRotateLayer180 ( )
privateslot

Definition at line 194 of file rotateimage.cc.

195{
196 rotateLayersImpl(viewManager()->nodeManager()->selectedNodes(), M_PI);
197}

References M_PI, rotateLayersImpl(), and KisActionPlugin::viewManager().

◆ slotRotateLayerCCW90

void RotateImage::slotRotateLayerCCW90 ( )
privateslot

Definition at line 189 of file rotateimage.cc.

190{
191 rotateLayersImpl(viewManager()->nodeManager()->selectedNodes(), -M_PI / 2);
192}

References M_PI, rotateLayersImpl(), and KisActionPlugin::viewManager().

◆ slotRotateLayerCW90

void RotateImage::slotRotateLayerCW90 ( )
privateslot

Definition at line 184 of file rotateimage.cc.

185{
186 rotateLayersImpl(viewManager()->nodeManager()->selectedNodes(), M_PI / 2);
187}

References M_PI, rotateLayersImpl(), and KisActionPlugin::viewManager().


The documentation for this class was generated from the following files: