This is mentioned in issue #19443, #25017, #22758.
It is necessary to solve ASAP, to be able to deal
with project tab at least. Currently only
temporary solution is on route.
Currently only via hack in NbPlaces.projectDesktop and projects xml
layer, is Project node set to Project tab.
As I understand it is necessary to make this:
1) Register the roots in xml in some folder (Nodes/ExplorerRoots ?)
2) Retrieve those roots in NbMainExplorer and work with them
3) For backward compatibility, when loading old roots from maninfest
convert them to the xml.
AFAIK this is not what we actually want to do. There is already an
adequate API for adding Explorer tabs - the Window System API's XML
declaration system. Issue #22758 requests that this actually be done
for the standard tabs; then manifest root installation would still be
deprecated and there would be no direct layer equivalent.
You also need to add menu items to the View menu and redisplay logic,
though, so the actual impl might not be so easy. But there is nothing
privileged about NbMainExplorer's impl, any module could do this I think.
But I feel that having the core not only create Explorer tabs, but
also menu items, automatically from a single layer file is too
high-level and magical and not a great API. I don't agree with the
style of the hack in place for the Project tab now.
Anyway UI/ExplorerRoots/ is a more suitable folder name, probably.
I confused even more now.
I thought the WindowSystem xml API isn't enough, that it just
registers the components to the explorer.
And that the registering of root nodes is needed so the project tab
component gets the proper one.
Yes, the hack is ugly (I marked is as temporary in the sense this
issue should fix it).
But remains the question what the solution of the project node should be?
I guess you have in mind moving the actual project tab component impl
to projects and make it working from there. Right?
"I thought the WindowSystem xml API isn't enough, that it just
registers the components to the explorer." - right, and then you need
one menu action action to display it.
"I guess you have in mind moving the actual project tab component impl
to projects and make it working from there. Right?" - yes, delete it
from core entirely.
Fixed in [trunk]
moved the actual project tab component impl into projects module.
Removed the hack and created actions in menu to represent the explorer
components, the defaults are filesystems, runtime (def in core), and
projects (in projects), other roots are retrieved be ExplorerRootsAction.
issue doesn't apply to new window system - verified