From c19fe82eb4bc2f7d045cfb5accdd16aae9dfdf95 Mon Sep 17 00:00:00 2001 From: julien stjean Date: Tue, 1 Aug 2023 11:01:43 -0400 Subject: [PATCH] Fixed an issue where the contextual menu interpreted the relative file path of a source file an the display label instead of using the actual display label store with the source file. #rb Alexis.Matte [CL 26739466 by julien stjean in ue5-main branch] --- .../Private/AssetFileContextMenu.cpp | 10 ++-------- .../Editor/AssetDefinition/Private/AssetDefinition.cpp | 1 + .../Editor/AssetDefinition/Public/AssetDefinition.h | 3 +++ 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/Engine/Plugins/Editor/ContentBrowser/ContentBrowserAssetDataSource/Source/ContentBrowserAssetDataSource/Private/AssetFileContextMenu.cpp b/Engine/Plugins/Editor/ContentBrowser/ContentBrowserAssetDataSource/Source/ContentBrowserAssetDataSource/Private/AssetFileContextMenu.cpp index b7293793ce80..daa5ea4981ed 100644 --- a/Engine/Plugins/Editor/ContentBrowser/ContentBrowserAssetDataSource/Source/ContentBrowserAssetDataSource/Private/AssetFileContextMenu.cpp +++ b/Engine/Plugins/Editor/ContentBrowser/ContentBrowserAssetDataSource/Source/ContentBrowserAssetDataSource/Private/AssetFileContextMenu.cpp @@ -1310,16 +1310,10 @@ void FAssetFileContextMenu::GetSelectedAssetSourceFilePaths(TArray& Out { GetSourceFilesArgs.Assets = TConstArrayView(&AssetData, 1); - EAssetCommandResult Result = AssetDefinition->GetSourceFiles(GetSourceFilesArgs, [&OutFilePaths](const FAssetSourceFilesResult& AssetImportInfo) + EAssetCommandResult Result = AssetDefinition->GetSourceFiles(GetSourceFilesArgs, [&OutFilePaths, &OutUniqueSourceFileLabels](const FAssetSourceFilesResult& AssetImportInfo) { OutFilePaths.Add(AssetImportInfo.FilePath); - return true; - }); - - GetSourceFilesArgs.FilePathFormat = EPathUse::Display; - AssetDefinition->GetSourceFiles(GetSourceFilesArgs, [&OutUniqueSourceFileLabels](const FAssetSourceFilesResult& AssetImportInfo) - { - OutUniqueSourceFileLabels.Add(AssetImportInfo.FilePath); + OutUniqueSourceFileLabels.AddUnique(AssetImportInfo.DisplayLabel); return true; }); diff --git a/Engine/Source/Editor/AssetDefinition/Private/AssetDefinition.cpp b/Engine/Source/Editor/AssetDefinition/Private/AssetDefinition.cpp index 4b9f9ba0c27b..ddf7f7ea65e3 100644 --- a/Engine/Source/Editor/AssetDefinition/Private/AssetDefinition.cpp +++ b/Engine/Source/Editor/AssetDefinition/Private/AssetDefinition.cpp @@ -95,6 +95,7 @@ EAssetCommandResult UAssetDefinition::GetSourceFiles(const FAssetSourceFilesArgs for (FAssetImportInfo::FSourceFile& SourceFiles : ImportInfo.SourceFiles) { Result.FilePath = MoveTemp(SourceFiles.RelativeFilename); + Result.DisplayLabel = MoveTemp(SourceFiles.DisplayLabelName); Result.Timestamp = MoveTemp(SourceFiles.Timestamp); Result.FileHash = MoveTemp(SourceFiles.FileHash); diff --git a/Engine/Source/Editor/AssetDefinition/Public/AssetDefinition.h b/Engine/Source/Editor/AssetDefinition/Public/AssetDefinition.h index f9871f4e1b65..3de482716206 100644 --- a/Engine/Source/Editor/AssetDefinition/Public/AssetDefinition.h +++ b/Engine/Source/Editor/AssetDefinition/Public/AssetDefinition.h @@ -141,6 +141,9 @@ struct FAssetSourceFilesResult /** The file path in the format requested. */ FString FilePath; + /** The Label was used to display this source file in the property editor. */ + FString DisplayLabel; + /** The timestamp of the file when it was imported (as UTC). 0 when unknown. */ FDateTime Timestamp;