From BlenderWiki

Jump to: navigation, search
Note: This is an archived version of the Blender Developer Wiki. The current and active wiki is available on wiki.blender.org.

SYNOPSIS

I will be working on a list of improvements to Blender’s operators and user interface. Some of these items come from the Blender Wiki and bug tracker and some come from my own observations. I will be focusing on usability and user interface in these areas:

  • Unexpected behavior/bugs. Tasks which are either bugfixes or improvements to behavior which may seem odd or unexpected.
  • Interface improvements. Tasks which improve the user interface and usability of Blender.
  • Configurability improvements. Tasks which help Blender users configure their software and Blender developers create better user interfaces.



PROJECT DETAILS

This is a full list of items I intend to work on during the project. All items are subject to the approval of the Blender team. All items will be implemented maintaining current functionality, without dropping any existing features. Some items may already exist in Blender unknown to me, please disregard those items. I welcome feedback.

Items with a * are from the wiki interface to do list or added at the request of a Blender developer. These items will receive priority focus.


Configurability improvements

This section is mainly concerned with simple user configuration of UI elements. Broadly speaking the mechanism for this configuration would be to write the configured data out to the user's data folder in a configuration file, likely a python script. The data would not be saved to the .blend and is user-specific.

  • * Support for adding and removing buttons to the 3D view "Object Tools" area from within Blender.
  • * Support for adding and removing buttons to the 3D view lower tool bar from within Blender.
  • * Support for adding and removing buttons from floating button panels (proposed under "Interface improvements")


Interface improvements

  • If a button panel is too small for the buttons inside it, some buttons become truncated and the user must scroll it to see them. Suggested solution: stack the buttons in a second row, but retain an option for scrolling the buttons for users who prefer that behavior.
  • 3D View context menu. A context-sensitive menu with common commands for whatever the mouse currently hovers over. For those users who use left click to select, this could be bound to right click.
  • Floating buttons support. Add support for buttons floating over the 3D view, as opposed to docked on a panel. As seen in these mockups. Controlled by Python scripts. Two parts:
    • Support for the existing Mesh Tools and the ‘n’ control panel, but floating. Essentially, support for drawing the same buttons but without the underlying panel.
    • Support for adding new floating buttons around the periphery of the 3D view, not a part of any panel.
  • Right click -> rename/delete in the material/texture editors.
  • Right click -> cut/copy/paste for text fields.
  • Vertex/edge/face mouseover highlighting.
  • Non-obvious progress bar. The progress bar for actions such as generating maps is in the info bar where it may not be noticed. I propose a progress bar which appears in the center of the screen at first, but with a setting that allows it to be collapsed into the info bar by default, for users who know to look at the info bar.
  • * Add an "X" to each dropbown/listbox item which can remove that item. Inspired by Bill Reynish's work.
    • Deleting active vertex group - select the next, not the previous.
    • Add 'X' to UV maps and vertex colors
  • * Right aligning
  • *? http://tenderlovingdesign.com/storage/blender/Modifier_Proposal.pdf
  • *? http://img76.imageshack.us/img76/4686/datablockminibrowserpro.png
  • * Color picker buttons to select pure white or pure black
    • BUG: B&W buttons don't update the color picker
  • * Photoshop style drag-change stuff in the outliner, perhaps other places
  • Allow the user to join splits with multiple areas on one side at once.
  • * Make saving last menu item optional (per menu class) --- this is especially annoying for the Open menu (Ctrl+Shift+O)
  • * Make remembering text in a search optionally not remember the last value. annoying for "Add To Group"
  • * Compositor 'Matte' and 'Distort' nodes have no theme color for their headers. They use the 'Node Backdrop' color.


