PropertyHandlerCanvasAsset.cpp 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #include <AzToolsFramework/UI/PropertyEditor/PropertyEditorAPI.h>
  9. #include <Editor/PropertyHandlerCanvasAsset.h>
  10. namespace LyShineEditor
  11. {
  12. AZ::u32 CanvasAssetPropertyHandler::GetHandlerName() const
  13. {
  14. return AZ_CRC_CE("CanvasAssetRef");
  15. }
  16. bool CanvasAssetPropertyHandler::IsDefaultHandler() const
  17. {
  18. return false;
  19. }
  20. QWidget* CanvasAssetPropertyHandler::GetFirstInTabOrder(AzToolsFramework::PropertyAssetCtrl* widget)
  21. {
  22. return widget->GetFirstInTabOrder();
  23. }
  24. QWidget* CanvasAssetPropertyHandler::GetLastInTabOrder(AzToolsFramework::PropertyAssetCtrl* widget)
  25. {
  26. return widget->GetLastInTabOrder();
  27. }
  28. void CanvasAssetPropertyHandler::UpdateWidgetInternalTabbing(AzToolsFramework::PropertyAssetCtrl* widget)
  29. {
  30. widget->UpdateTabOrder();
  31. }
  32. QWidget* CanvasAssetPropertyHandler::CreateGUI(QWidget* parent)
  33. {
  34. AzToolsFramework::PropertyAssetCtrl* newCtrl = aznew AzToolsFramework::PropertyAssetCtrl(parent);
  35. QObject::connect(newCtrl, &AzToolsFramework::PropertyAssetCtrl::OnAssetIDChanged, this, [newCtrl](AZ::Data::AssetId newAssetID)
  36. {
  37. (void)newAssetID;
  38. AzToolsFramework::PropertyEditorGUIMessagesBus::Broadcast(&AzToolsFramework::PropertyEditorGUIMessages::RequestWrite, newCtrl);
  39. AzToolsFramework::PropertyEditorGUIMessagesBus::Broadcast(&AzToolsFramework::PropertyEditorGUIMessages::OnEditingFinished, newCtrl);
  40. });
  41. return newCtrl;
  42. }
  43. void CanvasAssetPropertyHandler::ConsumeAttribute(AzToolsFramework::PropertyAssetCtrl* GUI, AZ::u32 attrib, AzToolsFramework::PropertyAttributeReader* attrValue, const char* debugName)
  44. {
  45. // Let ConsumeAttributeForPropertyAssetCtrl handle all of the attributes
  46. AzToolsFramework::ConsumeAttributeForPropertyAssetCtrl(GUI, attrib, attrValue, debugName);
  47. }
  48. void CanvasAssetPropertyHandler::WriteGUIValuesIntoProperty(size_t index, AzToolsFramework::PropertyAssetCtrl* GUI, property_t& instance, AzToolsFramework::InstanceDataNode* node)
  49. {
  50. // Let the SimpleAssetPropertyHandlerDefault handle writing the GUI value into the property
  51. AzToolsFramework::SimpleAssetPropertyHandlerDefault::WriteGUIValuesIntoPropertyInternal(index, GUI, instance, node);
  52. }
  53. bool CanvasAssetPropertyHandler::ReadValuesIntoGUI(size_t index, AzToolsFramework::PropertyAssetCtrl* GUI, const property_t& instance, AzToolsFramework::InstanceDataNode* node)
  54. {
  55. // Let the SimpleAssetPropertyHandlerDefault handle reading values into the GUI
  56. return AzToolsFramework::SimpleAssetPropertyHandlerDefault::ReadValuesIntoGUIInternal(index, GUI, instance, node);
  57. }
  58. void CanvasAssetPropertyHandler::Register()
  59. {
  60. using namespace AzToolsFramework;
  61. PropertyTypeRegistrationMessageBus::Broadcast(
  62. &PropertyTypeRegistrationMessages::RegisterPropertyType, aznew CanvasAssetPropertyHandler());
  63. }
  64. }