Sun Position: fix error in HDRI mode when no env tex is selected
[blender-addons.git] / space_view3d_pie_menus / pie_delete_menu.py
blob000d3051508182e28e7f81f0fb318616aa51d09d
1 # SPDX-License-Identifier: GPL-2.0-or-later
3 bl_info = {
4 "name": "Hotkey: 'X'",
5 "description": "Edit mode V/E/F Delete Modes",
6 "author": "pitiwazou, meta-androcto",
7 "version": (0, 1, 0),
8 "blender": (2, 80, 0),
9 "location": "Mesh Edit Mode",
10 "warning": "",
11 "doc_url": "",
12 "category": "Edit Delete Pie"
15 import bpy
16 from bpy.types import Menu
19 # Pie Delete - X
20 class PIE_MT_PieDelete(Menu):
21 bl_idname = "PIE_MT_delete"
22 bl_label = "Pie Delete"
24 def draw(self, context):
25 layout = self.layout
26 pie = layout.menu_pie()
27 # 4 - LEFT
28 box = pie.split().column()
29 box.operator("mesh.dissolve_limited", text="Limited Dissolve", icon='STICKY_UVS_LOC')
30 box.operator("mesh.delete_edgeloop", text="Delete Edge Loops", icon='NONE')
31 box.operator("mesh.edge_collapse", text="Edge Collapse", icon='UV_EDGESEL')
32 # 6 - RIGHT
33 box = pie.split().column()
34 box.operator("mesh.remove_doubles", text="Merge By Distance", icon='NONE')
35 box.operator("mesh.delete", text="Only Edge & Faces", icon='NONE').type = 'EDGE_FACE'
36 box.operator("mesh.delete", text="Only Faces", icon='UV_FACESEL').type = 'ONLY_FACE'
37 # 2 - BOTTOM
38 pie.operator("mesh.dissolve_edges", text="Dissolve Edges", icon='SNAP_EDGE')
39 # 8 - TOP
40 pie.operator("mesh.delete", text="Delete Edges", icon='EDGESEL').type = 'EDGE'
41 # 7 - TOP - LEFT
42 pie.operator("mesh.delete", text="Delete Vertices", icon='VERTEXSEL').type = 'VERT'
43 # 9 - TOP - RIGHT
44 pie.operator("mesh.delete", text="Delete Faces", icon='FACESEL').type = 'FACE'
45 # 1 - BOTTOM - LEFT
46 pie.operator("mesh.dissolve_verts", text="Dissolve Vertices", icon='SNAP_VERTEX')
47 # 3 - BOTTOM - RIGHT
48 pie.operator("mesh.dissolve_faces", text="Dissolve Faces", icon='SNAP_FACE')
51 classes = (
52 PIE_MT_PieDelete,
56 addon_keymaps = []
59 def register():
60 for cls in classes:
61 bpy.utils.register_class(cls)
63 wm = bpy.context.window_manager
64 if wm.keyconfigs.addon:
65 # Delete
66 km = wm.keyconfigs.addon.keymaps.new(name='Mesh')
67 kmi = km.keymap_items.new('wm.call_menu_pie', 'X', 'PRESS')
68 kmi.properties.name = "PIE_MT_delete"
69 addon_keymaps.append((km, kmi))
72 def unregister():
73 for cls in classes:
74 bpy.utils.unregister_class(cls)
76 wm = bpy.context.window_manager
77 kc = wm.keyconfigs.addon
78 if kc:
79 for km, kmi in addon_keymaps:
80 km.keymap_items.remove(kmi)
81 addon_keymaps.clear()
84 if __name__ == "__main__":
85 register()