From 5cac07b4c136c749e6beb72b065ce490ad93b227 Mon Sep 17 00:00:00 2001 From: guthadam Date: Wed, 28 Apr 2021 00:17:58 -0500 Subject: [PATCH] ATOM-14003 adding image thumbnails to material inspector properties https://jira.agscollab.com/browse/ATOM-14003 --- .../UI/PropertyEditor/PropertyAssetCtrl.cpp | 6 +++++- .../UI/PropertyEditor/ThumbnailPropertyCtrl.cpp | 1 + .../AtomToolsFramework/DynamicProperty/DynamicProperty.h | 1 + .../Code/Source/DynamicProperty/DynamicProperty.cpp | 1 + .../Code/Source/Document/MaterialDocument.cpp | 2 ++ .../Source/Material/EditorMaterialComponentInspector.cpp | 1 + 6 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/PropertyAssetCtrl.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/PropertyAssetCtrl.cpp index f19f456816..1fd2680f85 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/PropertyAssetCtrl.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/PropertyAssetCtrl.cpp @@ -1304,7 +1304,11 @@ namespace AzToolsFramework } else if (attrib == AZ_CRC_CE("Thumbnail")) { - GUI->SetShowThumbnail(true); + bool showThumbnail = false; + if (attrValue->Read(showThumbnail)) + { + GUI->SetShowThumbnail(showThumbnail); + } } else if (attrib == AZ_CRC_CE("ThumbnailCallback")) { diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/ThumbnailPropertyCtrl.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/ThumbnailPropertyCtrl.cpp index bb9232435a..2247350f52 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/ThumbnailPropertyCtrl.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/ThumbnailPropertyCtrl.cpp @@ -114,6 +114,7 @@ namespace AzToolsFramework m_thumbnailEnlarged->move(position); m_thumbnailEnlarged->setWindowFlags(Qt::Window | Qt::FramelessWindowHint); m_thumbnailEnlarged->SetThumbnailKey(m_key); + m_thumbnailEnlarged->raise(); m_thumbnailEnlarged->show(); } QWidget::enterEvent(e); diff --git a/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/DynamicProperty/DynamicProperty.h b/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/DynamicProperty/DynamicProperty.h index 5fd2862c65..b17a25a675 100644 --- a/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/DynamicProperty/DynamicProperty.h +++ b/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/DynamicProperty/DynamicProperty.h @@ -63,6 +63,7 @@ namespace AtomToolsFramework AZStd::vector m_vectorLabels; bool m_visible = true; bool m_readOnly = false; + bool m_showThumbnail = false; }; //! Wraps an AZStd::any value and configuration so that it can be displayed and edited in a ReflectedPropertyEditor. diff --git a/Gems/Atom/Tools/AtomToolsFramework/Code/Source/DynamicProperty/DynamicProperty.cpp b/Gems/Atom/Tools/AtomToolsFramework/Code/Source/DynamicProperty/DynamicProperty.cpp index 754c35f0c2..5784355498 100644 --- a/Gems/Atom/Tools/AtomToolsFramework/Code/Source/DynamicProperty/DynamicProperty.cpp +++ b/Gems/Atom/Tools/AtomToolsFramework/Code/Source/DynamicProperty/DynamicProperty.cpp @@ -141,6 +141,7 @@ namespace AtomToolsFramework AddEditDataAttributeMemberFunction(AZ::Edit::Attributes::EnumValues, &DynamicProperty::GetEnumValues); AddEditDataAttributeMemberFunction(AZ::Edit::Attributes::ChangeNotify, &DynamicProperty::OnDataChanged); AddEditDataAttribute(AZ::Edit::Attributes::ShowProductAssetFileName, false); + AddEditDataAttribute(AZ_CRC_CE("Thumbnail"), m_config.m_showThumbnail); switch (m_config.m_dataType) { diff --git a/Gems/Atom/Tools/MaterialEditor/Code/Source/Document/MaterialDocument.cpp b/Gems/Atom/Tools/MaterialEditor/Code/Source/Document/MaterialDocument.cpp index 6bdee9a319..3919684864 100644 --- a/Gems/Atom/Tools/MaterialEditor/Code/Source/Document/MaterialDocument.cpp +++ b/Gems/Atom/Tools/MaterialEditor/Code/Source/Document/MaterialDocument.cpp @@ -771,6 +771,7 @@ namespace MaterialEditor if (propertyIndexInBounds) { AtomToolsFramework::ConvertToPropertyConfig(propertyConfig, propertyDefinition); + propertyConfig.m_showThumbnail = true; propertyConfig.m_originalValue = AtomToolsFramework::ConvertToEditableType(m_materialAsset->GetPropertyValues()[propertyIndex.GetIndex()]); propertyConfig.m_parentValue = AtomToolsFramework::ConvertToEditableType(parentPropertyValues[propertyIndex.GetIndex()]); propertyConfig.m_groupName = m_materialTypeSourceData.FindGroup(groupNameId)->m_displayName; @@ -810,6 +811,7 @@ namespace MaterialEditor propertyConfig.m_originalValue = propertyConfig.m_defaultValue; propertyConfig.m_parentValue = propertyConfig.m_defaultValue; propertyConfig.m_readOnly = true; + propertyConfig.m_showThumbnail = true; m_properties[propertyConfig.m_id] = AtomToolsFramework::DynamicProperty(propertyConfig); diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/EditorMaterialComponentInspector.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/EditorMaterialComponentInspector.cpp index 2885978e1e..f7915bbff4 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/EditorMaterialComponentInspector.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/EditorMaterialComponentInspector.cpp @@ -250,6 +250,7 @@ namespace AZ propertyConfig.m_id = AZ::RPI::MaterialPropertyId(groupNameId, propertyDefinition.m_nameId).GetFullName(); propertyConfig.m_groupName = groupDisplayName; const auto& propertyIndex = m_editData.m_materialAsset->GetMaterialPropertiesLayout()->FindPropertyIndex(propertyConfig.m_id); + propertyConfig.m_showThumbnail = true; propertyConfig.m_defaultValue = AtomToolsFramework::ConvertToEditableType(m_editData.m_materialTypeAsset->GetDefaultPropertyValues()[propertyIndex.GetIndex()]); propertyConfig.m_parentValue = AtomToolsFramework::ConvertToEditableType(m_editData.m_materialTypeAsset->GetDefaultPropertyValues()[propertyIndex.GetIndex()]); propertyConfig.m_originalValue = AtomToolsFramework::ConvertToEditableType(m_editData.m_materialAsset->GetPropertyValues()[propertyIndex.GetIndex()]);