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 buttons for starting, stopping, listing capabilities #3

Open
bit-pirate opened this issue Oct 10, 2013 · 12 comments
Open

Add buttons for starting, stopping, listing capabilities #3

bit-pirate opened this issue Oct 10, 2013 · 12 comments
Assignees

Comments

@bit-pirate
Copy link
Contributor

and all other useful interactions with the capability server.

@bit-pirate
Copy link
Contributor Author

Looks like you implemented this already (3f4e8b4), but can't test it because of #6 .

@bit-pirate
Copy link
Contributor Author

  • Listing: Not needed, since all discovered capabilitities are visualised. Might get crowded, if many capabilities are available, but we can improve this later, if needed.
  • Starting/stopping: Already implemented via right-click on the provider. Easy once you know it, but IMO not intuitive at first. Change needed?

@bit-pirate
Copy link
Contributor Author

Is there any functionality planned for right clicking the interface? Currently nothing happens, except so log output in the terminal:

(u'kobuki_capabilities/KobukiLED1', 'Not in list of providers')

@wjwwood
Copy link
Member

wjwwood commented Nov 5, 2013

Starting/stopping: Already implemented via right-click on the provider. Easy once you know it, but IMO not intuitive at first. Change needed?

Maybe just a note above the graph view like "right-click to start/stop capabilities".

Is there any functionality planned for right clicking the interface?

I think I could have it list all the providers for that capability if it is not running (clicking them would start them), and when it is running list an option to stop the running provider for that capability.

@bit-pirate
Copy link
Contributor Author

Maybe just a note above the graph view like "right-click to start/stop capabilities".

Good.

I think I could have it list all the providers for that capability if it is not running (clicking them would start them), and when it is running list an option to stop the running provider for that capability.

Good as well. However, this is not urgent for me.

@bit-pirate
Copy link
Contributor Author

More cosmetics: What about setting the interface to green as well, when the provider is started?

@ghost ghost assigned esteve Dec 9, 2013
@spaepcke
Copy link

Let me know if it would be helpful to get UI feedback :)

@esteve
Copy link

esteve commented Dec 12, 2013

@spaepcke Awesome! We currently allow users to start/stop providers (the ellipses) via a context menu. Users right-click on the ellipses and a menu shows up, and the context menu only has one entry (start/stop). To be honest, this isn't very intuitive, I only knew that because I've read this ticket.

Instead, I added two push buttons (start/stop) to every provider. This is what I have so far:

rqt_capabilities_buttons

What do you think of this @spaepcke ? Is it intuitive?

Thanks!

@spaepcke
Copy link

I talked a bit with William, and he gave me a brief tutorial :-)

Two ideas I think are worth trying:

  1. Combine the buttons into one single button (for both ideas). It starts as Play, and when activated, changes to Stop. Pick a visually simpler button (a triangle/square with a rectangle around it). Since there can by multiple providers for a given interface, and only one provider can be active at a time, the Play button should be spatially paired with the associated provider. So, have a button appear next to each provider, either inside the oval, or just outside of it. If there are multiple providers for an interface, the Play button should be grayed out for all but the one provider that is currently "playing".

Pros: The user doesn't need to move the mouse much to "play" a provider since the button is right next to it. There's a signifier (a new word I'm trying out that's slightly different from "affordance") indicating that the user can act upon the provider.

Cons: For a complex graph, there could be hundreds of buttons. This would make things pretty cluttered and potentially confusing, depending on how well the layout is automatically managed.

  1. Or, you can provide a slightly bigger Play button at the top of the graph. It's grayed out unless the user hovers over, or clicks on a provider. On provider hover/click, the Play button becomes clickable. If the user presses play, and then hovers over (or clicks on) another provider (for a different interface), the button turns from Stop back to Play so the user can play the other provider. To stop a provider, the user would need to click on the provider, and then press Stop at the top.

Pros: The graph will not grow cluttered with buttons, and will look cleaner and more approachable.

Cons: The user has to travel further to click Play/Stop, which could be annoying. One possible solution would be to have a tooltip appear when hovering over the Play button, saying something like, "Click to Play/stop, or press X on your keyboard", where X is some hotkey of your choosing. Another Con is that it might get very confusing starting/stopping multiple providers with the same button.

I don't know how much time you have to spend on this, but I would suggest prototyping both approaches and testing them out with a large graph and a few people. Happy to help with testing.

Hope that helps!

@bit-pirate
Copy link
Contributor Author

  1. 👍

We can later move to 2), if it gets really messy. What about that?

@spaepcke
Copy link

Sounds fine to me.

@esteve
Copy link

esteve commented Dec 13, 2013

I like (1), I've put the button next to the provider text.

As for the icons, I use the ones set by the desktop theme (http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html), I'll see if there are nicer icons in the spec.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants