diff options
Diffstat (limited to 'release')
26 files changed, 1567 insertions, 135 deletions
diff --git a/release/datafiles/fonts/bmonofont-i18n.ttf.gz b/release/datafiles/fonts/bmonofont-i18n.ttf.gz Binary files differnew file mode 100644 index 00000000000..1453ad48c6c --- /dev/null +++ b/release/datafiles/fonts/bmonofont-i18n.ttf.gz diff --git a/release/datafiles/startup.blend b/release/datafiles/startup.blend Binary files differindex 0a7e0668a97..40e1363797a 100644 --- a/release/datafiles/startup.blend +++ b/release/datafiles/startup.blend diff --git a/release/scripts/modules/bl_i18n_utils/bl_extract_messages.py b/release/scripts/modules/bl_i18n_utils/bl_extract_messages.py index 21c0a943984..5e58bccc6a8 100644 --- a/release/scripts/modules/bl_i18n_utils/bl_extract_messages.py +++ b/release/scripts/modules/bl_i18n_utils/bl_extract_messages.py @@ -242,7 +242,7 @@ def dump_messages_rna(msgs, reports, settings): def class_blacklist(): blacklist_rna_class = [ # core classes - "Context", "Event", "Function", "UILayout", "BlendData", "UnknownType", + "Context", "Event", "Function", "UILayout", "UnknownType", # registerable classes "Panel", "Menu", "Header", "RenderEngine", "Operator", "OperatorMacro", "Macro", "KeyingSetInfo", # window classes @@ -356,6 +356,8 @@ def dump_messages_rna(msgs, reports, settings): if bl_rna.description: process_msg(msgs, default_context, bl_rna.description, msgsrc, reports, check_ctxt_rna_tip, settings) + elif cls.__doc__: # XXX Some classes (like KeyingSetInfo subclasses) have void description... :( + process_msg(msgs, default_context, cls.__doc__, msgsrc, reports, check_ctxt_rna_tip, settings) if hasattr(bl_rna, 'bl_label') and bl_rna.bl_label: process_msg(msgs, msgctxt, bl_rna.bl_label, msgsrc, reports, check_ctxt_rna, settings) @@ -503,6 +505,7 @@ def dump_py_messages_from_files(msgs, reports, files, settings): ), "msgid": ((("msgctxt",), _ctxt_to_ctxt), ), + "message": (), } context_kw_set = {} @@ -538,6 +541,12 @@ def dump_py_messages_from_files(msgs, reports, files, settings): for msgid, msgctxts in context_kw_set.items(): if arg_kw in msgctxts: func_translate_args[func_id][msgid][1][arg_kw] = arg_pos + # The report() func of operators. + for func_id, func in bpy.types.Operator.bl_rna.functions.items(): + # check it has one or more arguments as defined in translate_kw + for arg_pos, (arg_kw, arg) in enumerate(func.parameters.items()): + if ((arg_kw in translate_kw) and (not arg.is_output) and (arg.type == 'STRING')): + func_translate_args.setdefault(func_id, {})[arg_kw] = (arg_pos, {}) # We manually add funcs from bpy.app.translations for func_id, func_ids in pgettext_variants: func_translate_args[func_id] = pgettext_variants_args diff --git a/release/scripts/modules/bl_i18n_utils/spell_check_utils.py b/release/scripts/modules/bl_i18n_utils/spell_check_utils.py index 40cbd6e9d17..2514873d137 100644 --- a/release/scripts/modules/bl_i18n_utils/spell_check_utils.py +++ b/release/scripts/modules/bl_i18n_utils/spell_check_utils.py @@ -69,6 +69,7 @@ class SpellChecker(): "bandnoise", "bindcode", "bitrate", + "blendfile", "blendin", "bonesize", "boundbox", @@ -77,6 +78,8 @@ class SpellChecker(): "builtin", "builtins", "bytecode", "chunksize", + "customdata", + "dataset", "datasets", "de", "defocus", "denoise", @@ -96,6 +99,7 @@ class SpellChecker(): "inscatter", "inscattering", "libdata", "lightless", + "localview", "lookup", "lookups", "mathutils", "midlevel", @@ -113,6 +117,7 @@ class SpellChecker(): "polyline", "popup", "popups", "pre", + "precache", "precaching", "precalculate", "prefetch", "premultiply", "premultiplied", @@ -120,6 +125,7 @@ class SpellChecker(): "prepend", "preprocess", "preprocessing", "preseek", + "raytree", "readonly", "realtime", "rekey", @@ -132,6 +138,7 @@ class SpellChecker(): "rolloff", "screencast", "screenshot", "screenshots", "selfcollision", + "shadowbuffer", "shadowbuffers", "singletexture", "spellcheck", "spellchecking", "startup", @@ -243,6 +250,7 @@ class SpellChecker(): "quat", "quats", "recalc", "recalcs", "refl", + "sce", "sel", "spec", "struct", "structs", @@ -250,6 +258,7 @@ class SpellChecker(): "tex", "tri", "tris", "uv", "uvs", "uvw", "uw", "uvmap", + "ve", "vec", "vel", # velocity! "vert", "verts", diff --git a/release/scripts/modules/console/complete_import.py b/release/scripts/modules/console/complete_import.py index 8f2b5324cdc..9277e04af76 100644 --- a/release/scripts/modules/console/complete_import.py +++ b/release/scripts/modules/console/complete_import.py @@ -111,10 +111,10 @@ def module_list(path): else: folder_list = [] #folder_list = glob.glob(os.path.join(path,'*')) - folder_list = [p for p in folder_list \ - if os.path.exists(os.path.join(path, p, '__init__.py'))\ - or p[-3:] in ('.py', '.so')\ - or p[-4:] in ('.pyc', '.pyo', '.pyd')] + folder_list = [p for p in folder_list \ + if os.path.exists(os.path.join(path, p, '__init__.py')) \ + or p[-3:] in {'.py', '.so'} \ + or p[-4:] in {'.pyc', '.pyo', '.pyd'}] folder_list = [os.path.basename(p).split('.')[0] for p in folder_list] return folder_list diff --git a/release/scripts/presets/interaction/3dsmax.py b/release/scripts/presets/interaction/3dsmax.py new file mode 100644 index 00000000000..681aa4ab4b7 --- /dev/null +++ b/release/scripts/presets/interaction/3dsmax.py @@ -0,0 +1,12 @@ +# Configuration 3dsmax +import bpy + +bpy.context.user_preferences.edit.use_drag_immediately = False +bpy.context.user_preferences.edit.use_insertkey_xyz_to_rgb = False +bpy.context.user_preferences.view.use_auto_perspective = True +bpy.context.user_preferences.view.use_quit_dialog = True +bpy.context.user_preferences.inputs.select_mouse = 'LEFT' +bpy.context.user_preferences.inputs.view_zoom_method = 'DOLLY' +bpy.context.user_preferences.inputs.view_zoom_axis = 'VERTICAL' +bpy.context.user_preferences.inputs.view_rotate_method = 'TURNTABLE' +bpy.context.user_preferences.inputs.invert_mouse_zoom = False diff --git a/release/scripts/presets/keyconfig/3dsmax.py b/release/scripts/presets/keyconfig/3dsmax.py new file mode 100644 index 00000000000..6a719c2619c --- /dev/null +++ b/release/scripts/presets/keyconfig/3dsmax.py @@ -0,0 +1,1359 @@ +# Configuration 3dsmax +import bpy + +wm = bpy.context.window_manager +kc = wm.keyconfigs.new('3dsmax') + +# Map 3D View +km = kc.keymaps.new('3D View', space_type='VIEW_3D', region_type='WINDOW', modal=False) + +kmi = km.keymap_items.new('view3d.manipulator', 'LEFTMOUSE', 'PRESS', any=True) +kmi.properties.release_confirm = True +kmi = km.keymap_items.new('view3d.cursor3d', 'ACTIONMOUSE', 'PRESS') +kmi = km.keymap_items.new('view3d.rotate', 'MIDDLEMOUSE', 'PRESS', alt=True) +kmi = km.keymap_items.new('view3d.move', 'MIDDLEMOUSE', 'PRESS') +kmi = km.keymap_items.new('view3d.zoom', 'MIDDLEMOUSE', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('view3d.dolly', 'MIDDLEMOUSE', 'PRESS', shift=True, ctrl=True) +kmi = km.keymap_items.new('view3d.view_selected', 'NUMPAD_PERIOD', 'PRESS', ctrl=True) +kmi.properties.use_all_regions = True +kmi = km.keymap_items.new('view3d.view_selected', 'NUMPAD_PERIOD', 'PRESS') +kmi.properties.use_all_regions = False +kmi = km.keymap_items.new('view3d.view_lock_to_active', 'NUMPAD_PERIOD', 'PRESS', shift=True) +kmi = km.keymap_items.new('view3d.view_lock_clear', 'NUMPAD_PERIOD', 'PRESS', alt=True) +kmi = km.keymap_items.new('view3d.fly', 'F', 'PRESS', shift=True) +kmi = km.keymap_items.new('view3d.smoothview', 'TIMER1', 'ANY', any=True) +kmi = km.keymap_items.new('view3d.rotate', 'TRACKPADPAN', 'ANY') +kmi = km.keymap_items.new('view3d.rotate', 'MOUSEROTATE', 'ANY') +kmi = km.keymap_items.new('view3d.move', 'TRACKPADPAN', 'ANY', shift=True) +kmi = km.keymap_items.new('view3d.zoom', 'TRACKPADZOOM', 'ANY') +kmi = km.keymap_items.new('view3d.zoom', 'TRACKPADPAN', 'ANY', ctrl=True) +kmi = km.keymap_items.new('view3d.zoom', 'NUMPAD_PLUS', 'PRESS') +kmi.properties.delta = 1 +kmi = km.keymap_items.new('view3d.zoom', 'NUMPAD_MINUS', 'PRESS') +kmi.properties.delta = -1 +kmi = km.keymap_items.new('view3d.zoom', 'EQUAL', 'PRESS', ctrl=True) +kmi.properties.delta = 1 +kmi = km.keymap_items.new('view3d.zoom', 'MINUS', 'PRESS', ctrl=True) +kmi.properties.delta = -1 +kmi = km.keymap_items.new('view3d.zoom', 'WHEELINMOUSE', 'PRESS') +kmi.properties.delta = 1 +kmi = km.keymap_items.new('view3d.zoom', 'WHEELOUTMOUSE', 'PRESS') +kmi.properties.delta = -1 +kmi = km.keymap_items.new('view3d.zoom_camera_1_to_1', 'NUMPAD_ENTER', 'PRESS', shift=True) +kmi = km.keymap_items.new('view3d.view_center_camera', 'HOME', 'PRESS') +kmi = km.keymap_items.new('view3d.view_center_cursor', 'HOME', 'PRESS', alt=True) +kmi = km.keymap_items.new('view3d.view_all', 'HOME', 'PRESS') +kmi.properties.center = False +kmi = km.keymap_items.new('view3d.view_all', 'HOME', 'PRESS', ctrl=True) +kmi.properties.use_all_regions = True +kmi.properties.center = False +kmi = km.keymap_items.new('view3d.view_all', 'C', 'PRESS', shift=True) +kmi.properties.center = True +kmi = km.keymap_items.new('view3d.viewnumpad', 'C', 'PRESS') +kmi.properties.type = 'CAMERA' +kmi = km.keymap_items.new('view3d.viewnumpad', 'F', 'PRESS') +kmi.properties.type = 'FRONT' +kmi = km.keymap_items.new('view3d.view_orbit', 'NUMPAD_2', 'PRESS') +kmi.properties.type = 'ORBITDOWN' +kmi = km.keymap_items.new('view3d.viewnumpad', 'NUMPAD_3', 'PRESS') +kmi.properties.type = 'RIGHT' +kmi = km.keymap_items.new('view3d.view_orbit', 'NUMPAD_4', 'PRESS') +kmi.properties.type = 'ORBITLEFT' +kmi = km.keymap_items.new('view3d.view_persportho', 'NUMPAD_5', 'PRESS') +kmi = km.keymap_items.new('view3d.view_orbit', 'NUMPAD_6', 'PRESS') +kmi.properties.type = 'ORBITRIGHT' +kmi = km.keymap_items.new('view3d.viewnumpad', 'T', 'PRESS') +kmi.properties.type = 'TOP' +kmi = km.keymap_items.new('view3d.view_orbit', 'NUMPAD_8', 'PRESS') +kmi.properties.type = 'ORBITUP' +kmi = km.keymap_items.new('view3d.viewnumpad', 'NUMPAD_1', 'PRESS', ctrl=True) +kmi.properties.type = 'BACK' +kmi = km.keymap_items.new('view3d.viewnumpad', 'L', 'PRESS') +kmi.properties.type = 'LEFT' +kmi = km.keymap_items.new('view3d.viewnumpad', 'B', 'PRESS') +kmi.properties.type = 'BOTTOM' +kmi = km.keymap_items.new('view3d.view_pan', 'NUMPAD_2', 'PRESS', ctrl=True) +kmi.properties.type = 'PANDOWN' +kmi = km.keymap_items.new('view3d.view_pan', 'NUMPAD_4', 'PRESS', ctrl=True) +kmi.properties.type = 'PANLEFT' +kmi = km.keymap_items.new('view3d.view_pan', 'NUMPAD_6', 'PRESS', ctrl=True) +kmi.properties.type = 'PANRIGHT' +kmi = km.keymap_items.new('view3d.view_pan', 'NUMPAD_8', 'PRESS', ctrl=True) +kmi.properties.type = 'PANUP' +kmi = km.keymap_items.new('view3d.view_pan', 'WHEELUPMOUSE', 'PRESS', ctrl=True) +kmi.properties.type = 'PANRIGHT' +kmi = km.keymap_items.new('view3d.view_pan', 'WHEELDOWNMOUSE', 'PRESS', ctrl=True) +kmi.properties.type = 'PANLEFT' +kmi = km.keymap_items.new('view3d.view_pan', 'WHEELUPMOUSE', 'PRESS', shift=True) +kmi.properties.type = 'PANUP' +kmi = km.keymap_items.new('view3d.view_pan', 'WHEELDOWNMOUSE', 'PRESS', shift=True) +kmi.properties.type = 'PANDOWN' +kmi = km.keymap_items.new('view3d.view_orbit', 'WHEELUPMOUSE', 'PRESS', ctrl=True, alt=True) +kmi.properties.type = 'ORBITLEFT' +kmi = km.keymap_items.new('view3d.view_orbit', 'WHEELDOWNMOUSE', 'PRESS', ctrl=True, alt=True) +kmi.properties.type = 'ORBITRIGHT' +kmi = km.keymap_items.new('view3d.view_orbit', 'WHEELUPMOUSE', 'PRESS', shift=True, alt=True) +kmi.properties.type = 'ORBITUP' +kmi = km.keymap_items.new('view3d.view_orbit', 'WHEELDOWNMOUSE', 'PRESS', shift=True, alt=True) +kmi.properties.type = 'ORBITDOWN' +kmi = km.keymap_items.new('view3d.viewnumpad', 'NUMPAD_1', 'PRESS', shift=True) +kmi.properties.type = 'FRONT' +kmi.properties.align_active = True +kmi = km.keymap_items.new('view3d.viewnumpad', 'NUMPAD_3', 'PRESS', shift=True) +kmi.properties.type = 'RIGHT' +kmi.properties.align_active = True +kmi = km.keymap_items.new('view3d.viewnumpad', 'NUMPAD_7', 'PRESS', shift=True) +kmi.properties.type = 'TOP' +kmi.properties.align_active = True +kmi = km.keymap_items.new('view3d.viewnumpad', 'NUMPAD_1', 'PRESS', shift=True, ctrl=True) +kmi.properties.type = 'BACK' +kmi.properties.align_active = True +kmi = km.keymap_items.new('view3d.viewnumpad', 'NUMPAD_3', 'PRESS', shift=True, ctrl=True) +kmi.properties.type = 'LEFT' +kmi.properties.align_active = True +kmi = km.keymap_items.new('view3d.viewnumpad', 'NUMPAD_7', 'PRESS', shift=True, ctrl=True) +kmi.properties.type = 'BOTTOM' +kmi.properties.align_active = True +kmi = km.keymap_items.new('view3d.localview', 'NUMPAD_SLASH', 'PRESS') +kmi = km.keymap_items.new('view3d.ndof_orbit_zoom', 'NDOF_MOTION', 'ANY') +kmi = km.keymap_items.new('view3d.ndof_orbit', 'NDOF_MOTION', 'ANY', ctrl=True) +kmi = km.keymap_items.new('view3d.ndof_pan', 'NDOF_MOTION', 'ANY', shift=True) +kmi = km.keymap_items.new('view3d.ndof_all', 'NDOF_MOTION', 'ANY', shift=True, ctrl=True) +kmi = km.keymap_items.new('view3d.view_selected', 'NDOF_BUTTON_FIT', 'PRESS') +kmi = km.keymap_items.new('view3d.viewnumpad', 'NDOF_BUTTON_FRONT', 'PRESS') +kmi.properties.type = 'FRONT' +kmi = km.keymap_items.new('view3d.viewnumpad', 'NDOF_BUTTON_BACK', 'PRESS') +kmi.properties.type = 'BACK' +kmi = km.keymap_items.new('view3d.viewnumpad', 'NDOF_BUTTON_LEFT', 'PRESS') +kmi.properties.type = 'LEFT' +kmi = km.keymap_items.new('view3d.viewnumpad', 'NDOF_BUTTON_RIGHT', 'PRESS') +kmi.properties.type = 'RIGHT' +kmi = km.keymap_items.new('view3d.viewnumpad', 'NDOF_BUTTON_TOP', 'PRESS') +kmi.properties.type = 'TOP' +kmi = km.keymap_items.new('view3d.viewnumpad', 'NDOF_BUTTON_BOTTOM', 'PRESS') +kmi.properties.type = 'BOTTOM' +kmi = km.keymap_items.new('view3d.viewnumpad', 'NDOF_BUTTON_FRONT', 'PRESS', shift=True) +kmi.properties.type = 'FRONT' +kmi.properties.align_active = True +kmi = km.keymap_items.new('view3d.viewnumpad', 'NDOF_BUTTON_RIGHT', 'PRESS', shift=True) +kmi.properties.type = 'RIGHT' +kmi.properties.align_active = True +kmi = km.keymap_items.new('view3d.viewnumpad', 'NDOF_BUTTON_TOP', 'PRESS', shift=True) +kmi.properties.type = 'TOP' +kmi.properties.align_active = True +kmi = km.keymap_items.new('view3d.layers', 'ACCENT_GRAVE', 'PRESS') +kmi.properties.nr = 0 +kmi = km.keymap_items.new('view3d.layers', 'ONE', 'PRESS', any=True) +kmi.properties.nr = 1 +kmi = km.keymap_items.new('view3d.layers', 'TWO', 'PRESS', any=True) +kmi.properties.nr = 2 +kmi = km.keymap_items.new('view3d.layers', 'THREE', 'PRESS', any=True) +kmi.properties.nr = 3 +kmi = km.keymap_items.new('view3d.layers', 'FOUR', 'PRESS', any=True) +kmi.properties.nr = 4 +kmi = km.keymap_items.new('view3d.layers', 'FIVE', 'PRESS', any=True) +kmi.properties.nr = 5 +kmi = km.keymap_items.new('view3d.layers', 'SIX', 'PRESS', any=True) +kmi.properties.nr = 6 +kmi = km.keymap_items.new('view3d.layers', 'SEVEN', 'PRESS', any=True) +kmi.properties.nr = 7 +kmi = km.keymap_items.new('view3d.layers', 'EIGHT', 'PRESS', any=True) +kmi.properties.nr = 8 +kmi = km.keymap_items.new('view3d.layers', 'NINE', 'PRESS', any=True) +kmi.properties.nr = 9 +kmi = km.keymap_items.new('view3d.layers', 'ZERO', 'PRESS', any=True) +kmi.properties.nr = 10 +kmi = km.keymap_items.new('wm.context_toggle_enum', 'Z', 'PRESS') +kmi.properties.data_path = 'space_data.viewport_shade' +kmi.properties.value_1 = 'SOLID' +kmi.properties.value_2 = 'WIREFRAME' +kmi = km.keymap_items.new('wm.context_toggle_enum', 'Z', 'PRESS', alt=True) +kmi.properties.data_path = 'space_data.viewport_shade' +kmi.properties.value_1 = 'SOLID' +kmi.properties.value_2 = 'TEXTURED' +kmi = km.keymap_items.new('view3d.select', 'SELECTMOUSE', 'RELEASE') +kmi.properties.extend = False +kmi.properties.deselect = False +kmi.properties.toggle = False +kmi.properties.center = False +kmi.properties.enumerate = False +kmi.properties.object = False +kmi = km.keymap_items.new('view3d.select', 'SELECTMOUSE', 'RELEASE', ctrl=True) +kmi.properties.extend = False +kmi.properties.deselect = False +kmi.properties.toggle = True +kmi.properties.center = False +kmi.properties.enumerate = False +kmi.properties.object = False +kmi = km.keymap_items.new('view3d.select', 'SELECTMOUSE', 'PRESS', shift=True) +kmi.properties.extend = False +kmi.properties.deselect = False +kmi.properties.toggle = False +kmi.properties.center = True +kmi.properties.enumerate = False +kmi.properties.object = True +kmi = km.keymap_items.new('view3d.select', 'SELECTMOUSE', 'RELEASE', alt=True) +kmi.properties.extend = False +kmi.properties.deselect = False +kmi.properties.toggle = False +kmi.properties.center = False +kmi.properties.enumerate = True +kmi.properties.object = False +kmi = km.keymap_items.new('view3d.select', 'SELECTMOUSE', 'RELEASE', shift=True, ctrl=True) +kmi.properties.extend = True +kmi.properties.deselect = False +kmi.properties.toggle = True +kmi.properties.center = True +kmi.properties.enumerate = False +kmi.properties.object = False +kmi = km.keymap_items.new('view3d.select', 'SELECTMOUSE', 'RELEASE', ctrl=True, alt=True) +kmi.properties.extend = False +kmi.properties.deselect = False +kmi.properties.toggle = False +kmi.properties.center = True +kmi.properties.enumerate = True +kmi.properties.object = False +kmi = km.keymap_items.new('view3d.select', 'SELECTMOUSE', 'RELEASE', shift=True, alt=True) +kmi.properties.extend = False +kmi.properties.deselect = False +kmi.properties.toggle = True +kmi.properties.center = False +kmi.properties.enumerate = True +kmi.properties.object = False +kmi = km.keymap_items.new('view3d.select', 'SELECTMOUSE', 'RELEASE', shift=True, ctrl=True, alt=True) +kmi.properties.extend = False +kmi.properties.deselect = False +kmi.properties.toggle = True +kmi.properties.center = True +kmi.properties.enumerate = True +kmi.properties.object = False +kmi = km.keymap_items.new('view3d.select_border', 'EVT_TWEAK_L', 'ANY') +kmi.properties.extend = False +kmi = km.keymap_items.new('view3d.select_lasso', 'EVT_TWEAK_A', 'ANY', ctrl=True) +kmi.properties.deselect = False +kmi = km.keymap_items.new('view3d.select_lasso', 'EVT_TWEAK_A', 'ANY', shift=True, ctrl=True) +kmi.properties.deselect = True +kmi = km.keymap_items.new('view3d.select_circle', 'C', 'PRESS', alt=True) +kmi = km.keymap_items.new('view3d.clip_border', 'B', 'PRESS', alt=True) +kmi = km.keymap_items.new('view3d.zoom_border', 'B', 'PRESS', shift=True) +kmi = km.keymap_items.new('view3d.render_border', 'B', 'PRESS', shift=True) +kmi.properties.camera_only = True +kmi = km.keymap_items.new('view3d.render_border', 'B', 'PRESS', ctrl=True) +kmi.properties.camera_only = False +kmi = km.keymap_items.new('view3d.clear_render_border', 'B', 'PRESS', ctrl=True, alt=True) +kmi = km.keymap_items.new('view3d.camera_to_view', 'NUMPAD_0', 'PRESS', ctrl=True, alt=True) +kmi = km.keymap_items.new('view3d.object_as_camera', 'NUMPAD_0', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('wm.call_menu', 'S', 'PRESS', shift=True) +kmi.properties.name = 'VIEW3D_MT_snap' +kmi = km.keymap_items.new('view3d.copybuffer', 'C', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('view3d.pastebuffer', 'V', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('wm.context_set_enum', 'COMMA', 'PRESS') +kmi.properties.data_path = 'space_data.pivot_point' +kmi.properties.value = 'BOUNDING_BOX_CENTER' +kmi = km.keymap_items.new('wm.context_set_enum', 'COMMA', 'PRESS', ctrl=True) +kmi.properties.data_path = 'space_data.pivot_point' +kmi.properties.value = 'MEDIAN_POINT' +kmi = km.keymap_items.new('wm.context_toggle', 'COMMA', 'PRESS', alt=True) +kmi.properties.data_path = 'space_data.use_pivot_point_align' +kmi = km.keymap_items.new('wm.context_toggle', 'SPACE', 'PRESS', ctrl=True) +kmi.properties.data_path = 'space_data.show_manipulator' +kmi = km.keymap_items.new('wm.context_set_enum', 'PERIOD', 'PRESS') +kmi.properties.data_path = 'space_data.pivot_point' +kmi.properties.value = 'CURSOR' +kmi = km.keymap_items.new('wm.context_set_enum', 'PERIOD', 'PRESS', ctrl=True) +kmi.properties.data_path = 'space_data.pivot_point' +kmi.properties.value = 'INDIVIDUAL_ORIGINS' +kmi = km.keymap_items.new('wm.context_set_enum', 'PERIOD', 'PRESS', alt=True) +kmi.properties.data_path = 'space_data.pivot_point' +kmi.properties.value = 'ACTIVE_ELEMENT' +kmi = km.keymap_items.new('transform.translate', 'W', 'PRESS', shift=True) +kmi = km.keymap_items.new('transform.translate', 'EVT_TWEAK_S', 'ANY') +kmi = km.keymap_items.new('transform.rotate', 'E', 'PRESS', shift=True) +kmi = km.keymap_items.new('transform.resize', 'R', 'PRESS', shift=True) +kmi = km.keymap_items.new('transform.warp', 'Q', 'PRESS', shift=True) +kmi = km.keymap_items.new('transform.tosphere', 'S', 'PRESS', shift=True, alt=True) +kmi = km.keymap_items.new('transform.shear', 'S', 'PRESS', shift=True, ctrl=True, alt=True) +kmi = km.keymap_items.new('transform.select_orientation', 'SPACE', 'PRESS', alt=True) +kmi = km.keymap_items.new('transform.create_orientation', 'SPACE', 'PRESS', ctrl=True, alt=True) +kmi.properties.use = True +kmi = km.keymap_items.new('transform.mirror', 'M', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('wm.context_toggle', 'TAB', 'PRESS', shift=True) +kmi.properties.data_path = 'tool_settings.use_snap' +kmi = km.keymap_items.new('wm.context_menu_enum', 'TAB', 'PRESS', shift=True, ctrl=True) +kmi.properties.data_path = 'tool_settings.snap_element' +kmi = km.keymap_items.new('transform.translate', 'T', 'PRESS', shift=True) +kmi.properties.texture_space = True +kmi = km.keymap_items.new('transform.resize', 'T', 'PRESS', shift=True, alt=True) +kmi.properties.texture_space = True +kmi = km.keymap_items.new('transform.skin_resize', 'A', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('view3d.enable_manipulator', 'W', 'PRESS') +kmi.properties.translate = True +kmi = km.keymap_items.new('view3d.enable_manipulator', 'E', 'PRESS') +kmi.properties.rotate = True +kmi = km.keymap_items.new('view3d.enable_manipulator', 'R', 'PRESS') +kmi.properties.scale = True +kmi = km.keymap_items.new('wm.context_toggle', 'S', 'PRESS') +kmi.properties.data_path = 'tool_settings.use_snap' +kmi = km.keymap_items.new('wm.context_toggle_enum', 'A', 'PRESS') +kmi.properties.data_path = 'tool_settings.snap_element' +kmi.properties.value_1 = 'VERTEX' +kmi.properties.value_2 = 'INCREMENT' +kmi = km.keymap_items.new('view3d.select_border', 'EVT_TWEAK_L', 'ANY', ctrl=True) +kmi = km.keymap_items.new('wm.context_toggle', 'G', 'PRESS') +kmi.properties.data_path = 'space_data.show_floor' + +# Map 3D View Generic +km = kc.keymaps.new('3D View Generic', space_type='VIEW_3D', region_type='WINDOW', modal=False) + +kmi = km.keymap_items.new('view3d.properties', 'N', 'PRESS') +kmi = km.keymap_items.new('view3d.toolshelf', 'D', 'PRESS') + +# Map Weight Paint Vertex Selection +km = kc.keymaps.new('Weight Paint Vertex Selection', space_type='EMPTY', region_type='WINDOW', modal=False) + +kmi = km.keymap_items.new('paint.vert_select_all', 'A', 'PRESS') +kmi = km.keymap_items.new('paint.vert_select_inverse', 'I', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('view3d.select_border', 'B', 'PRESS') +kmi = km.keymap_items.new('view3d.select_lasso', 'EVT_TWEAK_A', 'ANY', ctrl=True) +kmi.properties.deselect = False +kmi = km.keymap_items.new('view3d.select_lasso', 'EVT_TWEAK_A', 'ANY', shift=True, ctrl=True) +kmi.properties.deselect = True +kmi = km.keymap_items.new('view3d.select_circle', 'C', 'PRESS', alt=True) + +# Map Pose +km = kc.keymaps.new('Pose', space_type='EMPTY', region_type='WINDOW', modal=False) + +kmi = km.keymap_items.new('object.parent_set', 'P', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('wm.call_menu', 'A', 'PRESS', shift=True) +kmi.properties.name = 'INFO_MT_add' +kmi = km.keymap_items.new('pose.hide', 'H', 'PRESS') +kmi.properties.unselected = False +kmi = km.keymap_items.new('pose.hide', 'H', 'PRESS', shift=True) +kmi.properties.unselected = True +kmi = km.keymap_items.new('pose.reveal', 'H', 'PRESS', alt=True) +kmi = km.keymap_items.new('wm.call_menu', 'A', 'PRESS', ctrl=True) +kmi.properties.name = 'VIEW3D_MT_pose_apply' +kmi = km.keymap_items.new('pose.rot_clear', 'R', 'PRESS', alt=True) +kmi = km.keymap_items.new('pose.loc_clear', 'G', 'PRESS', alt=True) +kmi = km.keymap_items.new('pose.scale_clear', 'S', 'PRESS', alt=True) +kmi = km.keymap_items.new('pose.quaternions_flip', 'F', 'PRESS', alt=True) +kmi = km.keymap_items.new('pose.rotation_mode_set', 'R', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('pose.copy', 'C', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('pose.paste', 'V', 'PRESS', ctrl=True) +kmi.properties.flipped = False +kmi = km.keymap_items.new('pose.paste', 'V', 'PRESS', shift=True, ctrl=True) +kmi.properties.flipped = True +kmi = km.keymap_items.new('pose.select_all', 'LEFTMOUSE', 'CLICK') +kmi.properties.action = 'TOGGLE' +kmi = km.keymap_items.new('pose.select_all', 'I', 'PRESS', ctrl=True) +kmi.properties.action = 'INVERT' +kmi = km.keymap_items.new('pose.select_parent', 'P', 'PRESS', shift=True) +kmi = km.keymap_items.new('pose.select_hierarchy', 'LEFT_BRACKET', 'PRESS') +kmi.properties.direction = 'PARENT' +kmi.properties.extend = False +kmi = km.keymap_items.new('pose.select_hierarchy', 'LEFT_BRACKET', 'PRESS', shift=True) +kmi.properties.direction = 'PARENT' +kmi.properties.extend = True +kmi = km.keymap_items.new('pose.select_hierarchy', 'RIGHT_BRACKET', 'PRESS') +kmi.properties.direction = 'CHILD' +kmi.properties.extend = False +kmi = km.keymap_items.new('pose.select_hierarchy', 'RIGHT_BRACKET', 'PRESS', shift=True) +kmi.properties.direction = 'CHILD' +kmi.properties.extend = True +kmi = km.keymap_items.new('pose.select_linked', 'L', 'PRESS', alt=True) +kmi = km.keymap_items.new('pose.select_grouped', 'G', 'PRESS', shift=True) +kmi = km.keymap_items.new('pose.select_flip_active', 'F', 'PRESS', shift=True) +kmi = km.keymap_items.new('pose.constraint_add_with_targets', 'C', 'PRESS', shift=True, ctrl=True) +kmi = km.keymap_items.new('pose.constraints_clear', 'C', 'PRESS', ctrl=True, alt=True) +kmi = km.keymap_items.new('pose.ik_add', 'I', 'PRESS', shift=True) +kmi = km.keymap_items.new('pose.ik_clear', 'I', 'PRESS', ctrl=True, alt=True) +kmi = km.keymap_items.new('wm.call_menu', 'G', 'PRESS', ctrl=True) +kmi.properties.name = 'VIEW3D_MT_pose_group' +kmi = km.keymap_items.new('wm.call_menu', 'W', 'PRESS', shift=True) +kmi.properties.name = 'VIEW3D_MT_bone_options_toggle' +kmi = km.keymap_items.new('wm.call_menu', 'W', 'PRESS', shift=True, ctrl=True) +kmi.properties.name = 'VIEW3D_MT_bone_options_enable' +kmi = km.keymap_items.new('wm.call_menu', 'W', 'PRESS', alt=True) +kmi.properties.name = 'VIEW3D_MT_bone_options_disable' +kmi = km.keymap_items.new('armature.layers_show_all', 'ACCENT_GRAVE', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('pose.armature_layers', 'M', 'PRESS', shift=True) +kmi = km.keymap_items.new('pose.bone_layers', 'M', 'PRESS') +kmi = km.keymap_items.new('transform.transform', 'S', 'PRESS', ctrl=True, alt=True) +kmi.properties.mode = 'BONE_SIZE' +kmi = km.keymap_items.new('anim.keyframe_insert_menu', 'I', 'PRESS') +kmi = km.keymap_items.new('anim.keyframe_delete_v3d', 'I', 'PRESS', alt=True) +kmi = km.keymap_items.new('anim.keying_set_active_set', 'I', 'PRESS', shift=True, ctrl=True, alt=True) +kmi = km.keymap_items.new('poselib.browse_interactive', 'L', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('poselib.pose_add', 'L', 'PRESS', shift=True) +kmi = km.keymap_items.new('poselib.pose_remove', 'L', 'PRESS', ctrl=True, alt=True) +kmi = km.keymap_items.new('poselib.pose_rename', 'L', 'PRESS', shift=True, ctrl=True) +kmi = km.keymap_items.new('pose.push', 'E', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('pose.relax', 'E', 'PRESS', alt=True) +kmi = km.keymap_items.new('pose.breakdown', 'E', 'PRESS', shift=True) +kmi = km.keymap_items.new('wm.call_menu', 'Q', 'PRESS') +kmi.properties.name = 'VIEW3D_MT_pose_specials' + +# Map Object Mode +km = kc.keymaps.new('Object Mode', space_type='EMPTY', region_type='WINDOW', modal=False) + +kmi = km.keymap_items.new('wm.context_cycle_enum', 'O', 'PRESS', shift=True) +kmi.properties.data_path = 'tool_settings.proportional_edit_falloff' +kmi = km.keymap_items.new('wm.context_toggle', 'O', 'PRESS') +kmi.properties.data_path = 'tool_settings.use_proportional_edit_objects' +kmi = km.keymap_items.new('view3d.game_start', 'P', 'PRESS') +kmi = km.keymap_items.new('object.select_all', 'LEFTMOUSE', 'CLICK') +kmi.properties.action = 'DESELECT' +kmi = km.keymap_items.new('object.select_all', 'I', 'PRESS', ctrl=True) +kmi.properties.action = 'INVERT' +kmi = km.keymap_items.new('object.select_linked', 'L', 'PRESS', shift=True) +kmi = km.keymap_items.new('object.select_grouped', 'G', 'PRESS', shift=True) +kmi = km.keymap_items.new('object.select_mirror', 'M', 'PRESS', shift=True, ctrl=True) +kmi = km.keymap_items.new('object.select_hierarchy', 'LEFT_BRACKET', 'PRESS') +kmi.properties.direction = 'PARENT' +kmi.properties.extend = False +kmi = km.keymap_items.new('object.select_hierarchy', 'LEFT_BRACKET', 'PRESS', shift=True) +kmi.properties.direction = 'PARENT' +kmi.properties.extend = True +kmi = km.keymap_items.new('object.select_hierarchy', 'RIGHT_BRACKET', 'PRESS') +kmi.properties.direction = 'CHILD' +kmi.properties.extend = False +kmi = km.keymap_items.new('object.select_hierarchy', 'RIGHT_BRACKET', 'PRESS', shift=True) +kmi.properties.direction = 'CHILD' +kmi.properties.extend = True +kmi = km.keymap_items.new('object.parent_set', 'P', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('object.parent_no_inverse_set', 'P', 'PRESS', shift=True, ctrl=True) +kmi = km.keymap_items.new('object.parent_clear', 'P', 'PRESS', alt=True) +kmi = km.keymap_items.new('object.track_set', 'T', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('object.track_clear', 'T', 'PRESS', alt=True) +kmi = km.keymap_items.new('object.constraint_add_with_targets', 'C', 'PRESS', shift=True, ctrl=True) +kmi = km.keymap_items.new('object.constraints_clear', 'C', 'PRESS', ctrl=True, alt=True) +kmi = km.keymap_items.new('object.location_clear', 'G', 'PRESS', alt=True) +kmi = km.keymap_items.new('object.rotation_clear', 'R', 'PRESS', alt=True) +kmi = km.keymap_items.new('object.scale_clear', 'S', 'PRESS', alt=True) +kmi = km.keymap_items.new('object.origin_clear', 'O', 'PRESS', alt=True) +kmi = km.keymap_items.new('object.hide_view_clear', 'H', 'PRESS', alt=True) +kmi = km.keymap_items.new('object.hide_view_set', 'H', 'PRESS') +kmi.properties.unselected = False +kmi = km.keymap_items.new('object.hide_view_set', 'H', 'PRESS', shift=True) +kmi.properties.unselected = True +kmi = km.keymap_items.new('object.hide_render_clear', 'H', 'PRESS', ctrl=True, alt=True) +kmi = km.keymap_items.new('object.hide_render_set', 'H', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('object.move_to_layer', 'M', 'PRESS') +kmi = km.keymap_items.new('object.delete', 'X', 'PRESS') +kmi.properties.use_global = False +kmi = km.keymap_items.new('object.delete', 'X', 'PRESS', shift=True) +kmi.properties.use_global = False +kmi = km.keymap_items.new('object.delete', 'DEL', 'PRESS') +kmi = km.keymap_items.new('object.delete', 'DEL', 'PRESS', shift=True) +kmi.properties.use_global = True +kmi = km.keymap_items.new('wm.call_menu', 'A', 'PRESS', shift=True) +kmi.properties.name = 'INFO_MT_add' +kmi = km.keymap_items.new('object.duplicates_make_real', 'A', 'PRESS', shift=True, ctrl=True) +kmi = km.keymap_items.new('wm.call_menu', 'A', 'PRESS', ctrl=True) +kmi.properties.name = 'VIEW3D_MT_object_apply' +kmi = km.keymap_items.new('wm.call_menu', 'U', 'PRESS') +kmi.properties.name = 'VIEW3D_MT_make_single_user' +kmi = km.keymap_items.new('wm.call_menu', 'L', 'PRESS', ctrl=True) +kmi.properties.name = 'VIEW3D_MT_make_links' +kmi = km.keymap_items.new('object.duplicate_move', 'D', 'PRESS', shift=True) +kmi = km.keymap_items.new('object.duplicate_move_linked', 'D', 'PRESS', alt=True) +kmi = km.keymap_items.new('object.join', 'J', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('object.convert', 'C', 'PRESS', ctrl=True, alt=True) +kmi = km.keymap_items.new('object.proxy_make', 'P', 'PRESS', ctrl=True, alt=True) +kmi = km.keymap_items.new('object.make_local', 'L', 'PRESS', alt=True) +kmi = km.keymap_items.new('anim.keyframe_insert_menu', 'I', 'PRESS') +kmi = km.keymap_items.new('anim.keyframe_delete_v3d', 'I', 'PRESS', alt=True) +kmi = km.keymap_items.new('anim.keying_set_active_set', 'I', 'PRESS', shift=True, ctrl=True, alt=True) +kmi = km.keymap_items.new('group.create', 'G', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('group.objects_remove', 'G', 'PRESS', ctrl=True, alt=True) +kmi = km.keymap_items.new('group.objects_remove_all', 'G', 'PRESS', shift=True, ctrl=True, alt=True) +kmi = km.keymap_items.new('group.objects_add_active', 'G', 'PRESS', shift=True, ctrl=True) +kmi = km.keymap_items.new('group.objects_remove_active', 'G', 'PRESS', shift=True, alt=True) +kmi = km.keymap_items.new('rigidbody.objects_add', 'R', 'PRESS', ctrl=True) +kmi.properties.type = 'ACTIVE' +kmi = km.keymap_items.new('rigidbody.objects_add', 'R', 'PRESS', shift=True, ctrl=True) +kmi.properties.type = 'PASSIVE' +kmi = km.keymap_items.new('rigidbody.objects_remove', 'R', 'PRESS', ctrl=True, alt=True) +kmi = km.keymap_items.new('wm.call_menu', 'Q', 'PRESS') +kmi.properties.name = 'VIEW3D_MT_object_specials' +kmi = km.keymap_items.new('object.subdivision_set', 'ZERO', 'PRESS', ctrl=True) +kmi.properties.level = 0 +kmi = km.keymap_items.new('object.subdivision_set', 'ONE', 'PRESS', ctrl=True) +kmi.properties.level = 1 +kmi = km.keymap_items.new('object.subdivision_set', 'TWO', 'PRESS', ctrl=True) +kmi.properties.level = 2 +kmi = km.keymap_items.new('object.subdivision_set', 'THREE', 'PRESS', ctrl=True) +kmi.properties.level = 3 +kmi = km.keymap_items.new('object.subdivision_set', 'FOUR', 'PRESS', ctrl=True) +kmi.properties.level = 4 +kmi = km.keymap_items.new('object.subdivision_set', 'FIVE', 'PRESS', ctrl=True) +kmi.properties.level = 5 + +# Map Image Paint +km = kc.keymaps.new('Image Paint', space_type='EMPTY', region_type='WINDOW', modal=False) + +kmi = km.keymap_items.new('paint.image_paint', 'LEFTMOUSE', 'PRESS') +kmi = km.keymap_items.new('paint.grab_clone', 'RIGHTMOUSE', 'PRESS') +kmi = km.keymap_items.new('paint.sample_color', 'RIGHTMOUSE', 'PRESS') +kmi = km.keymap_items.new('paint.clone_cursor_set', 'LEFTMOUSE', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('brush.active_index_set', 'ONE', 'PRESS') +kmi.properties.mode = 'image_paint' +kmi.properties.index = 0 +kmi = km.keymap_items.new('brush.active_index_set', 'TWO', 'PRESS') +kmi.properties.mode = 'image_paint' +kmi.properties.index = 1 +kmi = km.keymap_items.new('brush.active_index_set', 'THREE', 'PRESS') +kmi.properties.mode = 'image_paint' +kmi.properties.index = 2 +kmi = km.keymap_items.new('brush.active_index_set', 'FOUR', 'PRESS') +kmi.properties.mode = 'image_paint' +kmi.properties.index = 3 +kmi = km.keymap_items.new('brush.active_index_set', 'FIVE', 'PRESS') +kmi.properties.mode = 'image_paint' +kmi.properties.index = 4 +kmi = km.keymap_items.new('brush.active_index_set', 'SIX', 'PRESS') +kmi.properties.mode = 'image_paint' +kmi.properties.index = 5 +kmi = km.keymap_items.new('brush.active_index_set', 'SEVEN', 'PRESS') +kmi.properties.mode = 'image_paint' +kmi.properties.index = 6 +kmi = km.keymap_items.new('brush.active_index_set', 'EIGHT', 'PRESS') +kmi.properties.mode = 'image_paint' +kmi.properties.index = 7 +kmi = km.keymap_items.new('brush.active_index_set', 'NINE', 'PRESS') +kmi.properties.mode = 'image_paint' +kmi.properties.index = 8 +kmi = km.keymap_items.new('brush.active_index_set', 'ZERO', 'PRESS') +kmi.properties.mode = 'image_paint' +kmi.properties.index = 9 +kmi = km.keymap_items.new('brush.active_index_set', 'ONE', 'PRESS', shift=True) +kmi.properties.mode = 'image_paint' +kmi.properties.index = 10 +kmi = km.keymap_items.new('brush.active_index_set', 'TWO', 'PRESS', shift=True) +kmi.properties.mode = 'image_paint' +kmi.properties.index = 11 +kmi = km.keymap_items.new('brush.active_index_set', 'THREE', 'PRESS', shift=True) +kmi.properties.mode = 'image_paint' +kmi.properties.index = 12 +kmi = km.keymap_items.new('brush.active_index_set', 'FOUR', 'PRESS', shift=True) +kmi.properties.mode = 'image_paint' +kmi.properties.index = 13 +kmi = km.keymap_items.new('brush.active_index_set', 'FIVE', 'PRESS', shift=True) +kmi.properties.mode = 'image_paint' +kmi.properties.index = 14 +kmi = km.keymap_items.new('brush.active_index_set', 'SIX', 'PRESS', shift=True) +kmi.properties.mode = 'image_paint' +kmi.properties.index = 15 +kmi = km.keymap_items.new('brush.active_index_set', 'SEVEN', 'PRESS', shift=True) +kmi.properties.mode = 'image_paint' +kmi.properties.index = 16 +kmi = km.keymap_items.new('brush.active_index_set', 'EIGHT', 'PRESS', shift=True) +kmi.properties.mode = 'image_paint' +kmi.properties.index = 17 +kmi = km.keymap_items.new('brush.active_index_set', 'NINE', 'PRESS', shift=True) +kmi.properties.mode = 'image_paint' +kmi.properties.index = 18 +kmi = km.keymap_items.new('brush.active_index_set', 'ZERO', 'PRESS', shift=True) +kmi.properties.mode = 'image_paint' +kmi.properties.index = 19 +kmi = km.keymap_items.new('brush.scale_size', 'LEFT_BRACKET', 'PRESS') +kmi.properties.scalar = 0.8999999761581421 +kmi = km.keymap_items.new('brush.scale_size', 'RIGHT_BRACKET', 'PRESS') +kmi.properties.scalar = 1.1111111640930176 +kmi = km.keymap_items.new('wm.radial_control', 'F', 'PRESS', ctrl=True) +kmi.properties.data_path_primary = 'tool_settings.image_paint.brush.size' +kmi.properties.data_path_secondary = 'tool_settings.unified_paint_settings.size' +kmi.properties.use_secondary = 'tool_settings.unified_paint_settings.use_unified_size' +kmi.properties.rotation_path = 'tool_settings.image_paint.brush.texture_slot.angle' +kmi.properties.color_path = 'tool_settings.image_paint.brush.cursor_color_add' +kmi.properties.fill_color_path = 'tool_settings.image_paint.brush.color' +kmi.properties.zoom_path = 'space_data.zoom' +kmi.properties.image_id = 'tool_settings.image_paint.brush' +kmi = km.keymap_items.new('wm.radial_control', 'F', 'PRESS', shift=True) +kmi.properties.data_path_primary = 'tool_settings.image_paint.brush.strength' +kmi.properties.data_path_secondary = 'tool_settings.unified_paint_settings.strength' +kmi.properties.use_secondary = 'tool_settings.unified_paint_settings.use_unified_strength' +kmi.properties.rotation_path = 'tool_settings.image_paint.brush.texture_slot.angle' +kmi.properties.color_path = 'tool_settings.image_paint.brush.cursor_color_add' +kmi.properties.fill_color_path = 'tool_settings.image_paint.brush.color' +kmi.properties.zoom_path = '' +kmi.properties.image_id = 'tool_settings.image_paint.brush' +kmi = km.keymap_items.new('wm.radial_control', 'W', 'PRESS') +kmi.properties.data_path_primary = 'tool_settings.image_paint.brush.weight' +kmi.properties.data_path_secondary = 'tool_settings.unified_paint_settings.weight' +kmi.properties.use_secondary = 'tool_settings.unified_paint_settings.use_unified_weight' +kmi.properties.rotation_path = 'tool_settings.image_paint.brush.texture_slot.angle' +kmi.properties.color_path = 'tool_settings.image_paint.brush.cursor_color_add' +kmi.properties.fill_color_path = 'tool_settings.image_paint.brush.color' +kmi.properties.zoom_path = '' +kmi.properties.image_id = 'tool_settings.image_paint.brush' +kmi = km.keymap_items.new('wm.context_toggle', 'M', 'PRESS') +kmi.properties.data_path = 'image_paint_object.data.use_paint_mask' + +# Map Vertex Paint +km = kc.keymaps.new('Vertex Paint', space_type='EMPTY', region_type='WINDOW', modal=False) + +kmi = km.keymap_items.new('paint.vertex_paint', 'LEFTMOUSE', 'PRESS') +kmi = km.keymap_items.new('paint.sample_color', 'RIGHTMOUSE', 'PRESS') +kmi = km.keymap_items.new('paint.vertex_color_set', 'K', 'PRESS', shift=True) +kmi = km.keymap_items.new('brush.active_index_set', 'ONE', 'PRESS') +kmi.properties.mode = 'vertex_paint' +kmi.properties.index = 0 +kmi = km.keymap_items.new('brush.active_index_set', 'TWO', 'PRESS') +kmi.properties.mode = 'vertex_paint' +kmi.properties.index = 1 +kmi = km.keymap_items.new('brush.active_index_set', 'THREE', 'PRESS') +kmi.properties.mode = 'vertex_paint' +kmi.properties.index = 2 +kmi = km.keymap_items.new('brush.active_index_set', 'FOUR', 'PRESS') +kmi.properties.mode = 'vertex_paint' +kmi.properties.index = 3 +kmi = km.keymap_items.new('brush.active_index_set', 'FIVE', 'PRESS') +kmi.properties.mode = 'vertex_paint' +kmi.properties.index = 4 +kmi = km.keymap_items.new('brush.active_index_set', 'SIX', 'PRESS') +kmi.properties.mode = 'vertex_paint' +kmi.properties.index = 5 +kmi = km.keymap_items.new('brush.active_index_set', 'SEVEN', 'PRESS') +kmi.properties.mode = 'vertex_paint' +kmi.properties.index = 6 +kmi = km.keymap_items.new('brush.active_index_set', 'EIGHT', 'PRESS') +kmi.properties.mode = 'vertex_paint' +kmi.properties.index = 7 +kmi = km.keymap_items.new('brush.active_index_set', 'NINE', 'PRESS') +kmi.properties.mode = 'vertex_paint' +kmi.properties.index = 8 +kmi = km.keymap_items.new('brush.active_index_set', 'ZERO', 'PRESS') +kmi.properties.mode = 'vertex_paint' +kmi.properties.index = 9 +kmi = km.keymap_items.new('brush.active_index_set', 'ONE', 'PRESS', shift=True) +kmi.properties.mode = 'vertex_paint' +kmi.properties.index = 10 +kmi = km.keymap_items.new('brush.active_index_set', 'TWO', 'PRESS', shift=True) +kmi.properties.mode = 'vertex_paint' +kmi.properties.index = 11 +kmi = km.keymap_items.new('brush.active_index_set', 'THREE', 'PRESS', shift=True) +kmi.properties.mode = 'vertex_paint' +kmi.properties.index = 12 +kmi = km.keymap_items.new('brush.active_index_set', 'FOUR', 'PRESS', shift=True) +kmi.properties.mode = 'vertex_paint' +kmi.properties.index = 13 +kmi = km.keymap_items.new('brush.active_index_set', 'FIVE', 'PRESS', shift=True) +kmi.properties.mode = 'vertex_paint' +kmi.properties.index = 14 +kmi = km.keymap_items.new('brush.active_index_set', 'SIX', 'PRESS', shift=True) +kmi.properties.mode = 'vertex_paint' +kmi.properties.index = 15 +kmi = km.keymap_items.new('brush.active_index_set', 'SEVEN', 'PRESS', shift=True) +kmi.properties.mode = 'vertex_paint' +kmi.properties.index = 16 +kmi = km.keymap_items.new('brush.active_index_set', 'EIGHT', 'PRESS', shift=True) +kmi.properties.mode = 'vertex_paint' +kmi.properties.index = 17 +kmi = km.keymap_items.new('brush.active_index_set', 'NINE', 'PRESS', shift=True) +kmi.properties.mode = 'vertex_paint' +kmi.properties.index = 18 +kmi = km.keymap_items.new('brush.active_index_set', 'ZERO', 'PRESS', shift=True) +kmi.properties.mode = 'vertex_paint' +kmi.properties.index = 19 +kmi = km.keymap_items.new('brush.scale_size', 'LEFT_BRACKET', 'PRESS') +kmi.properties.scalar = 0.8999999761581421 +kmi = km.keymap_items.new('brush.scale_size', 'RIGHT_BRACKET', 'PRESS') +kmi.properties.scalar = 1.1111111640930176 +kmi = km.keymap_items.new('wm.radial_control', 'F', 'PRESS', ctrl=True) +kmi.properties.data_path_primary = 'tool_settings.vertex_paint.brush.size' +kmi.properties.data_path_secondary = 'tool_settings.unified_paint_settings.size' +kmi.properties.use_secondary = 'tool_settings.unified_paint_settings.use_unified_size' +kmi.properties.rotation_path = 'tool_settings.vertex_paint.brush.texture_slot.angle' +kmi.properties.color_path = 'tool_settings.vertex_paint.brush.cursor_color_add' +kmi.properties.fill_color_path = 'tool_settings.vertex_paint.brush.color' +kmi.properties.zoom_path = '' +kmi.properties.image_id = 'tool_settings.vertex_paint.brush' +kmi = km.keymap_items.new('wm.radial_control', 'F', 'PRESS', shift=True) +kmi.properties.data_path_primary = 'tool_settings.vertex_paint.brush.strength' +kmi.properties.data_path_secondary = 'tool_settings.unified_paint_settings.strength' +kmi.properties.use_secondary = 'tool_settings.unified_paint_settings.use_unified_strength' +kmi.properties.rotation_path = 'tool_settings.vertex_paint.brush.texture_slot.angle' +kmi.properties.color_path = 'tool_settings.vertex_paint.brush.cursor_color_add' +kmi.properties.fill_color_path = 'tool_settings.vertex_paint.brush.color' +kmi.properties.zoom_path = '' +kmi.properties.image_id = 'tool_settings.vertex_paint.brush' +kmi = km.keymap_items.new('wm.radial_control', 'Q', 'PRESS') +kmi.properties.data_path_primary = 'tool_settings.vertex_paint.brush.weight' +kmi.properties.data_path_secondary = 'tool_settings.unified_paint_settings.weight' +kmi.properties.use_secondary = 'tool_settings.unified_paint_settings.use_unified_weight' +kmi.properties.rotation_path = 'tool_settings.vertex_paint.brush.texture_slot.angle' +kmi.properties.color_path = 'tool_settings.vertex_paint.brush.cursor_color_add' +kmi.properties.fill_color_path = 'tool_settings.vertex_paint.brush.color' +kmi.properties.zoom_path = '' +kmi.properties.image_id = 'tool_settings.vertex_paint.brush' +kmi = km.keymap_items.new('wm.context_toggle', 'M', 'PRESS') +kmi.properties.data_path = 'vertex_paint_object.data.use_paint_mask' + +# Map Weight Paint +km = kc.keymaps.new('Weight Paint', space_type='EMPTY', region_type='WINDOW', modal=False) + +kmi = km.keymap_items.new('paint.weight_paint', 'LEFTMOUSE', 'PRESS') +kmi = km.keymap_items.new('paint.weight_sample', 'ACTIONMOUSE', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('paint.weight_sample_group', 'ACTIONMOUSE', 'PRESS', shift=True) +kmi = km.keymap_items.new('paint.weight_gradient', 'LEFTMOUSE', 'PRESS', alt=True) +kmi.properties.type = 'LINEAR' +kmi = km.keymap_items.new('paint.weight_gradient', 'LEFTMOUSE', 'PRESS', ctrl=True, alt=True) +kmi.properties.type = 'RADIAL' +kmi = km.keymap_items.new('paint.weight_set', 'K', 'PRESS', shift=True) +kmi = km.keymap_items.new('brush.active_index_set', 'ONE', 'PRESS') +kmi.properties.mode = 'weight_paint' +kmi.properties.index = 0 +kmi = km.keymap_items.new('brush.active_index_set', 'TWO', 'PRESS') +kmi.properties.mode = 'weight_paint' +kmi.properties.index = 1 +kmi = km.keymap_items.new('brush.active_index_set', 'THREE', 'PRESS') +kmi.properties.mode = 'weight_paint' +kmi.properties.index = 2 +kmi = km.keymap_items.new('brush.active_index_set', 'FOUR', 'PRESS') +kmi.properties.mode = 'weight_paint' +kmi.properties.index = 3 +kmi = km.keymap_items.new('brush.active_index_set', 'FIVE', 'PRESS') +kmi.properties.mode = 'weight_paint' +kmi.properties.index = 4 +kmi = km.keymap_items.new('brush.active_index_set', 'SIX', 'PRESS') +kmi.properties.mode = 'weight_paint' +kmi.properties.index = 5 +kmi = km.keymap_items.new('brush.active_index_set', 'SEVEN', 'PRESS') +kmi.properties.mode = 'weight_paint' +kmi.properties.index = 6 +kmi = km.keymap_items.new('brush.active_index_set', 'EIGHT', 'PRESS') +kmi.properties.mode = 'weight_paint' +kmi.properties.index = 7 +kmi = km.keymap_items.new('brush.active_index_set', 'NINE', 'PRESS') +kmi.properties.mode = 'weight_paint' +kmi.properties.index = 8 +kmi = km.keymap_items.new('brush.active_index_set', 'ZERO', 'PRESS') +kmi.properties.mode = 'weight_paint' +kmi.properties.index = 9 +kmi = km.keymap_items.new('brush.active_index_set', 'ONE', 'PRESS', shift=True) +kmi.properties.mode = 'weight_paint' +kmi.properties.index = 10 +kmi = km.keymap_items.new('brush.active_index_set', 'TWO', 'PRESS', shift=True) +kmi.properties.mode = 'weight_paint' +kmi.properties.index = 11 +kmi = km.keymap_items.new('brush.active_index_set', 'THREE', 'PRESS', shift=True) +kmi.properties.mode = 'weight_paint' +kmi.properties.index = 12 +kmi = km.keymap_items.new('brush.active_index_set', 'FOUR', 'PRESS', shift=True) +kmi.properties.mode = 'weight_paint' +kmi.properties.index = 13 +kmi = km.keymap_items.new('brush.active_index_set', 'FIVE', 'PRESS', shift=True) +kmi.properties.mode = 'weight_paint' +kmi.properties.index = 14 +kmi = km.keymap_items.new('brush.active_index_set', 'SIX', 'PRESS', shift=True) +kmi.properties.mode = 'weight_paint' +kmi.properties.index = 15 +kmi = km.keymap_items.new('brush.active_index_set', 'SEVEN', 'PRESS', shift=True) +kmi.properties.mode = 'weight_paint' +kmi.properties.index = 16 +kmi = km.keymap_items.new('brush.active_index_set', 'EIGHT', 'PRESS', shift=True) +kmi.properties.mode = 'weight_paint' +kmi.properties.index = 17 +kmi = km.keymap_items.new('brush.active_index_set', 'NINE', 'PRESS', shift=True) +kmi.properties.mode = 'weight_paint' +kmi.properties.index = 18 +kmi = km.keymap_items.new('brush.active_index_set', 'ZERO', 'PRESS', shift=True) +kmi.properties.mode = 'weight_paint' +kmi.properties.index = 19 +kmi = km.keymap_items.new('brush.scale_size', 'LEFT_BRACKET', 'PRESS') +kmi.properties.scalar = 0.8999999761581421 +kmi = km.keymap_items.new('brush.scale_size', 'RIGHT_BRACKET', 'PRESS') +kmi.properties.scalar = 1.1111111640930176 +kmi = km.keymap_items.new('wm.radial_control', 'F', 'PRESS', ctrl=True) +kmi.properties.data_path_primary = 'tool_settings.weight_paint.brush.size' +kmi.properties.data_path_secondary = 'tool_settings.unified_paint_settings.size' +kmi.properties.use_secondary = 'tool_settings.unified_paint_settings.use_unified_size' +kmi.properties.rotation_path = 'tool_settings.weight_paint.brush.texture_slot.angle' +kmi.properties.color_path = 'tool_settings.weight_paint.brush.cursor_color_add' +kmi.properties.fill_color_path = '' +kmi.properties.zoom_path = '' +kmi.properties.image_id = 'tool_settings.weight_paint.brush' +kmi = km.keymap_items.new('wm.radial_control', 'F', 'PRESS', shift=True) +kmi.properties.data_path_primary = 'tool_settings.weight_paint.brush.strength' +kmi.properties.data_path_secondary = 'tool_settings.unified_paint_settings.strength' +kmi.properties.use_secondary = 'tool_settings.unified_paint_settings.use_unified_strength' +kmi.properties.rotation_path = 'tool_settings.weight_paint.brush.texture_slot.angle' +kmi.properties.color_path = 'tool_settings.weight_paint.brush.cursor_color_add' +kmi.properties.fill_color_path = '' +kmi.properties.zoom_path = '' +kmi.properties.image_id = 'tool_settings.weight_paint.brush' +kmi = km.keymap_items.new('wm.radial_control', 'Q', 'PRESS') +kmi.properties.data_path_primary = 'tool_settings.weight_paint.brush.weight' +kmi.properties.data_path_secondary = 'tool_settings.unified_paint_settings.weight' +kmi.properties.use_secondary = 'tool_settings.unified_paint_settings.use_unified_weight' +kmi.properties.rotation_path = 'tool_settings.weight_paint.brush.texture_slot.angle' +kmi.properties.color_path = 'tool_settings.weight_paint.brush.cursor_color_add' +kmi.properties.fill_color_path = '' +kmi.properties.zoom_path = '' +kmi.properties.image_id = 'tool_settings.weight_paint.brush' +kmi = km.keymap_items.new('wm.context_toggle', 'M', 'PRESS') +kmi.properties.data_path = 'weight_paint_object.data.use_paint_mask' +kmi = km.keymap_items.new('wm.context_toggle', 'V', 'PRESS') +kmi.properties.data_path = 'weight_paint_object.data.use_paint_mask_vertex' +kmi = km.keymap_items.new('paint.weight_from_bones', 'Q', 'PRESS') + +# Map Sculpt +km = kc.keymaps.new('Sculpt', space_type='EMPTY', region_type='WINDOW', modal=False) + +kmi = km.keymap_items.new('sculpt.brush_stroke', 'LEFTMOUSE', 'PRESS') +kmi.properties.mode = 'NORMAL' +kmi = km.keymap_items.new('sculpt.brush_stroke', 'LEFTMOUSE', 'PRESS', ctrl=True) +kmi.properties.mode = 'INVERT' +kmi = km.keymap_items.new('sculpt.brush_stroke', 'LEFTMOUSE', 'PRESS', shift=True) +kmi.properties.mode = 'SMOOTH' +kmi = km.keymap_items.new('paint.hide_show', 'H', 'PRESS', shift=True) +kmi.properties.action = 'SHOW' +kmi.properties.area = 'INSIDE' +kmi = km.keymap_items.new('paint.hide_show', 'H', 'PRESS') +kmi.properties.action = 'HIDE' +kmi.properties.area = 'INSIDE' +kmi = km.keymap_items.new('paint.hide_show', 'H', 'PRESS', alt=True) +kmi.properties.action = 'SHOW' +kmi.properties.area = 'ALL' +kmi = km.keymap_items.new('object.subdivision_set', 'ZERO', 'PRESS', ctrl=True) +kmi.properties.level = 0 +kmi = km.keymap_items.new('object.subdivision_set', 'ONE', 'PRESS', ctrl=True) +kmi.properties.level = 1 +kmi = km.keymap_items.new('object.subdivision_set', 'TWO', 'PRESS', ctrl=True) +kmi.properties.level = 2 +kmi = km.keymap_items.new('object.subdivision_set', 'THREE', 'PRESS', ctrl=True) +kmi.properties.level = 3 +kmi = km.keymap_items.new('object.subdivision_set', 'FOUR', 'PRESS', ctrl=True) +kmi.properties.level = 4 +kmi = km.keymap_items.new('object.subdivision_set', 'FIVE', 'PRESS', ctrl=True) +kmi.properties.level = 5 +kmi = km.keymap_items.new('paint.mask_flood_fill', 'M', 'PRESS', alt=True) +kmi.properties.mode = 'VALUE' +kmi.properties.value = 0.0 +kmi = km.keymap_items.new('paint.mask_flood_fill', 'I', 'PRESS', ctrl=True) +kmi.properties.mode = 'INVERT' +kmi = km.keymap_items.new('sculpt.dynamic_topology_toggle', 'D', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('wm.radial_control', 'D', 'PRESS', shift=True) +kmi.properties.data_path_primary = 'tool_settings.sculpt.detail_size' +kmi.properties.data_path_secondary = '' +kmi.properties.use_secondary = '' +kmi.properties.rotation_path = 'tool_settings.sculpt.brush.texture_slot.angle' +kmi.properties.color_path = 'tool_settings.sculpt.brush.cursor_color_add' +kmi.properties.fill_color_path = '' +kmi.properties.zoom_path = '' +kmi.properties.image_id = 'tool_settings.sculpt.brush' +kmi = km.keymap_items.new('object.subdivision_set', 'PAGE_UP', 'PRESS') +kmi.properties.level = 1 +kmi.properties.relative = True +kmi = km.keymap_items.new('object.subdivision_set', 'PAGE_DOWN', 'PRESS') +kmi.properties.level = -1 +kmi.properties.relative = True +kmi = km.keymap_items.new('brush.active_index_set', 'ONE', 'PRESS') +kmi.properties.mode = 'sculpt' +kmi.properties.index = 0 +kmi = km.keymap_items.new('brush.active_index_set', 'TWO', 'PRESS') +kmi.properties.mode = 'sculpt' +kmi.properties.index = 1 +kmi = km.keymap_items.new('brush.active_index_set', 'THREE', 'PRESS') +kmi.properties.mode = 'sculpt' +kmi.properties.index = 2 +kmi = km.keymap_items.new('brush.active_index_set', 'FOUR', 'PRESS') +kmi.properties.mode = 'sculpt' +kmi.properties.index = 3 +kmi = km.keymap_items.new('brush.active_index_set', 'FIVE', 'PRESS') +kmi.properties.mode = 'sculpt' +kmi.properties.index = 4 +kmi = km.keymap_items.new('brush.active_index_set', 'SIX', 'PRESS') +kmi.properties.mode = 'sculpt' +kmi.properties.index = 5 +kmi = km.keymap_items.new('brush.active_index_set', 'SEVEN', 'PRESS') +kmi.properties.mode = 'sculpt' +kmi.properties.index = 6 +kmi = km.keymap_items.new('brush.active_index_set', 'EIGHT', 'PRESS') +kmi.properties.mode = 'sculpt' +kmi.properties.index = 7 +kmi = km.keymap_items.new('brush.active_index_set', 'NINE', 'PRESS') +kmi.properties.mode = 'sculpt' +kmi.properties.index = 8 +kmi = km.keymap_items.new('brush.active_index_set', 'ZERO', 'PRESS') +kmi.properties.mode = 'sculpt' +kmi.properties.index = 9 +kmi = km.keymap_items.new('brush.active_index_set', 'ONE', 'PRESS', shift=True) +kmi.properties.mode = 'sculpt' +kmi.properties.index = 10 +kmi = km.keymap_items.new('brush.active_index_set', 'TWO', 'PRESS', shift=True) +kmi.properties.mode = 'sculpt' +kmi.properties.index = 11 +kmi = km.keymap_items.new('brush.active_index_set', 'THREE', 'PRESS', shift=True) +kmi.properties.mode = 'sculpt' +kmi.properties.index = 12 +kmi = km.keymap_items.new('brush.active_index_set', 'FOUR', 'PRESS', shift=True) +kmi.properties.mode = 'sculpt' +kmi.properties.index = 13 +kmi = km.keymap_items.new('brush.active_index_set', 'FIVE', 'PRESS', shift=True) +kmi.properties.mode = 'sculpt' +kmi.properties.index = 14 +kmi = km.keymap_items.new('brush.active_index_set', 'SIX', 'PRESS', shift=True) +kmi.properties.mode = 'sculpt' +kmi.properties.index = 15 +kmi = km.keymap_items.new('brush.active_index_set', 'SEVEN', 'PRESS', shift=True) +kmi.properties.mode = 'sculpt' +kmi.properties.index = 16 +kmi = km.keymap_items.new('brush.active_index_set', 'EIGHT', 'PRESS', shift=True) +kmi.properties.mode = 'sculpt' +kmi.properties.index = 17 +kmi = km.keymap_items.new('brush.active_index_set', 'NINE', 'PRESS', shift=True) +kmi.properties.mode = 'sculpt' +kmi.properties.index = 18 +kmi = km.keymap_items.new('brush.active_index_set', 'ZERO', 'PRESS', shift=True) +kmi.properties.mode = 'sculpt' +kmi.properties.index = 19 +kmi = km.keymap_items.new('brush.scale_size', 'LEFT_BRACKET', 'PRESS') +kmi.properties.scalar = 0.8999999761581421 +kmi = km.keymap_items.new('brush.scale_size', 'RIGHT_BRACKET', 'PRESS') +kmi.properties.scalar = 1.1111111640930176 +kmi = km.keymap_items.new('wm.radial_control', 'F', 'PRESS', ctrl=True) +kmi.properties.data_path_primary = 'tool_settings.sculpt.brush.size' +kmi.properties.data_path_secondary = 'tool_settings.unified_paint_settings.size' +kmi.properties.use_secondary = 'tool_settings.unified_paint_settings.use_unified_size' +kmi.properties.rotation_path = 'tool_settings.sculpt.brush.texture_slot.angle' +kmi.properties.color_path = 'tool_settings.sculpt.brush.cursor_color_add' +kmi.properties.fill_color_path = '' +kmi.properties.zoom_path = '' +kmi.properties.image_id = 'tool_settings.sculpt.brush' +kmi = km.keymap_items.new('wm.radial_control', 'F', 'PRESS', shift=True) +kmi.properties.data_path_primary = 'tool_settings.sculpt.brush.strength' +kmi.properties.data_path_secondary = 'tool_settings.unified_paint_settings.strength' +kmi.properties.use_secondary = 'tool_settings.unified_paint_settings.use_unified_strength' +kmi.properties.rotation_path = 'tool_settings.sculpt.brush.texture_slot.angle' +kmi.properties.color_path = 'tool_settings.sculpt.brush.cursor_color_add' +kmi.properties.fill_color_path = '' +kmi.properties.zoom_path = '' +kmi.properties.image_id = 'tool_settings.sculpt.brush' +kmi = km.keymap_items.new('wm.radial_control', 'W', 'PRESS') +kmi.properties.data_path_primary = 'tool_settings.sculpt.brush.weight' +kmi.properties.data_path_secondary = 'tool_settings.unified_paint_settings.weight' +kmi.properties.use_secondary = 'tool_settings.unified_paint_settings.use_unified_weight' +kmi.properties.rotation_path = 'tool_settings.sculpt.brush.texture_slot.angle' +kmi.properties.color_path = 'tool_settings.sculpt.brush.cursor_color_add' +kmi.properties.fill_color_path = '' +kmi.properties.zoom_path = '' +kmi.properties.image_id = 'tool_settings.sculpt.brush' +kmi = km.keymap_items.new('wm.radial_control', 'F', 'PRESS', ctrl=True) +kmi.properties.data_path_primary = 'tool_settings.sculpt.brush.texture_slot.angle' +kmi.properties.data_path_secondary = '' +kmi.properties.use_secondary = '' +kmi.properties.rotation_path = 'tool_settings.sculpt.brush.texture_slot.angle' +kmi.properties.color_path = 'tool_settings.sculpt.brush.cursor_color_add' +kmi.properties.fill_color_path = '' +kmi.properties.zoom_path = '' +kmi.properties.image_id = 'tool_settings.sculpt.brush' +kmi = km.keymap_items.new('paint.brush_select', 'D', 'PRESS') +kmi.properties.paint_mode = 'SCULPT' +kmi.properties.sculpt_tool = 'DRAW' +kmi = km.keymap_items.new('paint.brush_select', 'S', 'PRESS') +kmi.properties.paint_mode = 'SCULPT' +kmi.properties.sculpt_tool = 'SMOOTH' +kmi = km.keymap_items.new('paint.brush_select', 'P', 'PRESS') +kmi.properties.paint_mode = 'SCULPT' +kmi.properties.sculpt_tool = 'PINCH' +kmi = km.keymap_items.new('paint.brush_select', 'I', 'PRESS') +kmi.properties.paint_mode = 'SCULPT' +kmi.properties.sculpt_tool = 'INFLATE' +kmi = km.keymap_items.new('paint.brush_select', 'G', 'PRESS') +kmi.properties.paint_mode = 'SCULPT' +kmi.properties.sculpt_tool = 'GRAB' +kmi = km.keymap_items.new('paint.brush_select', 'L', 'PRESS') +kmi.properties.paint_mode = 'SCULPT' +kmi.properties.sculpt_tool = 'LAYER' +kmi = km.keymap_items.new('paint.brush_select', 'T', 'PRESS', shift=True) +kmi.properties.paint_mode = 'SCULPT' +kmi.properties.sculpt_tool = 'FLATTEN' +kmi = km.keymap_items.new('paint.brush_select', 'C', 'PRESS') +kmi.properties.paint_mode = 'SCULPT' +kmi.properties.sculpt_tool = 'CLAY' +kmi = km.keymap_items.new('paint.brush_select', 'C', 'PRESS', shift=True) +kmi.properties.paint_mode = 'SCULPT' +kmi.properties.sculpt_tool = 'CREASE' +kmi = km.keymap_items.new('paint.brush_select', 'K', 'PRESS') +kmi.properties.paint_mode = 'SCULPT' +kmi.properties.sculpt_tool = 'SNAKE_HOOK' +kmi = km.keymap_items.new('paint.brush_select', 'M', 'PRESS') +kmi.properties.paint_mode = 'SCULPT' +kmi.properties.sculpt_tool = 'MASK' +kmi.properties.toggle = True +kmi.properties.create_missing = True +kmi = km.keymap_items.new('wm.context_menu_enum', 'A', 'PRESS') +kmi.properties.data_path = 'tool_settings.sculpt.brush.stroke_method' +kmi = km.keymap_items.new('wm.context_toggle', 'S', 'PRESS', shift=True) +kmi.properties.data_path = 'tool_settings.sculpt.brush.use_smooth_stroke' +kmi = km.keymap_items.new('wm.context_menu_enum', 'R', 'PRESS') +kmi.properties.data_path = 'tool_settings.sculpt.brush.texture_angle_source_random' + +# Map Mesh +km = kc.keymaps.new('Mesh', space_type='EMPTY', region_type='WINDOW', modal=False) + +kmi = km.keymap_items.new('mesh.loopcut_slide', 'R', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('mesh.inset', 'I', 'PRESS') +kmi = km.keymap_items.new('mesh.bevel', 'B', 'PRESS', ctrl=True) +kmi.properties.vertex_only = False +kmi = km.keymap_items.new('mesh.bevel', 'B', 'PRESS', shift=True, ctrl=True) +kmi.properties.vertex_only = True +kmi = km.keymap_items.new('mesh.loop_select', 'SELECTMOUSE', 'PRESS', alt=True) +kmi.properties.extend = False +kmi.properties.deselect = False +kmi.properties.toggle = False +kmi = km.keymap_items.new('mesh.loop_select', 'SELECTMOUSE', 'PRESS', shift=True, alt=True) +kmi.properties.extend = False +kmi.properties.deselect = False +kmi.properties.toggle = True +kmi = km.keymap_items.new('mesh.edgering_select', 'SELECTMOUSE', 'PRESS', ctrl=True, alt=True) +kmi.properties.extend = False +kmi.properties.deselect = False +kmi.properties.toggle = False +kmi = km.keymap_items.new('mesh.edgering_select', 'SELECTMOUSE', 'PRESS', shift=True, ctrl=True, alt=True) +kmi.properties.extend = False +kmi.properties.deselect = False +kmi.properties.toggle = True +kmi = km.keymap_items.new('mesh.select_shortest_path', 'SELECTMOUSE', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('mesh.select_all', 'LEFTMOUSE', 'CLICK') +kmi.properties.action = 'DESELECT' +kmi = km.keymap_items.new('mesh.select_all', 'I', 'PRESS', ctrl=True) +kmi.properties.action = 'INVERT' +kmi = km.keymap_items.new('mesh.select_more', 'NUMPAD_PLUS', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('mesh.select_less', 'NUMPAD_MINUS', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('mesh.select_non_manifold', 'M', 'PRESS', shift=True, ctrl=True, alt=True) +kmi = km.keymap_items.new('mesh.select_linked', 'L', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('mesh.select_linked_pick', 'L', 'PRESS', alt=True) +kmi.properties.deselect = False +kmi = km.keymap_items.new('mesh.select_linked_pick', 'L', 'PRESS', shift=True) +kmi.properties.deselect = True +kmi = km.keymap_items.new('mesh.faces_select_linked_flat', 'F', 'PRESS', shift=True, ctrl=True, alt=True) +kmi = km.keymap_items.new('mesh.select_similar', 'G', 'PRESS', shift=True) +kmi = km.keymap_items.new('wm.call_menu', 'TAB', 'PRESS', ctrl=True) +kmi.properties.name = 'VIEW3D_MT_edit_mesh_select_mode' +kmi = km.keymap_items.new('mesh.hide', 'H', 'PRESS') +kmi.properties.unselected = False +kmi = km.keymap_items.new('mesh.hide', 'H', 'PRESS', shift=True) +kmi.properties.unselected = True +kmi = km.keymap_items.new('mesh.reveal', 'H', 'PRESS', alt=True) +kmi = km.keymap_items.new('mesh.normals_make_consistent', 'N', 'PRESS', ctrl=True) +kmi.properties.inside = False +kmi = km.keymap_items.new('mesh.normals_make_consistent', 'N', 'PRESS', shift=True, ctrl=True) +kmi.properties.inside = True +kmi = km.keymap_items.new('view3d.edit_mesh_extrude_move_normal', 'E', 'PRESS') +kmi = km.keymap_items.new('wm.call_menu', 'E', 'PRESS', alt=True) +kmi.properties.name = 'VIEW3D_MT_edit_mesh_extrude' +kmi = km.keymap_items.new('transform.edge_crease', 'E', 'PRESS', shift=True) +kmi = km.keymap_items.new('mesh.spin', 'R', 'PRESS', alt=True) +kmi = km.keymap_items.new('mesh.fill', 'F', 'PRESS', alt=True) +kmi = km.keymap_items.new('mesh.beautify_fill', 'F', 'PRESS', shift=True, alt=True) +kmi = km.keymap_items.new('mesh.quads_convert_to_tris', 'T', 'PRESS', ctrl=True) +kmi.properties.use_beauty = True +kmi = km.keymap_items.new('mesh.quads_convert_to_tris', 'T', 'PRESS', shift=True, ctrl=True) +kmi.properties.use_beauty = False +kmi = km.keymap_items.new('mesh.tris_convert_to_quads', 'J', 'PRESS', alt=True) +kmi = km.keymap_items.new('mesh.rip_move', 'V', 'PRESS') +kmi = km.keymap_items.new('mesh.rip_move_fill', 'V', 'PRESS', alt=True) +kmi = km.keymap_items.new('mesh.merge', 'M', 'PRESS', alt=True) +kmi = km.keymap_items.new('transform.shrink_fatten', 'S', 'PRESS', alt=True) +kmi = km.keymap_items.new('mesh.edge_face_add', 'F', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('mesh.duplicate_move', 'D', 'PRESS', shift=True) +kmi = km.keymap_items.new('wm.call_menu', 'A', 'PRESS', shift=True) +kmi.properties.name = 'INFO_MT_mesh_add' +kmi = km.keymap_items.new('mesh.separate', 'P', 'PRESS') +kmi = km.keymap_items.new('mesh.split', 'Y', 'PRESS') +kmi = km.keymap_items.new('mesh.vert_connect', 'J', 'PRESS') +kmi = km.keymap_items.new('transform.vert_slide', 'V', 'PRESS', shift=True) +kmi = km.keymap_items.new('mesh.dupli_extrude_cursor', 'ACTIONMOUSE', 'CLICK', ctrl=True) +kmi.properties.rotate_source = True +kmi = km.keymap_items.new('mesh.dupli_extrude_cursor', 'ACTIONMOUSE', 'CLICK', shift=True, ctrl=True) +kmi.properties.rotate_source = False +kmi = km.keymap_items.new('wm.call_menu', 'X', 'PRESS') +kmi.properties.name = 'VIEW3D_MT_edit_mesh_delete' +kmi = km.keymap_items.new('wm.call_menu', 'DEL', 'PRESS') +kmi.properties.name = 'VIEW3D_MT_edit_mesh_delete' +kmi = km.keymap_items.new('mesh.knife_tool', 'K', 'PRESS') +kmi.properties.use_occlude_geometry = True +kmi.properties.only_selected = False +kmi = km.keymap_items.new('mesh.knife_tool', 'K', 'PRESS', shift=True) +kmi.properties.use_occlude_geometry = False +kmi.properties.only_selected = True +kmi = km.keymap_items.new('object.vertex_parent_set', 'P', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('wm.call_menu', 'Q', 'PRESS') +kmi.properties.name = 'VIEW3D_MT_edit_mesh_specials' +kmi = km.keymap_items.new('wm.call_menu', 'F', 'PRESS', ctrl=True) +kmi.properties.name = 'VIEW3D_MT_edit_mesh_faces' +kmi = km.keymap_items.new('wm.call_menu', 'E', 'PRESS', ctrl=True) +kmi.properties.name = 'VIEW3D_MT_edit_mesh_edges' +kmi = km.keymap_items.new('wm.call_menu', 'V', 'PRESS', ctrl=True) +kmi.properties.name = 'VIEW3D_MT_edit_mesh_vertices' +kmi = km.keymap_items.new('wm.call_menu', 'H', 'PRESS', ctrl=True) +kmi.properties.name = 'VIEW3D_MT_hook' +kmi = km.keymap_items.new('wm.call_menu', 'U', 'PRESS') +kmi.properties.name = 'VIEW3D_MT_uv_map' +kmi = km.keymap_items.new('wm.call_menu', 'G', 'PRESS', ctrl=True) +kmi.properties.name = 'VIEW3D_MT_vertex_group' +kmi = km.keymap_items.new('object.subdivision_set', 'ZERO', 'PRESS', ctrl=True) +kmi.properties.level = 0 +kmi = km.keymap_items.new('object.subdivision_set', 'ONE', 'PRESS', ctrl=True) +kmi.properties.level = 1 +kmi = km.keymap_items.new('object.subdivision_set', 'TWO', 'PRESS', ctrl=True) +kmi.properties.level = 2 +kmi = km.keymap_items.new('object.subdivision_set', 'THREE', 'PRESS', ctrl=True) +kmi.properties.level = 3 +kmi = km.keymap_items.new('object.subdivision_set', 'FOUR', 'PRESS', ctrl=True) +kmi.properties.level = 4 +kmi = km.keymap_items.new('object.subdivision_set', 'FIVE', 'PRESS', ctrl=True) +kmi.properties.level = 5 +kmi = km.keymap_items.new('wm.context_cycle_enum', 'O', 'PRESS', shift=True) +kmi.properties.data_path = 'tool_settings.proportional_edit_falloff' +kmi = km.keymap_items.new('wm.context_toggle_enum', 'O', 'PRESS') +kmi.properties.data_path = 'tool_settings.proportional_edit' +kmi.properties.value_1 = 'DISABLED' +kmi.properties.value_2 = 'ENABLED' +kmi = km.keymap_items.new('wm.context_toggle_enum', 'O', 'PRESS', alt=True) +kmi.properties.data_path = 'tool_settings.proportional_edit' +kmi.properties.value_1 = 'DISABLED' +kmi.properties.value_2 = 'CONNECTED' +kmi = km.keymap_items.new('wm.context_set_value', 'ONE', 'PRESS') +kmi.properties.data_path = 'tool_settings.mesh_select_mode' +kmi.properties.value = '(True,False,False)' +kmi = km.keymap_items.new('wm.context_set_value', 'TWO', 'PRESS') +kmi.properties.data_path = 'tool_settings.mesh_select_mode' +kmi.properties.value = '(False,True,False)' +kmi = km.keymap_items.new('wm.context_set_value', 'THREE', 'PRESS') +kmi.properties.data_path = 'tool_settings.mesh_select_mode' +kmi.properties.value = '(False,False,True)' + +# Map Curve +km = kc.keymaps.new('Curve', space_type='EMPTY', region_type='WINDOW', modal=False) + +kmi = km.keymap_items.new('wm.call_menu', 'A', 'PRESS', shift=True) +kmi.properties.name = 'INFO_MT_edit_curve_add' +kmi = km.keymap_items.new('curve.handle_type_set', 'V', 'PRESS') +kmi = km.keymap_items.new('curve.vertex_add', 'LEFTMOUSE', 'CLICK', ctrl=True) +kmi = km.keymap_items.new('curve.select_all', 'LEFTMOUSE', 'CLICK') +kmi.properties.action = 'TOGGLE' +kmi = km.keymap_items.new('curve.select_all', 'I', 'PRESS', ctrl=True) +kmi.properties.action = 'INVERT' +kmi = km.keymap_items.new('curve.select_row', 'R', 'PRESS', shift=True) +kmi = km.keymap_items.new('curve.select_more', 'NUMPAD_PLUS', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('curve.select_less', 'NUMPAD_MINUS', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('curve.select_linked', 'L', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('curve.select_linked_pick', 'L', 'PRESS') +kmi.properties.deselect = False +kmi = km.keymap_items.new('curve.select_linked_pick', 'L', 'PRESS', shift=True) +kmi.properties.deselect = True +kmi = km.keymap_items.new('curve.separate', 'P', 'PRESS') +kmi = km.keymap_items.new('curve.extrude_move', 'E', 'PRESS') +kmi = km.keymap_items.new('curve.duplicate_move', 'D', 'PRESS', shift=True) +kmi = km.keymap_items.new('curve.make_segment', 'F', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('curve.cyclic_toggle', 'C', 'PRESS', alt=True) +kmi = km.keymap_items.new('curve.delete', 'X', 'PRESS') +kmi = km.keymap_items.new('curve.delete', 'DEL', 'PRESS') +kmi = km.keymap_items.new('curve.tilt_clear', 'T', 'PRESS', alt=True) +kmi = km.keymap_items.new('transform.tilt', 'T', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('transform.transform', 'S', 'PRESS', alt=True) +kmi.properties.mode = 'CURVE_SHRINKFATTEN' +kmi = km.keymap_items.new('curve.reveal', 'H', 'PRESS', alt=True) +kmi = km.keymap_items.new('curve.hide', 'H', 'PRESS') +kmi.properties.unselected = False +kmi = km.keymap_items.new('curve.hide', 'H', 'PRESS', shift=True) +kmi.properties.unselected = True +kmi = km.keymap_items.new('object.vertex_parent_set', 'P', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('wm.call_menu', 'Q', 'PRESS') +kmi.properties.name = 'VIEW3D_MT_edit_curve_specials' +kmi = km.keymap_items.new('wm.call_menu', 'H', 'PRESS', ctrl=True) +kmi.properties.name = 'VIEW3D_MT_hook' +kmi = km.keymap_items.new('wm.context_cycle_enum', 'O', 'PRESS', shift=True) +kmi.properties.data_path = 'tool_settings.proportional_edit_falloff' +kmi = km.keymap_items.new('wm.context_toggle_enum', 'O', 'PRESS') +kmi.properties.data_path = 'tool_settings.proportional_edit' +kmi.properties.value_1 = 'DISABLED' +kmi.properties.value_2 = 'ENABLED' +kmi = km.keymap_items.new('wm.context_toggle_enum', 'O', 'PRESS', alt=True) +kmi.properties.data_path = 'tool_settings.proportional_edit' +kmi.properties.value_1 = 'DISABLED' +kmi.properties.value_2 = 'CONNECTED' + +# Map Armature +km = kc.keymaps.new('Armature', space_type='EMPTY', region_type='WINDOW', modal=False) + +kmi = km.keymap_items.new('sketch.delete', 'X', 'PRESS') +kmi = km.keymap_items.new('sketch.delete', 'DEL', 'PRESS') +kmi = km.keymap_items.new('sketch.finish_stroke', 'RIGHTMOUSE', 'PRESS') +kmi = km.keymap_items.new('sketch.cancel_stroke', 'ESC', 'PRESS') +kmi = km.keymap_items.new('sketch.gesture', 'LEFTMOUSE', 'PRESS', shift=True) +kmi = km.keymap_items.new('sketch.draw_stroke', 'LEFTMOUSE', 'PRESS') +kmi = km.keymap_items.new('sketch.draw_stroke', 'LEFTMOUSE', 'PRESS', ctrl=True) +kmi.properties.snap = True +kmi = km.keymap_items.new('sketch.draw_preview', 'MOUSEMOVE', 'ANY') +kmi = km.keymap_items.new('sketch.draw_preview', 'MOUSEMOVE', 'ANY', ctrl=True) +kmi.properties.snap = True +kmi = km.keymap_items.new('armature.hide', 'H', 'PRESS') +kmi.properties.unselected = False +kmi = km.keymap_items.new('armature.hide', 'H', 'PRESS', shift=True) +kmi.properties.unselected = True +kmi = km.keymap_items.new('armature.reveal', 'H', 'PRESS', alt=True) +kmi = km.keymap_items.new('armature.align', 'A', 'PRESS', ctrl=True, alt=True) +kmi = km.keymap_items.new('armature.calculate_roll', 'N', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('armature.switch_direction', 'F', 'PRESS', alt=True) +kmi = km.keymap_items.new('armature.bone_primitive_add', 'A', 'PRESS', shift=True) +kmi = km.keymap_items.new('armature.parent_set', 'P', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('armature.parent_clear', 'P', 'PRESS', alt=True) +kmi = km.keymap_items.new('armature.select_all', 'LEFTMOUSE', 'CLICK') +kmi.properties.action = 'TOGGLE' +kmi = km.keymap_items.new('armature.select_all', 'I', 'PRESS', ctrl=True) +kmi.properties.action = 'INVERT' +kmi = km.keymap_items.new('armature.select_hierarchy', 'LEFT_BRACKET', 'PRESS') +kmi.properties.direction = 'PARENT' +kmi.properties.extend = False +kmi = km.keymap_items.new('armature.select_hierarchy', 'LEFT_BRACKET', 'PRESS', shift=True) +kmi.properties.direction = 'PARENT' +kmi.properties.extend = True +kmi = km.keymap_items.new('armature.select_hierarchy', 'RIGHT_BRACKET', 'PRESS') +kmi.properties.direction = 'CHILD' +kmi.properties.extend = False +kmi = km.keymap_items.new('armature.select_hierarchy', 'RIGHT_BRACKET', 'PRESS', shift=True) +kmi.properties.direction = 'CHILD' +kmi.properties.extend = True +kmi = km.keymap_items.new('armature.select_similar', 'G', 'PRESS', shift=True) +kmi = km.keymap_items.new('armature.select_linked', 'L', 'PRESS') +kmi = km.keymap_items.new('armature.delete', 'X', 'PRESS') +kmi = km.keymap_items.new('armature.delete', 'DEL', 'PRESS') +kmi = km.keymap_items.new('armature.duplicate_move', 'D', 'PRESS', shift=True) +kmi = km.keymap_items.new('armature.extrude_move', 'E', 'PRESS') +kmi = km.keymap_items.new('armature.extrude_forked', 'E', 'PRESS', shift=True) +kmi = km.keymap_items.new('armature.click_extrude', 'LEFTMOUSE', 'CLICK', ctrl=True) +kmi = km.keymap_items.new('armature.fill', 'F', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('armature.merge', 'M', 'PRESS', alt=True) +kmi = km.keymap_items.new('armature.separate', 'P', 'PRESS', ctrl=True, alt=True) +kmi = km.keymap_items.new('wm.call_menu', 'W', 'PRESS', shift=True) +kmi.properties.name = 'VIEW3D_MT_bone_options_toggle' +kmi = km.keymap_items.new('wm.call_menu', 'W', 'PRESS', shift=True, ctrl=True) +kmi.properties.name = 'VIEW3D_MT_bone_options_enable' +kmi = km.keymap_items.new('wm.call_menu', 'W', 'PRESS', alt=True) +kmi.properties.name = 'VIEW3D_MT_bone_options_disable' +kmi = km.keymap_items.new('armature.layers_show_all', 'ACCENT_GRAVE', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('armature.armature_layers', 'M', 'PRESS', shift=True) +kmi = km.keymap_items.new('armature.bone_layers', 'M', 'PRESS') +kmi = km.keymap_items.new('transform.transform', 'S', 'PRESS', ctrl=True, alt=True) +kmi.properties.mode = 'BONE_SIZE' +kmi = km.keymap_items.new('transform.transform', 'R', 'PRESS', ctrl=True) +kmi.properties.mode = 'BONE_ROLL' +kmi = km.keymap_items.new('wm.call_menu', 'Q', 'PRESS') +kmi.properties.name = 'VIEW3D_MT_armature_specials' + +# Map Metaball +km = kc.keymaps.new('Metaball', space_type='EMPTY', region_type='WINDOW', modal=False) + +kmi = km.keymap_items.new('object.metaball_add', 'A', 'PRESS', shift=True) +kmi = km.keymap_items.new('mball.reveal_metaelems', 'H', 'PRESS', alt=True) +kmi = km.keymap_items.new('mball.hide_metaelems', 'H', 'PRESS') +kmi.properties.unselected = False +kmi = km.keymap_items.new('mball.hide_metaelems', 'H', 'PRESS', shift=True) +kmi.properties.unselected = True +kmi = km.keymap_items.new('mball.delete_metaelems', 'X', 'PRESS') +kmi = km.keymap_items.new('mball.delete_metaelems', 'DEL', 'PRESS') +kmi = km.keymap_items.new('mball.duplicate_metaelems', 'D', 'PRESS', shift=True) +kmi = km.keymap_items.new('mball.select_all', 'LEFTMOUSE', 'CLICK') +kmi.properties.action = 'TOGGLE' +kmi = km.keymap_items.new('mball.select_all', 'I', 'PRESS', ctrl=True) +kmi.properties.action = 'INVERT' +kmi = km.keymap_items.new('wm.context_cycle_enum', 'O', 'PRESS', shift=True) +kmi.properties.data_path = 'tool_settings.proportional_edit_falloff' +kmi = km.keymap_items.new('wm.context_toggle_enum', 'O', 'PRESS') +kmi.properties.data_path = 'tool_settings.proportional_edit' +kmi.properties.value_1 = 'DISABLED' +kmi.properties.value_2 = 'ENABLED' +kmi = km.keymap_items.new('wm.context_toggle_enum', 'O', 'PRESS', alt=True) +kmi.properties.data_path = 'tool_settings.proportional_edit' +kmi.properties.value_1 = 'DISABLED' +kmi.properties.value_2 = 'CONNECTED' + +# Map Lattice +km = kc.keymaps.new('Lattice', space_type='EMPTY', region_type='WINDOW', modal=False) + +kmi = km.keymap_items.new('lattice.select_all', 'LEFTMOUSE', 'CLICK') +kmi.properties.action = 'TOGGLE' +kmi = km.keymap_items.new('lattice.select_all', 'I', 'PRESS', ctrl=True) +kmi.properties.action = 'INVERT' +kmi = km.keymap_items.new('object.vertex_parent_set', 'P', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('lattice.flip', 'F', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('wm.call_menu', 'H', 'PRESS', ctrl=True) +kmi.properties.name = 'VIEW3D_MT_hook' +kmi = km.keymap_items.new('wm.context_cycle_enum', 'O', 'PRESS', shift=True) +kmi.properties.data_path = 'tool_settings.proportional_edit_falloff' +kmi = km.keymap_items.new('wm.context_toggle_enum', 'O', 'PRESS') +kmi.properties.data_path = 'tool_settings.proportional_edit' +kmi.properties.value_1 = 'DISABLED' +kmi.properties.value_2 = 'ENABLED' + +# Map Particle +km = kc.keymaps.new('Particle', space_type='EMPTY', region_type='WINDOW', modal=False) + +kmi = km.keymap_items.new('particle.select_all', 'A', 'PRESS') +kmi.properties.action = 'TOGGLE' +kmi = km.keymap_items.new('particle.select_all', 'I', 'PRESS', ctrl=True) +kmi.properties.action = 'INVERT' +kmi = km.keymap_items.new('particle.select_more', 'NUMPAD_PLUS', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('particle.select_less', 'NUMPAD_MINUS', 'PRESS', ctrl=True) +kmi = km.keymap_items.new('particle.select_linked', 'L', 'PRESS') +kmi.properties.deselect = False +kmi = km.keymap_items.new('particle.select_linked', 'L', 'PRESS', shift=True) +kmi.properties.deselect = True +kmi = km.keymap_items.new('particle.delete', 'X', 'PRESS') +kmi = km.keymap_items.new('particle.delete', 'DEL', 'PRESS') +kmi = km.keymap_items.new('particle.reveal', 'H', 'PRESS', alt=True) +kmi = km.keymap_items.new('particle.hide', 'H', 'PRESS') +kmi.properties.unselected = False +kmi = km.keymap_items.new('particle.hide', 'H', 'PRESS', shift=True) +kmi.properties.unselected = True +kmi = km.keymap_items.new('view3d.manipulator', 'LEFTMOUSE', 'PRESS', any=True) +kmi.properties.release_confirm = True +kmi = km.keymap_items.new('particle.brush_edit', 'LEFTMOUSE', 'PRESS') +kmi = km.keymap_items.new('particle.brush_edit', 'LEFTMOUSE', 'PRESS', shift=True) +kmi = km.keymap_items.new('wm.radial_control', 'F', 'PRESS', ctrl=True) +kmi.properties.data_path_primary = 'tool_settings.particle_edit.brush.size' +kmi = km.keymap_items.new('wm.radial_control', 'F', 'PRESS', shift=True) +kmi.properties.data_path_primary = 'tool_settings.particle_edit.brush.strength' +kmi = km.keymap_items.new('wm.call_menu', 'W', 'PRESS') +kmi.properties.name = 'VIEW3D_MT_particle_specials' +kmi = km.keymap_items.new('particle.weight_set', 'K', 'PRESS', shift=True) +kmi = km.keymap_items.new('wm.context_cycle_enum', 'O', 'PRESS', shift=True) +kmi.properties.data_path = 'tool_settings.proportional_edit_falloff' +kmi = km.keymap_items.new('wm.context_toggle_enum', 'O', 'PRESS') +kmi.properties.data_path = 'tool_settings.proportional_edit' +kmi.properties.value_1 = 'DISABLED' +kmi.properties.value_2 = 'ENABLED' + +# Map Transform Modal Map +km = kc.keymaps.new('Transform Modal Map', space_type='EMPTY', region_type='WINDOW', modal=True) + +kmi = km.keymap_items.new_modal('CANCEL', 'ESC', 'PRESS', any=True) +kmi = km.keymap_items.new_modal('CONFIRM', 'LEFTMOUSE', 'RELEASE', any=True) +kmi = km.keymap_items.new_modal('CONFIRM', 'RET', 'PRESS', any=True) +kmi = km.keymap_items.new_modal('CONFIRM', 'NUMPAD_ENTER', 'PRESS', any=True) +kmi = km.keymap_items.new_modal('TRANSLATE', 'W', 'PRESS') +kmi = km.keymap_items.new_modal('ROTATE', 'E', 'PRESS') +kmi = km.keymap_items.new_modal('RESIZE', 'R', 'PRESS') +kmi = km.keymap_items.new_modal('SNAP_TOGGLE', 'TAB', 'PRESS', shift=True) +kmi = km.keymap_items.new_modal('SNAP_INV_ON', 'LEFT_CTRL', 'PRESS', any=True) +kmi = km.keymap_items.new_modal('SNAP_INV_OFF', 'LEFT_CTRL', 'RELEASE', any=True) +kmi = km.keymap_items.new_modal('SNAP_INV_ON', 'RIGHT_CTRL', 'PRESS', any=True) +kmi = km.keymap_items.new_modal('SNAP_INV_OFF', 'RIGHT_CTRL', 'RELEASE', any=True) +kmi = km.keymap_items.new_modal('ADD_SNAP', 'A', 'PRESS') +kmi = km.keymap_items.new_modal('REMOVE_SNAP', 'A', 'PRESS', alt=True) +kmi = km.keymap_items.new_modal('PROPORTIONAL_SIZE_UP', 'PAGE_UP', 'PRESS') +kmi = km.keymap_items.new_modal('PROPORTIONAL_SIZE_DOWN', 'PAGE_DOWN', 'PRESS') +kmi = km.keymap_items.new_modal('PROPORTIONAL_SIZE_UP', 'WHEELDOWNMOUSE', 'PRESS') +kmi = km.keymap_items.new_modal('PROPORTIONAL_SIZE_DOWN', 'WHEELUPMOUSE', 'PRESS') +kmi = km.keymap_items.new_modal('PROPORTIONAL_SIZE', 'TRACKPADPAN', 'ANY') +kmi = km.keymap_items.new_modal('EDGESLIDE_EDGE_NEXT', 'WHEELDOWNMOUSE', 'PRESS', alt=True) +kmi = km.keymap_items.new_modal('EDGESLIDE_PREV_NEXT', 'WHEELUPMOUSE', 'PRESS', alt=True) +kmi = km.keymap_items.new_modal('AUTOIK_CHAIN_LEN_UP', 'PAGE_UP', 'PRESS', shift=True) +kmi = km.keymap_items.new_modal('AUTOIK_CHAIN_LEN_DOWN', 'PAGE_DOWN', 'PRESS', shift=True) +kmi = km.keymap_items.new_modal('AUTOIK_CHAIN_LEN_UP', 'WHEELDOWNMOUSE', 'PRESS', shift=True) +kmi = km.keymap_items.new_modal('AUTOIK_CHAIN_LEN_DOWN', 'WHEELUPMOUSE', 'PRESS', shift=True) diff --git a/release/scripts/startup/bl_operators/object.py b/release/scripts/startup/bl_operators/object.py index f8eb55db42e..ae6b80865dd 100644 --- a/release/scripts/startup/bl_operators/object.py +++ b/release/scripts/startup/bl_operators/object.py @@ -473,9 +473,9 @@ class ShapeTransfer(Operator): class JoinUVs(Operator): - """Copy UV Layout to objects with matching geometry""" + """Transfer UV Layouts from active to selected objects (needs matching geometry)""" bl_idname = "object.join_uvs" - bl_label = "Join as UVs" + bl_label = "Transfer UV Layouts" @classmethod def poll(cls, context): diff --git a/release/scripts/startup/bl_operators/wm.py b/release/scripts/startup/bl_operators/wm.py index b2f094e7ccc..a7085e51bd3 100644 --- a/release/scripts/startup/bl_operators/wm.py +++ b/release/scripts/startup/bl_operators/wm.py @@ -29,6 +29,8 @@ from bpy.props import (StringProperty, from rna_prop_ui import rna_idprop_ui_prop_get, rna_idprop_ui_prop_clear +from bpy.app.translations import pgettext_tip as tip_ + class MESH_OT_delete_edgeloop(Operator): """Delete an edge loop by merging the faces on each side """ \ @@ -1838,7 +1840,7 @@ class WM_OT_addon_install(Operator): bpy.utils.refresh_script_paths() # print message - msg = "Modules Installed from %r into %r (%s)" % (pyfile, path_addons, ", ".join(sorted(addons_new))) + msg = tip_("Modules Installed from %r into %r (%s)") % (pyfile, path_addons, ", ".join(sorted(addons_new))) print(msg) self.report({'INFO'}, msg) diff --git a/release/scripts/startup/bl_ui/__init__.py b/release/scripts/startup/bl_ui/__init__.py index 6ee583d0894..6bda65dba06 100644 --- a/release/scripts/startup/bl_ui/__init__.py +++ b/release/scripts/startup/bl_ui/__init__.py @@ -26,6 +26,7 @@ if "bpy" in locals(): _reload(val) _modules = ( "properties_animviz", + "properties_constraint", "properties_data_armature", "properties_data_bone", "properties_data_camera", @@ -40,7 +41,6 @@ _modules = ( "properties_game", "properties_mask_common", "properties_material", - "properties_object_constraint", "properties_object", "properties_particle", "properties_physics_cloth", diff --git a/release/scripts/startup/bl_ui/properties_object_constraint.py b/release/scripts/startup/bl_ui/properties_constraint.py index f1bad2257c0..07390525132 100644 --- a/release/scripts/startup/bl_ui/properties_object_constraint.py +++ b/release/scripts/startup/bl_ui/properties_constraint.py @@ -851,16 +851,16 @@ class OBJECT_PT_constraints(ConstraintButtonsPanel, Panel): def draw(self, context): layout = self.layout - ob = context.object + obj = context.object - if ob.mode == 'POSE': + if obj.type == 'ARMATURE' and obj.mode in {'EDIT', 'POSE'}: box = layout.box() box.alert = True box.label(icon='INFO', text="See Bone Constraints tab to Add Constraints to active bone") else: - layout.operator_menu_enum("object.constraint_add", "type") + layout.operator_menu_enum("object.constraint_add", "type", text="Add Object Constraint") - for con in ob.constraints: + for con in obj.constraints: self.draw_constraint(context, con) @@ -876,7 +876,7 @@ class BONE_PT_constraints(ConstraintButtonsPanel, Panel): def draw(self, context): layout = self.layout - layout.operator_menu_enum("pose.constraint_add", "type") + layout.operator_menu_enum("pose.constraint_add", "type", text="Add Bone Constraint") for con in context.pose_bone.constraints: self.draw_constraint(context, con) diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py index 05e189c86be..b38e2a7e98c 100644 --- a/release/scripts/startup/bl_ui/properties_data_modifier.py +++ b/release/scripts/startup/bl_ui/properties_data_modifier.py @@ -715,7 +715,10 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel): col = split.column() col.label(text="Deform:") - col.prop(md, "factor") + if md.deform_method in {'TAPER', 'STRETCH'}: + col.prop(md, "factor") + else: + col.prop(md, "angle") col.prop(md, "limits", slider=True) if md.deform_method in {'TAPER', 'STRETCH', 'TWIST'}: col.prop(md, "lock_x") @@ -747,6 +750,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel): col = split.column() col.prop(md, "thickness") + col.prop(md, "thickness_clamp") col.prop_search(md, "vertex_group", ob, "vertex_groups", text="") col.label(text="Crease:") @@ -758,6 +762,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel): col = split.column() col.prop(md, "offset") + col.prop(md, "use_flip_normals") sub = col.column() sub.active = bool(md.vertex_group) sub.prop(md, "invert_vertex_group", text="Invert") @@ -773,7 +778,6 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel): row = row.row() row.active = md.use_rim row.prop(md, "material_offset_rim", text="Rim") - sub.prop(md, "use_flip_normals") def SUBSURF(self, layout, ob, md): layout.row().prop(md, "subdivision_type", expand=True) diff --git a/release/scripts/startup/bl_ui/properties_paint_common.py b/release/scripts/startup/bl_ui/properties_paint_common.py index 7c06aefe575..a3275bea4ee 100644 --- a/release/scripts/startup/bl_ui/properties_paint_common.py +++ b/release/scripts/startup/bl_ui/properties_paint_common.py @@ -85,17 +85,22 @@ def brush_texture_settings(layout, brush, sculpt): # angle and texture_angle_source col = layout.column() - if sculpt: - col.active = brush.sculpt_capabilities.has_texture_angle_source - col.label(text="Angle:") - if brush.sculpt_capabilities.has_random_texture_angle: - col.prop(brush, "texture_angle_source_random", text="") + col.active = brush.brush_capabilities.has_texture_angle_source + col.label(text="Angle:") + if brush.brush_capabilities.has_random_texture_angle: + if sculpt: + if brush.sculpt_capabilities.has_random_texture_angle: + col.prop(brush, "texture_angle_source_random", text="") + else: + col.prop(brush, "texture_angle_source_no_random", text="") + else: - col.prop(brush, "texture_angle_source_no_random", text="") - - col = layout.column() - col.active = brush.sculpt_capabilities.has_texture_angle - col.prop(tex_slot, "angle", text="") + col.prop(brush, "texture_angle_source_random", text="") + else: + col.prop(brush, "texture_angle_source_no_random", text="") + col = layout.column() + col.active = brush.brush_capabilities.has_texture_angle + col.prop(tex_slot, "angle", text="") # scale and offset split = layout.split() diff --git a/release/scripts/startup/bl_ui/properties_physics_rigidbody.py b/release/scripts/startup/bl_ui/properties_physics_rigidbody.py index d7ed7bb4d1a..77ea5a90344 100644 --- a/release/scripts/startup/bl_ui/properties_physics_rigidbody.py +++ b/release/scripts/startup/bl_ui/properties_physics_rigidbody.py @@ -109,7 +109,7 @@ class PHYSICS_PT_rigid_body_dynamics(PHYSICS_PT_rigidbody_panel, Panel): #col = layout.column(align=1) #col.label(text="Activation:") - # XXX: settings such as activate on collison/etc. + # XXX: settings such as activate on collison/etc. split = layout.split() diff --git a/release/scripts/startup/bl_ui/properties_texture.py b/release/scripts/startup/bl_ui/properties_texture.py index dd30627abff..2d064404828 100644 --- a/release/scripts/startup/bl_ui/properties_texture.py +++ b/release/scripts/startup/bl_ui/properties_texture.py @@ -448,6 +448,9 @@ class TEXTURE_PT_image_sampling(TextureTypePanel, Panel): col = split.column() col.label(text="Alpha:") + row = col.row() + row.active = tex.image and tex.image.use_alpha + row.prop(tex, "use_alpha", text="Use") col.prop(tex, "use_calculate_alpha", text="Calculate") col.prop(tex, "invert_alpha", text="Invert") col.separator() diff --git a/release/scripts/startup/bl_ui/space_clip.py b/release/scripts/startup/bl_ui/space_clip.py index 14fbbe15cfd..43761dd439e 100644 --- a/release/scripts/startup/bl_ui/space_clip.py +++ b/release/scripts/startup/bl_ui/space_clip.py @@ -879,6 +879,7 @@ class CLIP_PT_tools_clip(CLIP_PT_clip_view_panel, Panel): bl_space_type = 'CLIP_EDITOR' bl_region_type = 'TOOLS' bl_label = "Clip" + bl_translation_context = bpy.app.translations.contexts.id_movieclip def draw(self, context): layout = self.layout @@ -933,6 +934,7 @@ class CLIP_MT_view(Menu): class CLIP_MT_clip(Menu): bl_label = "Clip" + bl_translation_context = bpy.app.translations.contexts.id_movieclip def draw(self, context): layout = self.layout diff --git a/release/scripts/startup/bl_ui/space_dopesheet.py b/release/scripts/startup/bl_ui/space_dopesheet.py index adeae9da790..8a4529863a9 100644 --- a/release/scripts/startup/bl_ui/space_dopesheet.py +++ b/release/scripts/startup/bl_ui/space_dopesheet.py @@ -29,7 +29,6 @@ from bpy.types import Header, Menu def dopesheet_filter(layout, context, genericFiltersOnly=False): dopesheet = context.space_data.dopesheet is_nla = context.area.type == 'NLA_EDITOR' - is_drivers = (context.area.type == 'GRAPH_EDITOR' and context.space_data.mode == 'DRIVERS') row = layout.row(align=True) row.prop(dopesheet, "show_only_selected", text="") @@ -37,8 +36,7 @@ def dopesheet_filter(layout, context, genericFiltersOnly=False): if is_nla: row.prop(dopesheet, "show_missing_nla", text="") - - if is_drivers: + else: # graph and dopesheet editors - F-Curves and drivers only row.prop(dopesheet, "show_only_errors", text="") if not genericFiltersOnly: diff --git a/release/scripts/startup/bl_ui/space_image.py b/release/scripts/startup/bl_ui/space_image.py index 01b67667cfb..b48e7660a6b 100644 --- a/release/scripts/startup/bl_ui/space_image.py +++ b/release/scripts/startup/bl_ui/space_image.py @@ -698,7 +698,12 @@ class IMAGE_PT_paint(Panel, ImagePaintPanel): self.prop_unified_strength(row, context, brush, "use_pressure_strength") row = col.row(align=True) - row.prop(brush, "jitter", slider=True) + if(brush.use_relative_jitter): + row.prop(brush, "use_relative_jitter", text="", icon='LOCKED') + row.prop(brush, "jitter", slider=True) + else: + row.prop(brush, "use_relative_jitter", text="", icon='UNLOCKED') + row.prop(brush, "jitter_absolute") row.prop(brush, "use_pressure_jitter", toggle=True, text="") col.prop(brush, "blend", text="Blend") @@ -721,7 +726,7 @@ class IMAGE_PT_tools_brush_texture(BrushButtonsPanel, Panel): col = layout.column() col.template_ID_preview(brush, "texture", new="texture.new", rows=3, cols=8) - + brush_texture_settings(col, brush, 0) @@ -752,19 +757,34 @@ class IMAGE_PT_paint_stroke(BrushButtonsPanel, Panel): toolsettings = context.tool_settings.image_paint brush = toolsettings.brush + + col = layout.column() + col.prop(toolsettings, "input_samples") - layout.prop(brush, "use_airbrush") - row = layout.row() + col.prop(brush, "use_airbrush") + row = col.row() row.active = brush.use_airbrush row.prop(brush, "rate", slider=True) - layout.prop(brush, "use_space") - row = layout.row(align=True) + col.separator() + + col.prop(brush, "use_smooth_stroke") + + col = layout.column() + col.active = brush.use_smooth_stroke + col.prop(brush, "smooth_stroke_radius", text="Radius", slider=True) + col.prop(brush, "smooth_stroke_factor", text="Factor", slider=True) + + col.separator() + + col = layout.column() + col.prop(brush, "use_space") + row = col.row(align=True) row.active = brush.use_space row.prop(brush, "spacing", text="Distance", slider=True) row.prop(brush, "use_pressure_spacing", toggle=True, text="") - layout.prop(brush, "use_wrap") + col.prop(brush, "use_wrap") class IMAGE_PT_paint_curve(BrushButtonsPanel, Panel): diff --git a/release/scripts/startup/bl_ui/space_nla.py b/release/scripts/startup/bl_ui/space_nla.py index b15dcb3d07c..49dedaa83c5 100644 --- a/release/scripts/startup/bl_ui/space_nla.py +++ b/release/scripts/startup/bl_ui/space_nla.py @@ -167,6 +167,9 @@ class NLA_MT_add(Menu): layout.separator() layout.operator("nla.tracks_add").above_selected = False layout.operator("nla.tracks_add", text="Add Tracks Above Selected").above_selected = True + + layout.separator() + layout.operator("nla.selected_objects_add") class NLA_MT_edit_transform(Menu): diff --git a/release/scripts/startup/bl_ui/space_node.py b/release/scripts/startup/bl_ui/space_node.py index 104c1500756..1865b049a03 100644 --- a/release/scripts/startup/bl_ui/space_node.py +++ b/release/scripts/startup/bl_ui/space_node.py @@ -254,6 +254,7 @@ class NODE_PT_quality(bpy.types.Panel): col.prop(tree, "use_opencl") col.prop(tree, "use_groupnode_buffer") col.prop(tree, "two_pass") + col.prop(tree, "use_viewer_border") col.prop(snode, "show_highlight") col.prop(snode, "use_hidden_preview") diff --git a/release/scripts/startup/bl_ui/space_userpref.py b/release/scripts/startup/bl_ui/space_userpref.py index 017f75b7583..3627638f2e9 100644 --- a/release/scripts/startup/bl_ui/space_userpref.py +++ b/release/scripts/startup/bl_ui/space_userpref.py @@ -743,6 +743,7 @@ class USERPREF_PT_theme(Panel): padding = subsplit.split(percentage=0.15) colsub = padding.column() colsub = padding.column() + colsub.active = False colsub.row().prop(ui, "icon_file") subsplit = row.split(percentage=0.85) @@ -1239,7 +1240,7 @@ class USERPREF_PT_addons(Panel): split = colsub.row().split(percentage=0.15) split.label(text="Internet:") if info["wiki_url"]: - split.operator("wm.url_open", text="Link to the Wiki", icon='HELP').url = info["wiki_url"] + split.operator("wm.url_open", text="Documentation", icon='HELP').url = info["wiki_url"] if info["tracker_url"]: split.operator("wm.url_open", text="Report a Bug", icon='URL').url = info["tracker_url"] if user_addon: diff --git a/release/scripts/startup/bl_ui/space_userpref_keymap.py b/release/scripts/startup/bl_ui/space_userpref_keymap.py index 0842a90762c..4c634378ed2 100644 --- a/release/scripts/startup/bl_ui/space_userpref_keymap.py +++ b/release/scripts/startup/bl_ui/space_userpref_keymap.py @@ -215,13 +215,13 @@ class InputKeyMapPanel: _EVENT_TYPES = set() _EVENT_TYPE_MAP = {} + def draw_filtered(self, display_keymaps, filter_type, filter_text, layout): if filter_type == 'NAME': def filter_func(kmi): return (filter_text in kmi.idname.lower() or filter_text in kmi.name.lower()) - else: if not self._EVENT_TYPES: enum = bpy.types.Event.bl_rna.properties["type"].enum_items @@ -230,12 +230,16 @@ class InputKeyMapPanel: del enum self._EVENT_TYPE_MAP.update({ + "`": 'ACCENT_GRAVE', "*": 'NUMPAD_ASTERIX', "/": 'NUMPAD_SLASH', "RMB": 'RIGHTMOUSE', "LMB": 'LEFTMOUSE', "MMB": 'MIDDLEMOUSE', }) + self._EVENT_TYPE_MAP.update({ + "%d" % i: "NUMPAD_%d" % i for i in range(9) + }) # done with once off init filter_text_split = filter_text.strip() @@ -268,13 +272,13 @@ class InputKeyMapPanel: return False elif filter_text_split: kmi_type = filter_text_split[0].upper() - + if kmi_type not in self._EVENT_TYPES: # replacement table kmi_type_test = self._EVENT_TYPE_MAP.get(kmi_type) if kmi_type_test is None: # print("Unknown Type:", kmi_type) - + # Partial match for k, v in self._EVENT_TYPE_MAP.items(): if kmi_type in k: @@ -289,7 +293,7 @@ class InputKeyMapPanel: kmi_type = kmi_type_test del kmi_type_test - + kmi_test_dict["type"] = kmi_type # main filter func, runs many times @@ -365,8 +369,8 @@ class InputKeyMapPanel: col.separator() display_keymaps = keyconfig_utils.keyconfig_merge(kc, kc) filter_type = spref.filter_type - filter_text = spref.filter_text - if filter_text != "": + filter_text = spref.filter_text.strip() + if filter_text: filter_text = filter_text.lower() ok = self.draw_filtered(display_keymaps, filter_type, filter_text, col) else: @@ -377,7 +381,7 @@ class InputKeyMapPanel: rowsub.prop(spref, "filter_type", text="") rowsubsub = rowsub.row(align=True) if not ok: - rowsubsub.alert = True + rowsubsub.alert = True rowsubsub.prop(spref, "filter_text", text="", icon='VIEWZOOM') diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py index a8be8b21498..7ecf2249b5c 100644 --- a/release/scripts/startup/bl_ui/space_view3d.py +++ b/release/scripts/startup/bl_ui/space_view3d.py @@ -580,6 +580,7 @@ class VIEW3D_MT_select_edit_mesh(Menu): layout.separator() + layout.operator("mesh.select_ungrouped", text="Ungrouped Verts") layout.operator("mesh.select_random", text="Random") layout.operator("mesh.select_nth") layout.operator("mesh.edges_select_sharp", text="Sharp Edges") @@ -704,6 +705,10 @@ class VIEW3D_MT_select_edit_lattice(Menu): layout.operator("lattice.select_all").action = 'TOGGLE' layout.operator("lattice.select_all", text="Inverse").action = 'INVERT' + layout.separator() + + layout.operator("lattice.select_ungrouped", text="Ungrouped Verts") + class VIEW3D_MT_select_edit_armature(Menu): bl_label = "Select" @@ -770,6 +775,10 @@ class VIEW3D_MT_select_paint_mask_vertex(Menu): layout.operator("paint.vert_select_all").action = 'TOGGLE' layout.operator("paint.vert_select_all", text="Inverse").action = 'INVERT' + layout.separator() + + layout.operator("paint.vert_select_ungrouped", text="Ungrouped Verts") + # ********** Object menu ********** @@ -2532,19 +2541,19 @@ class VIEW3D_PT_view3d_meshdisplay(Panel): mesh = context.active_object.data split = layout.split() - + col = split.column() col.label(text="Overlays:") col.prop(mesh, "show_faces", text="Faces") col.prop(mesh, "show_edges", text="Edges") col.prop(mesh, "show_edge_crease", text="Creases") - + col = split.column() col.label() col.prop(mesh, "show_edge_seams", text="Seams") col.prop(mesh, "show_edge_sharp", text="Sharp") col.prop(mesh, "show_edge_bevel_weight", text="Weights") - + if context.scene and bpy.app.build_options.freestyle: col.prop(mesh, "show_freestyle_edge_marks", text="Freestyle Edge Marks") col.prop(mesh, "show_freestyle_face_marks", text="Freestyle Face Marks") @@ -2554,11 +2563,11 @@ class VIEW3D_PT_view3d_meshdisplay(Panel): col.separator() col.label(text="Normals:") row = col.row() - + sub = row.row(align=True) sub.prop(mesh, "show_normal_vertex", text="", icon='VERTEXSEL') sub.prop(mesh, "show_normal_face", text="", icon='FACESEL') - + sub = row.row(align=True) sub.active = mesh.show_normal_vertex or mesh.show_normal_face sub.prop(context.scene.tool_settings, "normal_size", text="Size") diff --git a/release/scripts/startup/bl_ui/space_view3d_toolbar.py b/release/scripts/startup/bl_ui/space_view3d_toolbar.py index 05c1793b29f..2e98cb68eb5 100644 --- a/release/scripts/startup/bl_ui/space_view3d_toolbar.py +++ b/release/scripts/startup/bl_ui/space_view3d_toolbar.py @@ -64,6 +64,8 @@ def draw_gpencil_tools(context, layout): row = col.row() row.prop(context.tool_settings, "use_grease_pencil_sessions") + col.operator("view3d.ruler") + # ********** default tools for object-mode **************** @@ -102,8 +104,9 @@ class VIEW3D_PT_tools_objectmode(View3DPanel, Panel): col = layout.column(align=True) col.label(text="Motion Paths:") - col.operator("object.paths_calculate", text="Calculate Paths") - col.operator("object.paths_clear", text="Clear Paths") + row = col.row(align=True) + row.operator("object.paths_calculate", text="Calculate") + row.operator("object.paths_clear", text="Clear") draw_repeat_tools(context, layout) @@ -469,8 +472,9 @@ class VIEW3D_PT_tools_posemode(View3DPanel, Panel): col = layout.column(align=True) col.label(text="Motion Paths:") - col.operator("pose.paths_calculate", text="Calculate Paths") - col.operator("pose.paths_clear", text="Clear Paths") + row = col.row(align=True) + row.operator("pose.paths_calculate", text="Calculate") + row.operator("pose.paths_clear", text="Clear") draw_repeat_tools(context, layout) @@ -675,7 +679,12 @@ class VIEW3D_PT_tools_brush(Panel, View3DPaintPanel): self.prop_unified_strength(row, context, brush, "use_pressure_strength") row = col.row(align=True) - row.prop(brush, "jitter", slider=True) + if(brush.use_relative_jitter): + row.prop(brush, "use_relative_jitter", text="", icon='LOCKED') + row.prop(brush, "jitter", slider=True) + else: + row.prop(brush, "use_relative_jitter", text="", icon='UNLOCKED') + row.prop(brush, "jitter_absolute") row.prop(brush, "use_pressure_jitter", toggle=True, text="") col.prop(brush, "blend", text="Blend") @@ -703,7 +712,12 @@ class VIEW3D_PT_tools_brush(Panel, View3DPaintPanel): self.prop_unified_strength(row, context, brush, "use_pressure_strength") row = col.row(align=True) - row.prop(brush, "jitter", slider=True) + if(brush.use_relative_jitter): + row.prop(brush, "use_relative_jitter", text="", icon='LOCKED') + row.prop(brush, "jitter", slider=True) + else: + row.prop(brush, "use_relative_jitter", text="", icon='UNLOCKED') + row.prop(brush, "jitter_absolute") row.prop(brush, "use_pressure_jitter", toggle=True, text="") col.prop(brush, "vertex_tool", text="Blend") @@ -738,7 +752,7 @@ class VIEW3D_PT_tools_brush_texture(Panel, View3DPaintPanel): def poll(cls, context): settings = cls.paint_settings(context) return (settings and settings.brush and - (context.sculpt_object or context.image_paint_object)) + (context.sculpt_object or context.image_paint_object or context.vertex_paint_object)) def draw(self, context): layout = self.layout @@ -753,19 +767,18 @@ class VIEW3D_PT_tools_brush_texture(Panel, View3DPaintPanel): brush_texture_settings(col, brush, context.sculpt_object) - if context.sculpt_object: - # use_texture_overlay and texture_overlay_alpha - col = layout.column(align=True) - col.active = brush.sculpt_capabilities.has_overlay - col.label(text="Overlay:") + # use_texture_overlay and texture_overlay_alpha + col = layout.column(align=True) + col.active = brush.brush_capabilities.has_overlay + col.label(text="Overlay:") - row = col.row() - if brush.use_texture_overlay: - row.prop(brush, "use_texture_overlay", toggle=True, text="", icon='RESTRICT_VIEW_OFF') - else: - row.prop(brush, "use_texture_overlay", toggle=True, text="", icon='RESTRICT_VIEW_ON') - sub = row.row() - sub.prop(brush, "texture_overlay_alpha", text="Alpha") + row = col.row() + if brush.use_texture_overlay: + row.prop(brush, "use_texture_overlay", toggle=True, text="", icon='RESTRICT_VIEW_OFF') + else: + row.prop(brush, "use_texture_overlay", toggle=True, text="", icon='RESTRICT_VIEW_ON') + sub = row.row() + sub.prop(brush, "texture_overlay_alpha", text="Alpha") class VIEW3D_PT_tools_brush_stroke(Panel, View3DPaintPanel): @@ -805,9 +818,10 @@ class VIEW3D_PT_tools_brush_stroke(Panel, View3DPaintPanel): if brush.use_space: col.separator() - row = col.row() + row = col.row(align=True) row.active = brush.use_space row.prop(brush, "spacing", text="Spacing") + row.prop(brush, "use_pressure_spacing", toggle=True, text="") if brush.sculpt_capabilities.has_smooth_stroke: col = layout.column() @@ -824,7 +838,12 @@ class VIEW3D_PT_tools_brush_stroke(Panel, View3DPaintPanel): col.separator() row = col.row(align=True) - row.prop(brush, "jitter", slider=True) + if(brush.use_relative_jitter): + row.prop(brush, "use_relative_jitter", text="", icon='LOCKED') + row.prop(brush, "jitter", slider=True) + else: + row.prop(brush, "use_relative_jitter", text="", icon='UNLOCKED') + row.prop(brush, "jitter_absolute") row.prop(brush, "use_pressure_jitter", toggle=True, text="") else: @@ -836,23 +855,23 @@ class VIEW3D_PT_tools_brush_stroke(Panel, View3DPaintPanel): col.separator() - if not image_paint: - col.prop(brush, "use_smooth_stroke") + col.prop(brush, "use_smooth_stroke") - col = layout.column() - col.active = brush.use_smooth_stroke - col.prop(brush, "smooth_stroke_radius", text="Radius", slider=True) - col.prop(brush, "smooth_stroke_factor", text="Factor", slider=True) + col = layout.column() + col.active = brush.use_smooth_stroke + col.prop(brush, "smooth_stroke_radius", text="Radius", slider=True) + col.prop(brush, "smooth_stroke_factor", text="Factor", slider=True) col.separator() col = layout.column() - col.active = brush.sculpt_capabilities.has_spacing + col.active = brush.brush_capabilities.has_spacing col.prop(brush, "use_space") - row = col.row() + row = col.row(align=True) row.active = brush.use_space row.prop(brush, "spacing", text="Spacing") + row.prop(brush, "use_pressure_spacing", toggle=True, text="") class VIEW3D_PT_tools_brush_curve(Panel, View3DPaintPanel): @@ -1114,11 +1133,6 @@ class VIEW3D_PT_tools_projectpaint(View3DPanel, Panel): brush = context.tool_settings.image_paint.brush return (brush is not None) - def draw_header(self, context): - ipaint = context.tool_settings.image_paint - - self.layout.prop(ipaint, "use_projection", text="") - def draw(self, context): layout = self.layout @@ -1127,24 +1141,22 @@ class VIEW3D_PT_tools_projectpaint(View3DPanel, Panel): toolsettings = context.tool_settings ipaint = toolsettings.image_paint settings = toolsettings.image_paint - use_projection = ipaint.use_projection + + layout.prop(ipaint, "input_samples") col = layout.column() - col.active = use_projection col.prop(ipaint, "use_occlude") col.prop(ipaint, "use_backface_culling") row = layout.row() - row.active = (use_projection) row.prop(ipaint, "use_normal_falloff") - + sub = row.row() sub.active = (ipaint.use_normal_falloff) sub.prop(ipaint, "normal_angle", text="") split = layout.split() - split.active = (use_projection) split.prop(ipaint, "use_stencil_layer", text="Stencil") row = split.row() @@ -1172,7 +1184,7 @@ class VIEW3D_PT_tools_projectpaint(View3DPanel, Panel): col.operator("paint.project_image", text="Apply Camera Image") col.operator("image.save_dirty", text="Save All Edited") - + class VIEW3D_PT_imagepaint_options(View3DPaintPanel): bl_label = "Options" @@ -1213,7 +1225,7 @@ class VIEW3D_MT_tools_projectpaint_stencil(Menu): class VIEW3D_PT_tools_particlemode(View3DPanel, Panel): - """default tools for particle mode""" + """Default tools for particle mode""" bl_context = "particlemode" bl_label = "Options" diff --git a/release/scripts/startup/keyingsets_builtins.py b/release/scripts/startup/keyingsets_builtins.py index 4f06f8a7be3..6d52a81456b 100644 --- a/release/scripts/startup/keyingsets_builtins.py +++ b/release/scripts/startup/keyingsets_builtins.py @@ -20,14 +20,11 @@ """ Built-In Keying Sets -None of these Keying Sets should be removed, as these -are needed by various parts of Blender in order for them +None of these Keying Sets should be removed, as these are needed by various parts of Blender in order for them to work correctly. -Beware also about changing the order that these are defined -here, since this can result in old files referring to the -wrong Keying Set as the active one, potentially resulting -in lost (i.e. unkeyed) animation. +Beware also about changing the order that these are defined here, since this can result in old files referring to the +wrong Keying Set as the active one, potentially resulting in lost (i.e. unkeyed) animation. """ import bpy @@ -138,9 +135,7 @@ class BUILTIN_KSI_LocScale(KeyingSetInfo): # LocRotScale class BUILTIN_KSI_LocRotScale(KeyingSetInfo): - """ - Insert a keyframe on each of the location, rotation, and scale channels - """ + """Insert a keyframe on each of the location, rotation, and scale channels""" bl_idname = ANIM_KS_LOC_ROT_SCALE_ID bl_label = "LocRotScale" @@ -183,10 +178,8 @@ class BUILTIN_KSI_RotScale(KeyingSetInfo): # VisualLocation class BUILTIN_KSI_VisualLoc(KeyingSetInfo): - """ - Insert a keyframe on each of the location channels, taking into account - effects of constraints and relationships - """ + """Insert a keyframe on each of the location channels, taking into account effects of constraints """ + """and relationships""" bl_label = "Visual Location" bl_options = {'INSERTKEY_VISUAL'} @@ -203,10 +196,8 @@ class BUILTIN_KSI_VisualLoc(KeyingSetInfo): # VisualRotation class BUILTIN_KSI_VisualRot(KeyingSetInfo): - """ - Insert a keyframe on each of the rotation channels, taking into account - effects of constraints and relationships - """ + """Insert a keyframe on each of the rotation channels, taking into account effects of constraints """ + """and relationships""" bl_label = "Visual Rotation" bl_options = {'INSERTKEY_VISUAL'} @@ -223,10 +214,8 @@ class BUILTIN_KSI_VisualRot(KeyingSetInfo): # VisualScaling class BUILTIN_KSI_VisualScaling(KeyingSetInfo): - """ - Insert a keyframe on each of the scale channels, taking into account - effects of constraints and relationships - """ + """Insert a keyframe on each of the scale channels, taking into account effects of constraints """ + """and relationships""" bl_label = "Visual Scaling" bl_options = {'INSERTKEY_VISUAL'} @@ -243,10 +232,8 @@ class BUILTIN_KSI_VisualScaling(KeyingSetInfo): # VisualLocRot class BUILTIN_KSI_VisualLocRot(KeyingSetInfo): - """ - Insert a keyframe on each of the location and rotation channels, - taking into account effects of constraints and relationships - """ + """Insert a keyframe on each of the location and rotation channels, taking into account effects of constraints """ + """and relationships""" bl_label = "Visual LocRot" bl_options = {'INSERTKEY_VISUAL'} @@ -267,10 +254,8 @@ class BUILTIN_KSI_VisualLocRot(KeyingSetInfo): # VisualLocScale class BUILTIN_KSI_VisualLocScale(KeyingSetInfo): - """ - Insert a keyframe on each of the location and scaling channels, - taking into account effects of constraints and relationships - """ + """Insert a keyframe on each of the location and scaling channels, taking into account effects of constraints """ + """and relationships""" bl_label = "Visual LocScale" bl_options = {'INSERTKEY_VISUAL'} @@ -291,10 +276,8 @@ class BUILTIN_KSI_VisualLocScale(KeyingSetInfo): # VisualLocRotScale class BUILTIN_KSI_VisualLocRotScale(KeyingSetInfo): - """ - Insert a keyframe on each of the location, rotation and scaling channels, - taking into account effects of constraints and relationships - """ + """Insert a keyframe on each of the location, rotation and scaling channels, taking into account effects """ + """of constraints and relationships""" bl_label = "Visual LocRotScale" bl_options = {'INSERTKEY_VISUAL'} @@ -317,10 +300,8 @@ class BUILTIN_KSI_VisualLocRotScale(KeyingSetInfo): # VisualRotScale class BUILTIN_KSI_VisualRotScale(KeyingSetInfo): - """ - Insert a keyframe on each of the rotation and scaling channels, - taking into account effects of constraints and relationships - """ + """Insert a keyframe on each of the rotation and scaling channels, taking into account effects of constraints """ + """and relationships""" bl_label = "Visual RotScale" bl_options = {'INSERTKEY_VISUAL'} @@ -367,10 +348,8 @@ class BUILTIN_KSI_Available(KeyingSetInfo): # All properties that are likely to get animated in a character rig class BUILTIN_KSI_WholeCharacter(KeyingSetInfo): - """ - Insert a keyframe for all properties that are likely to get animated in a - character rig (useful when blocking out a shot) - """ + """Insert a keyframe for all properties that are likely to get animated in a character rig """ + """(useful when blocking out a shot)""" bl_idname = ANIM_KS_WHOLE_CHARACTER_ID bl_label = "Whole Character" diff --git a/release/windows/contrib/vfapi/vfapi-plugin.c b/release/windows/contrib/vfapi/vfapi-plugin.c index 99ca6c64e80..96a5ada8f14 100644 --- a/release/windows/contrib/vfapi/vfapi-plugin.c +++ b/release/windows/contrib/vfapi/vfapi-plugin.c @@ -127,12 +127,12 @@ static unsigned long getipaddress(const char * ipaddr) return (ip); } -static void my_send(SOCKET sock, char * str) +static void my_send(SOCKET sock, char *str) { send(sock, str, strlen(str), 0); } -static int my_recv(SOCKET sock, char * line, int maxlen) +static int my_recv(SOCKET sock, char *line, int maxlen) { int got = 0; int toget = maxlen; @@ -148,7 +148,7 @@ static int my_recv(SOCKET sock, char * line, int maxlen) return maxlen; } -static int my_gets(SOCKET sock, char * line, int maxlen) +static int my_gets(SOCKET sock, char *line, int maxlen) { int last_rval = 0; |