Пример #1
0
        public void UndoInternal(bool IncludeSelectionOperation = false)
        {
            if (undoStack.Count == 0)
            {
                return;
            }
            PostFilter undoFilter;

            do
            {
                undoFilter = undoStack.Pop();
                redoStack.Push(undoFilter);
                undoFilter.Undo();
            } while ((!IncludeSelectionOperation && (undoFilter is SelectionOperation)) && (undoStack.Count != 0));

            if (!(undoFilter is EditingActivatedOperation || undoFilter is SelectionOperation || undoFilter is SetColorOperation))
            {
                ClearCanvas(false);
                RecreateCanvasViewModel();
                UpdateUIElements();
                DisplaySettingsTool.SliceImage();
                if (undoStack.Count == 0)
                {
                    UnsavedChanges = false;
                }
            }
            else
            {
                UpdateUIElements();
            }
            SelectedTool.OnUndo();
        }