File headers: use SPDX license identifiers
[blender-addons.git] / space_view3d_pie_menus / pie_defaults_menu.py
blob0b49c4116894aa558dd313d66d4a7345375dd711
1 # SPDX-License-Identifier: GPL-2.0-or-later
3 # <pep8 compliant>
5 bl_info = {
6 "name": "Hotkey: 'Ctrl U'",
7 "description": "Save/Open & File Menus",
8 "blender": (2, 80, 0),
9 "location": "All Editors",
10 "warning": "",
11 "doc_url": "",
12 "category": "Interface"
15 import bpy
16 from bpy.types import (
17 Menu,
18 Operator,
20 import os
23 # Pie Save/Open
24 class PIE_MT_Load_Defaults(Menu):
25 bl_idname = "PIE_MT_loaddefaults"
26 bl_label = "Save Defaults"
28 def draw(self, context):
29 layout = self.layout
30 prefs = context.preferences
31 pie = layout.menu_pie()
32 # 4 - LEFT
33 pie.operator("wm.read_factory_settings", text="Load Factory Settings", icon='IMPORT')
34 # 6 - RIGHT
35 pie.operator("wm.read_factory_userpref", text="Load Factory Preferences", icon='RECOVER_LAST')
36 # 2 - BOTTOM
37 pie.operator("wm.read_userpref", text="Revert to Saved Prefs", icon='NONE')
38 # 8 - TOP
39 pie.operator("wm.save_homefile", text="Save StartUp File", icon='FILE_NEW')
40 # 7 - TOP - LEFT
41 pie.prop(prefs, "use_preferences_save", text="Auto-Save Preferences", icon='LINK_BLEND')
42 # 9 - TOP - RIGHT
43 pie.operator("wm.save_userpref", text="Save User Preferences", icon='NONE')
44 # 1 - BOTTOM - LEFT
45 pie.separator()
46 # 3 - BOTTOM - RIGHT
47 pie.separator()
51 classes = (
52 PIE_MT_Load_Defaults,
55 addon_keymaps = []
58 def register():
59 for cls in classes:
60 bpy.utils.register_class(cls)
62 wm = bpy.context.window_manager
63 if wm.keyconfigs.addon:
64 # Save/Open/...
65 km = wm.keyconfigs.addon.keymaps.new(name='Window')
66 kmi = km.keymap_items.new('wm.call_menu_pie', 'U', 'PRESS', ctrl=True)
67 kmi.properties.name = "PIE_MT_loaddefaults"
68 addon_keymaps.append((km, kmi))
71 def unregister():
72 for cls in classes:
73 bpy.utils.unregister_class(cls)
75 wm = bpy.context.window_manager
76 kc = wm.keyconfigs.addon
77 if kc:
78 for km, kmi in addon_keymaps:
79 km.keymap_items.remove(kmi)
80 addon_keymaps.clear()
83 if __name__ == "__main__":
84 register()