UContentBrowserDataSource

A common implementation of a "do nothing" data source for the Content Browser.

Choose your operating system:

Windows

macOS

Linux

Inheritance Hierarchy

References

Module

ContentBrowserData

Header

/Engine/Source/Editor/ContentBrowserData/Public/ContentBrowserDataSource.h

Include

#include "ContentBrowserDataSource.h"

Syntax

class UContentBrowserDataSource :
    public UObject,
    public IModularFeature

Remarks

A common implementation of a "do nothing" data source for the Content Browser. You should derive from this type to create new data sources for the Content Browser, overriding any required functionality and validation logic.

Data sources create and operate on FContentBrowserItemData instances that represent the folders and files within each data source. FContentBrowserItemData itself is a concrete type, so extensibility is handled via the IContentBrowserItemDataPayload interface, which can be used to store any data source defined payload data that is required to operate on the underlying thing that the item represents.

This is the only API you need to implement to create a data source, as each FContentBrowserItemData instance knows which data source owns it, and uses that information to pass itself back into the correct data source instance when asked to perform actions or validation. In that sense you can think of this like a C API, where the data source returns an opaque object that is later passed back into the data source functions so that they can interpret the opaque object and provide functionality for it.

Variables

Name Description

Protected variable

FContentBrowser...

 

RootPathVirtualTree

Tree of virtual paths that ends with internal roots. Used for enumeration and conversion of paths.

Functions

Name Description

Public function Virtual

bool

 

AppendItemReference

(
    const FContentBrowserItemData& InI...,
    FString& InOutStr
)

Attempt to append any path references for the given item to the given string.

Public function Virtual

void

 

BuildRootPathVirtualTree()

Rebuilds the tree of virtual paths that ends with internal roots

Public function Virtual

bool

 

BulkCopyItems

(
    TArrayView< const FContentBrowserIt...,
    const FName InDestPath
)

Attempt to copy the given items to the given virtual path.

Public function Virtual

bool

 

BulkDeleteItems

(
    TArrayView< const FContentBrowserIt...
)

Attempt to delete the given items.

Public function Virtual

bool

 

BulkDuplicateItems

(
    TArrayView< const FContentBrowserIt...,
    TArray< FContentBrowserItemData >&...
)

Attempt to synchronously duplicate the given items.

Public function Virtual

bool

 

BulkEditItems

(
    TArrayView< const FContentBrowserIt...
)

Attempt to open the given item for editing.

Public function Virtual

bool

 

BulkMoveItems

(
    TArrayView< const FContentBrowserIt...,
    const FName InDestPath
)

Attempt to move the given items to the given virtual path.

Public function Virtual

bool

 

BulkPreviewItems

(
    TArrayView< const FContentBrowserIt...
)

Attempt to preview the given items.

Public function Virtual

bool

 

BulkSaveItems

(
    TArrayView< const FContentBrowserIt...,
    const EContentBrowserItemSaveFlags ...
)

Attempt to save the given items.

Public function Virtual

bool

 

CanCopyItem

(
    const FContentBrowserItemData& InI...,
    const FName InDestPath,
    FText* OutErrorMsg
)

Query whether the given item is can be copied, optionally providing error information if it cannot.

Public function Virtual

bool

 

CanCreateFolder

(
    const FName InPath,
    FText* OutErrorMsg
)

Query whether a folder can be created at the given virtual path, optionally providing error information if it cannot.

Public function Virtual

bool

 

CanDeleteItem

(
    const FContentBrowserItemData& InI...,
    FText* OutErrorMsg
)

Query whether the given item is can be deleted, optionally providing error information if it cannot.

Public function Virtual

bool

 

CanDuplicateItem

(
    const FContentBrowserItemData& InI...,
    FText* OutErrorMsg
)

Query whether the given item is can be duplicated, optionally providing error information if it cannot.

Public function Virtual

bool

 

CanEditItem

(
    const FContentBrowserItemData& InI...,
    FText* OutErrorMsg
)