Unexpected behavior/bugs

  • * Clicking a check box in the menu closes the menu. It should remain open.
  • * The color picker does not close itself if the mouse exits into an area other than the one it was opened in. (Bug report)
  • * Tab cycling breaks when it encounters a drop-listbox. (Bug report)
  • * If a tooltip has been open recently, open the next one quickly.
  • * When the mouse is over a menu and the user clicks on a second menu, it doesn't open the second menu.
  • If the file browser is open and the user presses Blender’s window manager close button, Blender closes entirely. The user’s intention was probably to close only the file browser instead. If the app’s close button is pressed while the file browser is open, close the file browser instead (same as pressing “Back to Previous”).
  • Separators do not drag closed. User can drag a separator to open a new area, but can not drag it back in to close it. I propose a feature where dragging the separator all the way to one side closes that area.
  • Closing Blender does not prompt save. (Possibly Windows only.) If the user closes Blender with unsaved changes Blender does not prompt the user to save.
  • User preferences. Current behavior is to save a “default” .blend as the user’s settings and load it when Blender opens or when the user loads factory settings. This causes two problems:
    • If a user is in the middle of a project and saves user settings, the “factory settings” are now whatever the user happened to be working on.
    • If a user is in the middle of a project and loads “factory settings” it loads an entire project, without prompting to save, possibly erasing the user’s work.
  • My suggested solutions:
    • Saving user preferences should save only user preferences data and not other project data to a separate file, which can be loaded and saved independently of the default .blend file.
    • Rename "Save User Settings" to "Save Start-Up Project" to make its function more clear.
    • Change “Load Factory Settings” to load a default .blend which is provided by the Blender team and is not written over with “Save User Settings” (Already done by someone else)
    • Split into "Load Factory Preferences" and "Load Factory Project" so that they can be loaded individually without overwriting the other.
    • What does "Reset to default theme" do?
    • http://www.mail-archive.com/bf-blender-cvs@blender.org/msg33959.html


Non UI related nice-to-have's:

  • FPS-style navigation. A feature where WASD controls camera dolly and the mouse directly controls the viewing angle.
  • Camera view navigation. If the view is set to the camera (numpad 0) then the normal view controls control the camera position/orientation.
  • Unify UV/3H highlighting. If a vertex/edge/face is highlighted in UV, highlight it also in 3D and vice versa, to help the user find it.
  • Gray out non-selected objects in edit mode. To indicate that these objects are not selected and can not be modified, gray out any object in edit mode which is not selected.
  • Canceling extrude leaves duplicate geometry. If a user engages an extrude command and then presses escape to cancel it, there remain extra faces on every edge of the polygon.
  • Face-preserving edge delete. If the user deletes an edge, all faces touching that edge are also deleted. I propose an edge deletion which preserves surrounding faces and vertices. (Not edge loop delete, this merges the edge’s vertices.)


These are items for which I have already developed fixes in my past work, which can possibly be imported into the GSoC work:

  • If menu is open, clicking on its title does not close it again. No feedback is given. The menu should close if clicked again.
  • Drag and drop functionality for the transformation controls.
  • A method for allowing clicking on empty space to unselect.
  • A drag/touch select. i.e. a select wherein everything that the mouse hovers over while the button is down is selected.
  • Improvements to the transformation manipulators. Includes mouseover highlighting and extra handles for translating and scaling locked in two dimensions.
  • Method for switching from object mode to face/vertex/edge mode and back with one keystroke. Currently it is required to choose from a context menu.

Unapproved:

  • Menubars are all over the place. An option for moving all menus to the top of the screen?
  • Grow/Shrink are not available in a menu
  • UI undo?
  • Clicking an unselected object's children in the outliner selects the object but not the child.
  • Option to remove delete confirmations
  • Sometimes delete is - (ICON_ZOOMOUT) and sometimes it's X (ICON_X).
  • UV sphere/Icosphere reads "size" not "radius"
  • Deleting images in the image editor requires restarting Blender?
  • Drag and drop in list boxes to change order. eg Shape keys and vertex groups
  • Expanding list groups to show more than five items.
  • Shift+select on lists for mass deleting or mass operations.
  • A grip on the bottom on list boxes to extend them.
  • Investigate problems with the recent files list not promoting recent files properly
  • Show the number of items in a listbox (ie shape keys, materials)
  • shift backspace shouldn't delete a whole line if the user has typed letters with shift
  • shift-tab in the editor
  • http://blenderartists.org/forum/showthread.php?255753-GSoC-User-Interface-Tasklist&p=2153994&viewfull=1#post2153994
  • http://blenderartists.org/forum/showthread.php?255753-GSoC-User-Interface-Tasklist&p=2155484&viewfull=1#post2155484

Bug?