#pragma once /* * Copyright (c) Contributors to the Open 3D Engine Project. * For complete copyright and license terms please see the LICENSE at the root of this distribution. * * SPDX-License-Identifier: Apache-2.0 OR MIT * */ #if !defined(Q_MOC_RUN) #include #include #include #include #include #include #include #include #include #endif namespace AZ { namespace SceneAPI { namespace DataTypes { class ISceneNodeSelectionList; } namespace UI { // QT space namespace Ui { class NodeTreeSelectionWidget; } class SCENE_UI_API NodeTreeSelectionWidget : public QWidget { Q_OBJECT public: AZ_CLASS_ALLOCATOR_DECL explicit NodeTreeSelectionWidget(QWidget* parent); ~NodeTreeSelectionWidget() override; void SetList(const DataTypes::ISceneNodeSelectionList& list); void CopyListTo(DataTypes::ISceneNodeSelectionList& target); void SetFilterName(const AZStd::string& name); void SetFilterName(AZStd::string&& name); void AddFilterType(const Uuid& idProperty); void AddFilterVirtualType(Crc32 name); void UseNarrowSelection(bool enable); void UpdateSelectionLabel(); signals: void valueChanged(); protected: void SelectButtonClicked(); void ListChangesAccepted(); void ListChangesCanceled(); virtual void ResetNewTreeWidget(const Containers::Scene& scene); size_t CalculateSelectedCount(); size_t CalculateTotalCount(); AZStd::set m_filterTypes; AZStd::set m_filterVirtualTypes; AZStd::string m_filterName; QScopedPointer ui; AZStd::unique_ptr m_treeWidget; AZStd::unique_ptr m_list; bool m_narrowSelection; }; } // UI } // SceneAPI } // AZ