Query whether the given item is can be edited, optionally providing error information if it cannot.

Public function Virtual

bool

 

CanMoveItem

(
    const FContentBrowserItemData& InI...,
    const FName InDestPath,
    FText* OutErrorMsg
)

Query whether the given item is can be moved, optionally providing error information if it cannot.

Public function Virtual

bool

 

CanPreviewItem

(
    const FContentBrowserItemData& InI...,
    FText* OutErrorMsg
)

Query whether the given item is can be previewed, optionally providing error information if it cannot.

Public function Virtual

bool

 

CanRenameItem

(
    const FContentBrowserItemData& InI...,
    const FString* InNewName,
    FText* OutErrorMsg
)

Query whether the given item is can be renamed, optionally providing error information if it cannot.

Public function Virtual

bool

 

CanSaveItem

(
    const FContentBrowserItemData& InI...,
    const EContentBrowserItemSaveFlags ...,
    FText* OutErrorMsg
)

Query whether the given item is can be saved, optionally providing error information if it cannot.

Public function Virtual

void

 

CompileFilter

(
    const FName InPath,
    const FContentBrowserDataFilter& I...,
    FContentBrowserDataCompiledFilter&...
)

Given a path and a data filter, produce an optimized filter that can be used to efficiently enumerate items that match it, and also query whether an item would pass it.

Public function Virtual

bool

 

CopyItem

(
    const FContentBrowserItemData& InI...,
    const FName InDestPath
)

Attempt to copy the given item to the given virtual path.

Public function Virtual

TSharedPtr< ...

 

CreateCustomDragOperation

(
    TArrayView< const FContentBrowserIt...
)

Called to provide custom drag and drop handling when starting a drag event.

Public function Virtual

bool

 

CreateFolder

(
    const FName InPath,
    FContentBrowserItemDataTemporaryCon...
)

Attempt to begin the process of asynchronously creating a folder at the given virtual path, populating a temporary item that can be finalized or canceled by the user.

Public function

FContentBrow...

 

CreateVirtualFolderItem

(
    const FName InFolderPath
)

Creates item data for a fully virtual folder

Public function Virtual

bool

 

DeleteItem

(
    const FContentBrowserItemData& InI...
)

Attempt to delete the given item.

Public function Virtual

bool

 

DoesItemPassFilter

(
    const FContentBrowserItemData& InI...,
    const FContentBrowserDataCompiledFi...
)

Query whether the given item passes the given compiled filter.

Public function Virtual

bool

 

DuplicateItem

Attempt to begin the process of asynchronously duplicating the given item, populating a temporary item that can be finalized or canceled by the user.

Public function Virtual

bool

 

EditItem

(
    const FContentBrowserItemData& InI...
)

Attempt to open the given item for editing.

Public function Virtual

void

 

EnumerateItemsAtPath

(
    const FName InPath,
    const EContentBrowserItemTypeFilter...,
    TFunctionRef< bool...
)

Enumerate items that have the given virtual path, optionally filtering by type, and invoking the callback for each matching item.

Public function Virtual

bool

 

EnumerateItemsAtPaths

(
    const TArrayView< FContentBrowserIt...,
    const EContentBrowserItemTypeFilter...,
    TFunctionRef< bool...
)

Enumerate the items (folders and/or files) that exist at the given content browser paths.

Public function Virtual

bool

 

EnumerateItemsForObjects

(
    const TArrayView< UObject* > I...,
    TFunctionRef< bool...
)

Enumerate the items (files) that exist for the given objects.

Public function Virtual

void

 

EnumerateItemsMatchingFilter

(
    const FContentBrowserDataCompiledFi...,
    TFunctionRef< bool...
)

Enumerate items that match the given compiled filter, invoking the callback for each matching item.

Public function Virtual

bool

 

GetItemAttribute

(
    const FContentBrowserItemData& InI...,
    const bool InIncludeMetaData,
    const FName InAttributeKey,
    FContentBrowserItemDataAttributeVal...
)

