Fix most undo/redo bugs

This commit is contained in:
xypwn
2020-03-29 18:25:08 +02:00
parent 9414c8c426
commit 0c5772ca52
9 changed files with 48 additions and 27 deletions

View File

@@ -169,13 +169,37 @@ void Scene::stopTrackingPart(Part* part)
// Remove part from tracker list
m_logic->m_parts.removeOne(part);
for(auto input : part->m_inputs)
// Add connector from tracker list
// Remove connector from tracker list
m_logic->m_inputConnectors.removeOne(input);
for(auto output : part->m_outputs)
// Add connector from tracker list
// Remove connector from tracker list
m_logic->m_outputConnectors.removeOne(output);
}
void Scene::startTrackingWire(Wire* wire)
{
// Show wire
wire->show();
// Add wire back into tracker list
m_logic->m_wires.append(wire);
// Add wire back into it's input connector's wire list
wire->m_connectorInput->m_wires.append(wire);
// Add wire back into it's input connector's wire list
wire->m_connectorOutput->m_wires.append(wire);
}
void Scene::stopTrackingWire(Wire* wire)
{
// Hide wire
wire->hide();
// Remove wire from tracker list
m_logic->m_wires.removeOne(wire);
// Remove wire from it's input connector's wire list
wire->m_connectorInput->m_wires.removeOne(wire);
// Remove wire from it's output connector's wire list
wire->m_connectorOutput->m_wires.removeOne(wire);
}
void Scene::connectorClicked(Connector *connector)
{
if(m_parentMainWindow->toolMode == MainWindow::Disconnect)