The 'X' buttons on text fields #50336

Closed
opened 2016-12-29 03:57:21 +01:00 by Joshua Leung · 12 comments
Member

Today I just noticed that we now have the 'X' icons always shown on text-fields (but only some of them). While I understand why they were introduced, there are quite a few quirks that still need to be ironed out IMO. Compared to the bigger 2.8 projects we've got going, this is really minor/low priority... but, it's also a simple little piece of polish that shouldn't take too long to apply.

Problem 1: Increased Clutter and Confusion About the Meaning of the 'X'

Consider the following screenshot:
20161229-x-wtf-01.png

In these two examples, we have cases where there are two 'X's in close proximity to each other, using the same icon, but communicating two very different things. Critically, clicking one of these has a relatively large impact, while the other has a relatively minor impact.

  • The "X Button" deletes that whole entity
  • The "Embedded X" clears the text in the textbox and resets it to some kind of default (well, in this case, it only actually works for the Group one, the GP Palettes one does nothing)

Problem 2: Some text-fields have it, others do not

From a user-perspective, it is bizarre that only some of the textfields in Blender have it.
20161229-x-missing.png

(EDIT: Correction, the Outliner Search and Keying Sets fields do show the 'X' if there is some text set already; this behaviour makes sense, and it is nice, great even, that this functionality is in place for those buttons, as it is really necessary there. The only ones that don't seem to be the ID-block names, which are done using the old non-RNA buttons)

Proposed Improvements

1) Use a different (smaller and more lightweight) icon for the "clear textbox" function
This would solve the ambiguity problems, and better communicate the different roles and degree of importance of the functions

2) Have a way to indicate that name fields should be exempt from having an 'X'
Bascially, this would just involve adding another flag/optional parameter to the layout.prop() function that will skip adding this button.

IMO, there's little or no practical need to having a "clear" button on name fields with the way that we've got things set up. This is because to be useful, the clear button must leave the textbox empty after the action has been performed, so that the user can just start typing without having to clear the existing contents first. However, AFAIK name fields cannot be left blank; if cleared, most will instantly be repopulated with a default name, thus beating the whole point!

Therefore, I think it's best that we just leave off the 'X's from the name boxes. Alternatively, if anyone does think it's still useful to have this functionality, we should instead make it so that on name boxes, clicking on the X clears the box AND focusses it, so that you can start typing immediately (before the autoname kicks in).

Today I just noticed that we now have the 'X' icons always shown on text-fields (but only some of them). While I understand why they were introduced, there are quite a few quirks that still need to be ironed out IMO. Compared to the bigger 2.8 projects we've got going, this is really minor/low priority... but, it's also a simple little piece of polish that shouldn't take too long to apply. ## Problem 1: Increased Clutter and Confusion About the Meaning of the 'X' Consider the following screenshot: ![20161229-x-wtf-01.png](https://archive.blender.org/developer/F424332/20161229-x-wtf-01.png) In these two examples, we have cases where there are two 'X's in close proximity to each other, using the same icon, but communicating two very different things. Critically, clicking one of these has a relatively large impact, while the other has a relatively minor impact. * The "X Button" deletes that whole entity * The "Embedded X" clears the text in the textbox and resets it to some kind of default (well, in this case, it only actually works for the Group one, the GP Palettes one does nothing) ## Problem 2: Some text-fields have it, others do not From a user-perspective, it is bizarre that only *some* of the textfields in Blender have it. ![20161229-x-missing.png](https://archive.blender.org/developer/F424335/20161229-x-missing.png) (EDIT: Correction, the Outliner Search and Keying Sets fields *do* show the 'X' if there is some text set already; this behaviour makes sense, and it is nice, great even, that this functionality is in place for those buttons, as it is really necessary there. The only ones that don't seem to be the ID-block names, which are done using the old non-RNA buttons) ## Proposed Improvements **1) Use a different (smaller and more lightweight) icon for the "clear textbox" function** This would solve the ambiguity problems, and better communicate the different roles and degree of importance of the functions **2) Have a way to indicate that name fields should be exempt from having an 'X'** Bascially, this would just involve adding another flag/optional parameter to the layout.prop() function that will skip adding this button. IMO, there's little or no practical need to having a "clear" button on name fields with the way that we've got things set up. This is because to be useful, the clear button must leave the textbox empty after the action has been performed, so that the user can just start typing without having to clear the existing contents first. However, AFAIK name fields cannot be left blank; if cleared, most will instantly be repopulated with a default name, thus beating the whole point! Therefore, I think it's best that we just leave off the 'X's from the name boxes. Alternatively, if anyone does think it's still useful to have this functionality, we should instead make it so that on name boxes, clicking on the X clears the box AND focusses it, so that you can start typing immediately (before the autoname kicks in).
Julian Eisel was assigned by Joshua Leung 2016-12-29 03:57:21 +01:00
Author
Member

