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

Select feature type before drawing #6010

Merged
merged 72 commits into from
Mar 6, 2019
Merged

Conversation

quincylvania
Copy link
Collaborator

@quincylvania quincylvania commented Mar 4, 2019

Closes #5882, closes #5889.

This PR replaces the Point, Line, and Area buttons with a search bar where users select the feature type before drawing the feature. So far I've found this workflow much more satisfying in practice than the old buttons, but I'd love to hear user feedback!

select type first demo

Presets of different geometry are mixed together, so users don't need to know what geometry to draw in advance.

screen shot 2019-03-04 at 2 49 06 pm

Presets with multiple geometries are expandable.

screen shot 2019-03-04 at 2 47 09 pm

Mappers who prefer the old behavior can simply favorite the generic presets and map as before.

use old as favorites

Details:

  • 1 Tab focuses the search bar.
  • The number keys select the favorited presets.
  • The results can be navigated with the arrow keys.
  • Focusing the search bar highlights the contents so you can begin a new search immediately.
  • Notes have been moved to a separate button.
  • Categories are now geometry-agnostic.
  • Only presets that allow point, line, and area features are supported for now.

To-do before release:

  • Update walkthrough
  • Add support for vertex-only features

To-do eventually:

  • Add default list when no text is yet entered
  • Add tabs for quickly browsing Recents, Favorites, and Categories
  • Add support for relations

Remove subsections when reloading
@bhousel
Copy link
Member

bhousel commented Mar 6, 2019

This seems pretty great! I'm happy if you want to merge it so people can try it out, and we can get a jump on rebuilding the tutorial.

@slhh
Copy link
Contributor

slhh commented Mar 6, 2019

@quincylvania

I added drag-and-drop support for reordering and removing favorites.

This gives me an idea to set the favorites:

  • Make the items of the feature type search dragable to the favorites bar.
  • Make the feature type of an selected object dragable from the inspector to the favorits bar.

This could avoid to clutter the user interface with any control to set the favorites.

@quincylvania quincylvania merged commit cdf32c9 into master Mar 6, 2019
@quincylvania quincylvania deleted the add-feature-search-bar branch March 6, 2019 20:54
@quincylvania
Copy link
Collaborator Author

  • Make the items of the feature type search dragable to the favorites bar.
  • Make the feature type of an selected object dragable from the inspector to the favorits bar.
    This could avoid to clutter the user interface with any control to set the favorites.

@slhh Good ideas! It'd be cool to make iD more drag-and-drop friendly throughout the UI. I wouldn't get rid of the favoriting button though since drag-and-drop is less discoverable and more difficult for users who have trouble with motor functions.

@bhousel
Copy link
Member

bhousel commented Mar 6, 2019

This gives me an idea to set the favorites:

  • Make the items of the feature type search dragable to the favorites bar.
  • Make the feature type of an selected object dragable from the inspector to the favorits bar.

This could avoid to clutter the user interface with any control to set the favorites.

I'm still pretty happy with using the ⭐️star to favorite. I think people can figure that out and it doesn't clutter anything.

@quincylvania quincylvania added this to the Next Release milestone Mar 6, 2019
@slhh
Copy link
Contributor

slhh commented Mar 6, 2019

@quincylvania
In many cases user want to map features which do already nearby.
How about including the preset of the currently selected element in the favorite bar temporarily.
When no element is selected, the preset of the most recently selected one might be used.

When the temporary favorite is placed slightly separated from the other ones, dragging the temporary one towards the other ones could make the temporary one permanent. A tooltip can make this discoverable, and a short drag distance would likely be less difficult for users who have trouble with motor functions.

Example workflow to add a park bench:

  • Select a nearby park bench.
  • Press the button of the temporary favorite.
  • Place the new park bench.

@slhh
Copy link
Contributor

slhh commented Mar 7, 2019

@quincylvania

Mappers who prefer the old behavior can simply favorite the generic presets and map as before.

This requires some inconsistant behaviour.
When e.g. favoriting an untagged line (e.g. a multipolygon member), applying the favorite should not ask for the feature type, as is is already defined as an untagged line, and the user might need access to memberships or tagging.
In contrast, using the generic favorite to get the old workflow, needs asking for the feature type.

@slhh
Copy link
Contributor

slhh commented Mar 7, 2019

@quincylvania
The add a feature search field occupies much valuable space in the top bar. Until it gets focussed, it doesn't have any other function than being a click target to get it focussed.
The unfocussed add a feature search field should be replaced in-place by 4 buttons:

  • A generic "Add" or "Add feature" button
  • Icon only buttons for point, line, and area geometry

When clicked, each button should unhide and focus the feature type search field and hide all these buttons. In addition, the geometry buttons should preselect the geometry type to filter the search results.

This would reinstate the full efficience of the old workflow to the new workflow.

@quincylvania
Copy link
Collaborator Author

@slhh

How about including the preset of the currently selected element in the favorite bar temporarily.

I like this.

When no element is selected, the preset of the most recently selected one might be used.

Instead of just one and just temporarily, I made it so the recently-used presets live alongside the pinned favorites. Let me know what you think of this in practice.

When e.g. favoriting an untagged line (e.g. a multipolygon member), applying the favorite should not ask for the feature type

The generic preset favorites do work differently than most favorites, but for good reason. We need to ask for the feature type to exactly replicate the behavior of the existing mode buttons.

When clicked, each button should unhide and focus the feature type search field and hide all these buttons. In addition, the geometry buttons should preselect the geometry type to filter the search results.

This seems like a more complicated and less customizable version of just favoriting the point/line/area presets. I did make those the defaults, so the buttons will appear next to the search field upon launching iD. Filtering the search results by geometry would be nice, but I think that control should be in the results popover itself.

@slhh
Copy link
Contributor

slhh commented Mar 9, 2019

@quincylvania

How about including the preset of the currently selected element in the favorite bar temporarily.

I like this.

When no element is selected, the preset of the most recently selected one might be used.

Instead of just one and just temporarily, I made it so the recently-used presets live alongside the pinned favorites. Let me know what you think of this in practice.

Keeping some recently-used presets makes sense, but the preset of the most recently selected element should be included, even if the preset was not applied in the current session.
This is required to get the easy workflow of cloning the feature type from already existing elements, without any need to search even for the first time.

@bhousel
Copy link
Member

bhousel commented Mar 9, 2019

Keeping some recently-used presets makes sense, but the preset of the most recently selected element should be included, even if the preset was not applied in the current session.

Yes, the appearance of the preset ribbon will persist between sessions.

@brianhatchl
Copy link
Collaborator

brianhatchl commented Mar 11, 2019

I had a quick play with this. Overall I like the new search bar. I saw the discussion above and in slack, so I may be in the minority on this, but my one nitpick is that recent presets are restored to the toolbar on refresh. It seems to quickly lead to toolbar button-itis with no way to clean it up (such as un-favoriting provides). Could be #6024

I would be okay if recents were shown in the toolbar during the session, but not restored on reload. I realize this is not how the sidebar preset editor behaves (recent presets are restored from previous session).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
usability An issue with ease-of-use or design
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Allow choosing the feature type before drawing Move loading indicator out of the top bar
9 participants