Editor: Unity-style file explorer in the Project panel

The last item of the Stage-10 editor-UX batch. The Project panel's
fixed typed-folder listing becomes a real file explorer over assets/:

- breadcrumbs + double-click folder navigation, " New Folder", inline
  rename rows, context menus (Open / Rename / Delete), drag a row onto
  a folder (or "..") to move it, drag files in from the OS to import
  into the current folder, double-click to open (scripts via the
  external-editor flow, others via xdg-open).
- All behavior lives egui-free in editor/src/explorer.rs (listing,
  breadcrumbs, name validation/uniquing, create/rename/move/delete/
  import) and is unit-tested; the shell only renders it. Renames and
  moves ride the uid-preserving AssetDatabase ops so saved AssetRefs
  keep resolving; unregistered files fall back to fs::rename. Folders
  delete only when empty — no recursive asset deletion.
- Engine: AssetDatabase::scan now walks the WHOLE assets/ tree instead
  of just the typed folders, so assets organised into custom folders
  register and survive rescans (covered by updated unit tests).

File operations act immediately and bypass the undo stack, like the
hierarchy's structural edits. GUI piece — needs an eye-check before
promotion to main.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Homer
2026-07-10 21:01:05 +02:00
parent 48003ffea4
commit c47efa876f
6 changed files with 941 additions and 81 deletions
+6
View File
@@ -676,6 +676,12 @@ console)**. Each is GUI → `dev` + eye-check.
menus, breadcrumb navigation. The `AssetDatabase` already tracks arbitrary
relative paths, so this is a UI/interaction layer over it (re-classify by
folder still applies; loose files fall back to extension).
**🚧 On `dev` (2026-07-10), awaiting eye-check**: breadcrumbs + folder
navigation, New Folder, rename/delete context menus (folders delete only when
empty), drag-to-move rows, OS drag-in import, double-click-to-open. Behavior
layer is unit-tested (`editor/src/explorer.rs`); renames/moves ride the new
uid-preserving `AssetDatabase` file ops, and `scan` now walks the whole
`assets/` tree so custom folders survive rescans.
- **Proper file/path opener for New/Open Project.** Today both take a raw typed
path, which the maintainer confirms "is very hard to use". Wanted: a native
file/folder picker (a `rfd`-style dialog, working on Wayland + X11) and/or a