Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

First draft of generic UI for space view properties #6237

Closed
abey79 opened this issue May 6, 2024 · 0 comments · Fixed by #6492
Closed

First draft of generic UI for space view properties #6237

abey79 opened this issue May 6, 2024 · 0 comments · Fixed by #6492
Assignees
Labels
ui concerns graphical user interface

Comments

@abey79
Copy link
Contributor

abey79 commented May 6, 2024

The goal is to introduce a new section in the space view/data result selection panel with a list-item-based UI for all properties. The idea is to prototype/lay the ground work for a fully generic poperty-to-list-time infrastructure to replace the current bespoke UI code.

This first take will likely be highly experimental, so behind a debug-only feature flag.

Mid-term Vision

  • For "simple" property (e.g. that map to a single value, e.g. a bool), the corresponding non, hierarchical top-level list item should be generically implemented
  • For "composite" properties made of multiple "simple" component, a hierarchy of a top-level item with sub-items for each components should be generically implemented
  • For very complex properties (e.g. maybe Visible Time Range), a child UI would be manually implemented. This could be done either with sub-list-items, or with a complete bespoke UI code. Both would appear below a top-level list item with summary, in a way that would be consistent with all properties.

Initial take

Build semi-generic (if at all) code for (at least part of) existing properties, in a dedicated section behind a feature flag. The existing UI would remain as is for as long as needed.

