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

Insert model from the GUI #31

Closed
osrf-migration opened this issue Jul 25, 2019 · 9 comments · Fixed by #173
Closed

Insert model from the GUI #31

osrf-migration opened this issue Jul 25, 2019 · 9 comments · Fixed by #173
Assignees
Labels
close the gap Features from Gazebo-classic enhancement New feature or request GUI Gazebo's graphical interface (not pure Ignition GUI)

Comments

@osrf-migration
Copy link

osrf-migration commented Jul 25, 2019

Original report (archived issue) by Louise Poubel (Bitbucket: chapulina, GitHub: chapulina).


It is convenient for users to construct environments through the UI. To be able to do that, they need to be able to insert new models into simulation. This issue is about creating a GUI plugin which allows users to inspect and insert SDF models from:

A few more nice features:

  • Display resource names and thumbnails
  • Display resources organized by folders
  • Search bar to filter folders and resources
  • A button to add new local folders to be listed
  • Drag resources from one local folder to another to copy / move them
  • Drag resources into a Fuel user to upload to that user's account

Alternatives

  • Since Blueprint, users are already able to drag models directly from Fuel on the browser. That doesn't cover local models though.
  • It's common on various programs for the user to drag SDF files from a file browser. We should also support that use case besides the plugin in question.

Additional resources

@osrf-migration osrf-migration added major GUI Gazebo's graphical interface (not pure Ignition GUI) bug Something isn't working labels Apr 15, 2020
@chapulina chapulina removed the major label Apr 29, 2020
@chapulina chapulina added enhancement New feature or request and removed bug Something isn't working labels May 25, 2020
@chapulina
Copy link
Contributor

@JShep1, here's a quick idea I sketched just so we have a high-level notion of what we're going for. @ColeOSRF is working on a proper mockup.

The first version of this plugin should focus on inserting models from local paths. Fuel can come on follow up PRs. Other features like filtering can also come later, but it would be nice to organize the data in a way that will allow us to do this easily in the future, using QSortFilterProxyModel for example.

20200527_154217

@ColeOSRF
Copy link

ColeOSRF commented Jun 1, 2020

Here is a very early mockup of the content browser based on Louise's sketch.

ContentBrowser

@chapulina
Copy link
Contributor

Thanks, that's neat, @ColeOSRF! Some comments:

  • I see each resource has a name and username. But I think that the usernames are not necessary, because local resources won't have usernames, and I assume that if you choose a Fuel user all assets will be tied to that user.

  • I see what you were going for with the folder structure under Local, something similar to how game engines let a user bundle all resources related to a project in a single place.
    Our use case is slightly different though. It's common for projects like SubT to install their own assets somewhere on disk. Ignition will know about all the paths from various projects at the same time so the user can insert any of them into simulation. In that situation, we end up with a list of various unrelated paths that are one-level deep.
    See Gazebo-classic's menu for example. Since here we're listing the resources on the right-side, the list of paths may not even be collapsible. And the lists are usually ugly long paths that we may want to truncate. In that case, it's also helpful to let the users add new paths to the list - that's what the Add Path button below does, and that's what I was going for with the ➕ on my sketch above.
    Let me know what you think and if you have any ideas around the usability of these paths.

    model_paths

@JShep1
Copy link

JShep1 commented Jun 2, 2020

This looks great, I've been working on the logic. @ColeOSRF Do you think you could provide a No Thumbnail Available image? Also, I'll likely have more questions as I get to the GUI side of things so I might reach out then.

@chapulina
Copy link
Contributor

@JShep1 , #172 adds a transport interface that you can use to query and update local resource paths.

@JShep1
Copy link

JShep1 commented Jun 3, 2020

@JShep1 , #172 adds a transport interface that you can use to query and update local resource paths.

Awesome! I got all the local model location and generation logic in, messing with the QML now

@JShep1 JShep1 linked a pull request Jun 3, 2020 that will close this issue
@ColeOSRF
Copy link

ColeOSRF commented Jun 4, 2020

Here is a revised UI. I redid the local paths section so hopefully it's more representative of our needs. I have two UI examples. One lists the folder contents as a list and the other as thumbnails with the two buttons to switch between list/thumbnail view in the upper right of the area that contains the assets. Unlike Gazebo-classic I do not have a list of the assets under the folder on the left. I figured it was repetitive and makes it harder to navigate the folder structures.

There are still some missing things like scroll bars and it's very unrefined. Font is bad and that sort of thing but hopefully it's a little closer now.

ContentBrowser_01
ContentBrowser_02

@chapulina
Copy link
Contributor

Unlike Gazebo-classic I do not have a list of the assets under the folder on the left.

That's perfect!

This is looking great to me, Cole! No more comments from me.

@chapulina chapulina added the close the gap Features from Gazebo-classic label Jun 6, 2020
@chapulina
Copy link
Contributor

Done on #173 and #263

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
close the gap Features from Gazebo-classic enhancement New feature or request GUI Gazebo's graphical interface (not pure Ignition GUI)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants