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

Add contextual menu to blueprint tree for common actions #4823

Closed
nikolausWest opened this issue Jan 16, 2024 · 1 comment
Closed

Add contextual menu to blueprint tree for common actions #4823

nikolausWest opened this issue Jan 16, 2024 · 1 comment
Assignees
Labels
enhancement New feature or request ui concerns graphical user interface
Milestone

Comments

@nikolausWest
Copy link
Member

To make it easier to add blueprint content in the UI, we should introduce context menu on right click in the blueprint with options:

Container is clicked

Single selection

  • Add View
  • Add Container
  • Put in new container
  • Hide
  • Remove

Multiple selections

  • Put in new container
  • Hide
  • Remove

View is selected

Single selection

  • Add Entity
  • Put in new a container
  • Hide
  • Remove

Multiple selections

  • Put in new a container
  • Hide
  • Remove

Views and containers selected

(same if all entities of a selected view are selected)

  • Put in new container
  • Hide
  • Remove

Entity is selected

(Same for single or multiple entities)

  • Add to new view
  • Hide
  • Remove

Entities and views and/or containers selected

  • Hide
  • Remove
@nikolausWest nikolausWest added enhancement New feature or request ui concerns graphical user interface labels Jan 16, 2024
@nikolausWest nikolausWest added this to the 0.13 milestone Jan 16, 2024
@abey79 abey79 self-assigned this Jan 30, 2024
@abey79 abey79 changed the title Add to blueprint with context menu Add contextual menu to blueprint tree for common actions Jan 30, 2024
@nikolausWest nikolausWest modified the milestones: 0.13, Triage Feb 5, 2024
abey79 added a commit that referenced this issue Feb 15, 2024
### What

* Part of #4823

This PR is the first of a series to implement context menus in the
Blueprint Tree. Here we setup the basic scaffolding and implement some
basic actions:
- Add SV
- Add container
- Show/hide
- Remove

<img width="444" alt="image"
src="https://github.com/rerun-io/rerun/assets/49431240/58ad8d62-ea69-47c6-8e88-844c611c4832">

<br/>
<br/>

The selection is currently ignore and the actions only apply to the
clicked item. TODO in future PRs:
- improved (multi-)selection handling
- additional actions
- entity level manipulations
- use ListItem instead of label/WidgetText
- better folder structure
- release checklist update

### 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 newly built examples:
[app.rerun.io](https://app.rerun.io/pr/5163/index.html)
* Using examples from latest `main` build:
[app.rerun.io](https://app.rerun.io/pr/5163/index.html?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
* Using full set of examples from `nightly` build:
[app.rerun.io](https://app.rerun.io/pr/5163/index.html?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/5163)
- [Docs
preview](https://rerun.io/preview/4b5e47083d3aa129352f0fbec9a74db500e20f16/docs)
<!--DOCS-PREVIEW-->
- [Examples
preview](https://rerun.io/preview/4b5e47083d3aa129352f0fbec9a74db500e20f16/examples)
<!--EXAMPLES-PREVIEW-->
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)
abey79 added a commit that referenced this issue Feb 16, 2024
### What

* Follow up to #5163
* Part of #4823

<img width="260" alt="image"
src="https://github.com/rerun-io/rerun/assets/49431240/f911f4ca-a33e-4e7a-85a9-80f126148be4">
<br/>
<br/>

This PR adds support for multiple selection with context menus in
blueprint view.

The selection logic is as follows:
- If the (right-)clicked item is part of the selection, the context menu
actions apply to the entire selection.
- Otherwise, the selection is set to the clicked item, and the context
menu actions apply to that item only.

This PR doesn't introduce any new action, but adjust the existing ones
to handle multi-selection:
- If only space views and/or containers are selected, the visibility
toggle and Remove actions are offered. The visible toggle will offer to
show if one or more items are currently hidden, and hide if all are
currently visible. If the root container is part of the multi-selection,
its is ignored by those actions.
- The "Add SV/Container" actions are offered only if exactly one
container item is selected.

TODO in future PR:
- additional actions
- entity level manipulations
- use ListItem instead of label/WidgetText
- better folder structure
- release checklist update

### 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 newly built examples:
[app.rerun.io](https://app.rerun.io/pr/5205/index.html)
* Using examples from latest `main` build:
[app.rerun.io](https://app.rerun.io/pr/5205/index.html?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
* Using full set of examples from `nightly` build:
[app.rerun.io](https://app.rerun.io/pr/5205/index.html?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/5205)
- [Docs
preview](https://rerun.io/preview/291a52d41703e7e70f1de7d905754ff6ac46cdcb/docs)
<!--DOCS-PREVIEW-->
- [Examples
preview](https://rerun.io/preview/291a52d41703e7e70f1de7d905754ff6ac46cdcb/examples)
<!--EXAMPLES-PREVIEW-->
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)
abey79 added a commit that referenced this issue Feb 16, 2024
### What

* Follow-up to #5205
* Part of #4823


![Export-1708013884748](https://github.com/rerun-io/rerun/assets/49431240/c3e6485a-48c6-4f38-b5c2-907f4c546346)

<br/>
<br/>

This PR adds a new "Move to new container" context menu action, that
applies when one or more space views and/or containers are selected. The
new container is created at the location of the clicked item, and all
the selected items are moved into it.

**Note**: one very often runs into this while using this feature:
- #5208

TODO in future PR:
- additional actions
- entity level manipulations
- use ListItem instead of label/WidgetText
- better folder structure
- release checklist update

### 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 newly built examples:
[app.rerun.io](https://app.rerun.io/pr/5210/index.html)
* Using examples from latest `main` build:
[app.rerun.io](https://app.rerun.io/pr/5210/index.html?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
* Using full set of examples from `nightly` build:
[app.rerun.io](https://app.rerun.io/pr/5210/index.html?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/5210)
- [Docs
preview](https://rerun.io/preview/d842739a5e559177ddc2b0f682b58df6a40076b3/docs)
<!--DOCS-PREVIEW-->
- [Examples
preview](https://rerun.io/preview/d842739a5e559177ddc2b0f682b58df6a40076b3/examples)
<!--EXAMPLES-PREVIEW-->
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)
@abey79
Copy link
Member

abey79 commented Feb 27, 2024

Closing this one in favour of finer grained issues with the remaining items.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request ui concerns graphical user interface
Projects
None yet
Development

No branches or pull requests

2 participants