Add support for drag-and-drop in blueprint tree#4910
Conversation
- `ViewportBlueprint`: added a bunch of tree-walking search functions - updated blueprint tree ui - fully isolated drop logic in a no-dependency file TODO: - ListItem: dont show icons when a drag is ongoing - emit Move tree action - highlight receiving container - remove arrow for root container
TODO: - ListItem: dont show icons when a drag is ongoing - highlight receiving container - remove arrow for root container - back port re_::drag_and_drop::* to re_ui_example
TODO: - highlight receiving container - remove arrow for root container - back port re_::drag_and_drop::* to re_ui_example
TODO: - remove arrow for root container - back port re_::drag_and_drop::* to re_ui_example
TODO: - drag in one-self is not possible - remove arrow for root container - back port re_::drag_and_drop::* to re_ui_example
TODO: - some bugs when self dragging - remove arrow for root container - back port re_::drag_and_drop::* to re_ui_example - check after last items
# Conflicts: # crates/re_space_view_text_log/Cargo.toml
TODO: - check area after last items
TODO: - check area after last items
This one seems like it should be turned into an issue / baked into another issue so we don't drop it |
Yes, I opened one and forgot to link it. I'm actually using this tracking issue as "ground truth" todo list: |
|
Excited for this! Such a huge UX win already |
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
| @@ -0,0 +1,320 @@ | |||
| //! Helpers for drag and drop support for reordering hierarchical lists. | |||
There was a problem hiding this comment.
I really like that this is a completely separate module, with no deps. We could consider moving it to egui; then it could be used for emilk/egui#3903 as well
There was a problem hiding this comment.
Yes, that's kind of what I had in mind. I would wait a little bit though and see how it crystallise in the short/mid term.
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
# Conflicts: # Cargo.lock # Cargo.toml
What
This PR adds support for drag-and-drop in the blueprint tree.
drag_and_drop_4.mp4
It has the following known limitations/future work:
Checklist
mainbuild: app.rerun.ionightlybuild: app.rerun.io