libs/flake
KoShapeShearCommand.cppGo to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "KoShapeShearCommand.h"
00022 #include "KoShape.h"
00023
00024 #include <klocale.h>
00025
00026 KoShapeShearCommand::KoShapeShearCommand(const QList<KoShape*> &shapes, QList<qreal> &previousShearXs, QList<qreal> &previousShearYs, QList<qreal> &newShearXs, QList<qreal> &newShearYs, QUndoCommand *parent)
00027 : QUndoCommand(parent)
00028 , m_shapes(shapes)
00029 , m_previousShearXs(previousShearXs)
00030 , m_previousShearYs(previousShearYs)
00031 , m_newShearXs(newShearXs)
00032 , m_newShearYs(newShearYs)
00033 {
00034 Q_ASSERT(m_shapes.count() == m_previousShearXs.count());
00035 Q_ASSERT(m_shapes.count() == m_previousShearYs.count());
00036 Q_ASSERT(m_shapes.count() == m_newShearXs.count());
00037 Q_ASSERT(m_shapes.count() == m_newShearYs.count());
00038
00039 setText(i18n("Shear shapes"));
00040 }
00041
00042 void KoShapeShearCommand::redo()
00043 {
00044 QUndoCommand::redo();
00045 for (int i = 0; i < m_shapes.count(); i++) {
00046 m_shapes.at(i)->update();
00047 m_shapes.at(i)->setShear(m_newShearXs.at(i), m_newShearYs.at(i));
00048 m_shapes.at(i)->update();
00049 }
00050 }
00051
00052 void KoShapeShearCommand::undo()
00053 {
00054 QUndoCommand::undo();
00055 for (int i = 0; i < m_shapes.count(); i++) {
00056 m_shapes.at(i)->update();
00057 m_shapes.at(i)->setShear(m_previousShearXs.at(i), m_previousShearYs.at(i));
00058 m_shapes.at(i)->update();
00059 }
00060 }
|