PR feedback

This commit is contained in:
mnaumov
2021-04-23 21:40:27 -07:00
parent 9f4606c17a
commit 30458bc1be
5 changed files with 51 additions and 8 deletions
@@ -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<PropertyAssetCtrl::EditCallbackType*>(attrValue->GetAttribute());
if (func)
{
GUI->SetShowThumbnail(true);
GUI->SetEditNotifyCallback(func);
GUI->SetShowThumbnailDropDownButton(true);
GUI->SetThumbnailCallback(func);
}
else
{
GUI->SetShowThumbnailDropDownButton(false);
GUI->SetEditNotifyCallback(nullptr);
}
}
@@ -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);
@@ -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())
@@ -42,6 +42,8 @@ namespace AzToolsFramework
//! Remove current thumbnail
void ClearThumbnail();
void ShowDropDownArrow(bool visible);
bool event(QEvent* e) override;
Q_SIGNALS:
@@ -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)
;
}
}