/* * All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or * its licensors. * * For complete copyright and license terms please see the LICENSE at the root of this * distribution (the "License"). All use of this software is governed by the License, * or, if provided, by the license below or the license accompanying this file. Do not * remove or modify any license notices. This file is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * */ #include "AzToolsFramework_precompiled.h" #include "SelectionCommand.h" #include namespace AzToolsFramework { SelectionCommand::SelectionCommand(const AZStd::vector& proposedSelection, const AZStd::string& friendlyName) : UndoSystem::URSequencePoint(friendlyName) { EBUS_EVENT_RESULT(m_previousSelectionList, AzToolsFramework::ToolsApplicationRequests::Bus, GetSelectedEntities); m_proposedSelectionList = proposedSelection; } const AZStd::vector& SelectionCommand::GetInitialSelectionList() const { return m_previousSelectionList; } void SelectionCommand::UpdateSelection(const EntityIdList& proposedSelection) { if (m_proposedSelectionList != proposedSelection) { m_proposedSelectionList = proposedSelection; } } void SelectionCommand::Post() { UndoSystem::UndoStack* undoStack = NULL; EBUS_EVENT_RESULT(undoStack, AzToolsFramework::ToolsApplicationRequests::Bus, GetUndoStack); if (undoStack) { undoStack->Post(this); } } void SelectionCommand::Undo() { EBUS_EVENT(AzToolsFramework::ToolsApplicationRequests::Bus, SetSelectedEntities, m_previousSelectionList); } void SelectionCommand::Redo() { EBUS_EVENT(AzToolsFramework::ToolsApplicationRequests::Bus, SetSelectedEntities, m_proposedSelectionList); } }