Change Asset Browser logic to utilize folder heirarchy instead of strict Asset Type filtration

Added navigation history to AB, as well as ability to navigate via forward and backward buttons and breadcrumb buttons
Added folder 'asset type', allowing you to create, rename, delete and move folders via the asset browser for better organization
Adjusted various behaviors to work with the address-driven navigation/organization of the AB
Expanded visibility options for the AB and integrated them into editor settings so they are retained
Added Search field for searching the folder structure, in addition to the existing preview tiles search
Adjusted drag-n-drop behavior of the platform code so it accepts dropping folders
Added ability to dump active PostEffects list to see what is currently running
Added ability to mark specific items in GuiTreeViewCtrl as hidden
Made reflection probe bounds boxes translucent rather than wireframe to improve editing visibility
Added expanded loose file references to LevelAsset for common companion files like decals and posteffect scrips
Added editor setting for Editor Layout Mode, allowing you to set the editor into 'Modern' layout.
Added editor settings to set default import config ruleset, and also ability to set auto-import. If both of these are set, then as long as the importing assets have no errors, they will auto-process and the user doesn't need to manually check and confirm them via the asset import window
This commit is contained in:
Areloch 2019-10-20 02:47:15 -05:00
parent e621e362f4
commit cba14c035f
33 changed files with 1633 additions and 800 deletions

View file

@ -1176,6 +1176,10 @@ void GuiTreeViewCtrl::_buildItem( Item* item, U32 tabLevel, bool bForceFullUpdat
else
item->mState.clear( Item::Filtered );
//If the item should be hidden from view, check now
if (mHiddenItemsList.contains(item->mId))
item->mState.set(Item::Filtered);
// Is this the root item?
const bool isRoot = item == mRoot;
@ -4477,6 +4481,18 @@ void GuiTreeViewCtrl::setItemFilterException(U32 item, bool isExempted)
}
}
void GuiTreeViewCtrl::setItemHidden(U32 item, bool isHidden)
{
if (isHidden)
{
mHiddenItemsList.push_back(item);
}
else
{
mHiddenItemsList.remove(item);
}
}
void GuiTreeViewCtrl::reparentItems(Vector<Item*> selectedItems, Item* newParent)
{
for (S32 i = 0; i < selectedItems.size(); i++)
@ -5651,6 +5667,26 @@ DefineEngineMethod(GuiTreeViewCtrl, setItemFilterException, void, (U32 item, boo
{
object->setItemFilterException(item, isExempt);
}
DefineEngineMethod(GuiTreeViewCtrl, setItemHidden, void, (U32 item, bool hidden), (0, true),
"Set the pattern by which to filter items in the tree. Only items in the tree whose text "
"matches this pattern are displayed.\n\n"
"@param pattern New pattern based on which visible items in the tree should be filtered. If empty, all items become visible.\n\n"
"@see getFilterText\n"
"@see clearFilterText")
{
object->setItemHidden(item, hidden);
}
DefineEngineMethod(GuiTreeViewCtrl, clearHiddenItems, void, (),,
"Set the pattern by which to filter items in the tree. Only items in the tree whose text "
"matches this pattern are displayed.\n\n"
"@param pattern New pattern based on which visible items in the tree should be filtered. If empty, all items become visible.\n\n"
"@see getFilterText\n"
"@see clearFilterText")
{
object->clearHiddenItems();
}
//-----------------------------------------------------------------------------
DefineEngineMethod( GuiTreeViewCtrl, clearFilterText, void, (),,