You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Headers are updated to contain any missing #includes needed to compile and #includes are sorted. Nothing is removed. #ushell-cherrypick of 21065253 by bryan.sefcik #jira #preflight 62d5b3e91062f2e63014598e #ROBOMERGE-AUTHOR: bryan.sefcik #ROBOMERGE-SOURCE: CL 21152630 via CL 21156388 via CL 21157044 #ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824) [CL 21181817 by bryan sefcik in ue5-main branch]
141 lines
4.2 KiB
C++
141 lines
4.2 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "Containers/StringFwd.h"
|
|
#include "Containers/UnrealString.h"
|
|
#include "ContentBrowserDataSubsystem.h"
|
|
#include "CoreMinimal.h"
|
|
#include "HAL/Platform.h"
|
|
#include "Kismet/BlueprintFunctionLibrary.h"
|
|
#include "Misc/AssertionMacros.h"
|
|
#include "UObject/NameTypes.h"
|
|
#include "UObject/ObjectMacros.h"
|
|
#include "UObject/UObjectGlobals.h"
|
|
#include "UObject/UnrealNames.h"
|
|
|
|
#include "ContentBrowserItemPath.generated.h"
|
|
|
|
class UObject;
|
|
struct FFrame;
|
|
|
|
/**
|
|
* Hold multiple versions of a path as FNames
|
|
*
|
|
* Path conversion each time Set is called
|
|
*/
|
|
USTRUCT(BlueprintType, meta=(HasNativeBreak="/Script/ContentBrowserData.ContentBrowserItemPathExtensions.BreakContentBrowserItemPath", HasNativeMake="/Script/ContentBrowserData.ContentBrowserItemPathExtensions.MakeContentBrowserItemPath"))
|
|
struct CONTENTBROWSERDATA_API FContentBrowserItemPath
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
FContentBrowserItemPath();
|
|
|
|
FContentBrowserItemPath(const FName InVirtualPath, const FName InInternalPath)
|
|
: VirtualPath(InVirtualPath)
|
|
, InternalPath(InInternalPath)
|
|
{
|
|
check(!VirtualPath.IsNone());
|
|
check(!InternalPath.IsNone());
|
|
}
|
|
|
|
FContentBrowserItemPath(const FStringView InPath, const EContentBrowserPathType InPathType);
|
|
FContentBrowserItemPath(const TCHAR* InPath, const EContentBrowserPathType InPathType);
|
|
FContentBrowserItemPath(const FName InPath, const EContentBrowserPathType InPathType);
|
|
|
|
bool operator==(const FContentBrowserItemPath& Other) const
|
|
{
|
|
return VirtualPath == Other.VirtualPath && InternalPath == Other.InternalPath;
|
|
}
|
|
|
|
/**
|
|
* Set the path being stored
|
|
*/
|
|
void SetPathFromString(const FStringView InPath, const EContentBrowserPathType InPathType);
|
|
|
|
/**
|
|
* Set the path being stored
|
|
*/
|
|
void SetPathFromName(const FName InPath, const EContentBrowserPathType InPathType);
|
|
|
|
/**
|
|
* Returns virtual path as FName (eg, "/All/Plugins/PluginA/MyFile").
|
|
*/
|
|
FName GetVirtualPathName() const;
|
|
|
|
/**
|
|
* Returns internal path if there is one (eg,. "/PluginA/MyFile").
|
|
*/
|
|
FName GetInternalPathName() const;
|
|
|
|
/**
|
|
* Returns virtual path as newly allocated FString (eg, "/All/Plugins/PluginA/MyFile").
|
|
*/
|
|
FString GetVirtualPathString() const;
|
|
|
|
/**
|
|
* Returns internal path as newly allocated FString if there is one or empty FString (eg,. "/PluginA/MyFile").
|
|
*/
|
|
FString GetInternalPathString() const;
|
|
|
|
/**
|
|
* Returns true if there is an internal path
|
|
*/
|
|
bool HasInternalPath() const;
|
|
|
|
private:
|
|
/** Path as virtual (eg, "/All/Plugins/PluginA/MyFile") */
|
|
FName VirtualPath;
|
|
|
|
/** Path as internal (eg,. "/PluginA/MyFile") */
|
|
FName InternalPath;
|
|
};
|
|
|
|
UCLASS()
|
|
class UContentBrowserItemPathExtensions : public UBlueprintFunctionLibrary
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
|
|
/**
|
|
* Set the path being stored
|
|
*/
|
|
UFUNCTION(BlueprintCallable, Category = "Content Browser", meta = (ScriptMethod))
|
|
static void SetPath(UPARAM(ref) FContentBrowserItemPath& ItemPath, const FName InPath, const EContentBrowserPathType InPathType)
|
|
{
|
|
ItemPath.SetPathFromName(InPath, InPathType);
|
|
}
|
|
|
|
/**
|
|
* Returns virtual path as FName (eg, "/All/Plugins/PluginA/MyFile").
|
|
*/
|
|
UFUNCTION(BlueprintCallable, Category = "Content Browser", meta = (ScriptMethod))
|
|
static FName GetVirtualPath(const FContentBrowserItemPath& ItemPath)
|
|
{
|
|
return ItemPath.GetVirtualPathName();
|
|
}
|
|
|
|
/**
|
|
* Returns internal path if there is one (eg,. "/PluginA/MyFile").
|
|
*/
|
|
UFUNCTION(BlueprintCallable, Category = "Content Browser", meta = (ScriptMethod))
|
|
static FName GetInternalPath(const FContentBrowserItemPath& ItemPath)
|
|
{
|
|
return ItemPath.HasInternalPath() ? ItemPath.GetInternalPathName() : NAME_None;
|
|
}
|
|
|
|
UFUNCTION(BlueprintPure, Category = "Content Browser", meta = (Keywords = "construct build", NativeMakeFunc))
|
|
static FContentBrowserItemPath MakeContentBrowserItemPath(const FName InPath, const EContentBrowserPathType InPathType)
|
|
{
|
|
return FContentBrowserItemPath(InPath, InPathType);
|
|
}
|
|
|
|
UFUNCTION(BlueprintPure, Category = "Content Browser", meta = (NativeBreakFunc))
|
|
static void BreakContentBrowserItemPath(const FContentBrowserItemPath& ItemPath, FName& VirtualPath, FName& InternalPath)
|
|
{
|
|
VirtualPath = ItemPath.GetVirtualPathName();
|
|
InternalPath = ItemPath.HasInternalPath() ? ItemPath.GetInternalPathName() : NAME_None;
|
|
}
|
|
};
|