From 30458bc1be353aa791e9e0bc7b999e179881a7a7 Mon Sep 17 00:00:00 2001 From: mnaumov Date: Fri, 23 Apr 2021 21:40:27 -0700 Subject: [PATCH] PR feedback --- .../UI/PropertyEditor/PropertyAssetCtrl.cpp | 34 +++++++++++++++---- .../UI/PropertyEditor/PropertyAssetCtrl.hxx | 7 +++- .../PropertyEditor/ThumbnailPropertyCtrl.cpp | 14 ++++++++ .../UI/PropertyEditor/ThumbnailPropertyCtrl.h | 2 ++ .../Material/EditorMaterialComponentSlot.cpp | 2 +- 5 files changed, 51 insertions(+), 8 deletions(-) diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/PropertyAssetCtrl.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/PropertyAssetCtrl.cpp index 9d9a3da69b..276b8f75ab 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/PropertyAssetCtrl.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/PropertyAssetCtrl.cpp @@ -97,7 +97,7 @@ namespace AzToolsFramework m_thumbnail->setFixedSize(QSize(40, 24)); m_thumbnail->setVisible(false); - connect(m_thumbnail, &ThumbnailPropertyCtrl::clicked, this, &PropertyAssetCtrl::OnEditButtonClicked); + connect(m_thumbnail, &ThumbnailPropertyCtrl::clicked, [&]() { PropertyAssetCtrl::OnEditButtonClicked(m_thumbnailCallback); }); m_editButton = new QToolButton(this); m_editButton->setAutoRaise(true); @@ -105,7 +105,7 @@ namespace AzToolsFramework m_editButton->setToolTip("Edit asset"); m_editButton->setVisible(false); - connect(m_editButton, &QToolButton::clicked, this, &PropertyAssetCtrl::OnEditButtonClicked); + connect(m_editButton, &QToolButton::clicked, [&]() { PropertyAssetCtrl::OnEditButtonClicked(m_editNotifyCallback); }); pLayout->addWidget(m_thumbnail); pLayout->addWidget(m_browseEdit); @@ -704,13 +704,13 @@ namespace AzToolsFramework AzFramework::AssetCatalogEventBus::Handler::BusDisconnect(); } - void PropertyAssetCtrl::OnEditButtonClicked() + void PropertyAssetCtrl::OnEditButtonClicked(EditCallbackType* editNotifyCallback) { const AZ::Data::AssetId assetID = GetCurrentAssetID(); - if (m_editNotifyCallback) + if (editNotifyCallback) { AZ_Error("Asset Property", m_editNotifyTarget, "No notification target set for edit callback."); - m_editNotifyCallback->Invoke(m_editNotifyTarget, assetID, GetCurrentAssetType()); + editNotifyCallback->Invoke(m_editNotifyTarget, assetID, GetCurrentAssetType()); return; } else @@ -1089,6 +1089,7 @@ namespace AzToolsFramework if (m_showThumbnail) { + m_thumbnail->ShowDropDownArrow(m_showThumbnailDropDownButton); const AZ::Data::AssetId assetID = GetCurrentAssetID(); if (assetID.IsValid()) { @@ -1145,6 +1146,21 @@ namespace AzToolsFramework return m_showThumbnail; } + void PropertyAssetCtrl::SetShowThumbnailDropDownButton(bool enable) + { + m_showThumbnailDropDownButton = enable; + } + + bool PropertyAssetCtrl::GetShowThumbnailDropDownButton() const + { + return m_showThumbnailDropDownButton; + } + + void PropertyAssetCtrl::SetThumbnailCallback(EditCallbackType* editNotifyCallback) + { + m_thumbnailCallback = editNotifyCallback; + } + const AZ::Uuid& AssetPropertyHandlerDefault::GetHandledType() const { return AZ::GetAssetClassId(); @@ -1255,15 +1271,21 @@ namespace AzToolsFramework } } else if (attrib == AZ_CRC_CE("Thumbnail")) + { + GUI->SetShowThumbnail(true); + } + else if (attrib == AZ_CRC_CE("ThumbnailCallback")) { PropertyAssetCtrl::EditCallbackType* func = azdynamic_cast(attrValue->GetAttribute()); if (func) { GUI->SetShowThumbnail(true); - GUI->SetEditNotifyCallback(func); + GUI->SetShowThumbnailDropDownButton(true); + GUI->SetThumbnailCallback(func); } else { + GUI->SetShowThumbnailDropDownButton(false); GUI->SetEditNotifyCallback(nullptr); } } diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/PropertyAssetCtrl.hxx b/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/PropertyAssetCtrl.hxx index f7f7ece856..aa4a174607 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/PropertyAssetCtrl.hxx +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/PropertyAssetCtrl.hxx @@ -156,6 +156,8 @@ namespace AzToolsFramework bool m_showProductAssetName = true; bool m_showThumbnail = false; + bool m_showThumbnailDropDownButton = false; + EditCallbackType* m_thumbnailCallback = nullptr; // ! Default suffix used in the field's placeholder text when a default value is set. const char* m_DefaultSuffix = " (default)"; @@ -206,6 +208,9 @@ namespace AzToolsFramework void SetShowThumbnail(bool enable); bool GetShowThumbnail() const; + void SetShowThumbnailDropDownButton(bool enable); + bool GetShowThumbnailDropDownButton() const; + void SetThumbnailCallback(EditCallbackType* editNotifyCallback); void SetSelectedAssetID(const AZ::Data::AssetId& newID); void SetCurrentAssetType(const AZ::Data::AssetType& newType); @@ -216,7 +221,7 @@ namespace AzToolsFramework void OnClearButtonClicked(); void UpdateAssetDisplay(); void OnLineEditFocus(bool focus); - virtual void OnEditButtonClicked(); + virtual void OnEditButtonClicked(EditCallbackType* editNotifyCallback); void OnCompletionModelReset(); void OnAutocomplete(const QModelIndex& index); void OnTextChange(const QString& text); diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/ThumbnailPropertyCtrl.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/ThumbnailPropertyCtrl.cpp index a5b9f71cc5..4a501484c2 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/ThumbnailPropertyCtrl.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/ThumbnailPropertyCtrl.cpp @@ -39,6 +39,7 @@ namespace AzToolsFramework m_dropDownArrow = new AspectRatioAwarePixmapWidget(this); m_dropDownArrow->setPixmap(QPixmap(":/stylesheet/img/triangle0.png")); m_dropDownArrow->setFixedSize(QSize(8, 24)); + ShowDropDownArrow(false); m_emptyThumbnail = new QLabel(this); m_emptyThumbnail->setPixmap(QPixmap(":/stylesheet/img/line.png")); @@ -66,6 +67,19 @@ namespace AzToolsFramework m_thumbnail->ClearThumbnail(); } + void ThumbnailPropertyCtrl::ShowDropDownArrow(bool visible) + { + if (visible) + { + setFixedSize(QSize(40, 24)); + } + else + { + setFixedSize(QSize(24, 24)); + } + m_dropDownArrow->setVisible(visible); + } + bool ThumbnailPropertyCtrl::event(QEvent* e) { if (isEnabled()) diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/ThumbnailPropertyCtrl.h b/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/ThumbnailPropertyCtrl.h index 129b68f307..ee61deab07 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/ThumbnailPropertyCtrl.h +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/UI/PropertyEditor/ThumbnailPropertyCtrl.h @@ -42,6 +42,8 @@ namespace AzToolsFramework //! Remove current thumbnail void ClearThumbnail(); + void ShowDropDownArrow(bool visible); + bool event(QEvent* e) override; Q_SIGNALS: diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/EditorMaterialComponentSlot.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/EditorMaterialComponentSlot.cpp index a8c5a7eb41..9d63f4a4a9 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/EditorMaterialComponentSlot.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/EditorMaterialComponentSlot.cpp @@ -98,7 +98,7 @@ namespace AZ ->Attribute(AZ::Edit::Attributes::DefaultAsset, &EditorMaterialComponentSlot::GetDefaultAssetId) ->Attribute(AZ::Edit::Attributes::NameLabelOverride, &EditorMaterialComponentSlot::GetLabel) ->Attribute(AZ::Edit::Attributes::ShowProductAssetFileName, true) - ->Attribute("Thumbnail", &EditorMaterialComponentSlot::OpenPopupMenu) + ->Attribute("ThumbnailCallback", &EditorMaterialComponentSlot::OpenPopupMenu) ; } }