3d view pies: Fix for missing grease pencil edit mode. fix layout. by italic/meta-androcto
This commit is contained in:
parent
8ffc527b58
commit
88359b9a4d
|
@ -21,49 +21,45 @@
|
|||
bl_info = {
|
||||
"name": "Hotkey: 'Tab'",
|
||||
"description": "Switch between 3d view object/edit modes",
|
||||
# "author": "pitiwazou, meta-androcto",
|
||||
# "version": (0, 1, 0),
|
||||
# "author": "pitiwazou, meta-androcto, italic",
|
||||
# "version": (0, 1, 0),
|
||||
"blender": (2, 77, 0),
|
||||
"location": "3D View",
|
||||
"warning": "",
|
||||
"wiki_url": "",
|
||||
"category": "Mode Switch Pie"
|
||||
}
|
||||
}
|
||||
|
||||
import bpy
|
||||
from bpy.types import (
|
||||
Menu,
|
||||
Operator,
|
||||
)
|
||||
|
||||
# Define Class Object Mode
|
||||
Menu,
|
||||
Operator
|
||||
)
|
||||
|
||||
|
||||
class ClassObject(Operator):
|
||||
"""Object Mode"""
|
||||
bl_idname = "class.object"
|
||||
bl_label = "Class Object"
|
||||
bl_options = {'REGISTER', 'UNDO'}
|
||||
bl_description = "Edit/Object Mode Switch"
|
||||
|
||||
def execute(self, context):
|
||||
|
||||
if context.object.mode == "OBJECT":
|
||||
bpy.ops.object.mode_set(mode="EDIT")
|
||||
else:
|
||||
bpy.ops.object.mode_set(mode="OBJECT")
|
||||
return {'FINISHED'}
|
||||
|
||||
# Define Class Vertex
|
||||
|
||||
|
||||
class ClassVertex(Operator):
|
||||
"""Vertex"""
|
||||
bl_idname = "class.vertex"
|
||||
bl_label = "Class Vertex"
|
||||
bl_options = {'REGISTER', 'UNDO'}
|
||||
bl_description = "Vert Select"
|
||||
|
||||
def execute(self, context):
|
||||
|
||||
if context.object.mode != "EDIT":
|
||||
bpy.ops.object.mode_set(mode="EDIT")
|
||||
bpy.ops.mesh.select_mode(use_extend=False, use_expand=False, type='VERT')
|
||||
|
@ -71,17 +67,15 @@ class ClassVertex(Operator):
|
|||
bpy.ops.mesh.select_mode(use_extend=False, use_expand=False, type='VERT')
|
||||
return {'FINISHED'}
|
||||
|
||||
# Define Class Edge
|
||||
|
||||
|
||||
class ClassEdge(Operator):
|
||||
"""Edge"""
|
||||
bl_idname = "class.edge"
|
||||
bl_label = "Class Edge"
|
||||
bl_options = {'REGISTER', 'UNDO'}
|
||||
bl_description = "Edge Select"
|
||||
|
||||
def execute(self, context):
|
||||
|
||||
if context.object.mode != "EDIT":
|
||||
bpy.ops.object.mode_set(mode="EDIT")
|
||||
bpy.ops.mesh.select_mode(use_extend=False, use_expand=False, type='EDGE')
|
||||
|
@ -89,34 +83,31 @@ class ClassEdge(Operator):
|
|||
bpy.ops.mesh.select_mode(use_extend=False, use_expand=False, type='EDGE')
|
||||
return {'FINISHED'}
|
||||
|
||||
# Define Class Face
|
||||
|
||||
|
||||
class ClassFace(Operator):
|
||||
"""Face"""
|
||||
bl_idname = "class.face"
|
||||
bl_label = "Class Face"
|
||||
bl_options = {'REGISTER', 'UNDO'}
|
||||
bl_description = "Face Select"
|
||||
|
||||
def execute(self, context):
|
||||
|
||||
if context.object.mode != "EDIT":
|
||||
bpy.ops.object.mode_set(mode="EDIT")
|
||||
bpy.ops.mesh.select_mode(use_extend=False, use_expand=False, type='FACE')
|
||||
if bpy.ops.mesh.select_mode != "VERT, EDGE":
|
||||
bpy.ops.mesh.select_mode(use_extend=False, use_expand=False, type='FACE')
|
||||
return {'FINISHED'}
|
||||
# Define Class Texture Paint
|
||||
|
||||
|
||||
class ClassTexturePaint(Operator):
|
||||
"""Texture Paint"""
|
||||
bl_idname = "class.pietexturepaint"
|
||||
bl_label = "Class Texture Paint"
|
||||
bl_options = {'REGISTER', 'UNDO'}
|
||||
bl_description = "Texture Paint"
|
||||
|
||||
def execute(self, context):
|
||||
|
||||
if context.object.mode == "EDIT":
|
||||
bpy.ops.object.mode_set(mode="OBJECT")
|
||||
bpy.ops.paint.texture_paint_toggle()
|
||||
|
@ -124,17 +115,15 @@ class ClassTexturePaint(Operator):
|
|||
bpy.ops.paint.texture_paint_toggle()
|
||||
return {'FINISHED'}
|
||||
|
||||
# Define Class Weight Paint
|
||||
|
||||
|
||||
class ClassWeightPaint(Operator):
|
||||
"""Weight Paint"""
|
||||
bl_idname = "class.pieweightpaint"
|
||||
bl_label = "Class Weight Paint"
|
||||
bl_options = {'REGISTER', 'UNDO'}
|
||||
bl_description = "Weight Paint"
|
||||
|
||||
def execute(self, context):
|
||||
|
||||
if context.object.mode == "EDIT":
|
||||
bpy.ops.object.mode_set(mode="OBJECT")
|
||||
bpy.ops.paint.weight_paint_toggle()
|
||||
|
@ -142,17 +131,15 @@ class ClassWeightPaint(Operator):
|
|||
bpy.ops.paint.weight_paint_toggle()
|
||||
return {'FINISHED'}
|
||||
|
||||
# Define Class Vertex Paint
|
||||
|
||||
|
||||
class ClassVertexPaint(Operator):
|
||||
"""Vertex Paint"""
|
||||
bl_idname = "class.pievertexpaint"
|
||||
bl_label = "Class Vertex Paint"
|
||||
bl_options = {'REGISTER', 'UNDO'}
|
||||
bl_description = "Vertex Paint"
|
||||
|
||||
def execute(self, context):
|
||||
|
||||
if context.object.mode == "EDIT":
|
||||
bpy.ops.object.mode_set(mode="OBJECT")
|
||||
bpy.ops.paint.vertex_paint_toggle()
|
||||
|
@ -160,25 +147,38 @@ class ClassVertexPaint(Operator):
|
|||
bpy.ops.paint.vertex_paint_toggle()
|
||||
return {'FINISHED'}
|
||||
|
||||
# Define Class Particle Edit
|
||||
|
||||
|
||||
class ClassParticleEdit(Operator):
|
||||
"""Particle Edit"""
|
||||
bl_idname = "class.pieparticleedit"
|
||||
bl_label = "Class Particle Edit"
|
||||
bl_options = {'REGISTER', 'UNDO'}
|
||||
bl_description = "Particle Edit (must have active particle system)"
|
||||
|
||||
def execute(self, context):
|
||||
|
||||
if context.object.mode == "EDIT":
|
||||
bpy.ops.object.mode_set(mode="OBJECT")
|
||||
bpy.ops.particle.particle_edit_toggle()
|
||||
else:
|
||||
bpy.ops.particle.particle_edit_toggle()
|
||||
|
||||
return {'FINISHED'}
|
||||
|
||||
|
||||
class ClassStrokeEdit(Operator):
|
||||
bl_idname = "class.piestrokeedit"
|
||||
bl_label = "Class Stroke Edit"
|
||||
bl_options = {'REGISTER', 'UNDO'}
|
||||
bl_description = "Stroke Edit"
|
||||
|
||||
def execute(self, context):
|
||||
if context.object.mode == "EDIT":
|
||||
bpy.ops.object.mode_set(mode='OBJECT')
|
||||
bpy.ops.gpencil.editmode_toggle()
|
||||
else:
|
||||
bpy.ops.gpencil.editmode_toggle()
|
||||
return {'FINISHED'}
|
||||
|
||||
|
||||
# Components Selection Mode
|
||||
|
||||
|
||||
|
@ -241,10 +241,9 @@ class VertsEdgesFaces(Operator):
|
|||
context.tool_settings.mesh_select_mode = (True, True, True)
|
||||
return {'FINISHED'}
|
||||
|
||||
# Pie Edit/Object Others modes - Tab
|
||||
|
||||
|
||||
class PieObjectEditotherModes(Menu):
|
||||
"""Edit/Object Others modes"""
|
||||
bl_idname = "menu.objecteditmodeothermodes"
|
||||
bl_label = "Edit Selection Modes"
|
||||
|
||||
|
@ -262,10 +261,10 @@ class PieObjectEditotherModes(Menu):
|
|||
box.operator("verts.edgesfaces", text="Vertex/Edges/Faces", icon='OBJECT_DATAMODE')
|
||||
box.operator("wm.context_toggle", text="Limit to Visible",
|
||||
icon="ORTHO").data_path = "space_data.use_occlude_geometry"
|
||||
# Pie Modes Switch- Tab key
|
||||
|
||||
|
||||
class PieObjectEditMode(Menu):
|
||||
"""Modes Switch"""
|
||||
bl_idname = "pie.objecteditmode"
|
||||
bl_label = "Modes Menu (Tab)"
|
||||
|
||||
|
@ -273,7 +272,7 @@ class PieObjectEditMode(Menu):
|
|||
layout = self.layout
|
||||
ob = context.object
|
||||
|
||||
if ob and ob.type == 'MESH' and ob.mode in {'OBJECT', 'SCULPT', 'VERTEX_PAINT', 'WEIGHT_PAINT', 'TEXTURE_PAINT', 'PARTICLE'}:
|
||||
if ob and ob.type == 'MESH' and ob.mode in {'OBJECT', 'SCULPT', 'VERTEX_PAINT', 'WEIGHT_PAINT', 'TEXTURE_PAINT', 'PARTICLE_EDIT'}:
|
||||
pie = layout.menu_pie()
|
||||
# 4 - LEFT
|
||||
pie.operator("class.pievertexpaint", text="Vertex Paint", icon='VPAINT_HLT')
|
||||
|
@ -290,9 +289,15 @@ class PieObjectEditMode(Menu):
|
|||
# 1 - BOTTOM - LEFT
|
||||
if context.object.particle_systems:
|
||||
pie.operator("class.pieparticleedit", text="Particle Edit", icon='PARTICLEMODE')
|
||||
else:
|
||||
pie.separator()
|
||||
# 3 - BOTTOM - RIGHT
|
||||
if context.gpencil_data:
|
||||
pie.operator("class.piestrokeedit", text="Stroke Edit", icon='GREASEPENCIL')
|
||||
else:
|
||||
pie.separator()
|
||||
|
||||
if ob and ob.type == 'MESH' and ob.mode in {'EDIT'}:
|
||||
elif ob and ob.type == 'MESH' and ob.mode in {'EDIT'}:
|
||||
pie = layout.menu_pie()
|
||||
# 4 - LEFT
|
||||
pie.operator("class.pievertexpaint", text="Vertex Paint", icon='VPAINT_HLT')
|
||||
|
@ -306,37 +311,107 @@ class PieObjectEditMode(Menu):
|
|||
pie.operator("sculpt.sculptmode_toggle", text="Sculpt", icon='SCULPTMODE_HLT')
|
||||
# 9 - TOP - RIGHT
|
||||
pie.operator("class.pieweightpaint", text="Weight Paint", icon='WPAINT_HLT')
|
||||
|
||||
|
||||
# 1 - BOTTOM - LEFT
|
||||
if context.object.particle_systems:
|
||||
pie.operator("class.pieparticleedit", text="Particle Edit", icon='PARTICLEMODE')
|
||||
else:
|
||||
pie.separator()
|
||||
# 3 - BOTTOM - RIGHT
|
||||
if context.gpencil_data:
|
||||
pie.operator("class.piestrokeedit", text="Stroke Edit", icon='GREASEPENCIL')
|
||||
else:
|
||||
pie.separator()
|
||||
|
||||
if ob and ob.type == 'CURVE':
|
||||
elif ob and ob.type == 'CURVE':
|
||||
pie = layout.menu_pie()
|
||||
pie.separator()
|
||||
pie.separator()
|
||||
pie.separator()
|
||||
pie.operator("object.editmode_toggle", text="Edit/Object", icon='OBJECT_DATAMODE')
|
||||
pie.separator()
|
||||
pie.separator()
|
||||
pie.separator()
|
||||
# 3 - BOTTOM - RIGHT
|
||||
if context.gpencil_data:
|
||||
pie.operator("class.piestrokeedit", text="Stroke Edit", icon='GREASEPENCIL')
|
||||
else:
|
||||
pie.separator()
|
||||
|
||||
if ob and ob.type == 'ARMATURE':
|
||||
elif ob and ob.type == 'ARMATURE':
|
||||
pie = layout.menu_pie()
|
||||
pie.operator("object.editmode_toggle", text="Edit Mode", icon='OBJECT_DATAMODE')
|
||||
pie.separator()
|
||||
pie.operator("object.posemode_toggle", text="Pose", icon='POSE_HLT')
|
||||
pie.operator("class.object", text="Object Mode", icon='OBJECT_DATAMODE')
|
||||
pie.separator()
|
||||
pie.operator("object.editmode_toggle", text="Edit Mode", icon='OBJECT_DATAMODE')
|
||||
pie.separator()
|
||||
pie.separator()
|
||||
pie.separator()
|
||||
# 3 - BOTTOM - RIGHT
|
||||
if context.gpencil_data:
|
||||
pie.operator("class.piestrokeedit", text="Stroke Edit", icon='GREASEPENCIL')
|
||||
else:
|
||||
pie.separator()
|
||||
|
||||
if ob and ob.type == 'FONT':
|
||||
elif ob and ob.type == 'FONT':
|
||||
pie = layout.menu_pie()
|
||||
pie.separator()
|
||||
pie.separator()
|
||||
pie.separator()
|
||||
pie.operator("object.editmode_toggle", text="Edit/Object Toggle", icon='OBJECT_DATAMODE')
|
||||
pie.separator()
|
||||
pie.separator()
|
||||
pie.separator()
|
||||
# 3 - BOTTOM - RIGHT
|
||||
if context.gpencil_data:
|
||||
pie.operator("class.piestrokeedit", text="Stroke Edit", icon='GREASEPENCIL')
|
||||
else:
|
||||
pie.separator()
|
||||
|
||||
if ob and ob.type == 'SURFACE':
|
||||
elif ob and ob.type == 'SURFACE':
|
||||
pie = layout.menu_pie()
|
||||
pie.separator()
|
||||
pie.separator()
|
||||
pie.separator()
|
||||
pie.operator("object.editmode_toggle", text="Edit/Object Toggle", icon='OBJECT_DATAMODE')
|
||||
pie.separator()
|
||||
pie.separator()
|
||||
pie.separator()
|
||||
# 3 - BOTTOM - RIGHT
|
||||
if context.gpencil_data:
|
||||
pie.operator("class.piestrokeedit", text="Stroke Edit", icon='GREASEPENCIL')
|
||||
else:
|
||||
pie.separator()
|
||||
|
||||
if ob and ob.type == 'META':
|
||||
elif ob and ob.type == 'META':
|
||||
pie = layout.menu_pie()
|
||||
pie.separator()
|
||||
pie.separator()
|
||||
pie.separator()
|
||||
pie.operator("object.editmode_toggle", text="Edit/Object Toggle", icon='OBJECT_DATAMODE')
|
||||
pie.separator()
|
||||
pie.separator()
|
||||
pie.separator()
|
||||
# 3 - BOTTOM - RIGHT
|
||||
if context.gpencil_data:
|
||||
pie.operator("class.piestrokeedit", text="Stroke Edit", icon='GREASEPENCIL')
|
||||
else:
|
||||
pie.separator()
|
||||
|
||||
if ob and ob.type == 'LATTICE':
|
||||
elif ob and ob.type == 'LATTICE':
|
||||
pie = layout.menu_pie()
|
||||
pie.separator()
|
||||
pie.separator()
|
||||
pie.separator()
|
||||
pie.operator("object.editmode_toggle", text="Edit/Object Toggle", icon='OBJECT_DATAMODE')
|
||||
pie.separator()
|
||||
pie.separator()
|
||||
pie.separator()
|
||||
# 3 - BOTTOM - RIGHT
|
||||
if context.gpencil_data:
|
||||
pie.operator("class.piestrokeedit", text="Stroke Edit", icon='GREASEPENCIL')
|
||||
else:
|
||||
pie.separator()
|
||||
|
||||
classes = (
|
||||
PieObjectEditMode,
|
||||
|
@ -349,11 +424,12 @@ classes = (
|
|||
ClassWeightPaint,
|
||||
ClassVertexPaint,
|
||||
ClassParticleEdit,
|
||||
ClassStrokeEdit,
|
||||
VertsEdges,
|
||||
EdgesFaces,
|
||||
VertsFaces,
|
||||
VertsEdgesFaces
|
||||
)
|
||||
)
|
||||
|
||||
addon_keymaps = []
|
||||
|
||||
|
@ -368,7 +444,12 @@ def register():
|
|||
km = wm.keyconfigs.addon.keymaps.new(name='Object Non-modal')
|
||||
kmi = km.keymap_items.new('wm.call_menu_pie', 'TAB', 'PRESS')
|
||||
kmi.properties.name = "pie.objecteditmode"
|
||||
# kmi.active = True
|
||||
# kmi.active = True
|
||||
addon_keymaps.append((km, kmi))
|
||||
|
||||
km = wm.keyconfigs.addon.keymaps.new(name='Grease Pencil Stroke Edit Mode')
|
||||
kmi = km.keymap_items.new('wm.call_menu_pie', 'TAB', 'PRESS')
|
||||
kmi.properties.name = "pie.objecteditmode"
|
||||
addon_keymaps.append((km, kmi))
|
||||
|
||||
|
||||
|
@ -385,5 +466,11 @@ def unregister():
|
|||
if kmi.properties.name == "pie.objecteditmode":
|
||||
km.keymap_items.remove(kmi)
|
||||
|
||||
km = kc.keymaps['Grease Pencil Stroke Edit Mode']
|
||||
for kmi in km.keymap_items:
|
||||
if kmi.idname == 'wm.call_menu_pie':
|
||||
if kmi.properties.name == "pie.objecteditmode":
|
||||
km.keymap_items.remove(kmi)
|
||||
|
||||
if __name__ == "__main__":
|
||||
register()
|
||||
|
|
Loading…
Reference in New Issue