How can I determine what path/folder the user is currently in, in the content browser?
Essentially I would like to have a custom menu command and when fired that command’s code needs to determine the current content browser path.
How can I determine what path/folder the user is currently in, in the content browser?
Essentially I would like to have a custom menu command and when fired that command’s code needs to determine the current content browser path.
I’ve been digging and digging but can’t find any way to do this
I did find that SContentBrowser has a function to get the current path, however that is private so I couldn’t use it even if I could figure out how to get a pointer to the active slate widget, which I can’t. I might be able to get it from the SAssetView widget, maybe, if again I could figure out how to get a pointer to it.
Is there a way to get a pointer to an existing editor slate widget somehow?
For future posterity if anyone else tries to do this. I finally managed to do what I needed, but in a very roundabout way.
The ContentBrowser module has a delegate that fires whenever the content path is changed. GetOnAssetPathChanged()
What I ended up doing was creating a new class derived from UObject whose sole purpose was to monitor that path changed delegate and keep track of what the current path is, and provide it when requested. Like I said very roundabout but it works.
If anyone from Epic sees this though, I would highly suggest that IContentBrowserSingleton have a function that simply returns the current path. The SContentBrowser actually has such a function but it is private.
Seems like this BP node tries to get the current active content browser path:
Thread is old, but here is the way I manage to do it in c++
//** Includes you will need */
#include "ContentBrowserModule.h"
#include "Modules/ModuleManager.h"
#include "IContentBrowserSingleton.h"
/** Get Current Path from Asset Browser */
IContentBrowserSingleton& ContentBrowser = FModuleManager::LoadModuleChecked<FContentBrowserModule>("ContentBrowser").Get();
ContentBrowser.GetCurrentPath();
FString CurrentPath = ContentBrowser.GetCurrentPath();