Вопросы к Поиску с Алисой
Система отмены действий в современных редакторах кода обычно работает на основе стеков, в которых хранится последовательность действий. forum.sources.ru
В первый стек (Undo) записывается последовательность действий. forum.sources.ru Во второй стек (Redo) — данные, для которых была выполнена отмена (Undo). forum.sources.ru При операции Redo, наоборот, данные передаются из стека Redo в стек Undo. forum.sources.ru
Когда пользователь хочет изменить некое свойство модели, интерфейс создаёт соответствующую команду и выполняет её у менеджера UndoRedoManager. www.cyberforum.ru При выполнении команды менеджер кладёт её в UndoStack, при этом RedoStack очищается. www.cyberforum.ru
Чтобы отменить последнее действие, UndoRedoManager изымает команду из UndoStack, отменяет её действие и кладёт её в RedoStack. www.cyberforum.ru
Если необходимо повторно выполнить отменённое действие (Redo), UndoRedoManager изымает команду из RedoStack, выполняет её и кладёт в UndoStack. www.cyberforum.ru
Некоторые редакторы, например Visual Studio, поддерживают отмену автоматически, предоставляя эту функцию средой. learn.microsoft.com