Changed status to: 'Open'

Changed status to: 'Open'
Author
Member

Added subscriber: @JoshuaLeung

Added subscriber: @JoshuaLeung
Member

Added subscriber: @Blendify

Added subscriber: @Blendify

Added subscriber: @aakashkt0

Added subscriber: @aakashkt0

Hello, I am just getting started out in blender dev. I think this task would be a great starting point. Can anyone give a general idea as to how I should go about editing the code? Thank you all :)

Hello, I am just getting started out in blender dev. I think this task would be a great starting point. Can anyone give a general idea as to how I should go about editing the code? Thank you all :)
Member

Added subscriber: @plasmasolutions

Added subscriber: @plasmasolutions
Member

@JulianEisel any chance to tackle that quickly or even revert the commit you made that introduced it? It's not only cluttering the ui but makes so many places worse. Even the modifier names have X'es that reset the name to the standard name - it's simply useless. As I'm making 1000s of images now for my upcoming book I find myself constantly in GIMP erasing X es that should not be there.

@aakashkt0 No, this is nothing for a starter, there is a page in the wiki that handle starter tasks and you should definitely come to #blendercoders on irc - ask there.

@JulianEisel any chance to tackle that quickly or even revert the commit you made that introduced it? It's not only cluttering the ui but makes so many places worse. Even the modifier names have X'es that reset the name to the standard name - it's simply useless. As I'm making 1000s of images now for my upcoming book I find myself constantly in GIMP erasing X es that should not be there. @aakashkt0 No, this is nothing for a starter, there is a page in the wiki that handle starter tasks and you should definitely come to #blendercoders on irc - ask there.

@plasmasolutions sure. Will look around the wiki and also ask on the IRC channel. Thanks for the reply though

@plasmasolutions sure. Will look around the wiki and also ask on the IRC channel. Thanks for the reply though

This issue was referenced by c4f60319d1

This issue was referenced by c4f60319d1709723d8076429c13965b0c94dc88b
Member

Changed status from 'Open' to: 'Resolved'

Changed status from 'Open' to: 'Resolved'
Member

The purpose of the 'x' icon was to have a quick way to clear the content of search/filter buttons. It's a common feature in modern UIs. It was not intended to have it for name buttons and such.
I tried to avoid adding new flags to RNA or UILayout.prop, hence I've tried approaches without doing this first. I'm confident that my last commit will work fine for the time being.

The purpose of the 'x' icon was to have a quick way to clear the content of search/filter buttons. It's a common feature in modern UIs. It was **not** intended to have it for name buttons and such. I tried to avoid adding new flags to RNA or UILayout.prop, hence I've tried approaches without doing this first. I'm confident that my last commit will work fine for the time being.
Member

Oh also, I agree that the icons could be improved, but I think the ideal solution for this would be a more generic sub-button system. I implemented a simple version of this in c5d4607792. Planning to get back to this for a proper integration of tab buttons, mainly for the upcoming topbar.

Oh also, I agree that the icons could be improved, but I think the ideal solution for this would be a more generic sub-button system. I implemented a simple version of this in c5d4607792. Planning to get back to this for a proper integration of tab buttons, mainly for the upcoming topbar.
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
6 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#50336
No description provided.