mirror of
https://github.com/mapmapteam/mapmap.git
synced 2026-04-01 13:09:36 +02:00
99 lines
2.6 KiB
C++
99 lines
2.6 KiB
C++
|
|
#include "Commands.h"
|
|
|
|
AddShapesCommand::AddShapesCommand(MainWindow *mainWindow, uid mappingId, QUndoCommand *parent):
|
|
QUndoCommand(parent)
|
|
{
|
|
m_mainWindow = mainWindow;
|
|
m_mappingId = mappingId;
|
|
}
|
|
|
|
void AddShapesCommand::undo()
|
|
{
|
|
m_mappingPtr = m_mainWindow->getMappingManager().getMappingById(m_mappingId);
|
|
m_mainWindow->deleteMapping(m_mappingId);
|
|
}
|
|
|
|
void AddShapesCommand::redo()
|
|
{
|
|
if(m_mappingPtr != NULL)
|
|
{
|
|
uint currentId = m_mainWindow->getMappingManager().addMapping(m_mappingPtr);
|
|
m_mainWindow->addMappingItem(currentId);
|
|
}
|
|
}
|
|
|
|
|
|
MoveVertexCommand::MoveVertexCommand(MapperGLCanvas *mapperGLCanvas, int activeVertex, const QPointF &point, QUndoCommand *parent) :
|
|
QUndoCommand(parent)
|
|
{
|
|
m_mapperGLCanvas = mapperGLCanvas;
|
|
m_shape = m_mapperGLCanvas->getCurrentShape();
|
|
m_activeVertex = activeVertex;
|
|
vertexPosition = point;
|
|
}
|
|
|
|
void MoveVertexCommand::undo()
|
|
{
|
|
m_shape->setVertex(m_activeVertex, vertexPosition);
|
|
m_mapperGLCanvas->update();
|
|
emit m_mapperGLCanvas->shapeChanged(m_mapperGLCanvas->getCurrentShape());
|
|
}
|
|
|
|
void MoveVertexCommand::redo()
|
|
{
|
|
m_shape->setVertex(m_activeVertex, vertexPosition);
|
|
m_mapperGLCanvas->update();
|
|
emit m_mapperGLCanvas->shapeChanged(m_mapperGLCanvas->getCurrentShape());
|
|
}
|
|
|
|
|
|
MoveShapesCommand::MoveShapesCommand(MapperGLCanvas *mapperGLCanvas, QMouseEvent *event, const QPointF &point, QUndoCommand *parent) :
|
|
QUndoCommand(parent)
|
|
{
|
|
m_mapperGLCanvas = mapperGLCanvas;
|
|
m_shape = m_mapperGLCanvas->getCurrentShape();
|
|
m_event = event;
|
|
newPosition = point;
|
|
}
|
|
|
|
void MoveShapesCommand::undo()
|
|
{
|
|
m_shape->translate(oldPosition.x(), oldPosition.y());
|
|
m_mapperGLCanvas->update();
|
|
emit m_mapperGLCanvas->shapeChanged(m_mapperGLCanvas->getCurrentShape());
|
|
}
|
|
|
|
void MoveShapesCommand::redo()
|
|
{
|
|
m_shape->translate(m_event->x() - newPosition.x(), m_event->y() - newPosition.y());
|
|
m_mapperGLCanvas->update();
|
|
emit m_mapperGLCanvas->shapeChanged(m_mapperGLCanvas->getCurrentShape());
|
|
|
|
oldPosition.setX(newPosition.x() - m_event->x());
|
|
oldPosition.setY(newPosition.y() - m_event->y());
|
|
}
|
|
|
|
|
|
DeleteMappingCommand::DeleteMappingCommand(MainWindow *mainWindow, uid mappingId, QUndoCommand *parent) :
|
|
QUndoCommand(parent)
|
|
{
|
|
m_mainWindow = mainWindow;
|
|
m_mappingId = mappingId;
|
|
}
|
|
|
|
void DeleteMappingCommand::undo()
|
|
{
|
|
if(m_mappingPtr != NULL)
|
|
{
|
|
uint currentId = m_mainWindow->getMappingManager().addMapping(m_mappingPtr);
|
|
m_mainWindow->addMappingItem(currentId);
|
|
}
|
|
}
|
|
|
|
void DeleteMappingCommand::redo()
|
|
{
|
|
m_mappingPtr = m_mainWindow->getMappingManager().getMappingById(m_mappingId);
|
|
m_mainWindow->deleteMapping(m_mappingId);
|
|
}
|