Fix most undo/redo bugs
This commit is contained in:
@@ -3,6 +3,8 @@
|
||||
#include "../Scene.h"
|
||||
#include "../Logic.h"
|
||||
#include "../Wire.h"
|
||||
#include "../Connector.h"
|
||||
#include "../Part.h"
|
||||
|
||||
AddWire::AddWire(Scene* scene, Connector* connectorInput, Connector* connectorOutput)
|
||||
:m_scene(scene), m_connectorInput(connectorInput), m_connectorOutput(connectorOutput)
|
||||
@@ -12,15 +14,20 @@ AddWire::AddWire(Scene* scene, Connector* connectorInput, Connector* connectorOu
|
||||
|
||||
AddWire::~AddWire()
|
||||
{
|
||||
m_scene->m_logic->deleteWire(m_wire);
|
||||
}
|
||||
|
||||
|
||||
void AddWire::redo()
|
||||
{
|
||||
m_wire = m_scene->m_logic->createWire(m_connectorInput, m_connectorOutput);
|
||||
if(m_wire == nullptr)
|
||||
m_wire = m_scene->m_logic->createWire(m_connectorInput, m_connectorOutput);
|
||||
else
|
||||
{
|
||||
m_scene->startTrackingWire(m_wire);
|
||||
}
|
||||
}
|
||||
|
||||
void AddWire::undo()
|
||||
{
|
||||
m_scene->m_logic->deleteWire(m_wire);
|
||||
m_scene->stopTrackingWire(m_wire);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user