Query the value of the given attribute on the given item.

Public function Virtual

bool

 

GetItemAttributes

(
    const FContentBrowserItemData& InI...,
    const bool InIncludeMetaData,
    FContentBrowserItemDataAttributeVal...
)

Query the values of all attributes on the given item.

Public function Virtual

bool

 

GetItemPhysicalPath

(
    const FContentBrowserItemData& InI...,
    FString& OutDiskPath
)

Query the physical (on-disk) path of the given item.

Public function Static

FName

 

GetModularFeatureTypeName()

Get the name used when registering data source modular feature instances for use with the Content Browser Data Subsystem.

Public function Const

const FConte...

 

GetRootPathVirtualTree()

Public function Virtual

bool

 

HandleDragDropOnItem

(
    const FContentBrowserItemData& InI...,
    const FDragDropEvent& InDragDropEv...
)

Called to provide custom drag and drop handling when a drag event is dropped on an item.

Public function Virtual

bool

 

HandleDragEnterItem

(
    const FContentBrowserItemData& InI...,
    const FDragDropEvent& InDragDropEv...
)

Called to provide custom drag and drop handling when a drag event enters an item, such as performing validation and reporting error information.

Public function Virtual

bool

 

HandleDragLeaveItem

(
    const FContentBrowserItemData& InI...,
    const FDragDropEvent& InDragDropEv...
)

Called to provide custom drag and drop handling when a drag event leaves an item, such as clearing any error information set during earlier validation.

Public function Virtual

bool

 

HandleDragOverItem

(
    const FContentBrowserItemData& InI...,
    const FDragDropEvent& InDragDropEv...
)

Called to provide custom drag and drop handling while a drag event is over an item, such as performing validation and reporting error information.

Public function

void

 

Initialize

(
    const bool InAutoRegister
)

