rerun-io / rerun

Visualize streams of multimodal data. Free, fast, easy to use, and simple to integrate. Built in Rust.
https://rerun.io/
Apache License 2.0
7.04k stars 352 forks source link

The hover card ignores query overrides #7285

Open teh-cmc opened 3 months ago

teh-cmc commented 3 months ago

In the following video, the view has a query override (Range(#42, #42)), which the hover card seems to completely ignore:

https://github.com/user-attachments/assets/a007f7b6-7cf4-4d37-b67a-afd86de267ef

I can confirm this is bugged on at least 0.17 and 0.18, probably even further back.

teh-cmc commented 3 months ago

Neither does the selection panel.

jleibs commented 3 months ago

I think the core problem here is one of representation.

This somewhat falls out of the Item: https://github.com/rerun-io/rerun/blob/e13b389995b5f1faff2ad8ec4bb8e8362e22e18a/crates/viewer/re_viewer_context/src/item.rs#L10-L34

In theory in a simple case like this of Range(#42, #42) this context could be reversed-engineered from knowledge of the SpaceId, but in a longer range, there are in fact multiple instances that could all be hovered and no way to track which is which.

I think this is basically another version of:

teh-cmc commented 3 months ago

Maybe, at a minimum, the hover card and selection panel should always display the query that they are using to display their data.

jleibs commented 3 months ago

In concept I agree, in practice I worry about clutter that's not relevant 90% of the time.

Wumpf commented 2 months ago

The issue is not limited to paths + index. Even when we hover an entity as whole (most commonly because there's only one index), we only show the "data" section of the selection panel.

The Item isn't enum really lacking here either, all of these hovers/selections are DataResult, i.e. we do have the view id and thus all necessary context to query for overrides & defaults.

This rather was a deliberate decision at the time because of simplicity and the entanglement of view sensitive instance paths. It's also a bit unclear how much we would want to show here (all defaults? all fallbacks?)