Merge branch 'development' of https://github.com/o3de/o3de into sc-editor-asset-redux

Signed-off-by: chcurran <82187351+carlitosan@users.noreply.github.com>
This commit is contained in:
chcurran
2021-11-11 16:04:56 -08:00
1944 changed files with 220327 additions and 6146 deletions
@@ -91,17 +91,19 @@ namespace GraphCanvas
}
void GeneralNodeTitleComponent::SetTitle(const AZStd::string& title)
void GeneralNodeTitleComponent::SetDetails(const AZStd::string& title, const AZStd::string& subtitle)
{
m_title.SetFallback(title);
m_title = title;
m_subTitle = subtitle;
if (m_generalNodeTitleWidget)
{
m_generalNodeTitleWidget->SetTitle(title);
m_generalNodeTitleWidget->SetDetails(title, subtitle);
}
}
void GeneralNodeTitleComponent::SetTranslationKeyedTitle(const TranslationKeyedString& title)
void GeneralNodeTitleComponent::SetTitle(const AZStd::string& title)
{
m_title = title;
@@ -113,20 +115,10 @@ namespace GraphCanvas
AZStd::string GeneralNodeTitleComponent::GetTitle() const
{
return m_title.GetDisplayString();
return m_title;
}
void GeneralNodeTitleComponent::SetSubTitle(const AZStd::string& subtitle)
{
m_subTitle.SetFallback(subtitle);
if (m_generalNodeTitleWidget)
{
m_generalNodeTitleWidget->SetSubTitle(subtitle);
}
}
void GeneralNodeTitleComponent::SetTranslationKeyedSubTitle(const TranslationKeyedString& subtitle)
{
m_subTitle = subtitle;
@@ -138,7 +130,7 @@ namespace GraphCanvas
AZStd::string GeneralNodeTitleComponent::GetSubTitle() const
{
return m_subTitle.GetDisplayString();
return m_subTitle;
}
QGraphicsWidget* GeneralNodeTitleComponent::GetGraphicsWidget()
@@ -270,7 +262,23 @@ namespace GraphCanvas
SceneNotificationBus::Handler::BusDisconnect();
}
void GeneralNodeTitleGraphicsWidget::SetTitle(const TranslationKeyedString& title)
void GeneralNodeTitleGraphicsWidget::SetDetails(const AZStd::string& title, const AZStd::string& subtitle)
{
bool updateLayout = false;
if (m_titleWidget)
{
m_titleWidget->SetLabel(title);
updateLayout = true;
}
if (m_subTitleWidget)
{
m_subTitleWidget->SetLabel(subtitle);
updateLayout = true;
}
}
void GeneralNodeTitleGraphicsWidget::SetTitle(const AZStd::string& title)
{
if (m_titleWidget)
{
@@ -279,7 +287,7 @@ namespace GraphCanvas
}
}
void GeneralNodeTitleGraphicsWidget::SetSubTitle(const TranslationKeyedString& subtitle)
void GeneralNodeTitleGraphicsWidget::SetSubTitle(const AZStd::string& subtitle)
{
if (m_subTitleWidget)
{
@@ -68,12 +68,11 @@ namespace GraphCanvas
////
// NodeTitleRequestBus
void SetDetails(const AZStd::string& title, const AZStd::string& subtitle) override;
void SetTitle(const AZStd::string& title) override;
void SetTranslationKeyedTitle(const TranslationKeyedString& title) override;
AZStd::string GetTitle() const override;
void SetSubTitle(const AZStd::string& subtitle) override;
void SetTranslationKeyedSubTitle(const TranslationKeyedString& subtitle) override;
AZStd::string GetSubTitle() const override;
QGraphicsWidget* GetGraphicsWidget() override;
@@ -96,8 +95,8 @@ namespace GraphCanvas
private:
GeneralNodeTitleComponent(const GeneralNodeTitleComponent&) = delete;
TranslationKeyedString m_title;
TranslationKeyedString m_subTitle;
AZStd::string m_title;
AZStd::string m_subTitle;
AZStd::string m_basePalette;
@@ -123,9 +122,10 @@ namespace GraphCanvas
void Activate();
void Deactivate();
void SetTitle(const TranslationKeyedString& title);
void SetSubTitle(const TranslationKeyedString& subtitle);
void SetDetails(const AZStd::string& title, const AZStd::string& subtitle);
void SetTitle(const AZStd::string& title);
void SetSubTitle(const AZStd::string& subtitle);
void SetPaletteOverride(AZStd::string_view paletteOverride);
void SetPaletteOverride(const AZ::Uuid& uuid);
@@ -1007,20 +1007,16 @@ namespace GraphCanvas
{
if (!configuration.m_name.empty())
{
cloneConfiguration->m_name.Clear();
cloneConfiguration->m_name.SetFallback(configuration.m_name);
cloneConfiguration->m_name = configuration.m_name;
}
else
{
AZStd::string nodeTitle;
NodeTitleRequestBus::EventResult(nodeTitle, configuration.m_targetEndpoint.GetNodeId(), &NodeTitleRequests::GetTitle);
AZStd::string displayName = AZStd::string::format("%s:%s", nodeTitle.c_str(), cloneConfiguration->m_name.GetDisplayString().c_str());
AZStd::string displayName = AZStd::string::format("%s:%s", nodeTitle.c_str(), cloneConfiguration->m_name.c_str());
// Gain some context. Lost the ability to refresh the strings.
// Should be fixable once we get an actual use case for this setup.
cloneConfiguration->m_name.Clear();
cloneConfiguration->m_name.SetFallback(displayName);
cloneConfiguration->m_name = displayName;
}
AZ::Entity* slotEntity = nullptr;
@@ -315,12 +315,6 @@ namespace GraphCanvas
NodeNotificationBus::Event(GetEntityId(), &NodeNotifications::OnTooltipChanged, m_configuration.GetTooltip());
}
void NodeComponent::SetTranslationKeyedTooltip(const TranslationKeyedString& tooltip)
{
m_configuration.SetTooltip(tooltip.GetDisplayString());
NodeNotificationBus::Event(GetEntityId(), &NodeNotifications::OnTooltipChanged, m_configuration.GetTooltip());
}
void NodeComponent::AddSlot(const AZ::EntityId& slotId)
{
AZ_Assert(slotId.IsValid(), "Slot entity (ID: %s) is not valid!", slotId.ToString().data());
@@ -106,7 +106,6 @@ namespace GraphCanvas
// NodeRequestBus
void SetTooltip(const AZStd::string& tooltip) override;
void SetTranslationKeyedTooltip(const TranslationKeyedString& tooltip) override;
const AZStd::string GetTooltip() const override { return m_configuration.GetTooltip(); }
void SetShowInOutliner(bool showInOutliner) override { m_configuration.SetShowInOutliner(showInOutliner); }
@@ -337,12 +337,9 @@ namespace GraphCanvas
{
m_connectionType = slotRequests->GetConnectionType();
TranslationKeyedString slotName = slotRequests->GetTranslationKeyedName();
m_slotText->SetLabel(slotRequests->GetName());
m_slotText->SetLabel(slotName);
TranslationKeyedString toolTip = slotRequests->GetTranslationKeyedTooltip();
OnTooltipChanged(toolTip);
OnTooltipChanged(slotRequests->GetTooltip());
const SlotConfiguration& configuration = slotRequests->GetSlotConfiguration();
@@ -393,12 +390,12 @@ namespace GraphCanvas
AZ::SystemTickBus::Handler::BusConnect();
}
void DataSlotLayout::OnNameChanged(const TranslationKeyedString& name)
void DataSlotLayout::OnNameChanged(const AZStd::string& name)
{
m_slotText->SetLabel(name);
}
void DataSlotLayout::OnTooltipChanged(const TranslationKeyedString& tooltip)
void DataSlotLayout::OnTooltipChanged(const AZStd::string& tooltip)
{
AZ::Uuid dataType;
DataSlotRequestBus::EventResult(dataType, m_owner.GetEntityId(), &DataSlotRequests::GetDataTypeId);
@@ -406,7 +403,7 @@ namespace GraphCanvas
AZStd::string typeString;
GraphModelRequestBus::EventResult(typeString, GetSceneId(), &GraphModelRequests::GetDataTypeString, dataType);
AZStd::string displayText = tooltip.GetDisplayString();
AZStd::string displayText = tooltip;
if (!typeString.empty())
{
@@ -486,7 +483,7 @@ namespace GraphCanvas
if (!iconPath.empty())
{
m_textDecoration = new GraphCanvasLabel();
m_textDecoration->SetLabel(iconPath, "", "");
m_textDecoration->SetLabel(iconPath);
m_textDecoration->setToolTip(toolTip.c_str());
ApplyTextStyle(m_textDecoration);
@@ -120,8 +120,8 @@ namespace GraphCanvas
// SlotNotificationBus
void OnRegisteredToNode(const AZ::EntityId& nodeId) override;
void OnNameChanged(const TranslationKeyedString&) override;
void OnTooltipChanged(const TranslationKeyedString&) override;
void OnNameChanged(const AZStd::string&) override;
void OnTooltipChanged(const AZStd::string&) override;
////
// StyleNotificationBus
@@ -58,13 +58,8 @@ namespace GraphCanvas
{
m_connectionType = slotRequests->GetConnectionType();
TranslationKeyedString slotName = slotRequests->GetTranslationKeyedName();
m_slotText->SetLabel(slotName);
TranslationKeyedString toolTip = slotRequests->GetTranslationKeyedTooltip();
OnTooltipChanged(toolTip);
m_slotText->SetLabel(slotRequests->GetName());
OnTooltipChanged(slotRequests->GetTooltip());
const SlotConfiguration& configuration = slotRequests->GetSlotConfiguration();
@@ -88,17 +83,15 @@ namespace GraphCanvas
OnStyleChanged();
}
void ExecutionSlotLayout::OnNameChanged(const TranslationKeyedString& name)
void ExecutionSlotLayout::OnNameChanged(const AZStd::string& name)
{
m_slotText->SetLabel(name);
}
void ExecutionSlotLayout::OnTooltipChanged(const TranslationKeyedString& tooltip)
void ExecutionSlotLayout::OnTooltipChanged(const AZStd::string& tooltip)
{
AZStd::string displayText = tooltip.GetDisplayString();
m_slotConnectionPin->setToolTip(displayText.c_str());
m_slotText->setToolTip(displayText.c_str());
m_slotConnectionPin->setToolTip(tooltip.c_str());
m_slotText->setToolTip(tooltip.c_str());
}
void ExecutionSlotLayout::OnStyleChanged()
@@ -132,7 +125,7 @@ namespace GraphCanvas
if (!textDecoration.empty())
{
m_textDecoration = new GraphCanvasLabel();
m_textDecoration->SetLabel(textDecoration, "", "");
m_textDecoration->SetLabel(textDecoration);
m_textDecoration->setToolTip(toolTip.c_str());
ApplyTextStyle(m_textDecoration);
@@ -46,8 +46,8 @@ namespace GraphCanvas
// SlotNotificationBus
void OnRegisteredToNode(const AZ::EntityId& nodeId) override;
void OnNameChanged(const TranslationKeyedString& name) override;
void OnTooltipChanged(const TranslationKeyedString& tooltip) override;
void OnNameChanged(const AZStd::string& name) override;
void OnTooltipChanged(const AZStd::string& tooltip) override;
////
// StyleNotificationBus
@@ -119,13 +119,13 @@ namespace GraphCanvas
{
SlotRequestBus::EventResult(m_connectionType, m_owner.GetEntityId(), &SlotRequests::GetConnectionType);
TranslationKeyedString slotName;
SlotRequestBus::EventResult(slotName, m_owner.GetEntityId(), &SlotRequests::GetTranslationKeyedName);
AZStd::string slotName;
SlotRequestBus::EventResult(slotName, m_owner.GetEntityId(), &SlotRequests::GetName);
m_slotText->SetLabel(slotName);
TranslationKeyedString toolTip;
SlotRequestBus::EventResult(toolTip, m_owner.GetEntityId(), &SlotRequests::GetTranslationKeyedTooltip);
AZStd::string toolTip;
SlotRequestBus::EventResult(toolTip, m_owner.GetEntityId(), &SlotRequests::GetTooltip);
OnTooltipChanged(toolTip);
@@ -151,17 +151,15 @@ namespace GraphCanvas
OnStyleChanged();
}
void ExtenderSlotLayout::OnNameChanged(const TranslationKeyedString& name)
void ExtenderSlotLayout::OnNameChanged(const AZStd::string& name)
{
m_slotText->SetLabel(name);
}
void ExtenderSlotLayout::OnTooltipChanged(const TranslationKeyedString& tooltip)
void ExtenderSlotLayout::OnTooltipChanged(const AZStd::string& tooltip)
{
AZStd::string displayText = tooltip.GetDisplayString();
m_slotConnectionPin->setToolTip(displayText.c_str());
m_slotText->setToolTip(displayText.c_str());
m_slotConnectionPin->setToolTip(tooltip.c_str());
m_slotText->setToolTip(tooltip.c_str());
}
void ExtenderSlotLayout::OnStyleChanged()
@@ -48,8 +48,8 @@ namespace GraphCanvas
// SlotNotificationBus
void OnRegisteredToNode(const AZ::EntityId& nodeId) override;
void OnNameChanged(const TranslationKeyedString& name) override;
void OnTooltipChanged(const TranslationKeyedString& tooltip) override;
void OnNameChanged(const AZStd::string& name) override;
void OnTooltipChanged(const AZStd::string& tooltip) override;
////
// StyleNotificationBus
@@ -90,10 +90,10 @@ namespace GraphCanvas
TryAndSetupSlot();
}
void PropertySlotLayout::OnTooltipChanged(const TranslationKeyedString& tooltip)
void PropertySlotLayout::OnTooltipChanged(const AZStd::string& tooltip)
{
m_slotText->setToolTip(Tools::qStringFromUtf8(tooltip.GetDisplayString()));
m_nodePropertyDisplay->setToolTip(Tools::qStringFromUtf8(tooltip.GetDisplayString()));
m_slotText->setToolTip(Tools::qStringFromUtf8(tooltip));
m_nodePropertyDisplay->setToolTip(Tools::qStringFromUtf8(tooltip));
}
void PropertySlotLayout::OnStyleChanged()
@@ -49,7 +49,7 @@ namespace GraphCanvas
// SlotNotificationBus
void OnRegisteredToNode(const AZ::EntityId& nodeId) override;
void OnTooltipChanged(const TranslationKeyedString& tooltip) override;
void OnTooltipChanged(const AZStd::string& tooltip) override;
////
// StyleNotificationBus
@@ -91,14 +91,6 @@ namespace GraphCanvas
void SlotComponent::Activate()
{
SetTranslationKeyedName(m_slotConfiguration.m_name);
// Default tooltip.
if (m_slotConfiguration.m_tooltip.empty())
{
SetTranslationKeyedTooltip(m_slotConfiguration.m_name);
}
SlotRequestBus::Handler::BusConnect(GetEntityId());
SceneMemberRequestBus::Handler::BusConnect(GetEntityId());
}
@@ -171,24 +163,6 @@ namespace GraphCanvas
}
void SlotComponent::SetName(const AZStd::string& name)
{
if (name == m_slotConfiguration.m_name.GetDisplayString())
{
return;
}
m_slotConfiguration.m_name.SetFallback(name);
// Default tooltip.
if (m_slotConfiguration.m_tooltip.empty())
{
m_slotConfiguration.m_tooltip = m_slotConfiguration.m_name;
}
SlotNotificationBus::Event(GetEntityId(), &SlotNotifications::OnNameChanged, m_slotConfiguration.m_name);
}
void SlotComponent::SetTranslationKeyedName(const TranslationKeyedString& name)
{
if (name == m_slotConfiguration.m_name)
{
@@ -206,25 +180,22 @@ namespace GraphCanvas
SlotNotificationBus::Event(GetEntityId(), &SlotNotifications::OnNameChanged, m_slotConfiguration.m_name);
}
void SlotComponent::SetTooltip(const AZStd::string& tooltip)
void SlotComponent::SetDetails(const AZStd::string& name, const AZStd::string& tooltip)
{
if (tooltip == m_slotConfiguration.m_tooltip.GetDisplayString())
if (name != m_slotConfiguration.m_name)
{
return;
m_slotConfiguration.m_name = name;
SlotNotificationBus::Event(GetEntityId(), &SlotNotifications::OnNameChanged, m_slotConfiguration.m_name);
}
m_slotConfiguration.m_tooltip.SetFallback(tooltip);
// Default tooltip.
if (m_slotConfiguration.m_tooltip.empty())
if (tooltip != m_slotConfiguration.m_tooltip)
{
m_slotConfiguration.m_tooltip = m_slotConfiguration.m_name;
m_slotConfiguration.m_tooltip = tooltip;
SlotNotificationBus::Event(GetEntityId(), &SlotNotifications::OnTooltipChanged, m_slotConfiguration.m_tooltip);
}
SlotNotificationBus::Event(GetEntityId(), &SlotNotifications::OnTooltipChanged, m_slotConfiguration.m_tooltip);
}
void SlotComponent::SetTranslationKeyedTooltip(const TranslationKeyedString& tooltip)
void SlotComponent::SetTooltip(const AZStd::string& tooltip)
{
if (tooltip == m_slotConfiguration.m_tooltip)
{
@@ -521,8 +492,8 @@ namespace GraphCanvas
{
slotConfiguration.m_connectionType = GetConnectionType();
slotConfiguration.m_name = GetTranslationKeyedName();
slotConfiguration.m_tooltip = GetTranslationKeyedTooltip();
slotConfiguration.m_name = m_slotConfiguration.m_name;
slotConfiguration.m_tooltip = m_slotConfiguration.m_tooltip;
slotConfiguration.m_slotGroup = GetSlotGroup();
}
@@ -74,18 +74,14 @@ namespace GraphCanvas
Endpoint GetEndpoint() const override;
const AZStd::string GetName() const override { return m_slotConfiguration.m_name.GetDisplayString(); }
const AZStd::string GetName() const override { return m_slotConfiguration.m_name; }
void SetName(const AZStd::string& name) override;
TranslationKeyedString GetTranslationKeyedName() const override { return m_slotConfiguration.m_name; }
void SetTranslationKeyedName(const TranslationKeyedString&) override;
void SetDetails(const AZStd::string& name, const AZStd::string& tooltip) override;
const AZStd::string GetTooltip() const override { return m_slotConfiguration.m_tooltip.GetDisplayString(); }
const AZStd::string GetTooltip() const override { return m_slotConfiguration.m_tooltip; }
void SetTooltip(const AZStd::string& tooltip) override;
TranslationKeyedString GetTranslationKeyedTooltip() const override { return m_slotConfiguration.m_tooltip; }
void SetTranslationKeyedTooltip(const TranslationKeyedString&) override;
void DisplayProposedConnection(const AZ::EntityId& connectionId, const Endpoint& endpoint) override;
void RemoveProposedConnection(const AZ::EntityId& connectionId, const Endpoint& endpoint) override;
+5 -4
View File
@@ -140,7 +140,6 @@ namespace GraphCanvas
Styling::DefaultSelector::Reflect(serializeContext);
Styling::CompoundSelector::Reflect(serializeContext);
Styling::NestedSelector::Reflect(serializeContext);
TranslationKeyedString::Reflect(serializeContext);
Styling::Style::Reflect(serializeContext);
AssetEditorUserSettings::Reflect(serializeContext);
}
@@ -218,6 +217,9 @@ namespace GraphCanvas
AzToolsFramework::ToolsAssetSystemBus::Broadcast(&AzToolsFramework::ToolsAssetSystemRequests::RegisterSourceAssetType, azrtti_typeid<TranslationAsset>(), TranslationAsset::GetFileFilter());
m_translationAssetWorker.Activate();
m_assetHandler = AZStd::make_unique<TranslationAssetHandler>();
m_assetHandler->Register();
}
}
@@ -376,8 +378,7 @@ namespace GraphCanvas
// Find any TranslationAsset files that may have translation database key/values
AZ::Data::AssetCatalogRequests::AssetEnumerationCB collectAssetsCb = [this](const AZ::Data::AssetId assetId, const AZ::Data::AssetInfo& assetInfo)
{
const auto assetType = azrtti_typeid<TranslationAsset>();
if (assetInfo.m_assetType == assetType)
if (AZ::StringFunc::EndsWith(assetInfo.m_relativePath, ".names", false))
{
m_translationAssets.push_back(assetId);
}
@@ -405,7 +406,7 @@ namespace GraphCanvas
for (const AZ::Data::AssetId& assetId : m_translationAssets)
{
AZ::Data::AssetBus::MultiHandler::BusConnect(assetId);
AZ::Data::AssetManager::Instance().GetAsset<TranslationAsset>(assetId, AZ::Data::AssetLoadBehavior::Default);
AZ::Data::AssetManager::Instance().GetAsset<TranslationAsset>(assetId, AZ::Data::AssetLoadBehavior::Default);
}
}
}
@@ -40,10 +40,14 @@ namespace GraphCanvas
{
AZ::Data::AssetManager::Instance().RegisterHandler(m_assetHandler.get(), assetType);
}
AssetBuilderSDK::AssetBuilderCommandBus::Handler::BusConnect(GetUUID());
}
void TranslationAssetWorker::Deactivate()
{
AssetBuilderSDK::AssetBuilderCommandBus::Handler::BusDisconnect();
if (AZ::Data::AssetManager::Instance().GetHandler(AZ::Data::AssetType{ azrtti_typeid<TranslationAsset>() }))
{
AZ::Data::AssetManager::Instance().UnregisterHandler(m_assetHandler.get());
@@ -10,8 +10,10 @@
#include "TranslationAsset.h"
#include <AzCore/std/string/conversions.h>
#include <AzCore/StringFunc/StringFunc.h>
namespace GraphCanvas
{
namespace Translation
@@ -88,10 +90,16 @@ namespace GraphCanvas
static AZStd::string Sanitize(const AZStd::string& text)
{
AZStd::string result = text;
AZ::StringFunc::Replace(result, "*", "x");
AZ::StringFunc::Replace(result, "(", "_");
AZ::StringFunc::Replace(result, ")", "_");
AZ::StringFunc::Replace(result, "{", "_");
AZ::StringFunc::Replace(result, "}", "_");
AZ::StringFunc::Replace(result, ":", "_");
AZ::StringFunc::Replace(result, "<", "_");
AZ::StringFunc::Replace(result, ",", "_");
AZ::StringFunc::Replace(result, ">", " ");
AZ::StringFunc::Replace(result, "/", "");
AZ::StringFunc::Strip(result, " ");
AZ::StringFunc::Path::Normalize(result);
return result;
@@ -117,32 +125,32 @@ namespace GraphCanvas
virtual bool HasKey(const AZStd::string& /*key*/) { return false; }
//! Returns the text value for a given key
virtual const char* Get(const AZStd::string& /*key*/) { return nullptr; }
virtual bool Get(const AZStd::string& /*key*/, AZStd::string& /*value*/) { return false; }
struct Details
{
AZStd::string Name;
AZStd::string Tooltip;
AZStd::string Category;
AZStd::string Subtitle;
AZStd::string m_name;
AZStd::string m_tooltip;
AZStd::string m_category;
AZStd::string m_subtitle;
bool Valid = false;
bool m_valid = false;
Details() = default;
Details(const Details& rhs)
{
Name = rhs.Name;
Tooltip = rhs.Tooltip;
Subtitle = rhs.Subtitle;
Category = rhs.Category;
Valid = rhs.Valid;
m_name = rhs.m_name;
m_tooltip = rhs.m_tooltip;
m_category = rhs.m_category;
m_subtitle = rhs.m_subtitle;
m_valid = rhs.m_valid;
}
Details(const char* name, const char* tooltip, const char* subtitle, const char* category)
: Name(name), Tooltip(tooltip), Subtitle(subtitle), Category(category)
: m_name(name), m_tooltip(tooltip), m_subtitle(subtitle), m_category(category)
{
Valid = !Name.empty();
m_valid = !m_name.empty();
}
};
@@ -150,7 +158,7 @@ namespace GraphCanvas
virtual bool Add(const TranslationFormat& /*translationFormat*/) { return false; }
//! Get the details associated with a given key (assumes they are within a "details" object)
virtual Details GetDetails(const AZStd::string& /*key*/) { return Details(); }
virtual Details GetDetails(const AZStd::string& /*key*/, const Details& /*fallbackDetails*/) { return Details(); }
//! Generates the source JSON assets for all reflected elements
virtual void GenerateSourceAssets() {}
@@ -104,35 +104,49 @@ namespace GraphCanvas
return m_database.find(key) != m_database.end();
}
GraphCanvas::TranslationRequests::Details TranslationDatabase::GetDetails(const AZStd::string& key)
GraphCanvas::TranslationRequests::Details TranslationDatabase::GetDetails(const AZStd::string& key, const Details& fallbackDetails)
{
const char* name = Get(key + ".name");
const char* tooltip = Get(key + ".tooltip");
const char* subtitle = Get(key + ".subtitle");
const char* category = Get(key + ".category");
static bool s_traceMissingItems = true;
if (s_traceMissingItems)
Details details;
if (!Get(key + ".name", details.m_name))
{
AZ_TracePrintf("GraphCanvas", AZStd::string::format("Value (name) not found for key: %s", key.c_str()).c_str());
AZ_TracePrintf("GraphCanvas", AZStd::string::format("Value (tooltip) not found for key: %s", key.c_str()).c_str());
AZ_TracePrintf("GraphCanvas", AZStd::string::format("Value (subtitle) not found for key: %s", key.c_str()).c_str());
AZ_TracePrintf("GraphCanvas", AZStd::string::format("Value (category) not found for key: %s", key.c_str()).c_str());
details.m_name = fallbackDetails.m_name;
}
return Details(name ? name : "", tooltip ? tooltip : "", subtitle ? subtitle : "", category ? category : "");
if (!Get(key + ".tooltip", details.m_tooltip))
{
details.m_tooltip = fallbackDetails.m_tooltip;
}
if (!Get(key + ".subtitle", details.m_subtitle))
{
details.m_subtitle = fallbackDetails.m_subtitle;
}
if (!Get(key + ".category", details.m_category))
{
details.m_category = fallbackDetails.m_category;
}
return details;
}
const char* TranslationDatabase::Get(const AZStd::string& key)
bool TranslationDatabase::Get(const AZStd::string& key, AZStd::string& value)
{
AZStd::lock_guard<AZStd::recursive_mutex> lock(m_mutex);
if (m_database.find(key) != m_database.end())
{
return m_database[key].c_str();
value = m_database[key];
return true;
}
return "";
static bool s_traceMissingItems = false;
if (s_traceMissingItems)
{
AZ_TracePrintf("GraphCanvas", AZStd::string::format("Value not found for key: %s", key.c_str()).c_str());
}
return false;
}
bool TranslationDatabase::Add(const TranslationFormat& format)
@@ -43,9 +43,9 @@ namespace GraphCanvas
bool HasKey(const AZStd::string& key) override;
TranslationRequests::Details GetDetails(const AZStd::string& key) override;
TranslationRequests::Details GetDetails(const AZStd::string& key, const Details& value) override;
const char* Get(const AZStd::string& key) override;
bool Get(const AZStd::string& key, AZStd::string& value) override;
bool Add(const TranslationFormat& format) override;
@@ -35,8 +35,10 @@ namespace GraphCanvas
}
else
{
AZStd::string existingValue = translationFormat->m_database[finalKey.c_str()];
// There is a name collision
AZStd::string error = AZStd::string::format("Unable to store key: %s with value: %s because that key already exists", finalKey.c_str(), it.GetString());
AZStd::string error = AZStd::string::format("Unable to store key: %s with value: %s because that key already exists with value: %s (proposed: %s)", finalKey.c_str(), it.GetString(), existingValue.c_str(), it.GetString());
AZ_Error("TranslationSerializer", false, error.c_str());
}
}
@@ -20,6 +20,7 @@
#include <GraphCanvas/Editor/GraphCanvasProfiler.h>
#include <GraphCanvas/tools.h>
#include <GraphCanvas/Styling/StyleHelper.h>
#include <Translation/TranslationBus.h>
namespace GraphCanvas
{
@@ -76,19 +77,11 @@ namespace GraphCanvas
m_hasBorderOverride = false;
}
void GraphCanvasLabel::SetLabel(const AZStd::string& label, const AZStd::string& translationContext, const AZStd::string& translationKey)
void GraphCanvasLabel::SetLabel(const AZStd::string& value)
{
TranslationKeyedString keyedString(label, translationContext, translationKey);
SetLabel(keyedString);
}
void GraphCanvasLabel::SetLabel(const TranslationKeyedString& value)
{
AZStd::string displayString = value.GetDisplayString();
if (m_labelText.compare(QString(displayString.c_str())))
if (m_labelText.compare(QString(value.c_str())))
{
m_labelText = Tools::qStringFromUtf8(displayString);
m_labelText = Tools::qStringFromUtf8(value);
UpdateDisplayText();
RefreshDisplay();
@@ -51,9 +51,8 @@ namespace GraphCanvas
const QBrush& GetBorderColorOverride() const;
void ClearBorderColorOverride();
void SetLabel(const AZStd::string& label, const AZStd::string& translationContext = AZStd::string(), const AZStd::string& translationKey = AZStd::string());
void SetLabel(const TranslationKeyedString& value);
AZStd::string GetLabel() const { return AZStd::string(m_labelText.toStdString().c_str()); }
void SetLabel(const AZStd::string& value);
AZStd::string GetLabel() const { return AZStd::string(m_labelText.toUtf8().data()); }
void SetSceneStyle(const AZ::EntityId& sceneId, const char* style);
void SetStyle(const AZ::EntityId& entityId, const char* styleElement);
@@ -40,9 +40,6 @@ namespace GraphCanvas
//! Set the tooltip for the node, which will display when the mouse is over the node but not a child item.
virtual void SetTooltip(const AZStd::string&) = 0;
//! Set the translation keyed tooltip for the node, which will display when the mouse is over the node but not a child item.
virtual void SetTranslationKeyedTooltip(const TranslationKeyedString&) = 0;
//! Get the tooltip that is currently set for the node.
virtual const AZStd::string GetTooltip() const = 0;
@@ -38,19 +38,18 @@ namespace GraphCanvas
virtual QGraphicsWidget* GetGraphicsWidget() = 0;
//! Set the node's details, title, subtitle, tooltip
virtual void SetDetails(const AZStd::string& title, const AZStd::string& subtitle) = 0;
//! Set the Node's title.
virtual void SetTitle(const AZStd::string& value) = 0;
virtual void SetTranslationKeyedTitle(const TranslationKeyedString& value) = 0;
//! Get the Node's title.
virtual AZStd::string GetTitle() const = 0;
//! Set the Node's sub-title.
virtual void SetSubTitle(const AZStd::string& value) = 0;
virtual void SetTranslationKeyedSubTitle(const TranslationKeyedString& value) = 0;
//! Get the Node's sub-title.
virtual AZStd::string GetSubTitle() const = 0;
@@ -89,8 +89,9 @@ namespace GraphCanvas
ConnectionType m_connectionType = ConnectionType::CT_Invalid;
TranslationKeyedString m_tooltip = TranslationKeyedString();
TranslationKeyedString m_name = TranslationKeyedString();
AZStd::string m_tooltip;
AZStd::string m_name;
SlotGroup m_slotGroup = SlotGroups::Invalid;
AZStd::string m_textDecoration;
@@ -209,22 +210,19 @@ namespace GraphCanvas
//! Get the name, or label, of the slot.
//! These generally appear as a label against \ref Input or \ref Output slots.
virtual const AZStd::string GetName() const = 0;
//! Set the slot's name.
virtual void SetName(const AZStd::string&) = 0;
//! Get and set the keys used for slot name translation.
virtual TranslationKeyedString GetTranslationKeyedName() const = 0;
virtual void SetTranslationKeyedName(const TranslationKeyedString&) = 0;
//! Set the slot's name & tooltip.
virtual void SetDetails(const AZStd::string& name, const AZStd::string& tooltip) = 0;
//! Get the tooltip for the slot.
virtual const AZStd::string GetTooltip() const = 0;
//! Set the tooltip this slot should display.
virtual void SetTooltip(const AZStd::string&) = 0;
//! Get and set the keys used for slot tooltip translation.
virtual TranslationKeyedString GetTranslationKeyedTooltip() const = 0;
virtual void SetTranslationKeyedTooltip(const TranslationKeyedString&) = 0;
//! Get the group of the slot
virtual SlotGroup GetSlotGroup() const = 0;
@@ -370,9 +368,10 @@ namespace GraphCanvas
using BusIdType = SlotId;
//! When the name of the slot changes, the new name is signaled.
virtual void OnNameChanged(const TranslationKeyedString&) {}
virtual void OnNameChanged(const AZStd::string&) {}
//! When the tooltip of the slot changes, the new tooltip value is emitted.
virtual void OnTooltipChanged(const TranslationKeyedString&) {}
virtual void OnTooltipChanged(const AZStd::string&) {}
virtual void OnRegisteredToNode(const AZ::EntityId&) {}
@@ -10,7 +10,7 @@
#include <AzCore/Debug/Profiler.h>
#define GRAPH_CANVAS_PROFILE_FUNCTION() AZ_PROFILE_FUNCTION(AzToolsFramework);
#define GRAPH_CANVAS_PROFILE_SCOPE(message) AZ_PROFILE_SCOPE(AzToolsFramework, message);
#define GRAPH_CANVAS_PROFILE_SCOPE(budget, message) AZ_PROFILE_SCOPE(budget, message);
#if GRAPH_CANVAS_ENABLE_DETAILED_PROFILING
#define GRAPH_CANVAS_DETAILED_PROFILE_FUNCTION() AZ_PROFILE_FUNCTION(AzToolsFramework);
@@ -6,6 +6,7 @@
*
*/
#include <AzCore/PlatformDef.h>
#include <AzCore/Debug/Profiler.h>
AZ_PUSH_DISABLE_WARNING(4251 4800 4244, "-Wunknown-warning-option")
#include <QBitmap>
@@ -141,6 +142,8 @@ namespace
namespace GraphCanvas
{
AZ_DEFINE_BUDGET(StyleManager);
////////////////////////
// StyleSheetComponent
////////////////////////
@@ -271,6 +274,8 @@ namespace GraphCanvas
: m_editorId(editorId)
, m_assetPath(assetPath)
{
GRAPH_CANVAS_PROFILE_SCOPE(StyleManager, "StyleManager::StyleManager");
StyleManagerRequestBus::Handler::BusConnect(m_editorId);
AZ::Data::AssetInfo assetInfo;
@@ -315,8 +320,11 @@ namespace GraphCanvas
}
}
void StyleManager::LoadStyleSheet()
{
GRAPH_CANVAS_PROFILE_SCOPE(StyleManager, "LoadStyleSheet");
AZStd::string file = AZStd::string::format("@products@/%s", m_assetPath.c_str());
AZ::IO::FileIOBase* fileBase = AZ::IO::FileIOBase::GetInstance();
@@ -393,7 +401,7 @@ namespace GraphCanvas
AZ::EntityId StyleManager::ResolveStyles(const AZ::EntityId& object) const
{
GRAPH_CANVAS_DETAILED_PROFILE_FUNCTION();
GRAPH_CANVAS_PROFILE_SCOPE(StyleManager, "ResolveStyles");
Styling::SelectorVector selectors;
StyledEntityRequestBus::EventResult(selectors, object, &StyledEntityRequests::GetStyleSelectors);
@@ -401,7 +409,7 @@ namespace GraphCanvas
QVector<StyleMatch> matches;
for (const auto& style : m_styles)
{
GRAPH_CANVAS_DETAILED_PROFILE_SCOPE("StyleManager::ResolveStyles::StyleMatching");
GRAPH_CANVAS_PROFILE_SCOPE(StyleManager, "StyleManager::ResolveStyles::StyleMatching");
int complexity = style->Matches(object);
if (complexity != 0)
{
@@ -410,7 +418,7 @@ namespace GraphCanvas
}
{
GRAPH_CANVAS_DETAILED_PROFILE_SCOPE("StyleManager::ResolveStyles::Sorting");
GRAPH_CANVAS_PROFILE_SCOPE(StyleManager, "StyleManager::ResolveStyles::Sorting");
std::stable_sort(matches.begin(), matches.end());
}
Styling::StyleVector result;
@@ -418,7 +426,7 @@ namespace GraphCanvas
const auto& constMatches = matches;
for (auto& match : constMatches)
{
GRAPH_CANVAS_DETAILED_PROFILE_SCOPE("StyleManager::ResolveStyles::ResultConstruction");
GRAPH_CANVAS_PROFILE_SCOPE(StyleManager, "StyleManager::ResolveStyles::ResultConstruction");
result.push_back(match.style);
}
@@ -19,6 +19,7 @@ AZ_POP_DISABLE_WARNING
#include <GraphCanvas/Widgets/GraphCanvasTreeItem.h>
#include <GraphCanvas/Editor/EditorTypes.h>
#include <AzCore/IO/Path/Path.h>
namespace GraphCanvas
{
@@ -86,6 +87,9 @@ namespace GraphCanvas
void SetError(const AZStd::string& errorString);
virtual AZ::IO::Path GetTranslationDataPath() const { return AZ::IO::Path(); }
virtual void GenerateTranslationData() {}
protected:
void PreOnChildAdded(GraphCanvasTreeItem* item) override;
+1
View File
@@ -2,6 +2,7 @@
"gem_name": "GraphCanvas",
"display_name": "Graph Canvas",
"license": "Apache-2.0 Or MIT",
"license_url": "https://github.com/o3de/o3de/blob/development/LICENSE.txt",
"origin": "Open 3D Engine - o3de.org",
"type": "Tool",
"summary": "The Graph Canvas Gem provides a C++ framework for creating custom graphical node based editors for Open 3D Engine.",