Initialize this data source instance, optionally registering it once the initialization has finished (

Public function Virtual

bool

 

IsDiscoveringItems

(
    FText* OutStatus
)

Query whether this data source instance is currently discovering content, and retrieve an optional status message that can be shown in the UI.

Public function Virtual

bool

 

IsFolderVisibleIfHidingEmpty

(
    const FName InPath
)

Query whether the given virtual folder should be visible if the UI is asking to hide empty content folders.

Public function Const

bool

 

IsInitialized()

True if this data source is currently initialized.

Public function Virtual

bool

 

IsItemDirty

(
    const FContentBrowserItemData& InI...
)

Query whether the given item is considered dirty (ie, has unsaved changes).

Public function Const

bool

 

IsVirtualPathUnderMountRoot

(
    const FName InPath
)

Test whether the given virtual path is under the virtual mount root that was passed to Initialize.

Public function Virtual

bool

 

Legacy_TryConvertAssetDataToVirtualPath

(
    const FAssetData& InAssetData,
    const bool InUseFolderPaths,
    FName& OutPath
)

Attempt to convert the given asset data to a virtual path associated with this data source.

Public function Virtual

bool

 

Legacy_TryConvertPackagePathToVirtualPath

(
    const FName InPackagePath,
    FName& OutPath
)

Attempt to convert the given package path to a virtual path associated with this data source.

Public function Virtual

bool

 

Legacy_TryGetAssetData

(
    const FContentBrowserItemData& InI...,
    FAssetData& OutAssetData
)

Attempt to retrieve the asset data associated with the given item.

Public function Virtual

bool

 

Legacy_TryGetPackagePath

(
    const FContentBrowserItemData& InI...,
    FName& OutPackagePath
)

Attempt to retrieve the package path associated with the given item.

Public function Virtual

bool

 

MoveItem

(
    const FContentBrowserItemData& InI...,
    const FName InDestPath
)

Attempt to move the given item to the given virtual path.

Protected function

void

 

NotifyItemDataRefreshed()

Notify a wholesale item data update, for data sources that can't provide delta-updates.

Public function Virtual

bool

 

PreviewItem

(
    const FContentBrowserItemData& InI...
)

Attempt to preview the given item.

Public function Virtual

bool

 

PrioritizeSearchPath

(
    const FName InPath
)

If possible, attempt to prioritize content discovery for the given virtual path.

Protected function

void

 

QueueItemDataUpdate

(
    FContentBrowserItemDataUpdate&& In...
)

Queue an incremental item data update, for data sources that can provide delta-updates.

Public function

void

 

RefreshVirtualPathTreeIfNeeded()

Call after a change that could affect rules of virtual path generation.

Public function

void

 

RegisterDataSource()

Register this data source instance for use with the Content Browser Data Subsystem.

Public function Virtual

bool

 

RenameItem

(
    const FContentBrowserItemData& InI...,
    const FString& InNewName,
    FContentBrowserItemData& OutNewIte...
)

Attempt to rename the given item.

Protected function

void

 

RootPathAdded

(
    const FStringView InInternalPath
)

Adds internal root path to virtual path tree

Protected function

void

 

RootPathRemoved

(
    const FStringView InInternalPath
)

Removes internal root path from virtual path tree

Public function Virtual

bool

 

SaveItem

(
    const FContentBrowserItemData& InI...,
    const EContentBrowserItemSaveFlags ...
)

Attempt to save the given item.

Public function

void

 

SetDataSink

(
    IContentBrowserItemDataSink* I...
)

Set the data sink that can be used to communicate with the Content Browser Data Subsystem.

Public function

void

 

SetVirtualPathTreeNeedsRebuild()

Sets a flag to force rebuild of virtual path tree with next call to RefreshVirtualPathTreeIfNeeded()

Public function Virtual

void

 

Shutdown()

Shutdown this data source instance.

Public function Virtual

void

 

Tick

(
    const float InDeltaTime
)

Tick this data source instance.

Public function Virtual

bool

 

TryConvertInternalPathToVirtual

(
    const FName InInternalPath,
    FName& OutPath
)

Convert an internal path to its virtualized form, based on the mount root set on this data source.

Public function Const

EContentBrow...

 

TryConvertVirtualPath

(
    const FStringView InPath,
    FStringBuilderBase& OutPath
)

Attempt to convert the given virtual path @note Does test if virtual portion of path exists @note Does not test if internal portion of path exists

Public function Const

EContentBrow...

 

TryConvertVirtualPath

(
    const FStringView InPath,
    FString& OutPath
)

Attempt to convert the given virtual path @note Does test if virtual portion of path exists @note Does not test if internal portion of path exists

Public function Const

EContentBrow...

 

TryConvertVirtualPath

(
    const FStringView InPath,
    FName& OutPath
)

Attempt to convert the given virtual path @note Does test if virtual portion of path exists @note Does not test if internal portion of path exists

Public function Const

EContentBrow...

 

TryConvertVirtualPath

(
    const FName InPath,
    FName& OutPath
)

Attempt to convert the given virtual path @note Does test if virtual portion of path exists @note Does not test if internal portion of path exists

Public function Virtual

bool

 

TryConvertVirtualPathToInternal

(
    const FName InPath,
    FName& OutInternalPath
)

Convert a virtualized path to its internal form, based on the mount root set on this data source.

Public function Virtual

bool

 

TryGetCollectionId

(
    const FContentBrowserItemData& InI...,
    FName& OutCollectionId
)

Attempt to retrieve the identifier that should be used when storing a reference to the given item within a collection.

Public function

void

 

UnregisterDataSource()

Unregister this data source instance from the Content Browser Data Subsystem.

Public function Virtual

bool

 

UpdateThumbnail

(
    const FContentBrowserItemData& InI...,
    FAssetThumbnail& InThumbnail
)

Attempt to update the thumbnail associated with the given item.

Overridden from UObject

Name Description

Public function Virtual

void

 

BeginDestroy()

Called before destroying the object.