Object Mode to Edit Mode direct operator hotkey jump workflow improvement

Draise's picture
Project: 
Bforartists Tracker

A friend and avid Softimage user, including myself, are very used to being in "Object Mode" then immediately jumping into a tool in "Edit mode" with one hotkey, or even hitting the option from the interface, without having to worry about toggling into the Edit mode. There never was a need to first switch to Edit mode to then do the editing, then going back to object mode to whatever we were doing. 

Example: I am moving a cube, ready to model it in a new position. I hit K for knife (or the UI icon for Knife), then start knifing it (automatically switches to edit mode and starts the tool)

He went to Stack Exchange and figured out that you can code this through an addon modules. I was wondering... this is brilliant. We could technically port over Edit Mode shortcuts into the Object mode, and have the Edit Mode tools available from Edit Mode without having to train a newby how to toggle modes. Also save time in general workflows by removing the Object to Edit toggle system. 

Stack Exchange Thread here:

Pro's:

  • Get into Edit mode without having to toggle to Edit mode
  • Quick switch to edit mode during Object mode work
  • Ability to use Edit Mode tools without learning or need to switch to Edit mode workflow

Con's

  • Will require work making sure Edit mode hotkeys don't conflict with Object Mode
  • Will require work making the relative code and module for this with addon like code
  • May require integrating new code into UI and if any user decided to change these shortcuts in Edit Mode, then things might get broken quickly if things in Object Mode also don't get changed
  • With that said, the editing of said shortcuts may be difficult or might need to be modified through addon options and removed from Shortcuts Input list.

Sample code:
 

bl_info = {
    "name": "Edit mode with face select", "author": "sambler",
    "version": (1, 0), "blender": (2, 75, 0),
    "location": "blender", "category": "Object",
    "description": "Enter edit mode and set selection type to face.",
    }
 
import bpy
 
class EditSelectOperator(bpy.types.Operator):
    bl_idname = 'object.edit_face_select'
    bl_label = 'Enter edit mode and set face selection.'
 
    def execute(self, context):
        if context.object.mode != 'EDIT':
            # if we aren't in edit mode goto edit and set face select
            bpy.ops.object.mode_set(mode='EDIT', toggle=False)
            bpy.ops.mesh.select_mode(type='FACE')
        else:
            # if we are editing cycle through selection modes
            sel_mode = context.tool_settings.mesh_select_mode
            if sel_mode[0]: # vertex
                bpy.ops.mesh.select_mode(type='EDGE')
            elif sel_mode[1]: # edge
                bpy.ops.mesh.select_mode(type='FACE')
            else: # face
                bpy.ops.mesh.select_mode(type='VERT')
        return {'FINISHED'}
 
def register():
    bpy.utils.register_class(EditSelectOperator)
 
def unregister():
    bpy.utils.unregister_class(EditSelectOperator)
 
if __name__ == "__main__":
    register()

 

Status: 
Closed (won't fix)
Priority: 
Normal
Category: 
Feature request
Component: 
User interface
Assigned: 
Unassigned
Reporter: 
Created: 
Mon, 02/12/2018 - 00:24
Updated: 
Wed, 03/07/2018 - 11:41

Comments

3
Reiner's picture

I can see the benefits. But i see the dangers here too. You would have to replace nearly all edit mode operators. That's lots of new python code that blows up the code base. And i highly doubt that we can catch all operators in the shown way.  Means we end in inconsistencies. And we will surely end in incompatibilities with Blender code. Another danger is that you loose oversight in what mode you are. Lots of fail clicks ahead.

trueSpace had this solution too. But it had the edit mode tools available in all modes. Bforartists hides them, mode dependant. There is no way to activate the knife tool from object mode since the knife tool is hidden in object mode. And this means we would have to show the edit mode tools in object mode. And the paint tools, and the sculpt tools, and the ... . And then we run into a big space problem here.

So all in all i would not be really happy with such a solution. The benefits doesn't outweight the massive trouble ahead. But let's keep the task active. It's worth a few tests when somebody ever finds the time for Smile

Reiner's picture

I had a deep thought at this again, i think about it since a pretty while. And we can simply not do this.

A direct jump works when you have just two or three modes and a handful tools. And requires to have the tools in the other mode to be accessible. That's 1200 operators at once, in all modes. We simply don't have the UI space for that. And we have mode and editor specific hotkeys, not global ones. They just work in the current mode and in the current editor.

The problems are too big. Blender and Bforartists are simply not developed in a way that allows to achieve the here given goal. So as sorry as i am, we cannot fix this one. Closing.

Reiner's picture

Status: Active » Closed (won't fix)