Collection UX improvements

Revamped collection UI:
 - Uses a more modern design.
 - Adds the asset count to the collection view.
 - Adds the collections more prominently in asset tooltips.

Revamped sources panel UI:
 - Added a unified search for all aspects of the sources panel (paths, favorites, and collections).
 - Added a switcher for the paths and collections views, which auto-switches as you browse to paths or collections.
 - Collections are now visible by default, rather than hidden behind a View Option.

Improved Content Browser auto-complete:
 - Now lists collection and meta-data tag names, as well as the old class names.
 - Tokenizes the search terms to allow auto-complete on partial statements.
 - Note: Involves some breaking API changes to SAssetSearchBox to allow more complex filtering and auto-complete rules.

Added scripting API support:
 - Collections can now be created, destroyed, and manipulated via Python or Editor Utilities (editor-only, see the AssetTagsSubsystem API).
 - Collections can be queried both in-editor and at runtime (if cooked).

Added support for optionally "cooking" collections for use at runtime:
 - This only works for static collections, and adds their information to the asset registry meta-data.
 - See the AssetRegistry settings in BaseEngine.ini (bTagAllCollections, CollectionsToIncludeAsTags, and CollectionsToExcludeAsTags).
 - No collections are cooked by default.

#rb Chris.Gagnon

[CL 8847950 by Jamie Dale in Dev-Editor branch]
This commit is contained in:
Jamie Dale
2019-09-18 16:53:27 -04:00
parent dd8efe82ea
commit 3f2ecf7b57
55 changed files with 3143 additions and 905 deletions
@@ -106,6 +106,12 @@ public:
/** Set the GUID of the collection we are parented under */
FORCEINLINE void SetParentCollectionGuid(const FGuid& NewGuid) { ParentCollectionGuid = NewGuid; }
/** Get the color of the collection (if any) */
FORCEINLINE TOptional<FLinearColor> GetCollectionColor() const { return CollectionColor; }
/** Set the color of the collection (if any) */
FORCEINLINE void SetCollectionColor(const TOptional<FLinearColor>& NewColor) { CollectionColor = NewColor; }
/** Returns the file version of the collection */
FORCEINLINE ECollectionVersion::Type GetCollectionVersion() const { return FileVersion; }
@@ -149,6 +155,7 @@ private:
void TakeSnapshot(const FCollection& InCollection)
{
ParentCollectionGuid = InCollection.ParentCollectionGuid;
CollectionColor = InCollection.CollectionColor;
ObjectSet = InCollection.ObjectSet;
DynamicQueryText = InCollection.DynamicQueryText;
}
@@ -156,6 +163,9 @@ private:
/** The GUID of the collection we are parented under */
FGuid ParentCollectionGuid;
/** The color of the collection (if set) */
TOptional<FLinearColor> CollectionColor;
/** The set of objects in the collection. Takes the form PackageName.AssetName. Static collections only. */
TSet<FName> ObjectSet;
@@ -172,6 +182,9 @@ private:
/** The GUID of the collection we are parented under */
FGuid ParentCollectionGuid;
/** The color of the collection (if any) */
TOptional<FLinearColor> CollectionColor;
/** Source control is used if true */
bool bUseSCC;