Description

The Editor Config system appears to support a hierarchy of JSON files (similarly to INI files) in three locations:

  • Engine: "../../../Engine/Config/Editor"
  • Project: "<PROJECT>/Config/Editor"
  • User: "<APPDATA>/Local/UnrealEngine/Editor"

However, it does not seem to behave correctly in some situations when using more than one JSON file in the config hierarchy.

The customer in this case is trying to use a second "FilterBar.json" file in the project config folder (in addition to the default one in the AppData folder, where the Editor saves the last known state of the Content Browser filters upon closing). The customer's intention is to use this second file to provide team members with a common set of filters to be enabled by default for everyone.

The system works reasonably as expected when opening the Editor, and filters from both json files are merged and applied to the Content Browser (but filters specified in both files disappear from the AppData file, which might be unexpected as well).

Now, when the user adds new filters in the Editor, they get added to the AppData file (not the Project file). On the other hand, when the user removes existing filters from the Editor, which were present in the AppData file, that removal is not persisted anywhere. Next time the editor is opened, the filters are back. This unexpected behavior does not happen if the AppData file is the only one present (no FilterBar.json file in the Project config folder).

Steps to Reproduce
  • Open any project in the Editor and setup some filters in the Content Browser (tested on Tab1, not on the Drawer). Add some Custom Filters (like "InUseByLoadedLevels", "ShowRedirectors" and "RecentlyOpened"), and also some type filters (like "Level" and "Static Mesh").
  • Close the editor.
  • Copy file "<APPDATA>/Local/UnrealEngine/Editor/FilterBar.json" into "<PROJECT>/Config/Editor/FilterBar.json"
  • Edit the file in the AppData folder and remove one custom filter from it. For example: "ShowRedirectors".
  • Edit the file in the Project config folder and strip everything from it, except the filter that was removed from the other file. For example:

{
"$type": "FilterBarConfig",
"FilterBars":
{
"ContentBrowserTab1":
{
"CustomFilters":

{ "ShowRedirectors": true }

}
}
}

  • Open the Editor again. All filters from both files should be present in the Content Browser, and enabled/disabled as they were when the Editor was last closed.
  • Add some more filters, close the Editor, and check both JSON files. The one in the AppData folder will have the new filters added. The one in the Project folder will be unchanged.
  • Open the Editor again, the recently added filters will be there. This time remove some filters that are declared in the AppData file.
  • Close the Editor and check both files. They will both be unchanged.
  • Open the Editor again, the recently removed filters will unexpectedly be back.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-195274 in the post.

2
Login to Vote

Backlogged
ComponentUE - Editor - Workflow Systems
Affects Versions5.2
CreatedSep 13, 2023
UpdatedJan 19, 2024