/* * 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 * */ #pragma once #if !defined(Q_MOC_RUN) #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #endif class QAction; class QLineEdit; class QPushButton; namespace Ui { class VariableConfigurationWidget; } namespace ScriptCanvasEditor { class VariableConfigurationWidget : public AzQtComponents::StyledDialog , public AzToolsFramework::EditorEvents::Bus::Handler { Q_OBJECT public: AZ_CLASS_ALLOCATOR(VariableConfigurationWidget, AZ::SystemAllocator); VariableConfigurationWidget ( const ScriptCanvas::ScriptCanvasId& scriptCanvasId , const VariablePaletteRequests::VariableConfigurationInput& input , QWidget* parent = nullptr); ~VariableConfigurationWidget(); void PopulateVariablePalette(const AZStd::unordered_set< AZ::Uuid >& objectTypes); // AzToolsFramework::EditorEvents::Bus void OnEscape() override; //// // QWidget void focusOutEvent(QFocusEvent* focusEvent) override; //// AZ::Uuid GetSelectedType() const; AZStd::string GetSlotName() const; void SetSlotName(AZStd::string); const ScriptCanvas::ScriptCanvasId& GetActiveScriptCanvasId() const; public Q_SLOTS: void OnCreateVariable(ScriptCanvas::Data::Type varType); Q_SIGNALS: void OnVariableSelectionChanged(const AZStd::vector& variableIds); private: void ShowVariablePalette(); void FocusOnSearchFilter(); void ClearFilter(); void UpdateFilter(); void OnReturnPressed(); void OnQuickFilterChanged(const QString& text); void OnNameChanged(const QString& text); void OnContextMenuRequested(const QPoint& pos); AZStd::vector< AZStd::unique_ptr > m_propertyHelpers; ScriptCanvas::ScriptCanvasId m_scriptCanvasId; AZ::EntityId m_graphCanvasGraphId; AZ::Uuid m_selectedType; AZStd::string m_slotName; const VariablePaletteRequests::VariableConfigurationInput& m_input; AZStd::unique_ptr ui; QTimer m_filterTimer; }; }