42 return !undoStack->empty();
48 return !redoStack->empty();
51 std::shared_ptr<std::vector<controller::OperationPtr>>
54 std::shared_ptr<std::vector<controller::OperationPtr>> toUndo;
58 toUndo = undoStack->back()->undo();
59 redoStack->push_back(undoStack->back());
60 undoStack->pop_back();
65 toUndo.reset(
new std::vector<controller::OperationPtr>());
71 std::shared_ptr<std::vector<controller::OperationPtr>>
74 std::shared_ptr<std::vector<controller::OperationPtr>> toRedo;
78 toRedo = redoStack->back()->redo();
79 undoStack->push_back(redoStack->back());
80 redoStack->pop_back();
84 toRedo.reset(
new std::vector<controller::OperationPtr>());
92 const std::shared_ptr<std::vector<controller::OperationPtr>>& operations)
95 undoStack->push_back(action);
99 redoStack.reset(
new std::vector<UndoActionPtr>());
106 for (
auto it = undoStack->begin(); it != undoStack->end(); it++)
108 for (
auto ito = it->get()->getOperations()->begin();
109 ito != it->get()->getOperations()->end();
112 if (ito->get()->getObjectId() == oldId)
114 ito->get()->setObjectId(
newId);
116 else if (ito->get()->getObjectId() ==
newId)
118 ito->get()->setObjectId(oldId);
123 for (
auto it = redoStack->begin(); it != redoStack->end(); it++)
125 for (
auto ito = it->get()->getOperations()->begin();
126 ito != it->get()->getOperations()->end();
129 if (ito->get()->getObjectId() == oldId)
131 ito->get()->setObjectId(
newId);
133 else if (ito->get()->getObjectId() ==
newId)
135 ito->get()->setObjectId(oldId);
144 redoStack.reset(
new std::vector<UndoActionPtr>());
145 undoStack.reset(
new std::vector<UndoActionPtr>());