@abey79 abey79 added the ui concerns graphical user interface label May 6, 2024
@abey79 abey79 self-assigned this May 6, 2024
Wumpf added a commit that referenced this issue May 22, 2024
…gend` (#6400)

### What

* Part of #6237 

What's happening:
* edit uis for:
   * corner2d
   * visible
* introduce generic method for drawing ui for a view property

Next steps in this area:
* improve edit ui overall
    * make it easier to implement (with less boilerplate)
* make default providing easier & more powerful (as described in passing
there)
* do this for more/all properties

### Checklist
* [x] I have read and agree to [Contributor
Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
the [Code of
Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
* [x] I've included a screenshot or gif (if applicable)
* [x] I have tested the web demo (if applicable):
* Using examples from latest `main` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6400?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
* Using full set of examples from `nightly` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6400?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json)
* [x] The PR title and labels are set such as to maximize their
usefulness for the next release's CHANGELOG
* [x] If applicable, add a new check to the [release
checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)!

- [PR Build Summary](https://build.rerun.io/pr/6400)
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)

To run all checks from `main`, comment on the PR with `@rerun-bot
full-check`.
@Wumpf Wumpf self-assigned this May 22, 2024
Wumpf added a commit that referenced this issue May 23, 2024
…se it in blueprint property ui (#6413)

### What

* Part of  #6237
* I think the "only" part left now is to use this for all blueprint
properties
       *  the tricky bit here is that this is dependent on  #4194

This creates an tight nit & generic coupling from our type definitions
to the ui! This is to be used in all blueprint properties, so far used
on `PlotLegend` only.
<img width="320" alt="image"
src="https://github.com/rerun-io/rerun/assets/1220815/405b6ecc-2db1-4ad5-9b3c-aad96c8ad074">

Drawbacks:
* lower snake case because that's what our fields look like - we could
change that easily but there's some value to that because that's what
all SDKs use as field names. Very much open for discussion!
* some parts of the doc strings might be weird outside of the context of
the ui, but I can live with that

Future stuff:
* we could very very easily now also add reference doc links in there
via some linking mechanism (viewer could choose depending on preference
or source sdk)

### Checklist
* [x] I have read and agree to [Contributor
Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
the [Code of
Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
* [x] I've included a screenshot or gif (if applicable)
* [x] I have tested the web demo (if applicable):
* Using examples from latest `main` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6413?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
* Using full set of examples from `nightly` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6413?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json)
* [x] The PR title and labels are set such as to maximize their
usefulness for the next release's CHANGELOG
* [x] If applicable, add a new check to the [release
checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)!

- [PR Build Summary](https://build.rerun.io/pr/6413)
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)

To run all checks from `main`, comment on the PR with `@rerun-bot
full-check`.
Wumpf added a commit that referenced this issue May 28, 2024
… implemented property ui (#6417)

### What

* Part of #6237 

See title :)

This allows to reset the value either to the default blueprint or - via
context menu - to empty!



https://github.com/rerun-io/rerun/assets/1220815/2caa3a44-d06f-4828-8d4b-e424d8abe238



Future work:
* write this value to the default blueprint (via context menu as well
for now!)
* some visual language indicating the difference between
from-active-only/from-default/unset

### Checklist
* [x] I have read and agree to [Contributor
Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
the [Code of
Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
* [x] I've included a screenshot or gif (if applicable)
* [x] I have tested the web demo (if applicable):
* Using examples from latest `main` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6417?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
* Using full set of examples from `nightly` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6417?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json)
* [x] The PR title and labels are set such as to maximize their
usefulness for the next release's CHANGELOG
* [x] If applicable, add a new check to the [release
checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)!

- [PR Build Summary](https://build.rerun.io/pr/6417)
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)

To run all checks from `main`, comment on the PR with `@rerun-bot
full-check`.
Wumpf added a commit that referenced this issue May 31, 2024
### What

... at least within required/recommended/requried blocks.
This fixes an ordering issue in (upcoming) generic ui, but has no effect
on existing ones yet, making this part of
* #6237

(pictures from a not pr'ed branch)

Before:
<img width="384" alt="image"
src="https://github.com/rerun-io/rerun/assets/1220815/5ce9af88-4a9a-4a74-b2bc-0d3d794dc70e">

After:
<img width="382" alt="image"
src="https://github.com/rerun-io/rerun/assets/1220815/983eccc9-0773-4c85-b64d-c6705aad3cb4">


### Checklist
* [x] I have read and agree to [Contributor
Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
the [Code of
Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
* [x] I've included a screenshot or gif (if applicable)
* [x] I have tested the web demo (if applicable):
* Using examples from latest `main` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6468?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
* Using full set of examples from `nightly` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6468?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json)
* [x] The PR title and labels are set such as to maximize their
usefulness for the next release's CHANGELOG
* [x] If applicable, add a new check to the [release
checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)!

- [PR Build Summary](https://build.rerun.io/pr/6468)
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)

To run all checks from `main`, comment on the PR with `@rerun-bot
full-check`.
Wumpf added a commit that referenced this issue Jun 3, 2024
### What

* Part of #6237
* New mechanism to query view properties while using fallback providers
* Add view state to information that is available to fallback providers

(I have usages for this lined up in various states of in progress, but
it all uses this as its backbone, so I figured it makes for a good
separate PR)

### Checklist
* [x] I have read and agree to [Contributor
Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
the [Code of
Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
* [x] I've included a screenshot or gif (if applicable)
* [x] I have tested the web demo (if applicable):
* Using examples from latest `main` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6479?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
* Using full set of examples from `nightly` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6479?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json)
* [x] The PR title and labels are set such as to maximize their
usefulness for the next release's CHANGELOG
* [x] If applicable, add a new check to the [release
checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)!

- [PR Build Summary](https://build.rerun.io/pr/6479)
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)

To run all checks from `main`, comment on the PR with `@rerun-bot
full-check`.
Wumpf added a commit that referenced this issue Jun 3, 2024
### What

* Part of #6237
* based on #6479

First practical use of automatic fallbacks for view properties that is
applied both on query & ui: Query for `background` now goes through the
new `ViewProperty` utility, ui now renders with the generic view
property ui method.


Note how the system picks the right defaults depending on the context
despite this being the same archetype:

https://github.com/rerun-io/rerun/assets/1220815/1f072048-937a-4721-b526-7bed9433b61b


### Checklist
* [x] I have read and agree to [Contributor
Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
the [Code of
Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
* [x] I've included a screenshot or gif (if applicable)
* [x] I have tested the web demo (if applicable):
* Using examples from latest `main` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6480?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
* Using full set of examples from `nightly` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6480?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json)
* [x] The PR title and labels are set such as to maximize their
usefulness for the next release's CHANGELOG
* [x] If applicable, add a new check to the [release
checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)!

- [PR Build Summary](https://build.rerun.io/pr/6480)
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)

To run all checks from `main`, comment on the PR with `@rerun-bot
full-check`.
Wumpf added a commit that referenced this issue Jun 4, 2024
…neric ui (#6485)

### What

* Part of #6237

Easier demonstrated than described:

https://github.com/rerun-io/rerun/assets/1220815/11fb9b5a-3276-4391-9e7c-1b6b7fce2bd7

* ⚠️ api breaking change: renamed parameter `lock_range_during_zoom` to
`zoom_lock`
* otherwise it's really clunky in the ui, which hints that this is too
long to begin with!
* y_range is now directly used to reflect whats in the time series plot
* use new generic ui for all display & reset needs



### Checklist
* [x] I have read and agree to [Contributor
Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
the [Code of
Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
* [x] I've included a screenshot or gif (if applicable)
* [x] I have tested the web demo (if applicable):
* Using examples from latest `main` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6485?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
* Using full set of examples from `nightly` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6485?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json)
* [x] The PR title and labels are set such as to maximize their
usefulness for the next release's CHANGELOG
* [x] If applicable, add a new check to the [release
checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)!

- [PR Build Summary](https://build.rerun.io/pr/6485)
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)

To run all checks from `main`, comment on the PR with `@rerun-bot
full-check`.
@Wumpf Wumpf closed this as completed in 9aa6645 Jun 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ui concerns graphical user interface
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants