Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build_files/buildbot/config/user-config-i686.py2
-rw-r--r--build_files/buildbot/config/user-config-player-i686.py2
-rw-r--r--build_files/buildbot/config/user-config-player-x86_64.py2
-rw-r--r--build_files/buildbot/config/user-config-x86_64.py2
-rw-r--r--build_files/buildbot/master_unpack.py2
-rw-r--r--build_files/cmake/cmake_static_check_cppcheck.py20
-rw-r--r--build_files/cmake/cmake_static_check_sparse.py14
-rw-r--r--build_files/cmake/cmake_static_check_splint.py12
-rw-r--r--build_files/cmake/project_source_info.py42
-rw-r--r--build_files/scons/config/irix6-config.py208
-rw-r--r--doc/manpage/blender.14
-rw-r--r--intern/elbeem/intern/loop_tools.h4
-rw-r--r--intern/ghost/SConscript2
-rw-r--r--intern/ghost/intern/GHOST_SystemX11.cpp26
-rw-r--r--intern/guardedalloc/MEM_sys_types.h15
-rw-r--r--intern/guardedalloc/intern/mallocn.c13
-rw-r--r--intern/opennl/superlu/superlu_sys_types.h18
-rwxr-xr-xpo/update_mo.py2
-rw-r--r--po/update_msg.py159
-rwxr-xr-xpo/update_po.py2
-rwxr-xr-xpo/update_pot.py2
-rw-r--r--release/bin/.blender/fonts/droidsans.ttf.gzbin1961584 -> 2259055 bytes
-rw-r--r--release/irix-6.2-mips/extra/blender.iconbin638 -> 0 bytes
-rwxr-xr-xrelease/irix-6.2-mips/specific.sh34
-rw-r--r--release/scripts/modules/addon_utils.py1
-rw-r--r--release/scripts/modules/animsys_refactor.py668
-rw-r--r--release/scripts/modules/bpy_extras/__init__.py1
-rw-r--r--release/scripts/modules/bpy_extras/anim_utils.py247
-rw-r--r--release/scripts/startup/bl_operators/__init__.py5
-rw-r--r--release/scripts/startup/bl_operators/anim.py274
-rw-r--r--release/scripts/startup/bl_operators/animsys_update.py699
-rw-r--r--release/scripts/startup/bl_operators/console.py106
-rw-r--r--release/scripts/startup/bl_operators/mesh.py2
-rw-r--r--release/scripts/startup/bl_operators/nla.py306
-rw-r--r--release/scripts/startup/bl_operators/screen_play_rendered_anim.py2
-rw-r--r--release/scripts/startup/bl_operators/sequencer.py6
-rw-r--r--release/scripts/startup/bl_operators/uvcalc_smart_project.py3
-rw-r--r--release/scripts/startup/bl_operators/view3d.py77
-rw-r--r--release/scripts/startup/bl_operators/wm.py741
-rw-r--r--release/scripts/startup/bl_ui/__init__.py2
-rw-r--r--release/scripts/startup/bl_ui/properties_animviz.py35
-rw-r--r--release/scripts/startup/bl_ui/properties_data_armature.py57
-rw-r--r--release/scripts/startup/bl_ui/properties_data_bone.py85
-rw-r--r--release/scripts/startup/bl_ui/properties_data_camera.py27
-rw-r--r--release/scripts/startup/bl_ui/properties_data_curve.py107
-rw-r--r--release/scripts/startup/bl_ui/properties_data_empty.py11
-rw-r--r--release/scripts/startup/bl_ui/properties_data_lamp.py109
-rw-r--r--release/scripts/startup/bl_ui/properties_data_mesh.py31
-rw-r--r--release/scripts/startup/bl_ui/properties_data_metaball.py31
-rw-r--r--release/scripts/startup/bl_ui/properties_data_modifier.py235
-rw-r--r--release/scripts/startup/bl_ui/properties_game.py115
-rw-r--r--release/scripts/startup/bl_ui/properties_material.py149
-rw-r--r--release/scripts/startup/bl_ui/properties_object.py97
-rw-r--r--release/scripts/startup/bl_ui/properties_object_constraint.py221
-rw-r--r--release/scripts/startup/bl_ui/properties_particle.py241
-rw-r--r--release/scripts/startup/bl_ui/properties_physics_cloth.py59
-rw-r--r--release/scripts/startup/bl_ui/properties_physics_common.py61
-rw-r--r--release/scripts/startup/bl_ui/properties_physics_field.py61
-rw-r--r--release/scripts/startup/bl_ui/properties_physics_fluid.py97
-rw-r--r--release/scripts/startup/bl_ui/properties_physics_smoke.py43
-rw-r--r--release/scripts/startup/bl_ui/properties_physics_softbody.py57
-rw-r--r--release/scripts/startup/bl_ui/properties_render.py145
-rw-r--r--release/scripts/startup/bl_ui/properties_scene.py144
-rw-r--r--release/scripts/startup/bl_ui/properties_texture.py267
-rw-r--r--release/scripts/startup/bl_ui/properties_world.py29
-rw-r--r--release/scripts/startup/bl_ui/space_console.py88
-rw-r--r--release/scripts/startup/bl_ui/space_dopesheet.py59
-rw-r--r--release/scripts/startup/bl_ui/space_graph.py57
-rw-r--r--release/scripts/startup/bl_ui/space_image.py88
-rw-r--r--release/scripts/startup/bl_ui/space_info.py165
-rw-r--r--release/scripts/startup/bl_ui/space_logic.py9
-rw-r--r--release/scripts/startup/bl_ui/space_nla.py41
-rw-r--r--release/scripts/startup/bl_ui/space_node.py17
-rw-r--r--release/scripts/startup/bl_ui/space_sequencer.py199
-rw-r--r--release/scripts/startup/bl_ui/space_text.py23
-rw-r--r--release/scripts/startup/bl_ui/space_time.py23
-rw-r--r--release/scripts/startup/bl_ui/space_userpref.py572
-rw-r--r--release/scripts/startup/bl_ui/space_userpref_keymap.py416
-rw-r--r--release/scripts/startup/bl_ui/space_view3d.py624
-rw-r--r--release/scripts/startup/bl_ui/space_view3d_toolbar.py47
-rw-r--r--source/blender/blenfont/BLF_api.h2
-rw-r--r--source/blender/blenfont/intern/blf.c68
-rw-r--r--source/blender/blenfont/intern/blf_font.c3
-rw-r--r--source/blender/blenfont/intern/blf_lang.c8
-rw-r--r--source/blender/blenkernel/BKE_DerivedMesh.h2
-rw-r--r--source/blender/blenkernel/BKE_colortools.h2
-rw-r--r--source/blender/blenkernel/intern/DerivedMesh.c8
-rw-r--r--source/blender/blenkernel/intern/blender.c2
-rw-r--r--source/blender/blenkernel/intern/cdderivedmesh.c18
-rw-r--r--source/blender/blenkernel/intern/key.c2
-rw-r--r--source/blender/blenkernel/intern/multires.c2
-rw-r--r--source/blender/blenkernel/intern/subsurf_ccg.c6
-rw-r--r--source/blender/blenlib/intern/path_util.c4
-rw-r--r--source/blender/blenlib/intern/storage.c6
-rw-r--r--source/blender/blenlib/intern/threads.c2
-rw-r--r--source/blender/blenloader/BLO_sys_types.h4
-rw-r--r--source/blender/blenloader/intern/readfile.c3
-rw-r--r--source/blender/blenloader/intern/writefile.c2
-rw-r--r--source/blender/collada/DocumentImporter.cpp2
-rw-r--r--source/blender/editors/armature/armature_ops.c3
-rw-r--r--source/blender/editors/armature/editarmature.c2
-rw-r--r--source/blender/editors/armature/poseobject.c4
-rw-r--r--source/blender/editors/curve/editcurve.c22
-rw-r--r--source/blender/editors/gpencil/gpencil_paint.c2
-rw-r--r--source/blender/editors/include/UI_interface.h1
-rw-r--r--source/blender/editors/interface/interface.c15
-rw-r--r--source/blender/editors/interface/interface_style.c29
-rw-r--r--source/blender/editors/interface/interface_templates.c2
-rw-r--r--source/blender/editors/mesh/editmesh_add.c36
-rw-r--r--source/blender/editors/object/object_edit.c2
-rw-r--r--source/blender/editors/object/object_ops.c3
-rw-r--r--source/blender/editors/object/object_vgroup.c30
-rw-r--r--source/blender/editors/screen/glutil.c11
-rw-r--r--source/blender/editors/sculpt_paint/paint_vertex.c2
-rw-r--r--source/blender/editors/sculpt_paint/sculpt.c4
-rw-r--r--source/blender/editors/space_action/action_draw.c2
-rw-r--r--source/blender/editors/space_action/action_ops.c1
-rw-r--r--source/blender/editors/space_file/file_ops.c4
-rw-r--r--source/blender/editors/space_graph/graph_ops.c1
-rw-r--r--source/blender/editors/space_node/drawnode.c4
-rw-r--r--source/blender/editors/space_node/node_edit.c13
-rw-r--r--source/blender/editors/space_node/node_header.c2
-rw-r--r--source/blender/editors/space_node/node_ops.c5
-rw-r--r--source/blender/editors/space_node/space_node.c3
-rw-r--r--source/blender/editors/space_outliner/outliner_tree.c7
-rw-r--r--source/blender/editors/space_text/text_draw.c7
-rw-r--r--source/blender/editors/space_view3d/drawmesh.c34
-rw-r--r--source/blender/editors/space_view3d/drawobject.c57
-rw-r--r--source/blender/editors/space_view3d/view3d_header.c6
-rw-r--r--source/blender/editors/space_view3d/view3d_view.c28
-rw-r--r--source/blender/editors/transform/transform.c5
-rw-r--r--source/blender/editors/transform/transform_conversions.c6
-rw-r--r--source/blender/editors/uvedit/uvedit_ops.c4
-rw-r--r--source/blender/editors/uvedit/uvedit_unwrap_ops.c6
-rw-r--r--source/blender/gpu/intern/gpu_material.c9
-rw-r--r--source/blender/imbuf/intern/anim_movie.c104
-rw-r--r--source/blender/imbuf/intern/jpeg.c6
-rw-r--r--source/blender/makesrna/RNA_define.h1
-rw-r--r--source/blender/makesrna/RNA_types.h1
-rw-r--r--source/blender/makesrna/intern/makesrna.c1
-rw-r--r--source/blender/makesrna/intern/rna_ID.c10
-rw-r--r--source/blender/makesrna/intern/rna_action.c30
-rw-r--r--source/blender/makesrna/intern/rna_actuator.c10
-rw-r--r--source/blender/makesrna/intern/rna_animation.c2
-rw-r--r--source/blender/makesrna/intern/rna_define.c33
-rw-r--r--source/blender/makesrna/intern/rna_material.c94
-rw-r--r--source/blender/makesrna/intern/rna_mesh.c76
-rw-r--r--source/blender/makesrna/intern/rna_modifier.c6
-rw-r--r--source/blender/makesrna/intern/rna_object.c28
-rw-r--r--source/blender/makesrna/intern/rna_render.c2
-rw-r--r--source/blender/makesrna/intern/rna_rna.c1
-rw-r--r--source/blender/makesrna/intern/rna_ui.c4
-rw-r--r--source/blender/makesrna/intern/rna_ui_api.c6
-rw-r--r--source/blender/makesrna/intern/rna_userdef.c4
-rw-r--r--source/blender/makesrna/intern/rna_wm.c8
-rw-r--r--source/blender/modifiers/intern/MOD_navmesh.c8
-rw-r--r--source/blender/modifiers/intern/MOD_solidify.c7
-rw-r--r--source/blender/modifiers/intern/MOD_warp.c4
-rw-r--r--source/blender/modifiers/intern/MOD_weightvg_util.c7
-rw-r--r--source/blender/modifiers/intern/MOD_weightvg_util.h2
-rw-r--r--source/blender/modifiers/intern/MOD_weightvgedit.c7
-rw-r--r--source/blender/modifiers/intern/MOD_weightvgmix.c7
-rw-r--r--source/blender/modifiers/intern/MOD_weightvgproximity.c7
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_lummaMatte.c2
-rw-r--r--source/blender/nodes/intern/node_util.h2
-rw-r--r--source/blender/python/SConscript6
-rw-r--r--source/blender/python/generic/CMakeLists.txt4
-rw-r--r--source/blender/python/generic/blf_py_api.c45
-rw-r--r--source/blender/python/intern/CMakeLists.txt4
-rw-r--r--source/blender/python/intern/bpy_props.c1
-rw-r--r--source/blender/python/intern/bpy_rna.c10
-rw-r--r--source/blender/render/intern/include/rendercore.h12
-rw-r--r--source/blender/render/intern/include/shading.h4
-rw-r--r--source/blender/render/intern/source/convertblender.c10
-rw-r--r--source/blender/render/intern/source/envmap.c6
-rw-r--r--source/blender/render/intern/source/pixelshading.c3
-rw-r--r--source/blender/render/intern/source/rayshade.c241
-rw-r--r--source/blender/render/intern/source/render_texture.c14
-rw-r--r--source/blender/render/intern/source/rendercore.c2
-rw-r--r--source/blender/render/intern/source/shadeinput.c8
-rw-r--r--source/blender/render/intern/source/shadeoutput.c56
-rw-r--r--source/blender/render/intern/source/strand.c4
-rw-r--r--source/blender/render/intern/source/voxeldata.c2
-rw-r--r--source/blender/render/intern/source/zbuf.c9
-rw-r--r--source/blender/windowmanager/intern/wm_event_system.c2
-rw-r--r--source/blender/windowmanager/intern/wm_operators.c14
-rw-r--r--source/blender/windowmanager/intern/wm_window.c10
-rw-r--r--source/blenderplayer/bad_level_call_stubs/stubs.c1
-rw-r--r--source/creator/creator.c14
-rw-r--r--source/gameengine/Converter/BL_ShapeActionActuator.cpp4
-rw-r--r--source/gameengine/Ketsji/KX_IpoActuator.cpp5
-rw-r--r--source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp4
192 files changed, 5108 insertions, 5054 deletions
diff --git a/build_files/buildbot/config/user-config-i686.py b/build_files/buildbot/config/user-config-i686.py
index 5fe3d6891fd..facbf493a23 100644
--- a/build_files/buildbot/config/user-config-i686.py
+++ b/build_files/buildbot/config/user-config-i686.py
@@ -5,7 +5,7 @@ BF_NUMJOBS = 2
# Python configuration
BF_PYTHON_VERSION = '3.2'
BF_PYTHON_ABI_FLAGS = 'mu'
-BF_PYTHON = '/opt/python3.2'
+BF_PYTHON = '/opt/python3'
WITH_BF_STATICPYTHON = True
diff --git a/build_files/buildbot/config/user-config-player-i686.py b/build_files/buildbot/config/user-config-player-i686.py
index 54e66e847df..d02779e63e5 100644
--- a/build_files/buildbot/config/user-config-player-i686.py
+++ b/build_files/buildbot/config/user-config-player-i686.py
@@ -5,7 +5,7 @@ BF_NUMJOBS = 2
# Python configuration
BF_PYTHON_VERSION = '3.2'
BF_PYTHON_ABI_FLAGS = 'mu'
-BF_PYTHON = '/opt/python3.2'
+BF_PYTHON = '/opt/python3'
WITH_BF_STATICPYTHON = True
diff --git a/build_files/buildbot/config/user-config-player-x86_64.py b/build_files/buildbot/config/user-config-player-x86_64.py
index 5d594229d3e..810dcb895de 100644
--- a/build_files/buildbot/config/user-config-player-x86_64.py
+++ b/build_files/buildbot/config/user-config-player-x86_64.py
@@ -5,7 +5,7 @@ BF_NUMJOBS = 2
# Python configuration
BF_PYTHON_VERSION = '3.2'
BF_PYTHON_ABI_FLAGS = 'mu'
-BF_PYTHON = '/opt/python3.2'
+BF_PYTHON = '/opt/python3'
WITH_BF_STATICPYTHON = True
diff --git a/build_files/buildbot/config/user-config-x86_64.py b/build_files/buildbot/config/user-config-x86_64.py
index b8b2d7f7a5f..536f8f9e6c1 100644
--- a/build_files/buildbot/config/user-config-x86_64.py
+++ b/build_files/buildbot/config/user-config-x86_64.py
@@ -5,7 +5,7 @@ BF_NUMJOBS = 2
# Python configuration
BF_PYTHON_VERSION = '3.2'
BF_PYTHON_ABI_FLAGS = 'mu'
-BF_PYTHON = '/opt/python3.2'
+BF_PYTHON = '/opt/python3'
WITH_BF_STATICPYTHON = True
diff --git a/build_files/buildbot/master_unpack.py b/build_files/buildbot/master_unpack.py
index cb63c1d3ffc..3df22ad8745 100644
--- a/build_files/buildbot/master_unpack.py
+++ b/build_files/buildbot/master_unpack.py
@@ -48,7 +48,7 @@ def get_platform(filename):
tokens = filename.split("-")
platforms = ('osx', 'mac', 'bsd',
'win', 'linux', 'source',
- 'irix', 'solaris')
+ 'solaris')
platform_tokens = []
found = False
diff --git a/build_files/cmake/cmake_static_check_cppcheck.py b/build_files/cmake/cmake_static_check_cppcheck.py
index 6eb9d4da8b6..fdd380c5b4d 100644
--- a/build_files/cmake/cmake_static_check_cppcheck.py
+++ b/build_files/cmake/cmake_static_check_cppcheck.py
@@ -37,7 +37,7 @@ CHECKER_BIN = "cppcheck"
CHECKER_ARGS = [
# not sure why this is needed, but it is.
- "-I" + os.path.join(project_source_info.SOURCE_DIR, "extern/glew/include"),
+ "-I" + os.path.join(project_source_info.SOURCE_DIR, "extern", "glew", "include"),
# "--check-config", # when includes are missing
# "--enable=all", # if you want sixty hundred pedantic suggestions
@@ -58,19 +58,21 @@ def main():
check_commands.append((c, cmd))
- for i, (c, cmd) in enumerate(check_commands):
+
+ process_functions = []
+ def my_process(i, c, cmd):
percent = 100.0 * (i / (len(check_commands) - 1))
percent_str = "[" + ("%.2f]" % percent).rjust(7) + " %:"
- # if percent < 27.9:
- # continue
-
- # let cppcheck finish the line off...
+ sys.stdout.flush()
sys.stdout.write("%s " % percent_str)
- sys.stdout.flush()
- process = subprocess.Popen(cmd)
- process.wait()
+ return subprocess.Popen(cmd)
+
+ for i, (c, cmd) in enumerate(check_commands):
+ process_functions.append((my_process, (i, c, cmd)))
+
+ project_source_info.queue_processes(process_functions)
if __name__ == "__main__":
diff --git a/build_files/cmake/cmake_static_check_sparse.py b/build_files/cmake/cmake_static_check_sparse.py
index 9af53ed8008..aa2d56e5509 100644
--- a/build_files/cmake/cmake_static_check_sparse.py
+++ b/build_files/cmake/cmake_static_check_sparse.py
@@ -52,15 +52,21 @@ def main():
check_commands.append((c, cmd))
- for i, (c, cmd) in enumerate(check_commands):
+ def my_process(i, c, cmd):
percent = 100.0 * (i / (len(check_commands) - 1))
percent_str = "[" + ("%.2f]" % percent).rjust(7) + " %:"
- sys.stdout.write("%s %s\n" % (percent_str, c))
sys.stdout.flush()
+ sys.stdout.write("%s %s\n" % (percent_str, c))
+
+ return subprocess.Popen(cmd)
+
+ process_functions = []
+ for i, (c, cmd) in enumerate(check_commands):
+ process_functions.append((my_process, (i, c, cmd)))
+
+ project_source_info.queue_processes(process_functions)
- process = subprocess.Popen(cmd)
- process.wait()
if __name__ == "__main__":
main()
diff --git a/build_files/cmake/cmake_static_check_splint.py b/build_files/cmake/cmake_static_check_splint.py
index aa13ef82e3c..08d83337426 100644
--- a/build_files/cmake/cmake_static_check_splint.py
+++ b/build_files/cmake/cmake_static_check_splint.py
@@ -84,15 +84,21 @@ def main():
check_commands.append((c, cmd))
- for i, (c, cmd) in enumerate(check_commands):
+ def my_process(i, c, cmd):
percent = 100.0 * (i / (len(check_commands) - 1))
percent_str = "[" + ("%.2f]" % percent).rjust(7) + " %:"
sys.stdout.write("%s %s\n" % (percent_str, c))
sys.stdout.flush()
- process = subprocess.Popen(cmd)
- process.wait()
+ return subprocess.Popen(cmd)
+
+ process_functions = []
+ for i, (c, cmd) in enumerate(check_commands):
+ process_functions.append((my_process, (i, c, cmd)))
+
+ project_source_info.queue_processes(process_functions)
+
if __name__ == "__main__":
main()
diff --git a/build_files/cmake/project_source_info.py b/build_files/cmake/project_source_info.py
index 670befbf2aa..83e4e05dc0f 100644
--- a/build_files/cmake/project_source_info.py
+++ b/build_files/cmake/project_source_info.py
@@ -148,6 +148,48 @@ def build_info(use_c=True, use_cxx=True, ignore_prefix_list=None):
return source
+# could be moved elsewhere!, this just happens to be used by scripts that also
+# use this module.
+def queue_processes(process_funcs, job_total=-1):
+ """ Takes a list of function arg pairs, each function must return a process
+ """
+ import sys
+
+ if job_total == -1:
+ import multiprocessing
+ job_total = multiprocessing.cpu_count()
+ del multiprocessing
+
+ if job_total == 1:
+ import os
+ import sys
+ for func, args in process_funcs:
+ sys.stdout.flush()
+ sys.stderr.flush()
+
+ process = func(*args)
+ process.wait()
+ else:
+ import time
+ import subprocess
+
+ processes = []
+ for func, args in process_funcs:
+ # wait until a thread is free
+ while 1:
+ processes[:] = [p for p in processes if p.poll() is None]
+
+ if len(processes) <= job_total:
+ break
+ else:
+ time.sleep(0.1)
+
+ sys.stdout.flush()
+ sys.stderr.flush()
+
+ processes.append(func(*args))
+
+
def main():
if not os.path.exists(join(CMAKE_DIR, "CMakeCache.txt")):
print("This script must run from the cmake build dir")
diff --git a/build_files/scons/config/irix6-config.py b/build_files/scons/config/irix6-config.py
index 4ca7bcc7b64..e69de29bb2d 100644
--- a/build_files/scons/config/irix6-config.py
+++ b/build_files/scons/config/irix6-config.py
@@ -1,208 +0,0 @@
-import os
-
-LCGDIR = os.getcwd()+"/../lib/irix-6.5-mips"
-LIBDIR = LCGDIR
-
-BF_PYTHON = LCGDIR+'/python'
-BF_PYTHON_VERSION = '3.2'
-WITH_BF_STATICPYTHON = 'true'
-BF_PYTHON_INC = '${BF_PYTHON}/include/python${BF_PYTHON_VERSION}'
-BF_PYTHON_BINARY = '${BF_PYTHON}/bin/python${BF_PYTHON_VERSION}'
-BF_PYTHON_LIB = 'python${BF_PYTHON_VERSION}' #BF_PYTHON+'/lib/python'+BF_PYTHON_VERSION+'/config/libpython'+BF_PYTHON_VERSION+'.a'
-BF_PYTHON_LINKFLAGS = ['-Xlinker', '-export-dynamic']
-BF_PYTHON_LIB_STATIC = '${BF_PYTHON}/lib/python${BF_PYTHON_VERSION}/config/libpython${BF_PYTHON_VERSION}.a'
-
-WITH_BF_OPENAL = 'true'
-WITH_BF_STATICOPENAL = 'true'
-BF_OPENAL = LCGDIR+'/openal'
-BF_OPENAL_INC = '${BF_OPENAL}/include'
-BF_OPENAL_LIB = 'openal'
-BF_OPENAL_LIB_STATIC = '${BF_OPENAL}/lib/libopenal.a'
-BF_OPENAL_LIBPATH = LIBDIR + '/lib'
-
-BF_CXX = '/usr'
-WITH_BF_STATICCXX = 'false'
-BF_CXX_LIB_STATIC = '${BF_CXX}/lib/libstdc++.a'
-
-BF_LIBSAMPLERATE = LCGDIR+'/samplerate'
-BF_LIBSAMPLERATE_INC = '${BF_LIBSAMPLERATE}/include'
-BF_LIBSAMPLERATE_LIB = 'samplerate'
-BF_LIBSAMPLERATE_LIBPATH = '${BF_LIBSAMPLERATE}/lib'
-
-WITH_BF_SDL = 'true'
-BF_SDL = LCGDIR+'/sdl' #$(shell sdl-config --prefix)
-BF_SDL_INC = '${BF_SDL}/include/SDL' #$(shell $(BF_SDL)/bin/sdl-config --cflags)
-BF_SDL_LIB = 'SDL audio iconv charset' #BF_SDL #$(shell $(BF_SDL)/bin/sdl-config --libs) -lSDL_mixer
-BF_SDL_LIBPATH = '${BF_SDL}/lib'
-
-WITH_BF_OPENEXR = 'false'
-WITH_BF_STATICOPENEXR = 'false'
-BF_OPENEXR = '/usr'
-# when compiling with your own openexr lib you might need to set...
-# BF_OPENEXR_INC = '${BF_OPENEXR}/include/OpenEXR ${BF_OPENEXR}/include'
-
-BF_OPENEXR_INC = '${BF_OPENEXR}/include/OpenEXR'
-BF_OPENEXR_LIB = 'Half IlmImf Iex Imath '
-BF_OPENEXR_LIB_STATIC = '${BF_OPENEXR}/lib/libHalf.a ${BF_OPENEXR}/lib/libIlmImf.a ${BF_OPENEXR}/lib/libIex.a ${BF_OPENEXR}/lib/libImath.a ${BF_OPENEXR}/lib/libIlmThread.a'
-# BF_OPENEXR_LIBPATH = '${BF_OPENEXR}/lib'
-
-
-WITH_BF_DDS = 'false'
-
-WITH_BF_JPEG = 'false'
-BF_JPEG = LCGDIR+'/jpeg'
-BF_JPEG_INC = '${BF_JPEG}/include'
-BF_JPEG_LIB = 'jpeg'
-BF_JPEG_LIBPATH = '${BF_JPEG}/lib'
-
-WITH_BF_PNG = 'false'
-BF_PNG = LCGDIR+"/png"
-BF_PNG_INC = '${BF_PNG}/include'
-BF_PNG_LIB = 'png'
-BF_PNG_LIBPATH = '${BF_PNG}/lib'
-
-BF_TIFF = '/usr/nekoware'
-BF_TIFF_INC = '${BF_TIFF}/include'
-
-WITH_BF_ZLIB = 'true'
-BF_ZLIB = LCGDIR+"/zlib"
-BF_ZLIB_INC = '${BF_ZLIB}/include'
-BF_ZLIB_LIB = 'z'
-BF_ZLIB_LIBPATH = '${BF_ZLIB}/lib'
-
-WITH_BF_INTERNATIONAL = 'true'
-
-BF_GETTEXT = LCGDIR+'/gettext'
-BF_GETTEXT_INC = '${BF_GETTEXT}/include'
-BF_GETTEXT_LIB = 'gettextpo intl'
-BF_GETTEXT_LIBPATH = '${BF_GETTEXT}/lib'
-
-WITH_BF_GAMEENGINE='false'
-WITH_BF_PLAYER = 'false'
-
-WITH_BF_BULLET = 'true'
-BF_BULLET = '#extern/bullet2/src'
-BF_BULLET_INC = '${BF_BULLET}'
-BF_BULLET_LIB = 'extern_bullet'
-
-#WITH_BF_NSPR = 'true'
-#BF_NSPR = $(LIBDIR)/nspr
-#BF_NSPR_INC = -I$(BF_NSPR)/include -I$(BF_NSPR)/include/nspr
-#BF_NSPR_LIB =
-
-# Uncomment the following line to use Mozilla inplace of netscape
-#CPPFLAGS += -DMOZ_NOT_NET
-# Location of MOZILLA/Netscape header files...
-#BF_MOZILLA = $(LIBDIR)/mozilla
-#BF_MOZILLA_INC = -I$(BF_MOZILLA)/include/mozilla/nspr -I$(BF_MOZILLA)/include/mozilla -I$(BF_MOZILLA)/include/mozilla/xpcom -I$(BF_MOZILLA)/include/mozilla/idl
-#BF_MOZILLA_LIB =
-# Will fall back to look in BF_MOZILLA_INC/nspr and BF_MOZILLA_LIB
-# if this is not set.
-#
-# Be paranoid regarding library creation (do not update archives)
-#BF_PARANOID = 'true'
-
-# enable freetype2 support for text objects
-BF_FREETYPE = LCGDIR+'/freetype'
-BF_FREETYPE_INC = '${BF_FREETYPE}/include ${BF_FREETYPE}/include/freetype2'
-BF_FREETYPE_LIB = 'freetype'
-BF_FREETYPE_LIBPATH = '${BF_FREETYPE}/lib'
-
-WITH_BF_QUICKTIME = 'false' # -DWITH_QUICKTIME
-BF_QUICKTIME = '/usr/local'
-BF_QUICKTIME_INC = '${BF_QUICKTIME}/include'
-
-WITH_BF_ICONV = 'true'
-BF_ICONV = LIBDIR + "/iconv"
-BF_ICONV_INC = '${BF_ICONV}/include'
-BF_ICONV_LIB = 'iconv charset'
-BF_ICONV_LIBPATH = '${BF_ICONV}/lib'
-
-WITH_BF_BINRELOC = 'false'
-
-# enable ffmpeg support
-WITH_BF_FFMPEG = 'true' # -DWITH_FFMPEG
-# Uncomment the following two lines to use system's ffmpeg
-BF_FFMPEG = LCGDIR+'/ffmpeg'
-BF_FFMPEG_LIB = 'avformat avcodec swscale avutil avdevice faad faac vorbis x264 ogg mp3lame z'
-BF_FFMPEG_INC = '${BF_FFMPEG}/include'
-BF_FFMPEG_LIBPATH='${BF_FFMPEG}/lib'
-
-# enable ogg, vorbis and theora in ffmpeg
-WITH_BF_OGG = 'false' # -DWITH_OGG
-BF_OGG = '/usr'
-BF_OGG_INC = '${BF_OGG}/include'
-BF_OGG_LIB = 'ogg vorbis theoraenc theoradec'
-
-WITH_BF_OPENJPEG = 'false'
-BF_OPENJPEG = '#extern/libopenjpeg'
-BF_OPENJPEG_LIB = ''
-BF_OPENJPEG_INC = '${BF_OPENJPEG}'
-BF_OPENJPEG_LIBPATH='${BF_OPENJPEG}/lib'
-
-WITH_BF_REDCODE = 'false'
-BF_REDCODE = '#extern/libredcode'
-BF_REDCODE_LIB = ''
-BF_REDCODE_INC = '${BF_REDCODE}/include'
-BF_REDCODE_LIBPATH='${BF_REDCODE}/lib'
-
-# Mesa Libs should go here if your using them as well....
-WITH_BF_STATICOPENGL = 'false'
-BF_OPENGL = '/usr'
-BF_OPENGL_INC = '${BF_OPENGL}/include'
-BF_OPENGL_LIB = 'GL GLU X11 Xi Xext'
-BF_OPENGL_LIBPATH = '/usr/X11R6/lib'
-BF_OPENGL_LIB_STATIC = '${BF_OPENGL}/libGL.a ${BF_OPENGL}/libGLU.a ${BF_OPENGL}/libXxf86vm.a ${BF_OPENGL}/libX11.a ${BF_OPENGL}/libXi.a ${BF_OPENGL}/libXext.a ${BF_OPENGL}/libXxf86vm.a'
-
-
-CC = 'c99'
-CXX = 'CC'
-
-
-CCFLAGS = ['-pipe','-fPIC', '-n32']
-
-CPPFLAGS = []
-CXXFLAGS = ['-pipe','-fPIC', '-n32']
-REL_CFLAGS = ['-DNDEBUG', '-O2']
-REL_CCFLAGS = ['-DNDEBUG', '-O2']
-##BF_DEPEND = 'true'
-##
-##AR = ar
-##ARFLAGS = ruv
-##ARFLAGSQUIET = ru
-##
-C_WARN = ['-no_prelink', '-ptused']
-
-CC_WARN = ['-no_prelink', '-ptused']
-
-##FIX_STUBS_WARNINGS = -Wno-unused
-
-LLIBS = 'c m dl pthread dmedia movie'
-##LOPTS = --dynamic
-##DYNLDFLAGS = -shared $(LDFLAGS)
-
-BF_PROFILE_FLAGS = ['-pg','-g']
-BF_PROFILE = 'false'
-
-BF_DEBUG = 'false'
-BF_DEBUG_CCFLAGS = ['-g']
-
-BF_BUILDDIR = '../build/irix6'
-BF_INSTALLDIR='../install/irix6'
-
-#Link against pthread
-LDIRS = []
-LDIRS.append(BF_FREETYPE_LIBPATH)
-LDIRS.append(BF_PNG_LIBPATH)
-LDIRS.append(BF_ZLIB_LIBPATH)
-LDIRS.append(BF_SDL_LIBPATH)
-LDIRS.append(BF_OPENAL_LIBPATH)
-LDIRS.append(BF_ICONV_LIBPATH)
-
-PLATFORM_LINKFLAGS = []
-for x in LDIRS:
- PLATFORM_LINKFLAGS.append("-L"+x)
-
-PLATFORM_LINKFLAGS += ['-L${LCGDIR}/jpeg/lib' , '-L/usr/lib32', '-n32', '-v', '-no_prelink']
-print PLATFORM_LINKFLAGS
-LINKFLAGS= PLATFORM_LINKFLAGS
diff --git a/doc/manpage/blender.1 b/doc/manpage/blender.1
index ddf3a79b104..20cd40e32ee 100644
--- a/doc/manpage/blender.1
+++ b/doc/manpage/blender.1
@@ -1,4 +1,4 @@
-.TH "BLENDER" "1" "June 03, 2011" "Blender Blender 2\&.57 (sub 1)"
+.TH "BLENDER" "1" "September 22, 2011" "Blender Blender 2\&.59 (sub 3)"
.SH NAME
blender \- a 3D modelling and rendering package
@@ -15,7 +15,7 @@ Use Blender to create TV commercials, to make technical visualizations, business
http://www.blender.org
.SH OPTIONS
-Blender 2.57 (sub 1)
+Blender 2.59 (sub 3)
Usage: blender [args ...] [file] [args ...]
.br
.SS "Render Options:"
diff --git a/intern/elbeem/intern/loop_tools.h b/intern/elbeem/intern/loop_tools.h
index 10514251f1e..f06fa7c2861 100644
--- a/intern/elbeem/intern/loop_tools.h
+++ b/intern/elbeem/intern/loop_tools.h
@@ -119,8 +119,8 @@
} \
\
const int Nj = mLevel[mMaxRefine].lSizey; \
- int jstart = 0+( id * (Nj / Nthrds) ); \
- int jend = 0+( (id+1) * (Nj / Nthrds) ); \
+ int jstart = 0+( (id * Nj ) / Nthrds ); \
+ int jend = 0+(((id+1) * Nj ) / Nthrds ); \
if( ((Nj/Nthrds) *Nthrds) != Nj) { \
errMsg("LbmFsgrSolver","Invalid domain size Nj="<<Nj<<" Nthrds="<<Nthrds); \
} \
diff --git a/intern/ghost/SConscript b/intern/ghost/SConscript
index 82f65c1c8ae..1bbc8398574 100644
--- a/intern/ghost/SConscript
+++ b/intern/ghost/SConscript
@@ -26,7 +26,7 @@ if env['WITH_GHOST_SDL']:
pass
incs += ' ' + env['BF_SDL_INC']
defs += ['WITH_GHOST_SDL']
-elif window_system in ('linux', 'openbsd3', 'sunos5', 'freebsd7', 'freebsd8', 'freebsd9', 'irix6', 'aix4', 'aix5'):
+elif window_system in ('linux', 'openbsd3', 'sunos5', 'freebsd7', 'freebsd8', 'freebsd9', 'aix4', 'aix5'):
for f in pf:
try:
sources.remove('intern' + os.sep + f + 'Win32.cpp')
diff --git a/intern/ghost/intern/GHOST_SystemX11.cpp b/intern/ghost/intern/GHOST_SystemX11.cpp
index d5100e589f2..63bfa9619e4 100644
--- a/intern/ghost/intern/GHOST_SystemX11.cpp
+++ b/intern/ghost/intern/GHOST_SystemX11.cpp
@@ -57,16 +57,6 @@
#include <X11/XF86keysym.h>
#endif
-#ifdef __sgi
-
-#if defined(_SGI_EXTRA_PREDEFINES) && !defined(NO_FAST_ATOMS)
-#include <X11/SGIFastAtom.h>
-#else
-#define XSGIFastInternAtom(dpy,string,fast_name,how) XInternAtom(dpy,string,how)
-#endif
-
-#endif
-
// For timing
#include <sys/time.h>
@@ -98,16 +88,9 @@ GHOST_SystemX11(
std::cerr << "Unable to open a display" << std::endl;
abort(); //was return before, but this would just mean it will crash later
}
-
-#ifdef __sgi
- m_delete_window_atom
- = XSGIFastInternAtom(m_display,
- "WM_DELETE_WINDOW",
- SGI_XA_WM_DELETE_WINDOW, False);
-#else
+
m_delete_window_atom
= XInternAtom(m_display, "WM_DELETE_WINDOW", True);
-#endif
m_wm_protocols= XInternAtom(m_display, "WM_PROTOCOLS", False);
m_wm_take_focus= XInternAtom(m_display, "WM_TAKE_FOCUS", False);
@@ -630,7 +613,6 @@ GHOST_SystemX11::processEvent(XEvent *xe)
{
XClientMessageEvent & xcme = xe->xclient;
-#ifndef __sgi
if (((Atom)xcme.data.l[0]) == m_delete_window_atom) {
g_event = new
GHOST_Event(
@@ -638,10 +620,8 @@ GHOST_SystemX11::processEvent(XEvent *xe)
GHOST_kEventWindowClose,
window
);
- } else
-#endif
-
- if (((Atom)xcme.data.l[0]) == m_wm_take_focus) {
+ }
+ else if (((Atom)xcme.data.l[0]) == m_wm_take_focus) {
XWindowAttributes attr;
Window fwin;
int revert_to;
diff --git a/intern/guardedalloc/MEM_sys_types.h b/intern/guardedalloc/MEM_sys_types.h
index 4debb32b5c4..23c367d765a 100644
--- a/intern/guardedalloc/MEM_sys_types.h
+++ b/intern/guardedalloc/MEM_sys_types.h
@@ -25,6 +25,11 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file MEM_sys_types.h
+ * \ingroup MEM
+ *
* A platform-independent definition of [u]intXX_t
* Plus the accompanying header include for htonl/ntohl
*
@@ -44,10 +49,6 @@
// doxygen would get a conflict
*/
-/** \file MEM_sys_types.h
- * \ingroup MEM
- */
-
#ifndef MEM_SYS_TYPES_H
#define MEM_SYS_TYPES_H
@@ -60,6 +61,7 @@ extern "C" {
/* The __intXX are built-in types of the visual complier! So we don't
* need to include anything else here. */
+
typedef signed __int8 int8_t;
typedef signed __int16 int16_t;
typedef signed __int32 int32_t;
@@ -104,11 +106,12 @@ unsigned long __attribute__((__stdcall__)) htonl(unsigned long);
#else
- /* FreeBSD, Irix, Solaris */
+ /* FreeBSD, Solaris */
#include <sys/types.h>
#endif /* ifdef platform for types */
+
#ifdef _WIN32
#ifndef FREE_WINDOWS
#ifndef htonl
@@ -122,7 +125,7 @@ unsigned long __attribute__((__stdcall__)) htonl(unsigned long);
#include <sys/param.h>
#elif defined (__APPLE__)
#include <sys/types.h>
-#else /* irix sun linux */
+#else /* sun linux */
#include <netinet/in.h>
#endif /* ifdef platform for htonl/ntohl */
diff --git a/intern/guardedalloc/intern/mallocn.c b/intern/guardedalloc/intern/mallocn.c
index c3ff851f3bc..3614445ad27 100644
--- a/intern/guardedalloc/intern/mallocn.c
+++ b/intern/guardedalloc/intern/mallocn.c
@@ -364,22 +364,9 @@ void *MEM_mapallocN(size_t len, const char *str)
mem_lock_thread();
len = (len + 3 ) & ~3; /* allocate in units of 4 */
-
-#ifdef __sgi
- {
-#include <fcntl.h>
-
- int fd;
- fd = open("/dev/zero", O_RDWR);
- memh= mmap(0, len+sizeof(MemHead)+sizeof(MemTail),
- PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
- close(fd);
- }
-#else
memh= mmap(NULL, len+sizeof(MemHead)+sizeof(MemTail),
PROT_READ|PROT_WRITE, MAP_SHARED|MAP_ANON, -1, 0);
-#endif
if(memh!=(MemHead *)-1) {
make_memhead_header(memh, len, str);
diff --git a/intern/opennl/superlu/superlu_sys_types.h b/intern/opennl/superlu/superlu_sys_types.h
index c154b4c50ac..9bdf3434582 100644
--- a/intern/opennl/superlu/superlu_sys_types.h
+++ b/intern/opennl/superlu/superlu_sys_types.h
@@ -25,6 +25,11 @@
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file superlu_sys_types.h
+ * \ingroup opennl
+ *
* A platform-independent definition of [u]intXX_t
* Plus the accompanying header include for htonl/ntohl
*
@@ -37,10 +42,6 @@
*
*/
-/** \file superlu_sys_types.h
- * \ingroup opennl
- */
-
/*
// DG: original BLO_sys_types.h is in source/blender/blenkernel
@@ -99,29 +100,32 @@ typedef unsigned long uintptr_t;
#include <inttypes.h>
#elif defined(FREE_WINDOWS)
-
+/* define htoln here, there must be a syntax error in winsock2.h in MinGW */
+unsigned long __attribute__((__stdcall__)) htonl(unsigned long);
#include <stdint.h>
#else
- /* FreeBSD, Irix, Solaris */
+ /* FreeBSD, Solaris */
#include <sys/types.h>
#endif /* ifdef platform for types */
#ifdef _WIN32
+#ifndef FREE_WINDOWS
#ifndef htonl
#define htonl(x) correctByteOrder(x)
#endif
#ifndef ntohl
#define ntohl(x) correctByteOrder(x)
#endif
+#endif
#elif defined (__FreeBSD__) || defined (__OpenBSD__)
#include <sys/param.h>
#elif defined (__APPLE__)
#include <sys/types.h>
-#else /* irix sun linux */
+#else /* sun linux */
#include <netinet/in.h>
#endif /* ifdef platform for htonl/ntohl */
diff --git a/po/update_mo.py b/po/update_mo.py
index eb4c2840e28..51591af8a0e 100755
--- a/po/update_mo.py
+++ b/po/update_mo.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
-# $Id:
+# $Id$
# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
diff --git a/po/update_msg.py b/po/update_msg.py
index 7bd372cf3ce..7bb659ca93c 100644
--- a/po/update_msg.py
+++ b/po/update_msg.py
@@ -1,4 +1,4 @@
-# $Id:
+# $Id$
# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
@@ -32,73 +32,166 @@ SOURCE_DIR = os.path.normpath(os.path.abspath(os.path.join(CURRENT_DIR, "..")))
FILE_NAME_MESSAGES = os.path.join(CURRENT_DIR, "messages.txt")
-def dump_messages():
+def dump_messages_rna(messages):
import bpy
# -------------------------------------------------------------------------
# Function definitions
- def _putMessage(messages, msg):
- if len(msg):
- messages[msg] = True
-
- def _walkProperties(properties, messages):
+ def walkProperties(properties):
import bpy
for prop in properties:
- _putMessage(messages, prop.name)
- _putMessage(messages, prop.description)
+ messages.add(prop.name)
+ messages.add(prop.description)
if isinstance(prop, bpy.types.EnumProperty):
for item in prop.enum_items:
- _putMessage(messages, item.name)
- _putMessage(messages, item.description)
+ messages.add(item.name)
+ messages.add(item.description)
- def _walkRNA(bl_rna, messages):
+ def walkRNA(bl_rna):
if bl_rna.name and bl_rna.name != bl_rna.identifier:
- _putMessage(messages, bl_rna.name)
+ messages.add(bl_rna.name)
if bl_rna.description:
- _putMessage(messages, bl_rna.description)
+ messages.add(bl_rna.description)
- _walkProperties(bl_rna.properties, messages)
+ walkProperties(bl_rna.properties)
- def _walkClass(cls, messages):
- _walkRNA(cls.bl_rna, messages)
+ def walkClass(cls):
+ walkRNA(cls.bl_rna)
- def _walk_keymap_hierarchy(hier, messages):
+ def walk_keymap_hierarchy(hier):
for lvl in hier:
- _putMessage(messages, lvl[0])
+ messages.add(lvl[0])
if lvl[3]:
- _walk_keymap_hierarchy(lvl[3], messages)
+ walk_keymap_hierarchy(lvl[3])
# -------------------------------------------------------------------------
# Dump Messages
- messages = {}
-
for cls in type(bpy.context).__base__.__subclasses__():
- _walkClass(cls, messages)
+ walkClass(cls)
for cls in bpy.types.Space.__subclasses__():
- _walkClass(cls, messages)
+ walkClass(cls)
for cls in bpy.types.Operator.__subclasses__():
- _walkClass(cls, messages)
+ walkClass(cls)
from bl_ui.space_userpref_keymap import KM_HIERARCHY
- _walk_keymap_hierarchy(KM_HIERARCHY, messages)
+ walk_keymap_hierarchy(KM_HIERARCHY)
- message_file = open(FILE_NAME_MESSAGES, 'w')
- message_file.writelines("\n".join(messages))
- message_file.close()
- print("Written %d messages to: %r" % (len(messages), FILE_NAME_MESSAGES))
- # XXX. what is this supposed to do, we wrote the file already???
- _walkClass(bpy.types.SpaceDopeSheetEditor, messages)
+ ## XXX. what is this supposed to do, we wrote the file already???
+ #_walkClass(bpy.types.SpaceDopeSheetEditor)
+
+
+def dump_messages_pytext(messages):
+ """ dumps text inlined in the python user interface: eg.
+
+ layout.prop("someprop", text="My Name")
+ """
+ import ast
+
+ # -------------------------------------------------------------------------
+ # Gather function names
+
+ import bpy
+ # key: func_id
+ # val: [(arg_kw, arg_pos), (arg_kw, arg_pos), ...]
+ func_translate_args = {}
+
+ # so far only 'text' keywords, but we may want others translated later
+ translate_kw = ("text", )
+
+ for func_id, func in bpy.types.UILayout.bl_rna.functions.items():
+ # check it has a 'text' argument
+ for (arg_pos, (arg_kw, arg)) in enumerate(func.parameters.items()):
+ if ((arg_kw in translate_kw) and
+ (arg.is_output == False) and
+ (arg.type == 'STRING')):
+
+ func_translate_args.setdefault(func_id, []).append((arg_kw,
+ arg_pos))
+ # print(func_translate_args)
+
+ # -------------------------------------------------------------------------
+ # Function definitions
+
+ def extract_strings(fp, node_container):
+ """ Recursively get strings, needed incase we have "Blah" + "Blah",
+ passed as an argument in that case it wont evaluate to a string.
+ """
+ for node in ast.walk(node_container):
+ if type(node) == ast.Str:
+ eval_str = ast.literal_eval(node)
+ if eval_str:
+ # print("%s:%d: %s" % (fp, node.lineno, eval_str)) # testing
+ messages.add(eval_str)
+
+ def extract_strings_from_file(fn):
+ filedata = open(fn, 'r', encoding="utf8")
+ root_node = ast.parse(filedata.read(), fn, 'exec')
+ filedata.close()
+
+ for node in ast.walk(root_node):
+ if type(node) == ast.Call:
+ # print("found function at")
+ # print("%s:%d" % (fn, node.lineno))
+
+ # lambda's
+ if type(node.func) == ast.Name:
+ continue
+
+ # getattr(self, con.type)(context, box, con)
+ if not hasattr(node.func, "attr"):
+ continue
+
+ translate_args = func_translate_args.get(node.func.attr, ())
+
+ # do nothing if not found
+ for arg_kw, arg_pos in translate_args:
+ if arg_pos < len(node.args):
+ extract_strings(fn, node.args[arg_pos])
+ else:
+ for kw in node.keywords:
+ if kw.arg == arg_kw:
+ extract_strings(fn, kw.value)
+
+ # -------------------------------------------------------------------------
+ # Dump Messages
+
+ mod_dir = os.path.join(SOURCE_DIR, "release", "scripts", "startup", "bl_ui")
+
+ files = [os.path.join(mod_dir, f)
+ for f in os.listdir(mod_dir)
+ if not f.startswith("_")
+ if f.endswith("py")
+ ]
+
+ for fn in files:
+ extract_strings_from_file(fn)
+
- return {'FINISHED'}
+def dump_messages():
+ messages = {""}
+
+ # get strings from RNA
+ dump_messages_rna(messages)
+
+ # get strings from UI layout definitions text="..." args
+ dump_messages_pytext(messages)
+
+ messages.remove("")
+
+ message_file = open(FILE_NAME_MESSAGES, 'w', encoding="utf8")
+ message_file.writelines("\n".join(sorted(messages)))
+ message_file.close()
+
+ print("Written %d messages to: %r" % (len(messages), FILE_NAME_MESSAGES))
def main():
diff --git a/po/update_po.py b/po/update_po.py
index d01d6a31613..bbdf7224908 100755
--- a/po/update_po.py
+++ b/po/update_po.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
-# $Id:
+# $Id$
# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
diff --git a/po/update_pot.py b/po/update_pot.py
index b34b75f9740..6c1d473b7f8 100755
--- a/po/update_pot.py
+++ b/po/update_pot.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
-# $Id:
+# $Id$
# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
diff --git a/release/bin/.blender/fonts/droidsans.ttf.gz b/release/bin/.blender/fonts/droidsans.ttf.gz
index e83aff4e899..82b413bcdd0 100644
--- a/release/bin/.blender/fonts/droidsans.ttf.gz
+++ b/release/bin/.blender/fonts/droidsans.ttf.gz
Binary files differ
diff --git a/release/irix-6.2-mips/extra/blender.icon b/release/irix-6.2-mips/extra/blender.icon
deleted file mode 100644
index 32b8bc3b94a..00000000000
--- a/release/irix-6.2-mips/extra/blender.icon
+++ /dev/null
Binary files differ
diff --git a/release/irix-6.2-mips/specific.sh b/release/irix-6.2-mips/specific.sh
deleted file mode 100755
index 87fc2349e2e..00000000000
--- a/release/irix-6.2-mips/specific.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/sh
-#
-# $Id$
-#
-# ***** BEGIN GPL LICENSE BLOCK *****
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# OS specific stuff for the package, only to be executed by ../Makefile
-#
-
-# Add icon to package
-cp -f extra/blender.icon $DISTDIR/
diff --git a/release/scripts/modules/addon_utils.py b/release/scripts/modules/addon_utils.py
index 0c5ef69e805..ef9a4615ff2 100644
--- a/release/scripts/modules/addon_utils.py
+++ b/release/scripts/modules/addon_utils.py
@@ -33,6 +33,7 @@ import bpy as _bpy
error_duplicates = False
error_encoding = False
+addons_fake_modules = {}
def paths():
diff --git a/release/scripts/modules/animsys_refactor.py b/release/scripts/modules/animsys_refactor.py
index 5336a8b2b35..88097ed3d28 100644
--- a/release/scripts/modules/animsys_refactor.py
+++ b/release/scripts/modules/animsys_refactor.py
@@ -215,6 +215,674 @@ def update_data_paths(rna_update):
print("fcurve (%s): %s -> %s" % (id_data.name, data_path, data_path_new))
+# we could have this data in its own file but no point really
+data_2_56_to_2_59 = (
+ ("ClothCollisionSettings", "min_distance", "distance_min"),
+ ("ClothCollisionSettings", "self_min_distance", "self_distance_min"),
+ ("ClothCollisionSettings", "enable_collision", "use_collision"),
+ ("ClothCollisionSettings", "enable_self_collision", "use_self_collision"),
+ ("ClothSettings", "pin_cloth", "use_pin_cloth"),
+ ("ClothSettings", "stiffness_scaling", "use_stiffness_scale"),
+ ("CollisionSettings", "random_damping", "damping_random"),
+ ("CollisionSettings", "random_friction", "friction_random"),
+ ("CollisionSettings", "inner_thickness", "thickness_inner"),
+ ("CollisionSettings", "outer_thickness", "thickness_outer"),
+ ("CollisionSettings", "kill_particles", "use_particle_kill"),
+ ("Constraint", "proxy_local", "is_proxy_local"),
+ ("ActionConstraint", "maximum", "max"),
+ ("ActionConstraint", "minimum", "min"),
+ ("FollowPathConstraint", "use_fixed_position", "use_fixed_location"),
+ ("KinematicConstraint", "chain_length", "chain_count"),
+ ("KinematicConstraint", "pos_lock_x", "lock_location_x"),
+ ("KinematicConstraint", "pos_lock_y", "lock_location_y"),
+ ("KinematicConstraint", "pos_lock_z", "lock_location_z"),
+ ("KinematicConstraint", "rot_lock_x", "lock_rotation_x"),
+ ("KinematicConstraint", "rot_lock_y", "lock_rotation_y"),
+ ("KinematicConstraint", "rot_lock_z", "lock_rotation_z"),
+ ("KinematicConstraint", "axis_reference", "reference_axis"),
+ ("KinematicConstraint", "use_position", "use_location"),
+ ("LimitLocationConstraint", "maximum_x", "max_x"),
+ ("LimitLocationConstraint", "maximum_y", "max_y"),
+ ("LimitLocationConstraint", "maximum_z", "max_z"),
+ ("LimitLocationConstraint", "minimum_x", "min_x"),
+ ("LimitLocationConstraint", "minimum_y", "min_y"),
+ ("LimitLocationConstraint", "minimum_z", "min_z"),
+ ("LimitLocationConstraint", "use_maximum_x", "use_max_x"),
+ ("LimitLocationConstraint", "use_maximum_y", "use_max_y"),
+ ("LimitLocationConstraint", "use_maximum_z", "use_max_z"),
+ ("LimitLocationConstraint", "use_minimum_x", "use_min_x"),
+ ("LimitLocationConstraint", "use_minimum_y", "use_min_y"),
+ ("LimitLocationConstraint", "use_minimum_z", "use_min_z"),
+ ("LimitLocationConstraint", "limit_transform", "use_transform_limit"),
+ ("LimitRotationConstraint", "maximum_x", "max_x"),
+ ("LimitRotationConstraint", "maximum_y", "max_y"),
+ ("LimitRotationConstraint", "maximum_z", "max_z"),
+ ("LimitRotationConstraint", "minimum_x", "min_x"),
+ ("LimitRotationConstraint", "minimum_y", "min_y"),
+ ("LimitRotationConstraint", "minimum_z", "min_z"),
+ ("LimitRotationConstraint", "limit_transform", "use_transform_limit"),
+ ("LimitScaleConstraint", "maximum_x", "max_x"),
+ ("LimitScaleConstraint", "maximum_y", "max_y"),
+ ("LimitScaleConstraint", "maximum_z", "max_z"),
+ ("LimitScaleConstraint", "minimum_x", "min_x"),
+ ("LimitScaleConstraint", "minimum_y", "min_y"),
+ ("LimitScaleConstraint", "minimum_z", "min_z"),
+ ("LimitScaleConstraint", "use_maximum_x", "use_max_x"),
+ ("LimitScaleConstraint", "use_maximum_y", "use_max_y"),
+ ("LimitScaleConstraint", "use_maximum_z", "use_max_z"),
+ ("LimitScaleConstraint", "use_minimum_x", "use_min_x"),
+ ("LimitScaleConstraint", "use_minimum_y", "use_min_y"),
+ ("LimitScaleConstraint", "use_minimum_z", "use_min_z"),
+ ("LimitScaleConstraint", "limit_transform", "use_transform_limit"),
+ ("PivotConstraint", "enabled_rotation_range", "rotation_range"),
+ ("PivotConstraint", "use_relative_position", "use_relative_location"),
+ ("PythonConstraint", "number_of_targets", "target_count"),
+ ("SplineIKConstraint", "chain_length", "chain_count"),
+ ("SplineIKConstraint", "chain_offset", "use_chain_offset"),
+ ("SplineIKConstraint", "even_divisions", "use_even_divisions"),
+ ("SplineIKConstraint", "y_stretch", "use_y_stretch"),
+ ("SplineIKConstraint", "xz_scaling_mode", "xz_scale_mode"),
+ ("StretchToConstraint", "original_length", "rest_length"),
+ ("TrackToConstraint", "target_z", "use_target_z"),
+ ("TransformConstraint", "extrapolate_motion", "use_motion_extrapolate"),
+ ("FieldSettings", "do_location", "apply_to_location"),
+ ("FieldSettings", "do_rotation", "apply_to_rotation"),
+ ("FieldSettings", "maximum_distance", "distance_max"),
+ ("FieldSettings", "minimum_distance", "distance_min"),
+ ("FieldSettings", "radial_maximum", "radial_max"),
+ ("FieldSettings", "radial_minimum", "radial_min"),
+ ("FieldSettings", "force_2d", "use_2d_force"),
+ ("FieldSettings", "do_absorption", "use_absorption"),
+ ("FieldSettings", "global_coordinates", "use_global_coords"),
+ ("FieldSettings", "guide_path_add", "use_guide_path_add"),
+ ("FieldSettings", "multiple_springs", "use_multiple_springs"),
+ ("FieldSettings", "use_coordinates", "use_object_coords"),
+ ("FieldSettings", "root_coordinates", "use_root_coords"),
+ ("ControlFluidSettings", "reverse_frames", "use_reverse_frames"),
+ ("DomainFluidSettings", "real_world_size", "simulation_scale"),
+ ("DomainFluidSettings", "surface_smoothing", "surface_smooth"),
+ ("DomainFluidSettings", "reverse_frames", "use_reverse_frames"),
+ ("DomainFluidSettings", "generate_speed_vectors", "use_speed_vectors"),
+ ("DomainFluidSettings", "override_time", "use_time_override"),
+ ("FluidFluidSettings", "export_animated_mesh", "use_animated_mesh"),
+ ("InflowFluidSettings", "export_animated_mesh", "use_animated_mesh"),
+ ("InflowFluidSettings", "local_coordinates", "use_local_coords"),
+ ("ObstacleFluidSettings", "export_animated_mesh", "use_animated_mesh"),
+ ("OutflowFluidSettings", "export_animated_mesh", "use_animated_mesh"),
+ ("ParticleFluidSettings", "drops", "use_drops"),
+ ("ParticleFluidSettings", "floats", "use_floats"),
+ ("Armature", "drawtype", "draw_type"),
+ ("Armature", "layer_protection", "layers_protected"),
+ ("Armature", "auto_ik", "use_auto_ik"),
+ ("Armature", "delay_deform", "use_deform_delay"),
+ ("Armature", "deform_envelope", "use_deform_envelopes"),
+ ("Armature", "deform_quaternion", "use_deform_preserve_volume"),
+ ("Armature", "deform_vertexgroups", "use_deform_vertex_groups"),
+ ("Armature", "x_axis_mirror", "use_mirror_x"),
+ ("Curve", "width", "offset"),
+ ("Image", "animation_speed", "fps"),
+ ("Image", "animation_end", "frame_end"),
+ ("Image", "animation_start", "frame_start"),
+ ("Image", "animated", "use_animation"),
+ ("Image", "clamp_x", "use_clamp_x"),
+ ("Image", "clamp_y", "use_clamp_y"),
+ ("Image", "premultiply", "use_premultiply"),
+ ("AreaLamp", "shadow_ray_sampling_method", "shadow_ray_sample_method"),
+ ("AreaLamp", "only_shadow", "use_only_shadow"),
+ ("AreaLamp", "shadow_layer", "use_shadow_layer"),
+ ("AreaLamp", "umbra", "use_umbra"),
+ ("PointLamp", "shadow_ray_sampling_method", "shadow_ray_sample_method"),
+ ("PointLamp", "only_shadow", "use_only_shadow"),
+ ("PointLamp", "shadow_layer", "use_shadow_layer"),
+ ("PointLamp", "sphere", "use_sphere"),
+ ("SpotLamp", "shadow_ray_sampling_method", "shadow_ray_sample_method"),
+ ("SpotLamp", "auto_clip_end", "use_auto_clip_end"),
+ ("SpotLamp", "auto_clip_start", "use_auto_clip_start"),
+ ("SpotLamp", "only_shadow", "use_only_shadow"),
+ ("SpotLamp", "shadow_layer", "use_shadow_layer"),
+ ("SpotLamp", "sphere", "use_sphere"),
+ ("SunLamp", "only_shadow", "use_only_shadow"),
+ ("SunLamp", "shadow_layer", "use_shadow_layer"),
+ ("Material", "z_offset", "offset_z"),
+ ("Material", "shadow_casting_alpha", "shadow_cast_alpha"),
+ ("Material", "cast_approximate", "use_cast_approximate"),
+ ("Material", "cast_buffer_shadows", "use_cast_buffer_shadows"),
+ ("Material", "cast_shadows_only", "use_cast_shadows_only"),
+ ("Material", "face_texture", "use_face_texture"),
+ ("Material", "face_texture_alpha", "use_face_texture_alpha"),
+ ("Material", "full_oversampling", "use_full_oversampling"),
+ ("Material", "light_group_exclusive", "use_light_group_exclusive"),
+ ("Material", "object_color", "use_object_color"),
+ ("Material", "only_shadow", "use_only_shadow"),
+ ("Material", "ray_shadow_bias", "use_ray_shadow_bias"),
+ ("Material", "traceable", "use_raytrace"),
+ ("Material", "shadeless", "use_shadeless"),
+ ("Material", "tangent_shading", "use_tangent_shading"),
+ ("Material", "transparency", "use_transparency"),
+ ("Material", "receive_transparent_shadows", "use_transparent_shadows"),
+ ("Material", "vertex_color_light", "use_vertex_color_light"),
+ ("Material", "vertex_color_paint", "use_vertex_color_paint"),
+ ("Mesh", "autosmooth_angle", "auto_smooth_angle"),
+ ("Mesh", "autosmooth", "use_auto_smooth"),
+ ("Object", "max_draw_type", "draw_type"),
+ ("Object", "use_dupli_verts_rotation", "use_dupli_vertices_rotation"),
+ ("Object", "shape_key_edit_mode", "use_shape_key_edit_mode"),
+ ("Object", "slow_parent", "use_slow_parent"),
+ ("Object", "time_offset_add_parent", "use_time_offset_add_parent"),
+ ("Object", "time_offset_edit", "use_time_offset_edit"),
+ ("Object", "time_offset_parent", "use_time_offset_parent"),
+ ("Object", "time_offset_particle", "use_time_offset_particle"),
+ ("ParticleSettings", "adaptive_pix", "adaptive_pixel"),
+ ("ParticleSettings", "child_effector", "apply_effector_to_children"),
+ ("ParticleSettings", "child_guide", "apply_guide_to_children"),
+ ("ParticleSettings", "billboard_split_offset", "billboard_offset_split"),
+ ("ParticleSettings", "billboard_random_tilt", "billboard_tilt_random"),
+ ("ParticleSettings", "child_length_thres", "child_length_threshold"),
+ ("ParticleSettings", "child_random_size", "child_size_random"),
+ ("ParticleSettings", "clumppow", "clump_shape"),
+ ("ParticleSettings", "damp_factor", "damping"),
+ ("ParticleSettings", "draw_as", "draw_method"),
+ ("ParticleSettings", "random_factor", "factor_random"),
+ ("ParticleSettings", "grid_invert", "invert_grid"),
+ ("ParticleSettings", "random_length", "length_random"),
+ ("ParticleSettings", "random_lifetime", "lifetime_random"),
+ ("ParticleSettings", "billboard_lock", "lock_billboard"),
+ ("ParticleSettings", "boids_2d", "lock_boids_to_surface"),
+ ("ParticleSettings", "object_aligned_factor", "object_align_factor"),
+ ("ParticleSettings", "random_phase_factor", "phase_factor_random"),
+ ("ParticleSettings", "ren_as", "render_type"),
+ ("ParticleSettings", "rendered_child_nbr", "rendered_child_count"),
+ ("ParticleSettings", "random_rotation_factor", "rotation_factor_random"),
+ ("ParticleSettings", "rough1", "roughness_1"),
+ ("ParticleSettings", "rough1_size", "roughness_1_size"),
+ ("ParticleSettings", "rough2", "roughness_2"),
+ ("ParticleSettings", "rough2_size", "roughness_2_size"),
+ ("ParticleSettings", "rough2_thres", "roughness_2_threshold"),
+ ("ParticleSettings", "rough_end_shape", "roughness_end_shape"),
+ ("ParticleSettings", "rough_endpoint", "roughness_endpoint"),
+ ("ParticleSettings", "random_size", "size_random"),
+ ("ParticleSettings", "abs_path_time", "use_absolute_path_time"),
+ ("ParticleSettings", "animate_branching", "use_animate_branching"),
+ ("ParticleSettings", "branching", "use_branching"),
+ ("ParticleSettings", "died", "use_dead"),
+ ("ParticleSettings", "die_on_collision", "use_die_on_collision"),
+ ("ParticleSettings", "rotation_dynamic", "use_dynamic_rotation"),
+ ("ParticleSettings", "even_distribution", "use_even_distribution"),
+ ("ParticleSettings", "rand_group", "use_group_pick_random"),
+ ("ParticleSettings", "hair_bspline", "use_hair_bspline"),
+ ("ParticleSettings", "sizemass", "use_multiply_size_mass"),
+ ("ParticleSettings", "react_multiple", "use_react_multiple"),
+ ("ParticleSettings", "react_start_end", "use_react_start_end"),
+ ("ParticleSettings", "render_adaptive", "use_render_adaptive"),
+ ("ParticleSettings", "self_effect", "use_self_effect"),
+ ("ParticleSettings", "enable_simplify", "use_simplify"),
+ ("ParticleSettings", "size_deflect", "use_size_deflect"),
+ ("ParticleSettings", "render_strand", "use_strand_primitive"),
+ ("ParticleSettings", "symmetric_branching", "use_symmetric_branching"),
+ ("ParticleSettings", "velocity_length", "use_velocity_length"),
+ ("ParticleSettings", "whole_group", "use_whole_group"),
+ ("CloudsTexture", "noise_size", "noise_scale"),
+ ("DistortedNoiseTexture", "noise_size", "noise_scale"),
+ ("EnvironmentMapTexture", "filter_size_minimum", "use_filter_size_min"),
+ ("EnvironmentMapTexture", "mipmap_gauss", "use_mipmap_gauss"),
+ ("ImageTexture", "calculate_alpha", "use_calculate_alpha"),
+ ("ImageTexture", "checker_even", "use_checker_even"),
+ ("ImageTexture", "checker_odd", "use_checker_odd"),
+ ("ImageTexture", "filter_size_minimum", "use_filter_size_min"),
+ ("ImageTexture", "flip_axis", "use_flip_axis"),
+ ("ImageTexture", "mipmap_gauss", "use_mipmap_gauss"),
+ ("ImageTexture", "mirror_x", "use_mirror_x"),
+ ("ImageTexture", "mirror_y", "use_mirror_y"),
+ ("ImageTexture", "normal_map", "use_normal_map"),
+ ("MarbleTexture", "noise_size", "noise_scale"),
+ ("MarbleTexture", "noisebasis2", "noise_basis_2"),
+ ("MarbleTexture", "noisebasis_2", "noise_basis_2"),
+ ("MusgraveTexture", "highest_dimension", "dimension_max"),
+ ("MusgraveTexture", "noise_size", "noise_scale"),
+ ("StucciTexture", "noise_size", "noise_scale"),
+ ("VoronoiTexture", "coloring", "color_mode"),
+ ("VoronoiTexture", "noise_size", "noise_scale"),
+ ("WoodTexture", "noise_size", "noise_scale"),
+ ("WoodTexture", "noisebasis2", "noise_basis_2"),
+ ("WoodTexture", "noisebasis_2", "noise_basis_2"),
+ ("World", "blend_sky", "use_sky_blend"),
+ ("World", "paper_sky", "use_sky_paper"),
+ ("World", "real_sky", "use_sky_real"),
+ ("ImageUser", "auto_refresh", "use_auto_refresh"),
+ ("MaterialHalo", "flares_sub", "flare_subflare_count"),
+ ("MaterialHalo", "flare_subsize", "flare_subflare_size"),
+ ("MaterialHalo", "line_number", "line_count"),
+ ("MaterialHalo", "rings", "ring_count"),
+ ("MaterialHalo", "star_tips", "star_tip_count"),
+ ("MaterialHalo", "xalpha", "use_extreme_alpha"),
+ ("MaterialHalo", "flare_mode", "use_flare_mode"),
+ ("MaterialHalo", "vertex_normal", "use_vertex_normal"),
+ ("MaterialPhysics", "align_to_normal", "use_normal_align"),
+ ("MaterialStrand", "min_size", "size_min"),
+ ("MaterialStrand", "blender_units", "use_blender_units"),
+ ("MaterialStrand", "surface_diffuse", "use_surface_diffuse"),
+ ("MaterialStrand", "tangent_shading", "use_tangent_shading"),
+ ("MaterialSubsurfaceScattering", "error_tolerance", "error_threshold"),
+ ("MaterialVolume", "depth_cutoff", "depth_threshold"),
+ ("MaterialVolume", "lighting_mode", "light_method"),
+ ("MaterialVolume", "step_calculation", "step_method"),
+ ("MaterialVolume", "external_shadows", "use_external_shadows"),
+ ("MaterialVolume", "light_cache", "use_light_cache"),
+ ("ArmatureModifier", "multi_modifier", "use_multi_modifier"),
+ ("ArrayModifier", "constant_offset_displacement", "constant_offset_displace"),
+ ("ArrayModifier", "merge_distance", "merge_threshold"),
+ ("ArrayModifier", "relative_offset_displacement", "relative_offset_displace"),
+ ("ArrayModifier", "constant_offset", "use_constant_offset"),
+ ("ArrayModifier", "merge_adjacent_vertices", "use_merge_vertices"),
+ ("ArrayModifier", "merge_end_vertices", "use_merge_vertices_cap"),
+ ("ArrayModifier", "add_offset_object", "use_object_offset"),
+ ("ArrayModifier", "relative_offset", "use_relative_offset"),
+ ("BevelModifier", "only_vertices", "use_only_vertices"),
+ ("CastModifier", "from_radius", "use_radius_as_size"),
+ ("DisplaceModifier", "midlevel", "mid_level"),
+ ("DisplaceModifier", "texture_coordinates", "texture_coords"),
+ ("EdgeSplitModifier", "use_sharp", "use_edge_sharp"),
+ ("ExplodeModifier", "split_edges", "use_edge_split"),
+ ("MirrorModifier", "merge_limit", "merge_threshold"),
+ ("MirrorModifier", "mirror_u", "use_mirror_u"),
+ ("MirrorModifier", "mirror_v", "use_mirror_v"),
+ ("MirrorModifier", "mirror_vertex_groups", "use_mirror_vertex_groups"),
+ ("ParticleInstanceModifier", "particle_system_number", "particle_system_index"),
+ ("ParticleInstanceModifier", "keep_shape", "use_preserve_shape"),
+ ("ShrinkwrapModifier", "cull_back_faces", "use_cull_back_faces"),
+ ("ShrinkwrapModifier", "cull_front_faces", "use_cull_front_faces"),
+ ("ShrinkwrapModifier", "keep_above_surface", "use_keep_above_surface"),
+ ("SimpleDeformModifier", "lock_x_axis", "lock_x"),
+ ("SimpleDeformModifier", "lock_y_axis", "lock_y"),
+ ("SmokeModifier", "smoke_type", "type"),
+ ("SubsurfModifier", "subsurf_uv", "use_subsurf_uv"),
+ ("UVProjectModifier", "num_projectors", "projector_count"),
+ ("UVProjectModifier", "override_image", "use_image_override"),
+ ("WaveModifier", "texture_coordinates", "texture_coords"),
+ ("WaveModifier", "x_normal", "use_normal_x"),
+ ("WaveModifier", "y_normal", "use_normal_y"),
+ ("WaveModifier", "z_normal", "use_normal_z"),
+ ("NlaStrip", "blending", "blend_type"),
+ ("NlaStrip", "animated_influence", "use_animated_influence"),
+ ("NlaStrip", "animated_time", "use_animated_time"),
+ ("NlaStrip", "animated_time_cyclic", "use_animated_time_cyclic"),
+ ("NlaStrip", "auto_blending", "use_auto_blend"),
+ ("CompositorNodeAlphaOver", "convert_premul", "use_premultiply"),
+ ("CompositorNodeBlur", "sizex", "size_x"),
+ ("CompositorNodeBlur", "sizey", "size_y"),
+ ("CompositorNodeChannelMatte", "algorithm", "limit_method"),
+ ("CompositorNodeChromaMatte", "acceptance", "tolerance"),
+ ("CompositorNodeColorBalance", "correction_formula", "correction_method"),
+ ("CompositorNodeColorSpill", "algorithm", "limit_method"),
+ ("CompositorNodeColorSpill", "unspill", "use_unspill"),
+ ("CompositorNodeCrop", "x2", "max_x"),
+ ("CompositorNodeCrop", "y2", "max_y"),
+ ("CompositorNodeCrop", "x1", "min_x"),
+ ("CompositorNodeCrop", "y1", "min_y"),
+ ("CompositorNodeCrop", "crop_size", "use_crop_size"),
+ ("CompositorNodeDefocus", "max_blur", "blur_max"),
+ ("CompositorNodeDefocus", "gamma_correction", "use_gamma_correction"),
+ ("CompositorNodeGlare", "rotate_45", "use_rotate_45"),
+ ("CompositorNodeImage", "auto_refresh", "use_auto_refresh"),
+ ("CompositorNodeLensdist", "projector", "use_projector"),
+ ("CompositorNodeVecBlur", "max_speed", "speed_max"),
+ ("CompositorNodeVecBlur", "min_speed", "speed_min"),
+ ("ShaderNodeMapping", "maximum", "max"),
+ ("ShaderNodeMapping", "minimum", "min"),
+ ("ShaderNodeMapping", "clamp_maximum", "use_max"),
+ ("ShaderNodeMapping", "clamp_minimum", "use_min"),
+ ("VertexPaint", "all_faces", "use_all_faces"),
+ ("VertexPaint", "spray", "use_spray"),
+ ("ParticleEdit", "add_keys", "default_key_count"),
+ ("ParticleEdit", "selection_mode", "select_mode"),
+ ("ParticleEdit", "auto_velocity", "use_auto_velocity"),
+ ("ParticleEdit", "add_interpolate", "use_default_interpolate"),
+ ("ParticleEdit", "emitter_deflect", "use_emitter_deflect"),
+ ("ParticleEdit", "fade_time", "use_fade_time"),
+ ("ParticleEdit", "keep_lengths", "use_preserve_length"),
+ ("ParticleEdit", "keep_root", "use_preserve_root"),
+ ("ParticleSystem", "vertex_group_clump_negate", "invert_vertex_group_clump"),
+ ("ParticleSystem", "vertex_group_density_negate", "invert_vertex_group_density"),
+ ("ParticleSystem", "vertex_group_field_negate", "invert_vertex_group_field"),
+ ("ParticleSystem", "vertex_group_kink_negate", "invert_vertex_group_kink"),
+ ("ParticleSystem", "vertex_group_length_negate", "invert_vertex_group_length"),
+ ("ParticleSystem", "vertex_group_rotation_negate", "invert_vertex_group_rotation"),
+ ("ParticleSystem", "vertex_group_roughness1_negate", "invert_vertex_group_roughness_1"),
+ ("ParticleSystem", "vertex_group_roughness2_negate", "invert_vertex_group_roughness_2"),
+ ("ParticleSystem", "vertex_group_roughness_end_negate", "invert_vertex_group_roughness_end"),
+ ("ParticleSystem", "vertex_group_size_negate", "invert_vertex_group_size"),
+ ("ParticleSystem", "vertex_group_tangent_negate", "invert_vertex_group_tangent"),
+ ("ParticleSystem", "vertex_group_velocity_negate", "invert_vertex_group_velocity"),
+ ("ParticleSystem", "hair_dynamics", "use_hair_dynamics"),
+ ("ParticleSystem", "keyed_timing", "use_keyed_timing"),
+ ("PointDensity", "falloff_softness", "falloff_soft"),
+ ("PointDensity", "particle_cache", "particle_cache_space"),
+ ("PointDensity", "turbulence_size", "turbulence_scale"),
+ ("PointDensity", "turbulence", "use_turbulence"),
+ ("PointDensity", "vertices_cache", "vertex_cache_space"),
+ ("PoseBone", "ik_lin_weight", "ik_linear_weight"),
+ ("PoseBone", "ik_rot_weight", "ik_rotation_weight"),
+ ("PoseBone", "ik_limit_x", "use_ik_limit_x"),
+ ("PoseBone", "ik_limit_y", "use_ik_limit_y"),
+ ("PoseBone", "ik_limit_z", "use_ik_limit_z"),
+ ("PoseBone", "ik_lin_control", "use_ik_linear_control"),
+ ("PoseBone", "ik_rot_control", "use_ik_rotation_control"),
+ ("Bone", "use_hinge", "use_inherit_rotation"),
+ ("SPHFluidSettings", "spring_k", "spring_force"),
+ ("SPHFluidSettings", "stiffness_k", "stiffness"),
+ ("SPHFluidSettings", "stiffness_knear", "stiffness_near"),
+ ("SceneGameData", "framing_color", "frame_color"),
+ ("SceneGameData", "framing_type", "frame_type"),
+ ("SceneGameData", "eye_separation", "stereo_eye_separation"),
+ ("SceneGameData", "activity_culling", "use_activity_culling"),
+ ("SceneGameData", "auto_start", "use_auto_start"),
+ ("SceneGameData", "glsl_extra_textures", "use_glsl_extra_textures"),
+ ("SceneGameData", "glsl_lights", "use_glsl_lights"),
+ ("SceneGameData", "glsl_nodes", "use_glsl_nodes"),
+ ("SceneGameData", "glsl_ramps", "use_glsl_ramps"),
+ ("SceneGameData", "glsl_shaders", "use_glsl_shaders"),
+ ("SceneGameData", "glsl_shadows", "use_glsl_shadows"),
+ ("Sequence", "blend_opacity", "blend_alpha"),
+ ("Sequence", "blend_mode", "blend_type"),
+ ("Sequence", "frame_final_length", "frame_final_duration"),
+ ("Sequence", "use_effect_default_fade", "use_default_fade"),
+ ("SequenceColorBalance", "inverse_gain", "invert_gain"),
+ ("SequenceColorBalance", "inverse_gamma", "invert_gamma"),
+ ("SequenceColorBalance", "inverse_lift", "invert_lift"),
+ ("EffectSequence", "multiply_colors", "color_multiply"),
+ ("EffectSequence", "de_interlace", "use_deinterlace"),
+ ("EffectSequence", "flip_x", "use_flip_x"),
+ ("EffectSequence", "flip_y", "use_flip_y"),
+ ("EffectSequence", "convert_float", "use_float"),
+ ("EffectSequence", "premultiply", "use_premultiply"),
+ ("EffectSequence", "proxy_custom_directory", "use_proxy_custom_directory"),
+ ("EffectSequence", "proxy_custom_file", "use_proxy_custom_file"),
+ ("EffectSequence", "reverse_frames", "use_reverse_frames"),
+ ("GlowSequence", "blur_distance", "blur_radius"),
+ ("GlowSequence", "only_boost", "use_only_boost"),
+ ("SpeedControlSequence", "curve_compress_y", "use_curve_compress_y"),
+ ("SpeedControlSequence", "curve_velocity", "use_curve_velocity"),
+ ("SpeedControlSequence", "frame_blending", "use_frame_blend"),
+ ("TransformSequence", "uniform_scale", "use_uniform_scale"),
+ ("ImageSequence", "animation_end_offset", "animation_offset_end"),
+ ("ImageSequence", "animation_start_offset", "animation_offset_start"),
+ ("ImageSequence", "multiply_colors", "color_multiply"),
+ ("ImageSequence", "de_interlace", "use_deinterlace"),
+ ("ImageSequence", "flip_x", "use_flip_x"),
+ ("ImageSequence", "flip_y", "use_flip_y"),
+ ("ImageSequence", "convert_float", "use_float"),
+ ("ImageSequence", "premultiply", "use_premultiply"),
+ ("ImageSequence", "proxy_custom_directory", "use_proxy_custom_directory"),
+ ("ImageSequence", "proxy_custom_file", "use_proxy_custom_file"),
+ ("ImageSequence", "reverse_frames", "use_reverse_frames"),
+ ("MetaSequence", "animation_end_offset", "animation_offset_end"),
+ ("MetaSequence", "animation_start_offset", "animation_offset_start"),
+ ("MetaSequence", "multiply_colors", "color_multiply"),
+ ("MetaSequence", "de_interlace", "use_deinterlace"),
+ ("MetaSequence", "flip_x", "use_flip_x"),
+ ("MetaSequence", "flip_y", "use_flip_y"),
+ ("MetaSequence", "convert_float", "use_float"),
+ ("MetaSequence", "premultiply", "use_premultiply"),
+ ("MetaSequence", "proxy_custom_directory", "use_proxy_custom_directory"),
+ ("MetaSequence", "proxy_custom_file", "use_proxy_custom_file"),
+ ("MetaSequence", "reverse_frames", "use_reverse_frames"),
+ ("MovieSequence", "animation_end_offset", "animation_offset_end"),
+ ("MovieSequence", "animation_start_offset", "animation_offset_start"),
+ ("MovieSequence", "multiply_colors", "color_multiply"),
+ ("MovieSequence", "de_interlace", "use_deinterlace"),
+ ("MovieSequence", "flip_x", "use_flip_x"),
+ ("MovieSequence", "flip_y", "use_flip_y"),
+ ("MovieSequence", "convert_float", "use_float"),
+ ("MovieSequence", "premultiply", "use_premultiply"),
+ ("MovieSequence", "proxy_custom_directory", "use_proxy_custom_directory"),
+ ("MovieSequence", "proxy_custom_file", "use_proxy_custom_file"),
+ ("MovieSequence", "reverse_frames", "use_reverse_frames"),
+ ("MulticamSequence", "animation_end_offset", "animation_offset_end"),
+ ("MulticamSequence", "animation_start_offset", "animation_offset_start"),
+ ("MulticamSequence", "multiply_colors", "color_multiply"),
+ ("MulticamSequence", "de_interlace", "use_deinterlace"),
+ ("MulticamSequence", "flip_x", "use_flip_x"),
+ ("MulticamSequence", "flip_y", "use_flip_y"),
+ ("MulticamSequence", "convert_float", "use_float"),
+ ("MulticamSequence", "premultiply", "use_premultiply"),
+ ("MulticamSequence", "proxy_custom_directory", "use_proxy_custom_directory"),
+ ("MulticamSequence", "proxy_custom_file", "use_proxy_custom_file"),
+ ("MulticamSequence", "reverse_frames", "use_reverse_frames"),
+ ("SceneSequence", "animation_end_offset", "animation_offset_end"),
+ ("SceneSequence", "animation_start_offset", "animation_offset_start"),
+ ("SceneSequence", "multiply_colors", "color_multiply"),
+ ("SceneSequence", "de_interlace", "use_deinterlace"),
+ ("SceneSequence", "flip_x", "use_flip_x"),
+ ("SceneSequence", "flip_y", "use_flip_y"),
+ ("SceneSequence", "convert_float", "use_float"),
+ ("SceneSequence", "premultiply", "use_premultiply"),
+ ("SceneSequence", "proxy_custom_directory", "use_proxy_custom_directory"),
+ ("SceneSequence", "proxy_custom_file", "use_proxy_custom_file"),
+ ("SceneSequence", "reverse_frames", "use_reverse_frames"),
+ ("SoundSequence", "animation_end_offset", "animation_offset_end"),
+ ("SoundSequence", "animation_start_offset", "animation_offset_start"),
+ ("SmokeDomainSettings", "smoke_domain_colli", "collision_extents"),
+ ("SmokeDomainSettings", "smoke_cache_high_comp", "point_cache_compress_high_type"),
+ ("SmokeDomainSettings", "smoke_cache_comp", "point_cache_compress_type"),
+ ("SmokeDomainSettings", "maxres", "resolution_max"),
+ ("SmokeDomainSettings", "smoothemitter", "smooth_emitter"),
+ ("SmokeDomainSettings", "dissolve_smoke", "use_dissolve_smoke"),
+ ("SmokeDomainSettings", "dissolve_smoke_log", "use_dissolve_smoke_log"),
+ ("SmokeDomainSettings", "highres", "use_high_resolution"),
+ ("SoftBodySettings", "bending", "bend"),
+ ("SoftBodySettings", "error_limit", "error_threshold"),
+ ("SoftBodySettings", "lcom", "location_mass_center"),
+ ("SoftBodySettings", "lrot", "rotation_estimate"),
+ ("SoftBodySettings", "lscale", "scale_estimate"),
+ ("SoftBodySettings", "maxstep", "step_max"),
+ ("SoftBodySettings", "minstep", "step_min"),
+ ("SoftBodySettings", "diagnose", "use_diagnose"),
+ ("SoftBodySettings", "edge_collision", "use_edge_collision"),
+ ("SoftBodySettings", "estimate_matrix", "use_estimate_matrix"),
+ ("SoftBodySettings", "face_collision", "use_face_collision"),
+ ("SoftBodySettings", "self_collision", "use_self_collision"),
+ ("SoftBodySettings", "stiff_quads", "use_stiff_quads"),
+ ("TexMapping", "maximum", "max"),
+ ("TexMapping", "minimum", "min"),
+ ("TexMapping", "has_maximum", "use_max"),
+ ("TexMapping", "has_minimum", "use_min"),
+ ("TextCharacterFormat", "bold", "use_bold"),
+ ("TextCharacterFormat", "italic", "use_italic"),
+ ("TextCharacterFormat", "underline", "use_underline"),
+ ("TextureSlot", "rgb_to_intensity", "use_rgb_to_intensity"),
+ ("TextureSlot", "stencil", "use_stencil"),
+ ("LampTextureSlot", "texture_coordinates", "texture_coords"),
+ ("LampTextureSlot", "map_color", "use_map_color"),
+ ("LampTextureSlot", "map_shadow", "use_map_shadow"),
+ ("MaterialTextureSlot", "coloremission_factor", "color_emission_factor"),
+ ("MaterialTextureSlot", "colordiff_factor", "diffuse_color_factor"),
+ ("MaterialTextureSlot", "x_mapping", "mapping_x"),
+ ("MaterialTextureSlot", "y_mapping", "mapping_y"),
+ ("MaterialTextureSlot", "z_mapping", "mapping_z"),
+ ("MaterialTextureSlot", "colorreflection_factor", "reflection_color_factor"),
+ ("MaterialTextureSlot", "colorspec_factor", "specular_color_factor"),
+ ("MaterialTextureSlot", "texture_coordinates", "texture_coords"),
+ ("MaterialTextureSlot", "colortransmission_factor", "transmission_color_factor"),
+ ("MaterialTextureSlot", "from_dupli", "use_from_dupli"),
+ ("MaterialTextureSlot", "from_original", "use_from_original"),
+ ("MaterialTextureSlot", "map_alpha", "use_map_alpha"),
+ ("MaterialTextureSlot", "map_ambient", "use_map_ambient"),
+ ("MaterialTextureSlot", "map_colordiff", "use_map_color_diff"),
+ ("MaterialTextureSlot", "map_coloremission", "use_map_color_emission"),
+ ("MaterialTextureSlot", "map_colorreflection", "use_map_color_reflection"),
+ ("MaterialTextureSlot", "map_colorspec", "use_map_color_spec"),
+ ("MaterialTextureSlot", "map_colortransmission", "use_map_color_transmission"),
+ ("MaterialTextureSlot", "map_density", "use_map_density"),
+ ("MaterialTextureSlot", "map_diffuse", "use_map_diffuse"),
+ ("MaterialTextureSlot", "map_displacement", "use_map_displacement"),
+ ("MaterialTextureSlot", "map_emission", "use_map_emission"),
+ ("MaterialTextureSlot", "map_emit", "use_map_emit"),
+ ("MaterialTextureSlot", "map_hardness", "use_map_hardness"),
+ ("MaterialTextureSlot", "map_mirror", "use_map_mirror"),
+ ("MaterialTextureSlot", "map_normal", "use_map_normal"),
+ ("MaterialTextureSlot", "map_raymir", "use_map_raymir"),
+ ("MaterialTextureSlot", "map_reflection", "use_map_reflect"),
+ ("MaterialTextureSlot", "map_scattering", "use_map_scatter"),
+ ("MaterialTextureSlot", "map_specular", "use_map_specular"),
+ ("MaterialTextureSlot", "map_translucency", "use_map_translucency"),
+ ("MaterialTextureSlot", "map_warp", "use_map_warp"),
+ ("WorldTextureSlot", "texture_coordinates", "texture_coords"),
+ ("WorldTextureSlot", "map_blend", "use_map_blend"),
+ ("WorldTextureSlot", "map_horizon", "use_map_horizon"),
+ ("WorldTextureSlot", "map_zenith_down", "use_map_zenith_down"),
+ ("WorldTextureSlot", "map_zenith_up", "use_map_zenith_up"),
+ ("VoxelData", "still_frame_number", "still_frame"),
+ ("WorldLighting", "ao_blend_mode", "ao_blend_type"),
+ ("WorldLighting", "error_tolerance", "error_threshold"),
+ ("WorldLighting", "use_ambient_occlusion", "use_ambient_occlusian"),
+ ("WorldLighting", "pixel_cache", "use_cache"),
+ ("WorldLighting", "use_environment_lighting", "use_environment_light"),
+ ("WorldLighting", "use_indirect_lighting", "use_indirect_light"),
+ ("WorldStarsSettings", "color_randomization", "color_random"),
+ ("WorldStarsSettings", "min_distance", "distance_min"),
+ ("WorldLighting", "falloff", "use_falloff"),
+ ("Constraint", "disabled", "is_valid"),
+ ("ClampToConstraint", "cyclic", "use_cyclic"),
+ ("ImageTexture", "filter", "filter_type"),
+ ("ImageTexture", "interpolation", "use_interpolation"),
+ ("ImageTexture", "mipmap", "use_mipmap"),
+ ("ImageUser", "frames", "frame_duration"),
+ ("ImageUser", "offset", "frame_offset"),
+ ("ImageUser", "cyclic", "use_cyclic"),
+ ("ArmatureModifier", "invert", "invert_vertex_group"),
+ ("ArmatureModifier", "quaternion", "use_deform_preserve_volume"),
+ ("ArrayModifier", "length", "fit_length"),
+ ("BevelModifier", "angle", "angle_limit"),
+ ("BuildModifier", "length", "frame_duration"),
+ ("BuildModifier", "randomize", "use_random_order"),
+ ("CastModifier", "x", "use_x"),
+ ("CastModifier", "y", "use_y"),
+ ("CastModifier", "z", "use_z"),
+ ("ExplodeModifier", "size", "use_size"),
+ ("MaskModifier", "invert", "invert_vertex_group"),
+ ("MeshDeformModifier", "invert", "invert_vertex_group"),
+ ("MeshDeformModifier", "dynamic", "use_dynamic_bind"),
+ ("MirrorModifier", "clip", "use_clip"),
+ ("MirrorModifier", "x", "use_x"),
+ ("MirrorModifier", "y", "use_y"),
+ ("MirrorModifier", "z", "use_z"),
+ ("ParticleInstanceModifier", "children", "use_children"),
+ ("ParticleInstanceModifier", "normal", "use_normal"),
+ ("ParticleInstanceModifier", "size", "use_size"),
+ ("ShrinkwrapModifier", "negative", "use_negative_direction"),
+ ("ShrinkwrapModifier", "positive", "use_positive_direction"),
+ ("ShrinkwrapModifier", "x", "use_project_x"),
+ ("ShrinkwrapModifier", "y", "use_project_y"),
+ ("ShrinkwrapModifier", "z", "use_project_z"),
+ ("ShrinkwrapModifier", "mode", "wrap_method"),
+ ("SimpleDeformModifier", "mode", "deform_method"),
+ ("SimpleDeformModifier", "relative", "use_relative"),
+ ("SmoothModifier", "repeat", "iterations"),
+ ("SmoothModifier", "x", "use_x"),
+ ("SmoothModifier", "y", "use_y"),
+ ("SmoothModifier", "z", "use_z"),
+ ("SolidifyModifier", "invert", "invert_vertex_group"),
+ ("WaveModifier", "cyclic", "use_cyclic"),
+ ("WaveModifier", "normals", "use_normal"),
+ ("WaveModifier", "x", "use_x"),
+ ("WaveModifier", "y", "use_y"),
+ ("DampedTrackConstraint", "track", "track_axis"),
+ ("FloorConstraint", "sticky", "use_sticky"),
+ ("FollowPathConstraint", "forward", "forward_axis"),
+ ("FollowPathConstraint", "up", "up_axis"),
+ ("LockedTrackConstraint", "lock", "lock_axis"),
+ ("LockedTrackConstraint", "track", "track_axis"),
+ ("MaintainVolumeConstraint", "axis", "free_axis"),
+ ("TrackToConstraint", "track", "track_axis"),
+ ("TrackToConstraint", "up", "up_axis"),
+ ("GameProperty", "debug", "show_debug"),
+ ("Image", "tiles", "use_tiles"),
+ ("Lamp", "diffuse", "use_diffuse"),
+ ("Lamp", "negative", "use_negative"),
+ ("Lamp", "layer", "use_own_layer"),
+ ("Lamp", "specular", "use_specular"),
+ ("AreaLamp", "dither", "use_dither"),
+ ("AreaLamp", "jitter", "use_jitter"),
+ ("SpotLamp", "square", "use_square"),
+ ("Material", "cubic", "use_cubic"),
+ ("Material", "shadows", "use_shadows"),
+ ("ParticleSettings", "amount", "count"),
+ ("ParticleSettings", "display", "draw_percentage"),
+ ("ParticleSettings", "velocity", "show_velocity"),
+ ("ParticleSettings", "trand", "use_emit_random"),
+ ("ParticleSettings", "parent", "use_parent_particles"),
+ ("ParticleSettings", "emitter", "use_render_emitter"),
+ ("ParticleSettings", "viewport", "use_simplify_viewport"),
+ ("Texture", "brightness", "intensity"),
+ ("CloudsTexture", "stype", "cloud_type"),
+ ("EnvironmentMapTexture", "filter", "filter_type"),
+ ("EnvironmentMapTexture", "mipmap", "use_mipmap"),
+ ("MarbleTexture", "stype", "marble_type"),
+ ("StucciTexture", "stype", "stucci_type"),
+ ("WoodTexture", "stype", "wood_type"),
+ ("World", "range", "color_range"),
+ ("World", "lighting", "light_settings"),
+ ("World", "mist", "mist_settings"),
+ ("World", "stars", "star_settings"),
+ ("MaterialHalo", "lines", "use_lines"),
+ ("MaterialHalo", "ring", "use_ring"),
+ ("MaterialHalo", "soft", "use_soft"),
+ ("MaterialHalo", "star", "use_star"),
+ ("MaterialHalo", "texture", "use_texture"),
+ ("MaterialPhysics", "damp", "damping"),
+ ("MaterialRaytraceTransparency", "limit", "depth_max"),
+ ("NlaStrip", "reversed", "use_reverse"),
+ ("CompositorNodeBlur", "bokeh", "use_bokeh"),
+ ("CompositorNodeBlur", "gamma", "use_gamma_correction"),
+ ("CompositorNodeBlur", "relative", "use_relative"),
+ ("CompositorNodeChannelMatte", "high", "limit_max"),
+ ("CompositorNodeChannelMatte", "low", "limit_min"),
+ ("CompositorNodeChannelMatte", "channel", "matte_channel"),
+ ("CompositorNodeChromaMatte", "cutoff", "threshold"),
+ ("CompositorNodeColorMatte", "h", "color_hue"),
+ ("CompositorNodeColorMatte", "s", "color_saturation"),
+ ("CompositorNodeColorMatte", "v", "color_value"),
+ ("CompositorNodeDBlur", "wrap", "use_wrap"),
+ ("CompositorNodeDefocus", "preview", "use_preview"),
+ ("CompositorNodeHueSat", "hue", "color_hue"),
+ ("CompositorNodeHueSat", "sat", "color_saturation"),
+ ("CompositorNodeHueSat", "val", "color_value"),
+ ("CompositorNodeImage", "frames", "frame_duration"),
+ ("CompositorNodeImage", "offset", "frame_offset"),
+ ("CompositorNodeImage", "start", "frame_start"),
+ ("CompositorNodeImage", "cyclic", "use_cyclic"),
+ ("CompositorNodeInvert", "alpha", "invert_alpha"),
+ ("CompositorNodeInvert", "rgb", "invert_rgb"),
+ ("CompositorNodeLensdist", "fit", "use_fit"),
+ ("CompositorNodeLensdist", "jitter", "use_jitter"),
+ ("CompositorNodeMixRGB", "alpha", "use_alpha"),
+ ("CompositorNodeRotate", "filter", "filter_type"),
+ ("CompositorNodeTime", "end", "frame_end"),
+ ("CompositorNodeTime", "start", "frame_start"),
+ ("CompositorNodeVecBlur", "curved", "use_curved"),
+ ("ShaderNodeExtendedMaterial", "diffuse", "use_diffuse"),
+ ("ShaderNodeExtendedMaterial", "specular", "use_specular"),
+ ("ShaderNodeMaterial", "diffuse", "use_diffuse"),
+ ("ShaderNodeMaterial", "specular", "use_specular"),
+ ("ShaderNodeMixRGB", "alpha", "use_alpha"),
+ ("TextureNodeCurveTime", "end", "frame_end"),
+ ("TextureNodeCurveTime", "start", "frame_start"),
+ ("TextureNodeMixRGB", "alpha", "use_alpha"),
+ ("TextureSlot", "negate", "invert"),
+ ("TextureSlot", "size", "scale"),
+ ("SoftBodySettings", "damp", "damping"),
+ ("SequenceCrop", "right", "max_x"),
+ ("SequenceCrop", "top", "max_y"),
+ ("SequenceCrop", "bottom", "min_x"),
+ ("SequenceCrop", "left", "min_y"),
+ ("Sequence", "speed_fader", "speed_factor"),
+ ("SpeedControlSequence", "global_speed", "multiply_speed"),
+ ("SpeedControlSequence", "use_curve_velocity", "use_as_speed"),
+ ("SpeedControlSequence", "use_curve_compress_y", "scale_to_length"),
+ ("Key", "keys", "key_blocks"),
+ )
+
+
if __name__ == "__main__":
# Example, should be called externally
diff --git a/release/scripts/modules/bpy_extras/__init__.py b/release/scripts/modules/bpy_extras/__init__.py
index d853d5fda10..fd653a4129c 100644
--- a/release/scripts/modules/bpy_extras/__init__.py
+++ b/release/scripts/modules/bpy_extras/__init__.py
@@ -23,6 +23,7 @@ Utility modules assosiated with the bpy module.
"""
__all__ = (
+ "anim_utils",
"object_utils",
"io_utils",
"image_utils",
diff --git a/release/scripts/modules/bpy_extras/anim_utils.py b/release/scripts/modules/bpy_extras/anim_utils.py
new file mode 100644
index 00000000000..9482dc3e1c9
--- /dev/null
+++ b/release/scripts/modules/bpy_extras/anim_utils.py
@@ -0,0 +1,247 @@
+# ##### BEGIN GPL LICENSE BLOCK #####
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# ##### END GPL LICENSE BLOCK #####
+
+# <pep8-80 compliant>
+
+__all__ = (
+ "bake_action",
+ )
+
+import bpy
+
+
+def bake_action(frame_start,
+ frame_end,
+ frame_step=1,
+ only_selected=False,
+ do_pose=True,
+ do_object=True,
+ do_constraint_clear=False,
+ do_clean=False,
+ action=None,
+ ):
+
+ """
+ Return an image from the file path with options to search multiple paths
+ and return a placeholder if its not found.
+
+ :arg frame_start: First frame to bake.
+ :type frame_start: int
+ :arg frame_end: Last frame to bake.
+ :type frame_end: int
+ :arg frame_step: Frame step.
+ :type frame_step: int
+ :arg only_selected: Only bake selected data.
+ :type only_selected: bool
+ :arg do_pose: Bake pose channels.
+ :type do_pose: bool
+ :arg do_object: Bake objects.
+ :type do_object: bool
+ :arg do_constraint_clear: Remove constraints.
+ :type do_constraint_clear: bool
+ :arg do_clean: Remove redundant keyframes after baking.
+ :type do_clean: bool
+ :arg action: An action to bake the data into, or None for a new action
+ to be created.
+ :type action: :class:`bpy.types.Action` or None
+
+ :return: an action or None
+ :rtype: :class:`bpy.types.Action`
+ """
+
+ # -------------------------------------------------------------------------
+ # Helper Functions
+
+ def pose_frame_info(obj):
+ from mathutils import Matrix
+
+ info = {}
+
+ pose = obj.pose
+
+ pose_items = pose.bones.items()
+
+ for name, pbone in pose_items:
+ binfo = {}
+ bone = pbone.bone
+
+ binfo["parent"] = getattr(bone.parent, "name", None)
+ binfo["bone"] = bone
+ binfo["pbone"] = pbone
+ binfo["matrix_local"] = bone.matrix_local.copy()
+ try:
+ binfo["matrix_local_inv"] = binfo["matrix_local"].inverted()
+ except:
+ binfo["matrix_local_inv"] = Matrix()
+
+ binfo["matrix"] = bone.matrix.copy()
+ binfo["matrix_pose"] = pbone.matrix.copy()
+ try:
+ binfo["matrix_pose_inv"] = binfo["matrix_pose"].inverted()
+ except:
+ binfo["matrix_pose_inv"] = Matrix()
+
+ info[name] = binfo
+
+ for name, pbone in pose_items:
+ binfo = info[name]
+ binfo_parent = binfo.get("parent", None)
+ if binfo_parent:
+ binfo_parent = info[binfo_parent]
+
+ matrix = binfo["matrix_pose"]
+ rest_matrix = binfo["matrix_local"]
+
+ if binfo_parent:
+ matrix = binfo_parent["matrix_pose_inv"] * matrix
+ rest_matrix = binfo_parent["matrix_local_inv"] * rest_matrix
+
+ binfo["matrix_key"] = rest_matrix.inverted() * matrix
+
+ return info
+
+
+ def obj_frame_info(obj):
+ info = {}
+ # parent = obj.parent
+ info["matrix_key"] = obj.matrix_local.copy()
+ return info
+
+ # -------------------------------------------------------------------------
+ # Setup the Context
+
+ # TODO, pass data rather then grabbing from the context!
+ scene = bpy.context.scene
+ obj = bpy.context.object
+ pose = obj.pose
+ frame_back = scene.frame_current
+
+ if pose is None:
+ do_pose = False
+
+ if do_pose is None and do_object is None:
+ return None
+
+ pose_info = []
+ obj_info = []
+
+ frame_range = range(frame_start, frame_end + 1, frame_step)
+
+ # -------------------------------------------------------------------------
+ # Collect transformations
+
+ # could speed this up by applying steps here too...
+ for f in frame_range:
+ scene.frame_set(f)
+
+ if do_pose:
+ pose_info.append(pose_frame_info(obj))
+ if do_object:
+ obj_info.append(obj_frame_info(obj))
+
+ f += 1
+
+ # -------------------------------------------------------------------------
+ # Create action
+
+ # incase animation data hassnt been created
+ atd = obj.animation_data_create()
+ if action is None:
+ action = bpy.data.actions.new("Action")
+ atd.action = action
+
+ if do_pose:
+ pose_items = pose.bones.items()
+ else:
+ pose_items = [] # skip
+
+ # -------------------------------------------------------------------------
+ # Apply transformations to action
+
+ # pose
+ for name, pbone in (pose_items if do_pose else ()):
+ if only_selected and not pbone.bone.select:
+ continue
+
+ if do_constraint_clear:
+ while pbone.constraints:
+ pbone.constraints.remove(pbone.constraints[0])
+
+ for f in frame_range:
+ matrix = pose_info[(f - frame_start) // frame_step][name]["matrix_key"]
+
+ # pbone.location = matrix.to_translation()
+ # pbone.rotation_quaternion = matrix.to_quaternion()
+ pbone.matrix_basis = matrix
+
+ pbone.keyframe_insert("location", -1, f, name)
+
+ rotation_mode = pbone.rotation_mode
+
+ if rotation_mode == 'QUATERNION':
+ pbone.keyframe_insert("rotation_quaternion", -1, f, name)
+ elif rotation_mode == 'AXIS_ANGLE':
+ pbone.keyframe_insert("rotation_axis_angle", -1, f, name)
+ else: # euler, XYZ, ZXY etc
+ pbone.keyframe_insert("rotation_euler", -1, f, name)
+
+ pbone.keyframe_insert("scale", -1, f, name)
+
+ # object. TODO. multiple objects
+ if do_object:
+ if do_constraint_clear:
+ while obj.constraints:
+ obj.constraints.remove(obj.constraints[0])
+
+ for f in frame_range:
+ matrix = obj_info[(f - frame_start) // frame_step]["matrix_key"]
+ obj.matrix_local = matrix
+
+ obj.keyframe_insert("location", -1, f)
+
+ rotation_mode = obj.rotation_mode
+
+ if rotation_mode == 'QUATERNION':
+ obj.keyframe_insert("rotation_quaternion", -1, f)
+ elif rotation_mode == 'AXIS_ANGLE':
+ obj.keyframe_insert("rotation_axis_angle", -1, f)
+ else: # euler, XYZ, ZXY etc
+ obj.keyframe_insert("rotation_euler", -1, f)
+
+ obj.keyframe_insert("scale", -1, f)
+
+ scene.frame_set(frame_back)
+
+ # -------------------------------------------------------------------------
+ # Clean
+
+ if do_clean:
+ for fcu in action.fcurves:
+ keyframe_points = fcu.keyframe_points
+ i = 1
+ while i < len(fcu.keyframe_points) - 1:
+ val_prev = keyframe_points[i - 1].co[1]
+ val_next = keyframe_points[i + 1].co[1]
+ val = keyframe_points[i].co[1]
+
+ if abs(val - val_prev) + abs(val - val_next) < 0.0001:
+ keyframe_points.remove(keyframe_points[i])
+ else:
+ i += 1
+
+ return action
diff --git a/release/scripts/startup/bl_operators/__init__.py b/release/scripts/startup/bl_operators/__init__.py
index 53991526844..c1af1e8ab5e 100644
--- a/release/scripts/startup/bl_operators/__init__.py
+++ b/release/scripts/startup/bl_operators/__init__.py
@@ -24,11 +24,11 @@ if "bpy" in locals():
_reload(val)
_modules = (
"add_mesh_torus",
- "animsys_update",
+ "anim",
+ "console",
"freestyle",
"image",
"mesh",
- "nla",
"object_align",
"object",
"object_randomize_transform",
@@ -40,6 +40,7 @@ _modules = (
"uvcalc_lightmap",
"uvcalc_smart_project",
"vertexpaint_dirt",
+ "view3d",
"wm",
)
__import__(name=__name__, fromlist=_modules)
diff --git a/release/scripts/startup/bl_operators/anim.py b/release/scripts/startup/bl_operators/anim.py
new file mode 100644
index 00000000000..7d1f3b8f5f0
--- /dev/null
+++ b/release/scripts/startup/bl_operators/anim.py
@@ -0,0 +1,274 @@
+# ##### BEGIN GPL LICENSE BLOCK #####
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# ##### END GPL LICENSE BLOCK #####
+
+# <pep8-80 compliant>
+
+if "bpy" in locals():
+ import imp
+ if "anim_utils" in locals():
+ imp.reload(anim_utils)
+
+import bpy
+from bpy.types import Operator
+from bpy.props import (IntProperty,
+ BoolProperty,
+ EnumProperty,
+ StringProperty,
+ )
+
+
+class ANIM_OT_keying_set_export(Operator):
+ "Export Keying Set to a python script"
+ bl_idname = "anim.keying_set_export"
+ bl_label = "Export Keying Set..."
+
+ filepath = StringProperty(
+ name="File Path",
+ )
+ filter_folder = BoolProperty(
+ name="Filter folders",
+ default=True,
+ options={'HIDDEN'},
+ )
+ filter_text = BoolProperty(
+ name="Filter text",
+ default=True,
+ options={'HIDDEN'},
+ )
+ filter_python = BoolProperty(
+ name="Filter python",
+ default=True,
+ options={'HIDDEN'},
+ )
+
+ def execute(self, context):
+ if not self.filepath:
+ raise Exception("Filepath not set")
+
+ f = open(self.filepath, "w")
+ if not f:
+ raise Exception("Could not open file")
+
+ scene = context.scene
+ ks = scene.keying_sets.active
+
+ f.write("# Keying Set: %s\n" % ks.name)
+
+ f.write("import bpy\n\n")
+ # XXX, why not current scene?
+ f.write("scene= bpy.data.scenes[0]\n\n")
+
+ # Add KeyingSet and set general settings
+ f.write("# Keying Set Level declarations\n")
+ f.write("ks= scene.keying_sets.new(name=\"%s\")\n" % ks.name)
+
+ if not ks.is_path_absolute:
+ f.write("ks.is_path_absolute = False\n")
+ f.write("\n")
+
+ f.write("ks.bl_options = %r\n" % ks.bl_options)
+ f.write("\n")
+
+ # --------------------------------------------------------
+ # generate and write set of lookups for id's used in paths
+
+ # cache for syncing ID-blocks to bpy paths + shorthands
+ id_to_paths_cache = {}
+
+ for ksp in ks.paths:
+ if ksp.id is None:
+ continue
+ if ksp.id in id_to_paths_cache:
+ continue
+
+ """
+ - idtype_list is used to get the list of id-datablocks from
+ bpy.data.* since this info isn't available elsewhere
+ - id.bl_rna.name gives a name suitable for UI,
+ with a capitalised first letter, but we need
+ the plural form that's all lower case
+ """
+
+ idtype_list = ksp.id.bl_rna.name.lower() + "s"
+ id_bpy_path = "bpy.data.%s[\"%s\"]" % (idtype_list, ksp.id.name)
+
+ # shorthand ID for the ID-block (as used in the script)
+ short_id = "id_%d" % len(id_to_paths_cache)
+
+ # store this in the cache now
+ id_to_paths_cache[ksp.id] = [short_id, id_bpy_path]
+
+ f.write("# ID's that are commonly used\n")
+ for id_pair in id_to_paths_cache.values():
+ f.write("%s = %s\n" % (id_pair[0], id_pair[1]))
+ f.write("\n")
+
+ # write paths
+ f.write("# Path Definitions\n")
+ for ksp in ks.paths:
+ f.write("ksp = ks.paths.add(")
+
+ # id-block + data_path
+ if ksp.id:
+ # find the relevant shorthand from the cache
+ id_bpy_path = id_to_paths_cache[ksp.id][0]
+ else:
+ id_bpy_path = "None" # XXX...
+ f.write("%s, '%s'" % (id_bpy_path, ksp.data_path))
+
+ # array index settings (if applicable)
+ if ksp.use_entire_array:
+ f.write(", index=-1")
+ else:
+ f.write(", index=%d" % ksp.array_index)
+
+ # grouping settings (if applicable)
+ # NOTE: the current default is KEYINGSET, but if this changes,
+ # change this code too
+ if ksp.group_method == 'NAMED':
+ f.write(", group_method='%s', group_name=\"%s\"" %
+ (ksp.group_method, ksp.group))
+ elif ksp.group_method != 'KEYINGSET':
+ f.write(", group_method='%s'" % ksp.group_method)
+
+ # finish off
+ f.write(")\n")
+
+ f.write("\n")
+ f.close()
+
+ return {'FINISHED'}
+
+ def invoke(self, context, event):
+ wm = context.window_manager
+ wm.fileselect_add(self)
+ return {'RUNNING_MODAL'}
+
+
+class BakeAction(Operator):
+ """Bake animation to an Action"""
+ bl_idname = "nla.bake"
+ bl_label = "Bake Action"
+ bl_options = {'REGISTER', 'UNDO'}
+
+ frame_start = IntProperty(
+ name="Start Frame",
+ description="Start frame for baking",
+ min=0, max=300000,
+ default=1,
+ )
+ frame_end = IntProperty(
+ name="End Frame",
+ description="End frame for baking",
+ min=1, max=300000,
+ default=250,
+ )
+ step = IntProperty(
+ name="Frame Step",
+ description="Frame Step",
+ min=1, max=120,
+ default=1,
+ )
+ only_selected = BoolProperty(
+ name="Only Selected",
+ default=True,
+ )
+ clear_consraints = BoolProperty(
+ name="Clear Constraints",
+ default=False,
+ )
+ bake_types = EnumProperty(
+ name="Bake Data",
+ options={'ENUM_FLAG'},
+ items=(('POSE', "Pose", ""),
+ ('OBJECT', "Object", ""),
+ ),
+ default={'POSE'},
+ )
+
+ def execute(self, context):
+
+ from bpy_extras import anim_utils
+
+ action = anim_utils.bake_action(self.frame_start,
+ self.frame_end,
+ self.step,
+ self.only_selected,
+ 'POSE' in self.bake_types,
+ 'OBJECT' in self.bake_types,
+ self.clear_consraints,
+ True,
+ )
+
+ if action is None:
+ self.report({'INFO'}, "Nothing to bake")
+ return {'CANCELLED'}
+
+ return {'FINISHED'}
+
+ def invoke(self, context, event):
+ wm = context.window_manager
+ return wm.invoke_props_dialog(self)
+
+
+class ClearUselessActions(Operator):
+ """Mark actions with no F-Curves for deletion after save+reload of """ \
+ """file preserving "action libraries"""
+ bl_idname = "anim.clear_useless_actions"
+ bl_label = "Clear Useless Actions"
+ bl_options = {'REGISTER', 'UNDO'}
+
+ only_unused = BoolProperty(name="Only Unused",
+ description="Only unused (Fake User only) actions get considered",
+ default=True)
+
+ @classmethod
+ def poll(cls, context):
+ return len(bpy.data.actions) != 0
+
+ def execute(self, context):
+ removed = 0
+
+ for action in bpy.data.actions:
+ # if only user is "fake" user...
+ if ((self.only_unused is False) or
+ (action.use_fake_user and action.users == 1)):
+
+ # if it has F-Curves, then it's a "action library"
+ # (i.e. walk, wave, jump, etc.)
+ # and should be left alone as that's what fake users are for!
+ if not action.fcurves:
+ # mark action for deletion
+ action.user_clear()
+ removed += 1
+
+ self.report({'INFO'}, "Removed %d empty and/or fake-user only Actions"
+ % removed)
+ return {'FINISHED'}
+
+
+class UpdateAnimData(Operator):
+ """Update data paths from 2.56 and previous versions, """ \
+ """modifying data paths of drivers and fcurves"""
+ bl_idname = "anim.update_data_paths"
+ bl_label = "Update Animation Data"
+
+ def execute(self, context):
+ import animsys_refactor
+ animsys_refactor.update_data_paths(animsys_refactor.data_2_56_to_2_59)
+ return {'FINISHED'}
diff --git a/release/scripts/startup/bl_operators/animsys_update.py b/release/scripts/startup/bl_operators/animsys_update.py
deleted file mode 100644
index 23b9cf13f07..00000000000
--- a/release/scripts/startup/bl_operators/animsys_update.py
+++ /dev/null
@@ -1,699 +0,0 @@
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
-
-# <pep8 compliant>
-
-data_path_update = [
- ("ClothCollisionSettings", "min_distance", "distance_min"),
- ("ClothCollisionSettings", "self_min_distance", "self_distance_min"),
- ("ClothCollisionSettings", "enable_collision", "use_collision"),
- ("ClothCollisionSettings", "enable_self_collision", "use_self_collision"),
- ("ClothSettings", "pin_cloth", "use_pin_cloth"),
- ("ClothSettings", "stiffness_scaling", "use_stiffness_scale"),
- ("CollisionSettings", "random_damping", "damping_random"),
- ("CollisionSettings", "random_friction", "friction_random"),
- ("CollisionSettings", "inner_thickness", "thickness_inner"),
- ("CollisionSettings", "outer_thickness", "thickness_outer"),
- ("CollisionSettings", "kill_particles", "use_particle_kill"),
- ("Constraint", "proxy_local", "is_proxy_local"),
- ("ActionConstraint", "maximum", "max"),
- ("ActionConstraint", "minimum", "min"),
- ("FollowPathConstraint", "use_fixed_position", "use_fixed_location"),
- ("KinematicConstraint", "chain_length", "chain_count"),
- ("KinematicConstraint", "pos_lock_x", "lock_location_x"),
- ("KinematicConstraint", "pos_lock_y", "lock_location_y"),
- ("KinematicConstraint", "pos_lock_z", "lock_location_z"),
- ("KinematicConstraint", "rot_lock_x", "lock_rotation_x"),
- ("KinematicConstraint", "rot_lock_y", "lock_rotation_y"),
- ("KinematicConstraint", "rot_lock_z", "lock_rotation_z"),
- ("KinematicConstraint", "axis_reference", "reference_axis"),
- ("KinematicConstraint", "use_position", "use_location"),
- ("LimitLocationConstraint", "maximum_x", "max_x"),
- ("LimitLocationConstraint", "maximum_y", "max_y"),
- ("LimitLocationConstraint", "maximum_z", "max_z"),
- ("LimitLocationConstraint", "minimum_x", "min_x"),
- ("LimitLocationConstraint", "minimum_y", "min_y"),
- ("LimitLocationConstraint", "minimum_z", "min_z"),
- ("LimitLocationConstraint", "use_maximum_x", "use_max_x"),
- ("LimitLocationConstraint", "use_maximum_y", "use_max_y"),
- ("LimitLocationConstraint", "use_maximum_z", "use_max_z"),
- ("LimitLocationConstraint", "use_minimum_x", "use_min_x"),
- ("LimitLocationConstraint", "use_minimum_y", "use_min_y"),
- ("LimitLocationConstraint", "use_minimum_z", "use_min_z"),
- ("LimitLocationConstraint", "limit_transform", "use_transform_limit"),
- ("LimitRotationConstraint", "maximum_x", "max_x"),
- ("LimitRotationConstraint", "maximum_y", "max_y"),
- ("LimitRotationConstraint", "maximum_z", "max_z"),
- ("LimitRotationConstraint", "minimum_x", "min_x"),
- ("LimitRotationConstraint", "minimum_y", "min_y"),
- ("LimitRotationConstraint", "minimum_z", "min_z"),
- ("LimitRotationConstraint", "limit_transform", "use_transform_limit"),
- ("LimitScaleConstraint", "maximum_x", "max_x"),
- ("LimitScaleConstraint", "maximum_y", "max_y"),
- ("LimitScaleConstraint", "maximum_z", "max_z"),
- ("LimitScaleConstraint", "minimum_x", "min_x"),
- ("LimitScaleConstraint", "minimum_y", "min_y"),
- ("LimitScaleConstraint", "minimum_z", "min_z"),
- ("LimitScaleConstraint", "use_maximum_x", "use_max_x"),
- ("LimitScaleConstraint", "use_maximum_y", "use_max_y"),
- ("LimitScaleConstraint", "use_maximum_z", "use_max_z"),
- ("LimitScaleConstraint", "use_minimum_x", "use_min_x"),
- ("LimitScaleConstraint", "use_minimum_y", "use_min_y"),
- ("LimitScaleConstraint", "use_minimum_z", "use_min_z"),
- ("LimitScaleConstraint", "limit_transform", "use_transform_limit"),
- ("PivotConstraint", "enabled_rotation_range", "rotation_range"),
- ("PivotConstraint", "use_relative_position", "use_relative_location"),
- ("PythonConstraint", "number_of_targets", "target_count"),
- ("SplineIKConstraint", "chain_length", "chain_count"),
- ("SplineIKConstraint", "chain_offset", "use_chain_offset"),
- ("SplineIKConstraint", "even_divisions", "use_even_divisions"),
- ("SplineIKConstraint", "y_stretch", "use_y_stretch"),
- ("SplineIKConstraint", "xz_scaling_mode", "xz_scale_mode"),
- ("StretchToConstraint", "original_length", "rest_length"),
- ("TrackToConstraint", "target_z", "use_target_z"),
- ("TransformConstraint", "extrapolate_motion", "use_motion_extrapolate"),
- ("FieldSettings", "do_location", "apply_to_location"),
- ("FieldSettings", "do_rotation", "apply_to_rotation"),
- ("FieldSettings", "maximum_distance", "distance_max"),
- ("FieldSettings", "minimum_distance", "distance_min"),
- ("FieldSettings", "radial_maximum", "radial_max"),
- ("FieldSettings", "radial_minimum", "radial_min"),
- ("FieldSettings", "force_2d", "use_2d_force"),
- ("FieldSettings", "do_absorption", "use_absorption"),
- ("FieldSettings", "global_coordinates", "use_global_coords"),
- ("FieldSettings", "guide_path_add", "use_guide_path_add"),
- ("FieldSettings", "multiple_springs", "use_multiple_springs"),
- ("FieldSettings", "use_coordinates", "use_object_coords"),
- ("FieldSettings", "root_coordinates", "use_root_coords"),
- ("ControlFluidSettings", "reverse_frames", "use_reverse_frames"),
- ("DomainFluidSettings", "real_world_size", "simulation_scale"),
- ("DomainFluidSettings", "surface_smoothing", "surface_smooth"),
- ("DomainFluidSettings", "reverse_frames", "use_reverse_frames"),
- ("DomainFluidSettings", "generate_speed_vectors", "use_speed_vectors"),
- ("DomainFluidSettings", "override_time", "use_time_override"),
- ("FluidFluidSettings", "export_animated_mesh", "use_animated_mesh"),
- ("InflowFluidSettings", "export_animated_mesh", "use_animated_mesh"),
- ("InflowFluidSettings", "local_coordinates", "use_local_coords"),
- ("ObstacleFluidSettings", "export_animated_mesh", "use_animated_mesh"),
- ("OutflowFluidSettings", "export_animated_mesh", "use_animated_mesh"),
- ("ParticleFluidSettings", "drops", "use_drops"),
- ("ParticleFluidSettings", "floats", "use_floats"),
- ("Armature", "drawtype", "draw_type"),
- ("Armature", "layer_protection", "layers_protected"),
- ("Armature", "auto_ik", "use_auto_ik"),
- ("Armature", "delay_deform", "use_deform_delay"),
- ("Armature", "deform_envelope", "use_deform_envelopes"),
- ("Armature", "deform_quaternion", "use_deform_preserve_volume"),
- ("Armature", "deform_vertexgroups", "use_deform_vertex_groups"),
- ("Armature", "x_axis_mirror", "use_mirror_x"),
- ("Curve", "width", "offset"),
- ("Image", "animation_speed", "fps"),
- ("Image", "animation_end", "frame_end"),
- ("Image", "animation_start", "frame_start"),
- ("Image", "animated", "use_animation"),
- ("Image", "clamp_x", "use_clamp_x"),
- ("Image", "clamp_y", "use_clamp_y"),
- ("Image", "premultiply", "use_premultiply"),
- ("AreaLamp", "shadow_ray_sampling_method", "shadow_ray_sample_method"),
- ("AreaLamp", "only_shadow", "use_only_shadow"),
- ("AreaLamp", "shadow_layer", "use_shadow_layer"),
- ("AreaLamp", "umbra", "use_umbra"),
- ("PointLamp", "shadow_ray_sampling_method", "shadow_ray_sample_method"),
- ("PointLamp", "only_shadow", "use_only_shadow"),
- ("PointLamp", "shadow_layer", "use_shadow_layer"),
- ("PointLamp", "sphere", "use_sphere"),
- ("SpotLamp", "shadow_ray_sampling_method", "shadow_ray_sample_method"),
- ("SpotLamp", "auto_clip_end", "use_auto_clip_end"),
- ("SpotLamp", "auto_clip_start", "use_auto_clip_start"),
- ("SpotLamp", "only_shadow", "use_only_shadow"),
- ("SpotLamp", "shadow_layer", "use_shadow_layer"),
- ("SpotLamp", "sphere", "use_sphere"),
- ("SunLamp", "only_shadow", "use_only_shadow"),
- ("SunLamp", "shadow_layer", "use_shadow_layer"),
- ("Material", "z_offset", "offset_z"),
- ("Material", "shadow_casting_alpha", "shadow_cast_alpha"),
- ("Material", "cast_approximate", "use_cast_approximate"),
- ("Material", "cast_buffer_shadows", "use_cast_buffer_shadows"),
- ("Material", "cast_shadows_only", "use_cast_shadows_only"),
- ("Material", "face_texture", "use_face_texture"),
- ("Material", "face_texture_alpha", "use_face_texture_alpha"),
- ("Material", "full_oversampling", "use_full_oversampling"),
- ("Material", "light_group_exclusive", "use_light_group_exclusive"),
- ("Material", "object_color", "use_object_color"),
- ("Material", "only_shadow", "use_only_shadow"),
- ("Material", "ray_shadow_bias", "use_ray_shadow_bias"),
- ("Material", "traceable", "use_raytrace"),
- ("Material", "shadeless", "use_shadeless"),
- ("Material", "tangent_shading", "use_tangent_shading"),
- ("Material", "transparency", "use_transparency"),
- ("Material", "receive_transparent_shadows", "use_transparent_shadows"),
- ("Material", "vertex_color_light", "use_vertex_color_light"),
- ("Material", "vertex_color_paint", "use_vertex_color_paint"),
- ("Mesh", "autosmooth_angle", "auto_smooth_angle"),
- ("Mesh", "autosmooth", "use_auto_smooth"),
- ("Object", "max_draw_type", "draw_type"),
- ("Object", "use_dupli_verts_rotation", "use_dupli_vertices_rotation"),
- ("Object", "shape_key_edit_mode", "use_shape_key_edit_mode"),
- ("Object", "slow_parent", "use_slow_parent"),
- ("Object", "time_offset_add_parent", "use_time_offset_add_parent"),
- ("Object", "time_offset_edit", "use_time_offset_edit"),
- ("Object", "time_offset_parent", "use_time_offset_parent"),
- ("Object", "time_offset_particle", "use_time_offset_particle"),
- ("ParticleSettings", "adaptive_pix", "adaptive_pixel"),
- ("ParticleSettings", "child_effector", "apply_effector_to_children"),
- ("ParticleSettings", "child_guide", "apply_guide_to_children"),
- ("ParticleSettings", "billboard_split_offset", "billboard_offset_split"),
- ("ParticleSettings", "billboard_random_tilt", "billboard_tilt_random"),
- ("ParticleSettings", "child_length_thres", "child_length_threshold"),
- ("ParticleSettings", "child_random_size", "child_size_random"),
- ("ParticleSettings", "clumppow", "clump_shape"),
- ("ParticleSettings", "damp_factor", "damping"),
- ("ParticleSettings", "draw_as", "draw_method"),
- ("ParticleSettings", "random_factor", "factor_random"),
- ("ParticleSettings", "grid_invert", "invert_grid"),
- ("ParticleSettings", "random_length", "length_random"),
- ("ParticleSettings", "random_lifetime", "lifetime_random"),
- ("ParticleSettings", "billboard_lock", "lock_billboard"),
- ("ParticleSettings", "boids_2d", "lock_boids_to_surface"),
- ("ParticleSettings", "object_aligned_factor", "object_align_factor"),
- ("ParticleSettings", "random_phase_factor", "phase_factor_random"),
- ("ParticleSettings", "ren_as", "render_type"),
- ("ParticleSettings", "rendered_child_nbr", "rendered_child_count"),
- ("ParticleSettings", "random_rotation_factor", "rotation_factor_random"),
- ("ParticleSettings", "rough1", "roughness_1"),
- ("ParticleSettings", "rough1_size", "roughness_1_size"),
- ("ParticleSettings", "rough2", "roughness_2"),
- ("ParticleSettings", "rough2_size", "roughness_2_size"),
- ("ParticleSettings", "rough2_thres", "roughness_2_threshold"),
- ("ParticleSettings", "rough_end_shape", "roughness_end_shape"),
- ("ParticleSettings", "rough_endpoint", "roughness_endpoint"),
- ("ParticleSettings", "random_size", "size_random"),
- ("ParticleSettings", "abs_path_time", "use_absolute_path_time"),
- ("ParticleSettings", "animate_branching", "use_animate_branching"),
- ("ParticleSettings", "branching", "use_branching"),
- ("ParticleSettings", "died", "use_dead"),
- ("ParticleSettings", "die_on_collision", "use_die_on_collision"),
- ("ParticleSettings", "rotation_dynamic", "use_dynamic_rotation"),
- ("ParticleSettings", "even_distribution", "use_even_distribution"),
- ("ParticleSettings", "rand_group", "use_group_pick_random"),
- ("ParticleSettings", "hair_bspline", "use_hair_bspline"),
- ("ParticleSettings", "sizemass", "use_multiply_size_mass"),
- ("ParticleSettings", "react_multiple", "use_react_multiple"),
- ("ParticleSettings", "react_start_end", "use_react_start_end"),
- ("ParticleSettings", "render_adaptive", "use_render_adaptive"),
- ("ParticleSettings", "self_effect", "use_self_effect"),
- ("ParticleSettings", "enable_simplify", "use_simplify"),
- ("ParticleSettings", "size_deflect", "use_size_deflect"),
- ("ParticleSettings", "render_strand", "use_strand_primitive"),
- ("ParticleSettings", "symmetric_branching", "use_symmetric_branching"),
- ("ParticleSettings", "velocity_length", "use_velocity_length"),
- ("ParticleSettings", "whole_group", "use_whole_group"),
- ("CloudsTexture", "noise_size", "noise_scale"),
- ("DistortedNoiseTexture", "noise_size", "noise_scale"),
- ("EnvironmentMapTexture", "filter_size_minimum", "use_filter_size_min"),
- ("EnvironmentMapTexture", "mipmap_gauss", "use_mipmap_gauss"),
- ("ImageTexture", "calculate_alpha", "use_calculate_alpha"),
- ("ImageTexture", "checker_even", "use_checker_even"),
- ("ImageTexture", "checker_odd", "use_checker_odd"),
- ("ImageTexture", "filter_size_minimum", "use_filter_size_min"),
- ("ImageTexture", "flip_axis", "use_flip_axis"),
- ("ImageTexture", "mipmap_gauss", "use_mipmap_gauss"),
- ("ImageTexture", "mirror_x", "use_mirror_x"),
- ("ImageTexture", "mirror_y", "use_mirror_y"),
- ("ImageTexture", "normal_map", "use_normal_map"),
- ("MarbleTexture", "noise_size", "noise_scale"),
- ("MarbleTexture", "noisebasis2", "noise_basis_2"),
- ("MarbleTexture", "noisebasis_2", "noise_basis_2"),
- ("MusgraveTexture", "highest_dimension", "dimension_max"),
- ("MusgraveTexture", "noise_size", "noise_scale"),
- ("StucciTexture", "noise_size", "noise_scale"),
- ("VoronoiTexture", "coloring", "color_mode"),
- ("VoronoiTexture", "noise_size", "noise_scale"),
- ("WoodTexture", "noise_size", "noise_scale"),
- ("WoodTexture", "noisebasis2", "noise_basis_2"),
- ("WoodTexture", "noisebasis_2", "noise_basis_2"),
- ("World", "blend_sky", "use_sky_blend"),
- ("World", "paper_sky", "use_sky_paper"),
- ("World", "real_sky", "use_sky_real"),
- ("ImageUser", "auto_refresh", "use_auto_refresh"),
- ("MaterialHalo", "flares_sub", "flare_subflare_count"),
- ("MaterialHalo", "flare_subsize", "flare_subflare_size"),
- ("MaterialHalo", "line_number", "line_count"),
- ("MaterialHalo", "rings", "ring_count"),
- ("MaterialHalo", "star_tips", "star_tip_count"),
- ("MaterialHalo", "xalpha", "use_extreme_alpha"),
- ("MaterialHalo", "flare_mode", "use_flare_mode"),
- ("MaterialHalo", "vertex_normal", "use_vertex_normal"),
- ("MaterialPhysics", "align_to_normal", "use_normal_align"),
- ("MaterialStrand", "min_size", "size_min"),
- ("MaterialStrand", "blender_units", "use_blender_units"),
- ("MaterialStrand", "surface_diffuse", "use_surface_diffuse"),
- ("MaterialStrand", "tangent_shading", "use_tangent_shading"),
- ("MaterialSubsurfaceScattering", "error_tolerance", "error_threshold"),
- ("MaterialVolume", "depth_cutoff", "depth_threshold"),
- ("MaterialVolume", "lighting_mode", "light_method"),
- ("MaterialVolume", "step_calculation", "step_method"),
- ("MaterialVolume", "external_shadows", "use_external_shadows"),
- ("MaterialVolume", "light_cache", "use_light_cache"),
- ("ArmatureModifier", "multi_modifier", "use_multi_modifier"),
- ("ArrayModifier", "constant_offset_displacement", "constant_offset_displace"),
- ("ArrayModifier", "merge_distance", "merge_threshold"),
- ("ArrayModifier", "relative_offset_displacement", "relative_offset_displace"),
- ("ArrayModifier", "constant_offset", "use_constant_offset"),
- ("ArrayModifier", "merge_adjacent_vertices", "use_merge_vertices"),
- ("ArrayModifier", "merge_end_vertices", "use_merge_vertices_cap"),
- ("ArrayModifier", "add_offset_object", "use_object_offset"),
- ("ArrayModifier", "relative_offset", "use_relative_offset"),
- ("BevelModifier", "only_vertices", "use_only_vertices"),
- ("CastModifier", "from_radius", "use_radius_as_size"),
- ("DisplaceModifier", "midlevel", "mid_level"),
- ("DisplaceModifier", "texture_coordinates", "texture_coords"),
- ("EdgeSplitModifier", "use_sharp", "use_edge_sharp"),
- ("ExplodeModifier", "split_edges", "use_edge_split"),
- ("MirrorModifier", "merge_limit", "merge_threshold"),
- ("MirrorModifier", "mirror_u", "use_mirror_u"),
- ("MirrorModifier", "mirror_v", "use_mirror_v"),
- ("MirrorModifier", "mirror_vertex_groups", "use_mirror_vertex_groups"),
- ("ParticleInstanceModifier", "particle_system_number", "particle_system_index"),
- ("ParticleInstanceModifier", "keep_shape", "use_preserve_shape"),
- ("ShrinkwrapModifier", "cull_back_faces", "use_cull_back_faces"),
- ("ShrinkwrapModifier", "cull_front_faces", "use_cull_front_faces"),
- ("ShrinkwrapModifier", "keep_above_surface", "use_keep_above_surface"),
- ("SimpleDeformModifier", "lock_x_axis", "lock_x"),
- ("SimpleDeformModifier", "lock_y_axis", "lock_y"),
- ("SmokeModifier", "smoke_type", "type"),
- ("SubsurfModifier", "subsurf_uv", "use_subsurf_uv"),
- ("UVProjectModifier", "num_projectors", "projector_count"),
- ("UVProjectModifier", "override_image", "use_image_override"),
- ("WaveModifier", "texture_coordinates", "texture_coords"),
- ("WaveModifier", "x_normal", "use_normal_x"),
- ("WaveModifier", "y_normal", "use_normal_y"),
- ("WaveModifier", "z_normal", "use_normal_z"),
- ("NlaStrip", "blending", "blend_type"),
- ("NlaStrip", "animated_influence", "use_animated_influence"),
- ("NlaStrip", "animated_time", "use_animated_time"),
- ("NlaStrip", "animated_time_cyclic", "use_animated_time_cyclic"),
- ("NlaStrip", "auto_blending", "use_auto_blend"),
- ("CompositorNodeAlphaOver", "convert_premul", "use_premultiply"),
- ("CompositorNodeBlur", "sizex", "size_x"),
- ("CompositorNodeBlur", "sizey", "size_y"),
- ("CompositorNodeChannelMatte", "algorithm", "limit_method"),
- ("CompositorNodeChromaMatte", "acceptance", "tolerance"),
- ("CompositorNodeColorBalance", "correction_formula", "correction_method"),
- ("CompositorNodeColorSpill", "algorithm", "limit_method"),
- ("CompositorNodeColorSpill", "unspill", "use_unspill"),
- ("CompositorNodeCrop", "x2", "max_x"),
- ("CompositorNodeCrop", "y2", "max_y"),
- ("CompositorNodeCrop", "x1", "min_x"),
- ("CompositorNodeCrop", "y1", "min_y"),
- ("CompositorNodeCrop", "crop_size", "use_crop_size"),
- ("CompositorNodeDefocus", "max_blur", "blur_max"),
- ("CompositorNodeDefocus", "gamma_correction", "use_gamma_correction"),
- ("CompositorNodeGlare", "rotate_45", "use_rotate_45"),
- ("CompositorNodeImage", "auto_refresh", "use_auto_refresh"),
- ("CompositorNodeLensdist", "projector", "use_projector"),
- ("CompositorNodeVecBlur", "max_speed", "speed_max"),
- ("CompositorNodeVecBlur", "min_speed", "speed_min"),
- ("ShaderNodeMapping", "maximum", "max"),
- ("ShaderNodeMapping", "minimum", "min"),
- ("ShaderNodeMapping", "clamp_maximum", "use_max"),
- ("ShaderNodeMapping", "clamp_minimum", "use_min"),
- ("VertexPaint", "all_faces", "use_all_faces"),
- ("VertexPaint", "spray", "use_spray"),
- ("ParticleEdit", "add_keys", "default_key_count"),
- ("ParticleEdit", "selection_mode", "select_mode"),
- ("ParticleEdit", "auto_velocity", "use_auto_velocity"),
- ("ParticleEdit", "add_interpolate", "use_default_interpolate"),
- ("ParticleEdit", "emitter_deflect", "use_emitter_deflect"),
- ("ParticleEdit", "fade_time", "use_fade_time"),
- ("ParticleEdit", "keep_lengths", "use_preserve_length"),
- ("ParticleEdit", "keep_root", "use_preserve_root"),
- ("ParticleSystem", "vertex_group_clump_negate", "invert_vertex_group_clump"),
- ("ParticleSystem", "vertex_group_density_negate", "invert_vertex_group_density"),
- ("ParticleSystem", "vertex_group_field_negate", "invert_vertex_group_field"),
- ("ParticleSystem", "vertex_group_kink_negate", "invert_vertex_group_kink"),
- ("ParticleSystem", "vertex_group_length_negate", "invert_vertex_group_length"),
- ("ParticleSystem", "vertex_group_rotation_negate", "invert_vertex_group_rotation"),
- ("ParticleSystem", "vertex_group_roughness1_negate", "invert_vertex_group_roughness_1"),
- ("ParticleSystem", "vertex_group_roughness2_negate", "invert_vertex_group_roughness_2"),
- ("ParticleSystem", "vertex_group_roughness_end_negate", "invert_vertex_group_roughness_end"),
- ("ParticleSystem", "vertex_group_size_negate", "invert_vertex_group_size"),
- ("ParticleSystem", "vertex_group_tangent_negate", "invert_vertex_group_tangent"),
- ("ParticleSystem", "vertex_group_velocity_negate", "invert_vertex_group_velocity"),
- ("ParticleSystem", "hair_dynamics", "use_hair_dynamics"),
- ("ParticleSystem", "keyed_timing", "use_keyed_timing"),
- ("PointDensity", "falloff_softness", "falloff_soft"),
- ("PointDensity", "particle_cache", "particle_cache_space"),
- ("PointDensity", "turbulence_size", "turbulence_scale"),
- ("PointDensity", "turbulence", "use_turbulence"),
- ("PointDensity", "vertices_cache", "vertex_cache_space"),
- ("PoseBone", "ik_lin_weight", "ik_linear_weight"),
- ("PoseBone", "ik_rot_weight", "ik_rotation_weight"),
- ("PoseBone", "ik_limit_x", "use_ik_limit_x"),
- ("PoseBone", "ik_limit_y", "use_ik_limit_y"),
- ("PoseBone", "ik_limit_z", "use_ik_limit_z"),
- ("PoseBone", "ik_lin_control", "use_ik_linear_control"),
- ("PoseBone", "ik_rot_control", "use_ik_rotation_control"),
- ("Bone", "use_hinge", "use_inherit_rotation"),
- ("SPHFluidSettings", "spring_k", "spring_force"),
- ("SPHFluidSettings", "stiffness_k", "stiffness"),
- ("SPHFluidSettings", "stiffness_knear", "stiffness_near"),
- ("SceneGameData", "framing_color", "frame_color"),
- ("SceneGameData", "framing_type", "frame_type"),
- ("SceneGameData", "eye_separation", "stereo_eye_separation"),
- ("SceneGameData", "activity_culling", "use_activity_culling"),
- ("SceneGameData", "auto_start", "use_auto_start"),
- ("SceneGameData", "glsl_extra_textures", "use_glsl_extra_textures"),
- ("SceneGameData", "glsl_lights", "use_glsl_lights"),
- ("SceneGameData", "glsl_nodes", "use_glsl_nodes"),
- ("SceneGameData", "glsl_ramps", "use_glsl_ramps"),
- ("SceneGameData", "glsl_shaders", "use_glsl_shaders"),
- ("SceneGameData", "glsl_shadows", "use_glsl_shadows"),
- ("Sequence", "blend_opacity", "blend_alpha"),
- ("Sequence", "blend_mode", "blend_type"),
- ("Sequence", "frame_final_length", "frame_final_duration"),
- ("Sequence", "use_effect_default_fade", "use_default_fade"),
- ("SequenceColorBalance", "inverse_gain", "invert_gain"),
- ("SequenceColorBalance", "inverse_gamma", "invert_gamma"),
- ("SequenceColorBalance", "inverse_lift", "invert_lift"),
- ("EffectSequence", "multiply_colors", "color_multiply"),
- ("EffectSequence", "de_interlace", "use_deinterlace"),
- ("EffectSequence", "flip_x", "use_flip_x"),
- ("EffectSequence", "flip_y", "use_flip_y"),
- ("EffectSequence", "convert_float", "use_float"),
- ("EffectSequence", "premultiply", "use_premultiply"),
- ("EffectSequence", "proxy_custom_directory", "use_proxy_custom_directory"),
- ("EffectSequence", "proxy_custom_file", "use_proxy_custom_file"),
- ("EffectSequence", "reverse_frames", "use_reverse_frames"),
- ("GlowSequence", "blur_distance", "blur_radius"),
- ("GlowSequence", "only_boost", "use_only_boost"),
- ("SpeedControlSequence", "curve_compress_y", "use_curve_compress_y"),
- ("SpeedControlSequence", "curve_velocity", "use_curve_velocity"),
- ("SpeedControlSequence", "frame_blending", "use_frame_blend"),
- ("TransformSequence", "uniform_scale", "use_uniform_scale"),
- ("ImageSequence", "animation_end_offset", "animation_offset_end"),
- ("ImageSequence", "animation_start_offset", "animation_offset_start"),
- ("ImageSequence", "multiply_colors", "color_multiply"),
- ("ImageSequence", "de_interlace", "use_deinterlace"),
- ("ImageSequence", "flip_x", "use_flip_x"),
- ("ImageSequence", "flip_y", "use_flip_y"),
- ("ImageSequence", "convert_float", "use_float"),
- ("ImageSequence", "premultiply", "use_premultiply"),
- ("ImageSequence", "proxy_custom_directory", "use_proxy_custom_directory"),
- ("ImageSequence", "proxy_custom_file", "use_proxy_custom_file"),
- ("ImageSequence", "reverse_frames", "use_reverse_frames"),
- ("MetaSequence", "animation_end_offset", "animation_offset_end"),
- ("MetaSequence", "animation_start_offset", "animation_offset_start"),
- ("MetaSequence", "multiply_colors", "color_multiply"),
- ("MetaSequence", "de_interlace", "use_deinterlace"),
- ("MetaSequence", "flip_x", "use_flip_x"),
- ("MetaSequence", "flip_y", "use_flip_y"),
- ("MetaSequence", "convert_float", "use_float"),
- ("MetaSequence", "premultiply", "use_premultiply"),
- ("MetaSequence", "proxy_custom_directory", "use_proxy_custom_directory"),
- ("MetaSequence", "proxy_custom_file", "use_proxy_custom_file"),
- ("MetaSequence", "reverse_frames", "use_reverse_frames"),
- ("MovieSequence", "animation_end_offset", "animation_offset_end"),
- ("MovieSequence", "animation_start_offset", "animation_offset_start"),
- ("MovieSequence", "multiply_colors", "color_multiply"),
- ("MovieSequence", "de_interlace", "use_deinterlace"),
- ("MovieSequence", "flip_x", "use_flip_x"),
- ("MovieSequence", "flip_y", "use_flip_y"),
- ("MovieSequence", "convert_float", "use_float"),
- ("MovieSequence", "premultiply", "use_premultiply"),
- ("MovieSequence", "proxy_custom_directory", "use_proxy_custom_directory"),
- ("MovieSequence", "proxy_custom_file", "use_proxy_custom_file"),
- ("MovieSequence", "reverse_frames", "use_reverse_frames"),
- ("MulticamSequence", "animation_end_offset", "animation_offset_end"),
- ("MulticamSequence", "animation_start_offset", "animation_offset_start"),
- ("MulticamSequence", "multiply_colors", "color_multiply"),
- ("MulticamSequence", "de_interlace", "use_deinterlace"),
- ("MulticamSequence", "flip_x", "use_flip_x"),
- ("MulticamSequence", "flip_y", "use_flip_y"),
- ("MulticamSequence", "convert_float", "use_float"),
- ("MulticamSequence", "premultiply", "use_premultiply"),
- ("MulticamSequence", "proxy_custom_directory", "use_proxy_custom_directory"),
- ("MulticamSequence", "proxy_custom_file", "use_proxy_custom_file"),
- ("MulticamSequence", "reverse_frames", "use_reverse_frames"),
- ("SceneSequence", "animation_end_offset", "animation_offset_end"),
- ("SceneSequence", "animation_start_offset", "animation_offset_start"),
- ("SceneSequence", "multiply_colors", "color_multiply"),
- ("SceneSequence", "de_interlace", "use_deinterlace"),
- ("SceneSequence", "flip_x", "use_flip_x"),
- ("SceneSequence", "flip_y", "use_flip_y"),
- ("SceneSequence", "convert_float", "use_float"),
- ("SceneSequence", "premultiply", "use_premultiply"),
- ("SceneSequence", "proxy_custom_directory", "use_proxy_custom_directory"),
- ("SceneSequence", "proxy_custom_file", "use_proxy_custom_file"),
- ("SceneSequence", "reverse_frames", "use_reverse_frames"),
- ("SoundSequence", "animation_end_offset", "animation_offset_end"),
- ("SoundSequence", "animation_start_offset", "animation_offset_start"),
- ("SmokeDomainSettings", "smoke_domain_colli", "collision_extents"),
- ("SmokeDomainSettings", "smoke_cache_high_comp", "point_cache_compress_high_type"),
- ("SmokeDomainSettings", "smoke_cache_comp", "point_cache_compress_type"),
- ("SmokeDomainSettings", "maxres", "resolution_max"),
- ("SmokeDomainSettings", "smoothemitter", "smooth_emitter"),
- ("SmokeDomainSettings", "dissolve_smoke", "use_dissolve_smoke"),
- ("SmokeDomainSettings", "dissolve_smoke_log", "use_dissolve_smoke_log"),
- ("SmokeDomainSettings", "highres", "use_high_resolution"),
- ("SoftBodySettings", "bending", "bend"),
- ("SoftBodySettings", "error_limit", "error_threshold"),
- ("SoftBodySettings", "lcom", "location_mass_center"),
- ("SoftBodySettings", "lrot", "rotation_estimate"),
- ("SoftBodySettings", "lscale", "scale_estimate"),
- ("SoftBodySettings", "maxstep", "step_max"),
- ("SoftBodySettings", "minstep", "step_min"),
- ("SoftBodySettings", "diagnose", "use_diagnose"),
- ("SoftBodySettings", "edge_collision", "use_edge_collision"),
- ("SoftBodySettings", "estimate_matrix", "use_estimate_matrix"),
- ("SoftBodySettings", "face_collision", "use_face_collision"),
- ("SoftBodySettings", "self_collision", "use_self_collision"),
- ("SoftBodySettings", "stiff_quads", "use_stiff_quads"),
- ("TexMapping", "maximum", "max"),
- ("TexMapping", "minimum", "min"),
- ("TexMapping", "has_maximum", "use_max"),
- ("TexMapping", "has_minimum", "use_min"),
- ("TextCharacterFormat", "bold", "use_bold"),
- ("TextCharacterFormat", "italic", "use_italic"),
- ("TextCharacterFormat", "underline", "use_underline"),
- ("TextureSlot", "rgb_to_intensity", "use_rgb_to_intensity"),
- ("TextureSlot", "stencil", "use_stencil"),
- ("LampTextureSlot", "texture_coordinates", "texture_coords"),
- ("LampTextureSlot", "map_color", "use_map_color"),
- ("LampTextureSlot", "map_shadow", "use_map_shadow"),
- ("MaterialTextureSlot", "coloremission_factor", "color_emission_factor"),
- ("MaterialTextureSlot", "colordiff_factor", "diffuse_color_factor"),
- ("MaterialTextureSlot", "x_mapping", "mapping_x"),
- ("MaterialTextureSlot", "y_mapping", "mapping_y"),
- ("MaterialTextureSlot", "z_mapping", "mapping_z"),
- ("MaterialTextureSlot", "colorreflection_factor", "reflection_color_factor"),
- ("MaterialTextureSlot", "colorspec_factor", "specular_color_factor"),
- ("MaterialTextureSlot", "texture_coordinates", "texture_coords"),
- ("MaterialTextureSlot", "colortransmission_factor", "transmission_color_factor"),
- ("MaterialTextureSlot", "from_dupli", "use_from_dupli"),
- ("MaterialTextureSlot", "from_original", "use_from_original"),
- ("MaterialTextureSlot", "map_alpha", "use_map_alpha"),
- ("MaterialTextureSlot", "map_ambient", "use_map_ambient"),
- ("MaterialTextureSlot", "map_colordiff", "use_map_color_diff"),
- ("MaterialTextureSlot", "map_coloremission", "use_map_color_emission"),
- ("MaterialTextureSlot", "map_colorreflection", "use_map_color_reflection"),
- ("MaterialTextureSlot", "map_colorspec", "use_map_color_spec"),
- ("MaterialTextureSlot", "map_colortransmission", "use_map_color_transmission"),
- ("MaterialTextureSlot", "map_density", "use_map_density"),
- ("MaterialTextureSlot", "map_diffuse", "use_map_diffuse"),
- ("MaterialTextureSlot", "map_displacement", "use_map_displacement"),
- ("MaterialTextureSlot", "map_emission", "use_map_emission"),
- ("MaterialTextureSlot", "map_emit", "use_map_emit"),
- ("MaterialTextureSlot", "map_hardness", "use_map_hardness"),
- ("MaterialTextureSlot", "map_mirror", "use_map_mirror"),
- ("MaterialTextureSlot", "map_normal", "use_map_normal"),
- ("MaterialTextureSlot", "map_raymir", "use_map_raymir"),
- ("MaterialTextureSlot", "map_reflection", "use_map_reflect"),
- ("MaterialTextureSlot", "map_scattering", "use_map_scatter"),
- ("MaterialTextureSlot", "map_specular", "use_map_specular"),
- ("MaterialTextureSlot", "map_translucency", "use_map_translucency"),
- ("MaterialTextureSlot", "map_warp", "use_map_warp"),
- ("WorldTextureSlot", "texture_coordinates", "texture_coords"),
- ("WorldTextureSlot", "map_blend", "use_map_blend"),
- ("WorldTextureSlot", "map_horizon", "use_map_horizon"),
- ("WorldTextureSlot", "map_zenith_down", "use_map_zenith_down"),
- ("WorldTextureSlot", "map_zenith_up", "use_map_zenith_up"),
- ("VoxelData", "still_frame_number", "still_frame"),
- ("WorldLighting", "ao_blend_mode", "ao_blend_type"),
- ("WorldLighting", "error_tolerance", "error_threshold"),
- ("WorldLighting", "use_ambient_occlusion", "use_ambient_occlusian"),
- ("WorldLighting", "pixel_cache", "use_cache"),
- ("WorldLighting", "use_environment_lighting", "use_environment_light"),
- ("WorldLighting", "use_indirect_lighting", "use_indirect_light"),
- ("WorldStarsSettings", "color_randomization", "color_random"),
- ("WorldStarsSettings", "min_distance", "distance_min"),
- ("WorldLighting", "falloff", "use_falloff"),
- ("Constraint", "disabled", "is_valid"),
- ("ClampToConstraint", "cyclic", "use_cyclic"),
- ("ImageTexture", "filter", "filter_type"),
- ("ImageTexture", "interpolation", "use_interpolation"),
- ("ImageTexture", "mipmap", "use_mipmap"),
- ("ImageUser", "frames", "frame_duration"),
- ("ImageUser", "offset", "frame_offset"),
- ("ImageUser", "cyclic", "use_cyclic"),
- ("ArmatureModifier", "invert", "invert_vertex_group"),
- ("ArmatureModifier", "quaternion", "use_deform_preserve_volume"),
- ("ArrayModifier", "length", "fit_length"),
- ("BevelModifier", "angle", "angle_limit"),
- ("BuildModifier", "length", "frame_duration"),
- ("BuildModifier", "randomize", "use_random_order"),
- ("CastModifier", "x", "use_x"),
- ("CastModifier", "y", "use_y"),
- ("CastModifier", "z", "use_z"),
- ("ExplodeModifier", "size", "use_size"),
- ("MaskModifier", "invert", "invert_vertex_group"),
- ("MeshDeformModifier", "invert", "invert_vertex_group"),
- ("MeshDeformModifier", "dynamic", "use_dynamic_bind"),
- ("MirrorModifier", "clip", "use_clip"),
- ("MirrorModifier", "x", "use_x"),
- ("MirrorModifier", "y", "use_y"),
- ("MirrorModifier", "z", "use_z"),
- ("ParticleInstanceModifier", "children", "use_children"),
- ("ParticleInstanceModifier", "normal", "use_normal"),
- ("ParticleInstanceModifier", "size", "use_size"),
- ("ShrinkwrapModifier", "negative", "use_negative_direction"),
- ("ShrinkwrapModifier", "positive", "use_positive_direction"),
- ("ShrinkwrapModifier", "x", "use_project_x"),
- ("ShrinkwrapModifier", "y", "use_project_y"),
- ("ShrinkwrapModifier", "z", "use_project_z"),
- ("ShrinkwrapModifier", "mode", "wrap_method"),
- ("SimpleDeformModifier", "mode", "deform_method"),
- ("SimpleDeformModifier", "relative", "use_relative"),
- ("SmoothModifier", "repeat", "iterations"),
- ("SmoothModifier", "x", "use_x"),
- ("SmoothModifier", "y", "use_y"),
- ("SmoothModifier", "z", "use_z"),
- ("SolidifyModifier", "invert", "invert_vertex_group"),
- ("WaveModifier", "cyclic", "use_cyclic"),
- ("WaveModifier", "normals", "use_normal"),
- ("WaveModifier", "x", "use_x"),
- ("WaveModifier", "y", "use_y"),
- ("DampedTrackConstraint", "track", "track_axis"),
- ("FloorConstraint", "sticky", "use_sticky"),
- ("FollowPathConstraint", "forward", "forward_axis"),
- ("FollowPathConstraint", "up", "up_axis"),
- ("LockedTrackConstraint", "lock", "lock_axis"),
- ("LockedTrackConstraint", "track", "track_axis"),
- ("MaintainVolumeConstraint", "axis", "free_axis"),
- ("TrackToConstraint", "track", "track_axis"),
- ("TrackToConstraint", "up", "up_axis"),
- ("GameProperty", "debug", "show_debug"),
- ("Image", "tiles", "use_tiles"),
- ("Lamp", "diffuse", "use_diffuse"),
- ("Lamp", "negative", "use_negative"),
- ("Lamp", "layer", "use_own_layer"),
- ("Lamp", "specular", "use_specular"),
- ("AreaLamp", "dither", "use_dither"),
- ("AreaLamp", "jitter", "use_jitter"),
- ("SpotLamp", "square", "use_square"),
- ("Material", "cubic", "use_cubic"),
- ("Material", "shadows", "use_shadows"),
- ("ParticleSettings", "amount", "count"),
- ("ParticleSettings", "display", "draw_percentage"),
- ("ParticleSettings", "velocity", "show_velocity"),
- ("ParticleSettings", "trand", "use_emit_random"),
- ("ParticleSettings", "parent", "use_parent_particles"),
- ("ParticleSettings", "emitter", "use_render_emitter"),
- ("ParticleSettings", "viewport", "use_simplify_viewport"),
- ("Texture", "brightness", "intensity"),
- ("CloudsTexture", "stype", "cloud_type"),
- ("EnvironmentMapTexture", "filter", "filter_type"),
- ("EnvironmentMapTexture", "mipmap", "use_mipmap"),
- ("MarbleTexture", "stype", "marble_type"),
- ("StucciTexture", "stype", "stucci_type"),
- ("WoodTexture", "stype", "wood_type"),
- ("World", "range", "color_range"),
- ("World", "lighting", "light_settings"),
- ("World", "mist", "mist_settings"),
- ("World", "stars", "star_settings"),
- ("MaterialHalo", "lines", "use_lines"),
- ("MaterialHalo", "ring", "use_ring"),
- ("MaterialHalo", "soft", "use_soft"),
- ("MaterialHalo", "star", "use_star"),
- ("MaterialHalo", "texture", "use_texture"),
- ("MaterialPhysics", "damp", "damping"),
- ("MaterialRaytraceTransparency", "limit", "depth_max"),
- ("NlaStrip", "reversed", "use_reverse"),
- ("CompositorNodeBlur", "bokeh", "use_bokeh"),
- ("CompositorNodeBlur", "gamma", "use_gamma_correction"),
- ("CompositorNodeBlur", "relative", "use_relative"),
- ("CompositorNodeChannelMatte", "high", "limit_max"),
- ("CompositorNodeChannelMatte", "low", "limit_min"),
- ("CompositorNodeChannelMatte", "channel", "matte_channel"),
- ("CompositorNodeChromaMatte", "cutoff", "threshold"),
- ("CompositorNodeColorMatte", "h", "color_hue"),
- ("CompositorNodeColorMatte", "s", "color_saturation"),
- ("CompositorNodeColorMatte", "v", "color_value"),
- ("CompositorNodeDBlur", "wrap", "use_wrap"),
- ("CompositorNodeDefocus", "preview", "use_preview"),
- ("CompositorNodeHueSat", "hue", "color_hue"),
- ("CompositorNodeHueSat", "sat", "color_saturation"),
- ("CompositorNodeHueSat", "val", "color_value"),
- ("CompositorNodeImage", "frames", "frame_duration"),
- ("CompositorNodeImage", "offset", "frame_offset"),
- ("CompositorNodeImage", "start", "frame_start"),
- ("CompositorNodeImage", "cyclic", "use_cyclic"),
- ("CompositorNodeInvert", "alpha", "invert_alpha"),
- ("CompositorNodeInvert", "rgb", "invert_rgb"),
- ("CompositorNodeLensdist", "fit", "use_fit"),
- ("CompositorNodeLensdist", "jitter", "use_jitter"),
- ("CompositorNodeMixRGB", "alpha", "use_alpha"),
- ("CompositorNodeRotate", "filter", "filter_type"),
- ("CompositorNodeTime", "end", "frame_end"),
- ("CompositorNodeTime", "start", "frame_start"),
- ("CompositorNodeVecBlur", "curved", "use_curved"),
- ("ShaderNodeExtendedMaterial", "diffuse", "use_diffuse"),
- ("ShaderNodeExtendedMaterial", "specular", "use_specular"),
- ("ShaderNodeMaterial", "diffuse", "use_diffuse"),
- ("ShaderNodeMaterial", "specular", "use_specular"),
- ("ShaderNodeMixRGB", "alpha", "use_alpha"),
- ("TextureNodeCurveTime", "end", "frame_end"),
- ("TextureNodeCurveTime", "start", "frame_start"),
- ("TextureNodeMixRGB", "alpha", "use_alpha"),
- ("TextureSlot", "negate", "invert"),
- ("TextureSlot", "size", "scale"),
- ("SoftBodySettings", "damp", "damping"),
- ("SequenceCrop", "right", "max_x"),
- ("SequenceCrop", "top", "max_y"),
- ("SequenceCrop", "bottom", "min_x"),
- ("SequenceCrop", "left", "min_y"),
- ("Sequence", "speed_fader", "speed_factor"),
- ("SpeedControlSequence", "global_speed", "multiply_speed"),
- ("SpeedControlSequence", "use_curve_velocity", "use_as_speed"),
- ("SpeedControlSequence", "use_curve_compress_y", "scale_to_length"),
- ("Key", "keys", "key_blocks"),
- ]
-
-
-from bpy.types import Operator
-
-
-class UpdateAnimData(Operator):
- """Update data paths from 2.56 and previous versions, modifying data paths of drivers and fcurves"""
- bl_idname = "anim.update_data_paths"
- bl_label = "Update Animation Data"
-
- def execute(self, context):
- import animsys_refactor
- animsys_refactor.update_data_paths(data_path_update)
- return {'FINISHED'}
diff --git a/release/scripts/startup/bl_operators/console.py b/release/scripts/startup/bl_operators/console.py
new file mode 100644
index 00000000000..de953630f00
--- /dev/null
+++ b/release/scripts/startup/bl_operators/console.py
@@ -0,0 +1,106 @@
+# ##### BEGIN GPL LICENSE BLOCK #####
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# ##### END GPL LICENSE BLOCK #####
+
+# <pep8-80 compliant>
+
+import bpy
+from bpy.types import Operator
+from bpy.props import StringProperty
+
+
+class ConsoleExec(Operator):
+ '''Execute the current console line as a python expression'''
+ bl_idname = "console.execute"
+ bl_label = "Console Execute"
+
+ def execute(self, context):
+ sc = context.space_data
+
+ module = __import__("console_" + sc.language)
+ execute = getattr(module, "execute", None)
+
+ if execute:
+ return execute(context)
+ else:
+ print("Error: bpy.ops.console.execute_" + sc.language + " - not found")
+ return {'FINISHED'}
+
+
+class ConsoleAutocomplete(Operator):
+ '''Evaluate the namespace up until the cursor and give a list of options or complete the name if there is only one'''
+ bl_idname = "console.autocomplete"
+ bl_label = "Console Autocomplete"
+
+ def execute(self, context):
+ sc = context.space_data
+ module = __import__("console_" + sc.language)
+ autocomplete = getattr(module, "autocomplete", None)
+
+ if autocomplete:
+ return autocomplete(context)
+ else:
+ print("Error: bpy.ops.console.autocomplete_" + sc.language + " - not found")
+ return {'FINISHED'}
+
+
+class ConsoleBanner(Operator):
+ '''Print a message whem the terminal initializes'''
+ bl_idname = "console.banner"
+ bl_label = "Console Banner"
+
+ def execute(self, context):
+ sc = context.space_data
+
+ # default to python
+ if not sc.language:
+ sc.language = 'python'
+
+ module = __import__("console_" + sc.language)
+ banner = getattr(module, "banner", None)
+
+ if banner:
+ return banner(context)
+ else:
+ print("Error: bpy.ops.console.banner_" + sc.language + " - not found")
+ return {'FINISHED'}
+
+
+class ConsoleLanguage(Operator):
+ '''Set the current language for this console'''
+ bl_idname = "console.language"
+ bl_label = "Console Language"
+
+ language = StringProperty(
+ name="Language",
+ maxlen=32,
+ )
+
+ def execute(self, context):
+ sc = context.space_data
+
+ # defailt to python
+ sc.language = self.language
+
+ bpy.ops.console.banner()
+
+ # insert a new blank line
+ bpy.ops.console.history_append(text="", current_character=0,
+ remove_duplicates=True)
+
+ return {'FINISHED'}
+
diff --git a/release/scripts/startup/bl_operators/mesh.py b/release/scripts/startup/bl_operators/mesh.py
index 5f6583754e9..bf9fa562ee1 100644
--- a/release/scripts/startup/bl_operators/mesh.py
+++ b/release/scripts/startup/bl_operators/mesh.py
@@ -25,7 +25,7 @@ from bpy.props import EnumProperty
class MeshSelectInteriorFaces(Operator):
- '''Select faces where all edges have more then 2 face users.'''
+ '''Select faces where all edges have more then 2 face users'''
bl_idname = "mesh.faces_select_interior"
bl_label = "Select Interior Faces"
diff --git a/release/scripts/startup/bl_operators/nla.py b/release/scripts/startup/bl_operators/nla.py
deleted file mode 100644
index feb0016b1c7..00000000000
--- a/release/scripts/startup/bl_operators/nla.py
+++ /dev/null
@@ -1,306 +0,0 @@
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
-
-# <pep8-80 compliant>
-
-import bpy
-from bpy.types import Operator
-
-
-def pose_frame_info(obj):
- from mathutils import Matrix
-
- info = {}
-
- pose = obj.pose
-
- pose_items = pose.bones.items()
-
- for name, pbone in pose_items:
- binfo = {}
- bone = pbone.bone
-
- binfo["parent"] = getattr(bone.parent, "name", None)
- binfo["bone"] = bone
- binfo["pbone"] = pbone
- binfo["matrix_local"] = bone.matrix_local.copy()
- try:
- binfo["matrix_local_inv"] = binfo["matrix_local"].inverted()
- except:
- binfo["matrix_local_inv"] = Matrix()
-
- binfo["matrix"] = bone.matrix.copy()
- binfo["matrix_pose"] = pbone.matrix.copy()
- try:
- binfo["matrix_pose_inv"] = binfo["matrix_pose"].inverted()
- except:
- binfo["matrix_pose_inv"] = Matrix()
-
- info[name] = binfo
-
- for name, pbone in pose_items:
- binfo = info[name]
- binfo_parent = binfo.get("parent", None)
- if binfo_parent:
- binfo_parent = info[binfo_parent]
-
- matrix = binfo["matrix_pose"]
- rest_matrix = binfo["matrix_local"]
-
- if binfo_parent:
- matrix = binfo_parent["matrix_pose_inv"] * matrix
- rest_matrix = binfo_parent["matrix_local_inv"] * rest_matrix
-
- binfo["matrix_key"] = rest_matrix.inverted() * matrix
-
- return info
-
-
-def obj_frame_info(obj):
- info = {}
- # parent = obj.parent
- info["matrix_key"] = obj.matrix_local.copy()
- return info
-
-
-def bake(frame_start,
- frame_end, step=1,
- only_selected=False,
- do_pose=True,
- do_object=True,
- do_constraint_clear=False,
- action=None):
-
- scene = bpy.context.scene
- obj = bpy.context.object
- pose = obj.pose
- frame_back = scene.frame_current
-
- if pose is None:
- do_pose = False
-
- if do_pose is None and do_object is None:
- return None
-
- pose_info = []
- obj_info = []
-
- frame_range = range(frame_start, frame_end + 1, step)
-
- # -------------------------------------------------------------------------
- # Collect transformations
-
- # could speed this up by applying steps here too...
- for f in frame_range:
- scene.frame_set(f)
-
- if do_pose:
- pose_info.append(pose_frame_info(obj))
- if do_object:
- obj_info.append(obj_frame_info(obj))
-
- f += 1
-
- # -------------------------------------------------------------------------
- # Create action
-
- # incase animation data hassnt been created
- atd = obj.animation_data_create()
- if action is None:
- action = bpy.data.actions.new("Action")
- atd.action = action
-
- if do_pose:
- pose_items = pose.bones.items()
- else:
- pose_items = [] # skip
-
- # -------------------------------------------------------------------------
- # Apply transformations to action
-
- # pose
- for name, pbone in (pose_items if do_pose else ()):
- if only_selected and not pbone.bone.select:
- continue
-
- if do_constraint_clear:
- while pbone.constraints:
- pbone.constraints.remove(pbone.constraints[0])
-
- for f in frame_range:
- matrix = pose_info[(f - frame_start) // step][name]["matrix_key"]
-
- # pbone.location = matrix.to_translation()
- # pbone.rotation_quaternion = matrix.to_quaternion()
- pbone.matrix_basis = matrix
-
- pbone.keyframe_insert("location", -1, f, name)
-
- rotation_mode = pbone.rotation_mode
-
- if rotation_mode == 'QUATERNION':
- pbone.keyframe_insert("rotation_quaternion", -1, f, name)
- elif rotation_mode == 'AXIS_ANGLE':
- pbone.keyframe_insert("rotation_axis_angle", -1, f, name)
- else: # euler, XYZ, ZXY etc
- pbone.keyframe_insert("rotation_euler", -1, f, name)
-
- pbone.keyframe_insert("scale", -1, f, name)
-
- # object. TODO. multiple objects
- if do_object:
- if do_constraint_clear:
- while obj.constraints:
- obj.constraints.remove(obj.constraints[0])
-
- for f in frame_range:
- matrix = obj_info[(f - frame_start) // step]["matrix_key"]
- obj.matrix_local = matrix
-
- obj.keyframe_insert("location", -1, f)
-
- rotation_mode = obj.rotation_mode
-
- if rotation_mode == 'QUATERNION':
- obj.keyframe_insert("rotation_quaternion", -1, f)
- elif rotation_mode == 'AXIS_ANGLE':
- obj.keyframe_insert("rotation_axis_angle", -1, f)
- else: # euler, XYZ, ZXY etc
- obj.keyframe_insert("rotation_euler", -1, f)
-
- obj.keyframe_insert("scale", -1, f)
-
- scene.frame_set(frame_back)
-
- return action
-
-
-from bpy.props import IntProperty, BoolProperty, EnumProperty
-
-
-class BakeAction(Operator):
- '''Bake animation to an Action'''
- bl_idname = "nla.bake"
- bl_label = "Bake Action"
- bl_options = {'REGISTER', 'UNDO'}
-
- frame_start = IntProperty(
- name="Start Frame",
- description="Start frame for baking",
- min=0, max=300000,
- default=1,
- )
- frame_end = IntProperty(
- name="End Frame",
- description="End frame for baking",
- min=1, max=300000,
- default=250,
- )
- step = IntProperty(
- name="Frame Step",
- description="Frame Step",
- min=1, max=120,
- default=1,
- )
- only_selected = BoolProperty(
- name="Only Selected",
- default=True,
- )
- clear_consraints = BoolProperty(
- name="Clear Constraints",
- default=False,
- )
- bake_types = EnumProperty(
- name="Bake Data",
- options={'ENUM_FLAG'},
- items=(('POSE', "Pose", ""),
- ('OBJECT', "Object", ""),
- ),
- default={'POSE'},
- )
-
- def execute(self, context):
-
- action = bake(self.frame_start,
- self.frame_end,
- self.step,
- self.only_selected,
- 'POSE' in self.bake_types,
- 'OBJECT' in self.bake_types,
- self.clear_consraints,
- )
-
- if action is None:
- self.report({'INFO'}, "Nothing to bake")
- return {'CANCELLED'}
-
- # basic cleanup, could move elsewhere
- for fcu in action.fcurves:
- keyframe_points = fcu.keyframe_points
- i = 1
- while i < len(fcu.keyframe_points) - 1:
- val_prev = keyframe_points[i - 1].co[1]
- val_next = keyframe_points[i + 1].co[1]
- val = keyframe_points[i].co[1]
-
- if abs(val - val_prev) + abs(val - val_next) < 0.0001:
- keyframe_points.remove(keyframe_points[i])
- else:
- i += 1
-
- return {'FINISHED'}
-
- def invoke(self, context, event):
- wm = context.window_manager
- return wm.invoke_props_dialog(self)
-
-
-class ClearUselessActions(Operator):
- '''Mark actions with no F-Curves for deletion after save+reload of ''' \
- '''file preserving "action libraries"'''
- bl_idname = "anim.clear_useless_actions"
- bl_label = "Clear Useless Actions"
- bl_options = {'REGISTER', 'UNDO'}
-
- only_unused = BoolProperty(name="Only Unused",
- description="Only unused (Fake User only) actions get considered",
- default=True)
-
- @classmethod
- def poll(cls, context):
- return len(bpy.data.actions) != 0
-
- def execute(self, context):
- removed = 0
-
- for action in bpy.data.actions:
- # if only user is "fake" user...
- if ((self.only_unused is False) or
- (action.use_fake_user and action.users == 1)):
-
- # if it has F-Curves, then it's a "action library"
- # (i.e. walk, wave, jump, etc.)
- # and should be left alone as that's what fake users are for!
- if not action.fcurves:
- # mark action for deletion
- action.user_clear()
- removed += 1
-
- self.report({'INFO'}, "Removed %d empty and/or fake-user only Actions"
- % removed)
- return {'FINISHED'}
diff --git a/release/scripts/startup/bl_operators/screen_play_rendered_anim.py b/release/scripts/startup/bl_operators/screen_play_rendered_anim.py
index c2a09d6a4ae..015a2cd0c36 100644
--- a/release/scripts/startup/bl_operators/screen_play_rendered_anim.py
+++ b/release/scripts/startup/bl_operators/screen_play_rendered_anim.py
@@ -66,7 +66,7 @@ def guess_player_path(preset):
class PlayRenderedAnim(Operator):
- '''Plays back rendered frames/movies using an external player.'''
+ '''Plays back rendered frames/movies using an external player'''
bl_idname = "render.play_rendered_anim"
bl_label = "Play Rendered Animation"
bl_options = {'REGISTER'}
diff --git a/release/scripts/startup/bl_operators/sequencer.py b/release/scripts/startup/bl_operators/sequencer.py
index 53654ffbc6f..67b9be59f2a 100644
--- a/release/scripts/startup/bl_operators/sequencer.py
+++ b/release/scripts/startup/bl_operators/sequencer.py
@@ -25,7 +25,7 @@ from bpy.props import IntProperty
class SequencerCrossfadeSounds(Operator):
- '''Do crossfading volume animation of two selected sound strips.'''
+ '''Do crossfading volume animation of two selected sound strips'''
bl_idname = "sequencer.crossfade_sounds"
bl_label = "Crossfade sounds"
@@ -76,7 +76,7 @@ class SequencerCrossfadeSounds(Operator):
class SequencerCutMulticam(Operator):
- '''Cut multicam strip and select camera.'''
+ '''Cut multicam strip and select camera'''
bl_idname = "sequencer.cut_multicam"
bl_label = "Cut multicam"
@@ -118,7 +118,7 @@ class SequencerCutMulticam(Operator):
class SequencerDeinterlaceSelectedMovies(Operator):
- '''Deinterlace all selected movie sources.'''
+ '''Deinterlace all selected movie sources'''
bl_idname = "sequencer.deinterlace_selected_movies"
bl_label = "Deinterlace Movies"
diff --git a/release/scripts/startup/bl_operators/uvcalc_smart_project.py b/release/scripts/startup/bl_operators/uvcalc_smart_project.py
index c4466e6453f..5985a37a0c9 100644
--- a/release/scripts/startup/bl_operators/uvcalc_smart_project.py
+++ b/release/scripts/startup/bl_operators/uvcalc_smart_project.py
@@ -1105,7 +1105,8 @@ from bpy.props import FloatProperty
class SmartProject(Operator):
- '''This script projection unwraps the selected faces of a mesh. it operates on all selected mesh objects, and can be used unwrap selected faces, or all faces.'''
+ '''This script projection unwraps the selected faces of a mesh. ''' \
+ '''it operates on all selected mesh objects, and can be used unwrap selected faces, or all faces'''
bl_idname = "uv.smart_project"
bl_label = "Smart UV Project"
bl_options = {'REGISTER', 'UNDO'}
diff --git a/release/scripts/startup/bl_operators/view3d.py b/release/scripts/startup/bl_operators/view3d.py
new file mode 100644
index 00000000000..805f2b5105b
--- /dev/null
+++ b/release/scripts/startup/bl_operators/view3d.py
@@ -0,0 +1,77 @@
+# ##### BEGIN GPL LICENSE BLOCK #####
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# ##### END GPL LICENSE BLOCK #####
+
+# <pep8-80 compliant>
+
+import bpy
+from bpy.types import Operator
+
+
+class VIEW3D_OT_edit_mesh_extrude_individual_move(Operator):
+ "Extrude individual elements and move"
+ bl_label = "Extrude Individual and Move"
+ bl_idname = "view3d.edit_mesh_extrude_individual_move"
+
+ def execute(self, context):
+ mesh = context.object.data
+ select_mode = context.tool_settings.mesh_select_mode
+
+ totface = mesh.total_face_sel
+ totedge = mesh.total_edge_sel
+ # totvert = mesh.total_vert_sel
+
+ if select_mode[2] and totface == 1:
+ bpy.ops.mesh.extrude_region_move('INVOKE_REGION_WIN', TRANSFORM_OT_translate={"constraint_orientation": 'NORMAL', "constraint_axis": (False, False, True)})
+ elif select_mode[2] and totface > 1:
+ bpy.ops.mesh.extrude_faces_move('INVOKE_REGION_WIN')
+ elif select_mode[1] and totedge >= 1:
+ bpy.ops.mesh.extrude_edges_move('INVOKE_REGION_WIN')
+ else:
+ bpy.ops.mesh.extrude_vertices_move('INVOKE_REGION_WIN')
+
+ # ignore return from operators above because they are 'RUNNING_MODAL', and cause this one not to be freed. [#24671]
+ return {'FINISHED'}
+
+ def invoke(self, context, event):
+ return self.execute(context)
+
+
+class VIEW3D_OT_edit_mesh_extrude_move(Operator):
+ "Extrude and move along normals"
+ bl_label = "Extrude and Move on Normals"
+ bl_idname = "view3d.edit_mesh_extrude_move_normal"
+
+ def execute(self, context):
+ mesh = context.object.data
+
+ totface = mesh.total_face_sel
+ totedge = mesh.total_edge_sel
+ # totvert = mesh.total_vert_sel
+
+ if totface >= 1:
+ bpy.ops.mesh.extrude_region_move('INVOKE_REGION_WIN', TRANSFORM_OT_translate={"constraint_orientation": 'NORMAL', "constraint_axis": (False, False, True)})
+ elif totedge == 1:
+ bpy.ops.mesh.extrude_region_move('INVOKE_REGION_WIN', TRANSFORM_OT_translate={"constraint_orientation": 'NORMAL', "constraint_axis": (True, True, False)})
+ else:
+ bpy.ops.mesh.extrude_region_move('INVOKE_REGION_WIN')
+
+ # ignore return from operators above because they are 'RUNNING_MODAL', and cause this one not to be freed. [#24671]
+ return {'FINISHED'}
+
+ def invoke(self, context, event):
+ return self.execute(context)
diff --git a/release/scripts/startup/bl_operators/wm.py b/release/scripts/startup/bl_operators/wm.py
index 861255f167f..fd2b14658ad 100644
--- a/release/scripts/startup/bl_operators/wm.py
+++ b/release/scripts/startup/bl_operators/wm.py
@@ -172,7 +172,7 @@ class BRUSH_OT_active_index_set(Operator):
class WM_OT_context_set_boolean(Operator):
- '''Set a context value.'''
+ '''Set a context value'''
bl_idname = "wm.context_set_boolean"
bl_label = "Context Set Boolean"
bl_options = {'UNDO', 'INTERNAL'}
@@ -188,7 +188,7 @@ class WM_OT_context_set_boolean(Operator):
class WM_OT_context_set_int(Operator): # same as enum
- '''Set a context value.'''
+ '''Set a context value'''
bl_idname = "wm.context_set_int"
bl_label = "Context Set"
bl_options = {'UNDO', 'INTERNAL'}
@@ -205,7 +205,7 @@ class WM_OT_context_set_int(Operator): # same as enum
class WM_OT_context_scale_int(Operator):
- '''Scale an int context value.'''
+ '''Scale an int context value'''
bl_idname = "wm.context_scale_int"
bl_label = "Context Set"
bl_options = {'UNDO', 'INTERNAL'}
@@ -248,7 +248,7 @@ class WM_OT_context_scale_int(Operator):
class WM_OT_context_set_float(Operator): # same as enum
- '''Set a context value.'''
+ '''Set a context value'''
bl_idname = "wm.context_set_float"
bl_label = "Context Set Float"
bl_options = {'UNDO', 'INTERNAL'}
@@ -265,7 +265,7 @@ class WM_OT_context_set_float(Operator): # same as enum
class WM_OT_context_set_string(Operator): # same as enum
- '''Set a context value.'''
+ '''Set a context value'''
bl_idname = "wm.context_set_string"
bl_label = "Context Set String"
bl_options = {'UNDO', 'INTERNAL'}
@@ -281,7 +281,7 @@ class WM_OT_context_set_string(Operator): # same as enum
class WM_OT_context_set_enum(Operator):
- '''Set a context value.'''
+ '''Set a context value'''
bl_idname = "wm.context_set_enum"
bl_label = "Context Set Enum"
bl_options = {'UNDO', 'INTERNAL'}
@@ -297,7 +297,7 @@ class WM_OT_context_set_enum(Operator):
class WM_OT_context_set_value(Operator):
- '''Set a context value.'''
+ '''Set a context value'''
bl_idname = "wm.context_set_value"
bl_label = "Context Set Value"
bl_options = {'UNDO', 'INTERNAL'}
@@ -318,7 +318,7 @@ class WM_OT_context_set_value(Operator):
class WM_OT_context_toggle(Operator):
- '''Toggle a context value.'''
+ '''Toggle a context value'''
bl_idname = "wm.context_toggle"
bl_label = "Context Toggle"
bl_options = {'UNDO', 'INTERNAL'}
@@ -337,7 +337,7 @@ class WM_OT_context_toggle(Operator):
class WM_OT_context_toggle_enum(Operator):
- '''Toggle a context value.'''
+ '''Toggle a context value'''
bl_idname = "wm.context_toggle_enum"
bl_label = "Context Toggle Values"
bl_options = {'UNDO', 'INTERNAL'}
@@ -371,7 +371,7 @@ class WM_OT_context_toggle_enum(Operator):
class WM_OT_context_cycle_int(Operator):
'''Set a context value. Useful for cycling active material, '''
- '''vertex keys, groups' etc.'''
+ '''vertex keys, groups' etc'''
bl_idname = "wm.context_cycle_int"
bl_label = "Context Int Cycle"
bl_options = {'UNDO', 'INTERNAL'}
@@ -405,7 +405,7 @@ class WM_OT_context_cycle_int(Operator):
class WM_OT_context_cycle_enum(Operator):
- '''Toggle a context value.'''
+ '''Toggle a context value'''
bl_idname = "wm.context_cycle_enum"
bl_label = "Context Enum Cycle"
bl_options = {'UNDO', 'INTERNAL'}
@@ -458,7 +458,7 @@ class WM_OT_context_cycle_enum(Operator):
class WM_OT_context_cycle_array(Operator):
'''Set a context array value.
- Useful for cycling the active mesh edit mode.'''
+ Useful for cycling the active mesh edit mode'''
bl_idname = "wm.context_cycle_array"
bl_label = "Context Array Cycle"
bl_options = {'UNDO', 'INTERNAL'}
@@ -518,7 +518,7 @@ class WM_OT_context_menu_enum(Operator):
class WM_OT_context_set_id(Operator):
- '''Toggle a context value.'''
+ '''Toggle a context value'''
bl_idname = "wm.context_set_id"
bl_label = "Set Library ID"
bl_options = {'UNDO', 'INTERNAL'}
@@ -1179,3 +1179,718 @@ class WM_OT_copy_prev_settings(Operator):
return {'FINISHED'}
return {'CANCELLED'}
+
+
+class WM_OT_keyconfig_test(Operator):
+ "Test keyconfig for conflicts"
+ bl_idname = "wm.keyconfig_test"
+ bl_label = "Test Key Configuration for Conflicts"
+
+ def testEntry(self, kc, entry, src=None, parent=None):
+ result = False
+
+ def kmistr(kmi):
+ if km.is_modal:
+ s = ["kmi = km.keymap_items.new_modal(\'%s\', \'%s\', \'%s\'" % (kmi.propvalue, kmi.type, kmi.value)]
+ else:
+ s = ["kmi = km.keymap_items.new(\'%s\', \'%s\', \'%s\'" % (kmi.idname, kmi.type, kmi.value)]
+
+ if kmi.any:
+ s.append(", any=True")
+ else:
+ if kmi.shift:
+ s.append(", shift=True")
+ if kmi.ctrl:
+ s.append(", ctrl=True")
+ if kmi.alt:
+ s.append(", alt=True")
+ if kmi.oskey:
+ s.append(", oskey=True")
+ if kmi.key_modifier and kmi.key_modifier != 'NONE':
+ s.append(", key_modifier=\'%s\'" % kmi.key_modifier)
+
+ s.append(")\n")
+
+ props = kmi.properties
+
+ if props is not None:
+ export_properties("kmi.properties", props, s)
+
+ return "".join(s).strip()
+
+ idname, spaceid, regionid, children = entry
+
+ km = kc.keymaps.find(idname, space_type=spaceid, region_type=regionid)
+
+ if km:
+ km = km.active()
+
+ if src:
+ for item in km.keymap_items:
+ if src.compare(item):
+ print("===========")
+ print(parent.name)
+ print(kmistr(src))
+ print(km.name)
+ print(kmistr(item))
+ result = True
+
+ for child in children:
+ if self.testEntry(kc, child, src, parent):
+ result = True
+ else:
+ for i in range(len(km.keymap_items)):
+ src = km.keymap_items[i]
+
+ for child in children:
+ if self.testEntry(kc, child, src, km):
+ result = True
+
+ for j in range(len(km.keymap_items) - i - 1):
+ item = km.keymap_items[j + i + 1]
+ if src.compare(item):
+ print("===========")
+ print(km.name)
+ print(kmistr(src))
+ print(kmistr(item))
+ result = True
+
+ for child in children:
+ if self.testEntry(kc, child):
+ result = True
+
+ return result
+
+ def testConfig(self, kc):
+ result = False
+ for entry in KM_HIERARCHY:
+ if self.testEntry(kc, entry):
+ result = True
+ return result
+
+ def execute(self, context):
+ wm = context.window_manager
+ kc = wm.keyconfigs.default
+
+ if self.testConfig(kc):
+ print("CONFLICT")
+
+ return {'FINISHED'}
+
+
+def _string_value(value):
+ if isinstance(value, str) or isinstance(value, bool) or isinstance(value, float) or isinstance(value, int):
+ result = repr(value)
+ elif getattr(value, '__len__', False):
+ return repr(list(value))
+ else:
+ print("Export key configuration: can't write ", value)
+
+ return result
+
+
+class WM_OT_keyconfig_import(Operator):
+ "Import key configuration from a python script"
+ bl_idname = "wm.keyconfig_import"
+ bl_label = "Import Key Configuration..."
+
+ filepath = StringProperty(
+ name="File Path",
+ description="Filepath to write file to",
+ default="keymap.py",
+ )
+ filter_folder = BoolProperty(
+ name="Filter folders",
+ default=True,
+ options={'HIDDEN'},
+ )
+ filter_text = BoolProperty(
+ name="Filter text",
+ default=True,
+ options={'HIDDEN'},
+ )
+ filter_python = BoolProperty(
+ name="Filter python",
+ default=True,
+ options={'HIDDEN'},
+ )
+ keep_original = BoolProperty(
+ name="Keep original",
+ description="Keep original file after copying to configuration folder",
+ default=True,
+ )
+
+ def execute(self, context):
+ from os.path import basename
+ import shutil
+
+ if not self.filepath:
+ self.report({'ERROR'}, "Filepath not set")
+ return {'CANCELLED'}
+
+ config_name = basename(self.filepath)
+
+ path = bpy.utils.user_resource('SCRIPTS', os.path.join("presets", "keyconfig"), create=True)
+ path = os.path.join(path, config_name)
+
+ try:
+ if self.keep_original:
+ shutil.copy(self.filepath, path)
+ else:
+ shutil.move(self.filepath, path)
+ except Exception as e:
+ self.report({'ERROR'}, "Installing keymap failed: %s" % e)
+ return {'CANCELLED'}
+
+ # sneaky way to check we're actually running the code.
+ bpy.utils.keyconfig_set(path)
+
+ return {'FINISHED'}
+
+ def invoke(self, context, event):
+ wm = context.window_manager
+ wm.fileselect_add(self)
+ return {'RUNNING_MODAL'}
+
+# This operator is also used by interaction presets saving - AddPresetBase
+
+
+class WM_OT_keyconfig_export(Operator):
+ "Export key configuration to a python script"
+ bl_idname = "wm.keyconfig_export"
+ bl_label = "Export Key Configuration..."
+
+ filepath = StringProperty(
+ name="File Path",
+ description="Filepath to write file to",
+ default="keymap.py",
+ )
+ filter_folder = BoolProperty(
+ name="Filter folders",
+ default=True,
+ options={'HIDDEN'},
+ )
+ filter_text = BoolProperty(
+ name="Filter text",
+ default=True,
+ options={'HIDDEN'},
+ )
+ filter_python = BoolProperty(
+ name="Filter python",
+ default=True,
+ options={'HIDDEN'},
+ )
+
+ def execute(self, context):
+ if not self.filepath:
+ raise Exception("Filepath not set")
+
+ if not self.filepath.endswith('.py'):
+ self.filepath += '.py'
+
+ f = open(self.filepath, "w")
+ if not f:
+ raise Exception("Could not open file")
+
+ wm = context.window_manager
+ kc = wm.keyconfigs.active
+
+ f.write("import bpy\n")
+ f.write("import os\n\n")
+ f.write("wm = bpy.context.window_manager\n")
+ f.write("kc = wm.keyconfigs.new(os.path.splitext(os.path.basename(__file__))[0])\n\n") # keymap must be created by caller
+
+ # Generate a list of keymaps to export:
+ #
+ # First add all user_modified keymaps (found in keyconfigs.user.keymaps list),
+ # then add all remaining keymaps from the currently active custom keyconfig.
+ #
+ # This will create a final list of keymaps that can be used as a 'diff' against
+ # the default blender keyconfig, recreating the current setup from a fresh blender
+ # without needing to export keymaps which haven't been edited.
+
+ class FakeKeyConfig():
+ keymaps = []
+ edited_kc = FakeKeyConfig()
+ for km in wm.keyconfigs.user.keymaps:
+ if km.is_user_modified:
+ edited_kc.keymaps.append(km)
+ # merge edited keymaps with non-default keyconfig, if it exists
+ if kc != wm.keyconfigs.default:
+ export_keymaps = _merge_keymaps(edited_kc, kc)
+ else:
+ export_keymaps = _merge_keymaps(edited_kc, edited_kc)
+
+ for km, kc_x in export_keymaps:
+
+ km = km.active()
+
+ f.write("# Map %s\n" % km.name)
+ f.write("km = kc.keymaps.new('%s', space_type='%s', region_type='%s', modal=%s)\n\n" % (km.name, km.space_type, km.region_type, km.is_modal))
+ for kmi in km.keymap_items:
+ if km.is_modal:
+ f.write("kmi = km.keymap_items.new_modal('%s', '%s', '%s'" % (kmi.propvalue, kmi.type, kmi.value))
+ else:
+ f.write("kmi = km.keymap_items.new('%s', '%s', '%s'" % (kmi.idname, kmi.type, kmi.value))
+ if kmi.any:
+ f.write(", any=True")
+ else:
+ if kmi.shift:
+ f.write(", shift=True")
+ if kmi.ctrl:
+ f.write(", ctrl=True")
+ if kmi.alt:
+ f.write(", alt=True")
+ if kmi.oskey:
+ f.write(", oskey=True")
+ if kmi.key_modifier and kmi.key_modifier != 'NONE':
+ f.write(", key_modifier='%s'" % kmi.key_modifier)
+ f.write(")\n")
+
+ props = kmi.properties
+
+ if props is not None:
+ f.write("".join(export_properties("kmi.properties", props)))
+
+ f.write("\n")
+
+ f.close()
+
+ return {'FINISHED'}
+
+ def invoke(self, context, event):
+ wm = context.window_manager
+ wm.fileselect_add(self)
+ return {'RUNNING_MODAL'}
+
+
+class WM_OT_keymap_restore(Operator):
+ "Restore key map(s)"
+ bl_idname = "wm.keymap_restore"
+ bl_label = "Restore Key Map(s)"
+
+ all = BoolProperty(
+ name="All Keymaps",
+ description="Restore all keymaps to default",
+ )
+
+ def execute(self, context):
+ wm = context.window_manager
+
+ if self.all:
+ for km in wm.keyconfigs.user.keymaps:
+ km.restore_to_default()
+ else:
+ km = context.keymap
+ km.restore_to_default()
+
+ return {'FINISHED'}
+
+
+class WM_OT_keyitem_restore(Operator):
+ "Restore key map item"
+ bl_idname = "wm.keyitem_restore"
+ bl_label = "Restore Key Map Item"
+
+ item_id = IntProperty(
+ name="Item Identifier",
+ description="Identifier of the item to remove",
+ )
+
+ @classmethod
+ def poll(cls, context):
+ keymap = getattr(context, "keymap", None)
+ return keymap
+
+ def execute(self, context):
+ km = context.keymap
+ kmi = km.keymap_items.from_id(self.item_id)
+
+ if (not kmi.is_user_defined) and kmi.is_user_modified:
+ km.restore_item_to_default(kmi)
+
+ return {'FINISHED'}
+
+
+class WM_OT_keyitem_add(Operator):
+ "Add key map item"
+ bl_idname = "wm.keyitem_add"
+ bl_label = "Add Key Map Item"
+
+ def execute(self, context):
+ km = context.keymap
+
+ if km.is_modal:
+ km.keymap_items.new_modal("", 'A', 'PRESS') # kmi
+ else:
+ km.keymap_items.new("none", 'A', 'PRESS') # kmi
+
+ # clear filter and expand keymap so we can see the newly added item
+ if context.space_data.filter_text != "":
+ context.space_data.filter_text = ""
+ km.show_expanded_items = True
+ km.show_expanded_children = True
+
+ return {'FINISHED'}
+
+
+class WM_OT_keyitem_remove(Operator):
+ "Remove key map item"
+ bl_idname = "wm.keyitem_remove"
+ bl_label = "Remove Key Map Item"
+
+ item_id = IntProperty(
+ name="Item Identifier",
+ description="Identifier of the item to remove",
+ )
+
+ @classmethod
+ def poll(cls, context):
+ return hasattr(context, "keymap")
+
+ def execute(self, context):
+ km = context.keymap
+ kmi = km.keymap_items.from_id(self.item_id)
+ km.keymap_items.remove(kmi)
+ return {'FINISHED'}
+
+
+class WM_OT_keyconfig_remove(Operator):
+ "Remove key config"
+ bl_idname = "wm.keyconfig_remove"
+ bl_label = "Remove Key Config"
+
+ @classmethod
+ def poll(cls, context):
+ wm = context.window_manager
+ keyconf = wm.keyconfigs.active
+ return keyconf and keyconf.is_user_defined
+
+ def execute(self, context):
+ wm = context.window_manager
+ keyconfig = wm.keyconfigs.active
+ wm.keyconfigs.remove(keyconfig)
+ return {'FINISHED'}
+
+
+class WM_OT_operator_cheat_sheet(Operator):
+ bl_idname = "wm.operator_cheat_sheet"
+ bl_label = "Operator Cheat Sheet"
+
+ def execute(self, context):
+ op_strings = []
+ tot = 0
+ for op_module_name in dir(bpy.ops):
+ op_module = getattr(bpy.ops, op_module_name)
+ for op_submodule_name in dir(op_module):
+ op = getattr(op_module, op_submodule_name)
+ text = repr(op)
+ if text.split("\n")[-1].startswith('bpy.ops.'):
+ op_strings.append(text)
+ tot += 1
+
+ op_strings.append('')
+
+ textblock = bpy.data.texts.new("OperatorList.txt")
+ textblock.write('# %d Operators\n\n' % tot)
+ textblock.write('\n'.join(op_strings))
+ self.report({'INFO'}, "See OperatorList.txt textblock")
+ return {'FINISHED'}
+
+
+class WM_OT_addon_enable(Operator):
+ "Enable an addon"
+ bl_idname = "wm.addon_enable"
+ bl_label = "Enable Add-On"
+
+ module = StringProperty(
+ name="Module",
+ description="Module name of the addon to enable",
+ )
+
+ def execute(self, context):
+ import addon_utils
+
+ mod = addon_utils.enable(self.module)
+
+ if mod:
+ info = addon_utils.module_bl_info(mod)
+
+ info_ver = info.get("blender", (0, 0, 0))
+
+ if info_ver > bpy.app.version:
+ self.report({'WARNING'}, ("This script was written Blender "
+ "version %d.%d.%d and might not "
+ "function (correctly), "
+ "though it is enabled") %
+ info_ver)
+ return {'FINISHED'}
+ else:
+ return {'CANCELLED'}
+
+
+class WM_OT_addon_disable(Operator):
+ "Disable an addon"
+ bl_idname = "wm.addon_disable"
+ bl_label = "Disable Add-On"
+
+ module = StringProperty(
+ name="Module",
+ description="Module name of the addon to disable",
+ )
+
+ def execute(self, context):
+ import addon_utils
+
+ addon_utils.disable(self.module)
+ return {'FINISHED'}
+
+
+class WM_OT_addon_install(Operator):
+ "Install an addon"
+ bl_idname = "wm.addon_install"
+ bl_label = "Install Add-On..."
+
+ overwrite = BoolProperty(
+ name="Overwrite",
+ description="Remove existing addons with the same ID",
+ default=True,
+ )
+ target = EnumProperty(
+ name="Target Path",
+ items=(('DEFAULT', "Default", ""),
+ ('PREFS', "User Prefs", "")),
+ )
+
+ filepath = StringProperty(
+ name="File Path",
+ description="File path to write file to",
+ )
+ filter_folder = BoolProperty(
+ name="Filter folders",
+ default=True,
+ options={'HIDDEN'},
+ )
+ filter_python = BoolProperty(
+ name="Filter python",
+ default=True,
+ options={'HIDDEN'},
+ )
+ filter_glob = StringProperty(
+ default="*.py;*.zip",
+ options={'HIDDEN'},
+ )
+
+ @staticmethod
+ def _module_remove(path_addons, module):
+ module = os.path.splitext(module)[0]
+ for f in os.listdir(path_addons):
+ f_base = os.path.splitext(f)[0]
+ if f_base == module:
+ f_full = os.path.join(path_addons, f)
+
+ if os.path.isdir(f_full):
+ os.rmdir(f_full)
+ else:
+ os.remove(f_full)
+
+ def execute(self, context):
+ import addon_utils
+ import traceback
+ import zipfile
+ import shutil
+
+ pyfile = self.filepath
+
+ if self.target == 'DEFAULT':
+ # dont use bpy.utils.script_paths("addons") because we may not be able to write to it.
+ path_addons = bpy.utils.user_resource('SCRIPTS', "addons", create=True)
+ else:
+ path_addons = bpy.context.user_preferences.filepaths.script_directory
+ if path_addons:
+ path_addons = os.path.join(path_addons, "addons")
+
+ if not path_addons:
+ self.report({'ERROR'}, "Failed to get addons path")
+ return {'CANCELLED'}
+
+ # create dir is if missing.
+ if not os.path.exists(path_addons):
+ os.makedirs(path_addons)
+
+ # Check if we are installing from a target path,
+ # doing so causes 2+ addons of same name or when the same from/to
+ # location is used, removal of the file!
+ addon_path = ""
+ pyfile_dir = os.path.dirname(pyfile)
+ for addon_path in addon_utils.paths():
+ if os.path.samefile(pyfile_dir, addon_path):
+ self.report({'ERROR'}, "Source file is in the addon search path: %r" % addon_path)
+ return {'CANCELLED'}
+ del addon_path
+ del pyfile_dir
+ # done checking for exceptional case
+
+ addons_old = {mod.__name__ for mod in addon_utils.modules(addon_utils.addons_fake_modules)}
+
+ #check to see if the file is in compressed format (.zip)
+ if zipfile.is_zipfile(pyfile):
+ try:
+ file_to_extract = zipfile.ZipFile(pyfile, 'r')
+ except:
+ traceback.print_exc()
+ return {'CANCELLED'}
+
+ if self.overwrite:
+ for f in file_to_extract.namelist():
+ WM_OT_addon_install._module_remove(path_addons, f)
+ else:
+ for f in file_to_extract.namelist():
+ path_dest = os.path.join(path_addons, os.path.basename(f))
+ if os.path.exists(path_dest):
+ self.report({'WARNING'}, "File already installed to %r\n" % path_dest)
+ return {'CANCELLED'}
+
+ try: # extract the file to "addons"
+ file_to_extract.extractall(path_addons)
+
+ # zip files can create this dir with metadata, don't need it
+ macosx_dir = os.path.join(path_addons, '__MACOSX')
+ if os.path.isdir(macosx_dir):
+ shutil.rmtree(macosx_dir)
+
+ except:
+ traceback.print_exc()
+ return {'CANCELLED'}
+
+ else:
+ path_dest = os.path.join(path_addons, os.path.basename(pyfile))
+
+ if self.overwrite:
+ WM_OT_addon_install._module_remove(path_addons, os.path.basename(pyfile))
+ elif os.path.exists(path_dest):
+ self.report({'WARNING'}, "File already installed to %r\n" % path_dest)
+ return {'CANCELLED'}
+
+ #if not compressed file just copy into the addon path
+ try:
+ shutil.copyfile(pyfile, path_dest)
+
+ except:
+ traceback.print_exc()
+ return {'CANCELLED'}
+
+ addons_new = {mod.__name__ for mod in addon_utils.modules(addon_utils.addons_fake_modules)} - addons_old
+ addons_new.discard("modules")
+
+ # disable any addons we may have enabled previously and removed.
+ # this is unlikely but do just incase. bug [#23978]
+ for new_addon in addons_new:
+ addon_utils.disable(new_addon)
+
+ # possible the zip contains multiple addons, we could disallow this
+ # but for now just use the first
+ for mod in addon_utils.modules(addon_utils.addons_fake_modules):
+ if mod.__name__ in addons_new:
+ info = addon_utils.module_bl_info(mod)
+
+ # show the newly installed addon.
+ context.window_manager.addon_filter = 'All'
+ context.window_manager.addon_search = info["name"]
+ break
+
+ # incase a new module path was created to install this addon.
+ bpy.utils.refresh_script_paths()
+
+ # TODO, should not be a warning.
+ # self.report({'WARNING'}, "File installed to '%s'\n" % path_dest)
+ return {'FINISHED'}
+
+ def invoke(self, context, event):
+ wm = context.window_manager
+ wm.fileselect_add(self)
+ return {'RUNNING_MODAL'}
+
+
+class WM_OT_addon_remove(Operator):
+ "Disable an addon"
+ bl_idname = "wm.addon_remove"
+ bl_label = "Remove Add-On"
+
+ module = StringProperty(
+ name="Module",
+ description="Module name of the addon to remove",
+ )
+
+ @staticmethod
+ def path_from_addon(module):
+ import addon_utils
+
+ for mod in addon_utils.modules(addon_utils.addons_fake_modules):
+ if mod.__name__ == module:
+ filepath = mod.__file__
+ if os.path.exists(filepath):
+ if os.path.splitext(os.path.basename(filepath))[0] == "__init__":
+ return os.path.dirname(filepath), True
+ else:
+ return filepath, False
+ return None, False
+
+ def execute(self, context):
+ import addon_utils
+
+ path, isdir = WM_OT_addon_remove.path_from_addon(self.module)
+ if path is None:
+ self.report('WARNING', "Addon path %r could not be found" % path)
+ return {'CANCELLED'}
+
+ # incase its enabled
+ addon_utils.disable(self.module)
+
+ import shutil
+ if isdir:
+ shutil.rmtree(path)
+ else:
+ os.remove(path)
+
+ context.area.tag_redraw()
+ return {'FINISHED'}
+
+ # lame confirmation check
+ def draw(self, context):
+ self.layout.label(text="Remove Addon: %r?" % self.module)
+ path, isdir = WM_OT_addon_remove.path_from_addon(self.module)
+ self.layout.label(text="Path: %r" % path)
+
+ def invoke(self, context, event):
+ wm = context.window_manager
+ return wm.invoke_props_dialog(self, width=600)
+
+
+class WM_OT_addon_expand(Operator):
+ "Display more information on this add-on"
+ bl_idname = "wm.addon_expand"
+ bl_label = ""
+
+ module = StringProperty(
+ name="Module",
+ description="Module name of the addon to expand",
+ )
+
+ def execute(self, context):
+ import addon_utils
+
+ module_name = self.module
+
+ # unlikely to fail, module should have already been imported
+ try:
+ # mod = __import__(module_name)
+ mod = addon_utils.addons_fake_modules.get(module_name)
+ except:
+ import traceback
+ traceback.print_exc()
+ return {'CANCELLED'}
+
+ info = addon_utils.module_bl_info(mod)
+ info["show_expanded"] = not info["show_expanded"]
+ return {'FINISHED'}
diff --git a/release/scripts/startup/bl_ui/__init__.py b/release/scripts/startup/bl_ui/__init__.py
index 778571632b2..2e54631afa3 100644
--- a/release/scripts/startup/bl_ui/__init__.py
+++ b/release/scripts/startup/bl_ui/__init__.py
@@ -96,7 +96,7 @@ def register():
items_unique = set()
- for mod in addon_utils.modules(space_userpref.USERPREF_PT_addons._addons_fake_modules):
+ for mod in addon_utils.modules(addon_utils.addons_fake_modules):
info = addon_utils.module_bl_info(mod)
items_unique.add(info["category"])
diff --git a/release/scripts/startup/bl_ui/properties_animviz.py b/release/scripts/startup/bl_ui/properties_animviz.py
index d75541feca0..3b33a7ccc61 100644
--- a/release/scripts/startup/bl_ui/properties_animviz.py
+++ b/release/scripts/startup/bl_ui/properties_animviz.py
@@ -23,7 +23,6 @@
# NOTE:
# The specialised panel types are derived in their respective UI modules
# dont register these classes since they are only helpers.
-from blf import gettext as _
class MotionPathButtonsPanel():
@@ -44,23 +43,23 @@ class MotionPathButtonsPanel():
col = split.column()
sub = col.column(align=True)
if (mps.type == 'CURRENT_FRAME'):
- sub.prop(mps, "frame_before", text=_("Before"))
- sub.prop(mps, "frame_after", text=_("After"))
+ sub.prop(mps, "frame_before", text="Before")
+ sub.prop(mps, "frame_after", text="After")
elif (mps.type == 'RANGE'):
- sub.prop(mps, "frame_start", text=_("Start"))
- sub.prop(mps, "frame_end", text=_("End"))
+ sub.prop(mps, "frame_start", text="Start")
+ sub.prop(mps, "frame_end", text="End")
- sub.prop(mps, "frame_step", text=_("Step"))
+ sub.prop(mps, "frame_step", text="Step")
if bones:
col.row().prop(mps, "bake_location", expand=True)
col = split.column()
- col.label(text=_("Display:"))
- col.prop(mps, "show_frame_numbers", text=_("Frame Numbers"))
- col.prop(mps, "show_keyframe_highlight", text=_("Keyframes"))
+ col.label(text="Display:")
+ col.prop(mps, "show_frame_numbers", text="Frame Numbers")
+ col.prop(mps, "show_keyframe_highlight", text="Keyframes")
if bones:
- col.prop(mps, "show_keyframe_action_all", text=_("+ Non-Grouped Keyframes"))
- col.prop(mps, "show_keyframe_numbers", text=_("Keyframe Numbers"))
+ col.prop(mps, "show_keyframe_action_all", text="+ Non-Grouped Keyframes")
+ col.prop(mps, "show_keyframe_numbers", text="Keyframe Numbers")
# FIXME: this panel still needs to be ported so that it will work correctly with animviz
@@ -83,16 +82,16 @@ class OnionSkinButtonsPanel():
sub = col.column(align=True)
if arm.ghost_type == 'RANGE':
- sub.prop(arm, "ghost_frame_start", text=_("Start"))
- sub.prop(arm, "ghost_frame_end", text=_("End"))
- sub.prop(arm, "ghost_size", text=_("Step"))
+ sub.prop(arm, "ghost_frame_start", text="Start")
+ sub.prop(arm, "ghost_frame_end", text="End")
+ sub.prop(arm, "ghost_size", text="Step")
elif arm.ghost_type == 'CURRENT_FRAME':
- sub.prop(arm, "ghost_step", text=_("Range"))
- sub.prop(arm, "ghost_size", text=_("Step"))
+ sub.prop(arm, "ghost_step", text="Range")
+ sub.prop(arm, "ghost_size", text="Step")
col = split.column()
- col.label(text=_("Display:"))
- col.prop(arm, "show_only_ghost_selected", text=_("Selected Only"))
+ col.label(text="Display:")
+ col.prop(arm, "show_only_ghost_selected", text="Selected Only")
if __name__ == "__main__": # only for live edit.
import bpy
diff --git a/release/scripts/startup/bl_ui/properties_data_armature.py b/release/scripts/startup/bl_ui/properties_data_armature.py
index 97783c09d4b..61093abe814 100644
--- a/release/scripts/startup/bl_ui/properties_data_armature.py
+++ b/release/scripts/startup/bl_ui/properties_data_armature.py
@@ -20,7 +20,6 @@
import bpy
from bpy.types import Panel, Menu
from rna_prop_ui import PropertyPanel
-from blf import gettext as _
class ArmatureButtonsPanel():
@@ -61,16 +60,16 @@ class DATA_PT_skeleton(ArmatureButtonsPanel, Panel):
layout.prop(arm, "pose_position", expand=True)
col = layout.column()
- col.label(text=_("Layers:"))
+ col.label(text="Layers:")
col.prop(arm, "layers", text="")
- col.label(text=_("Protected Layers:"))
+ col.label(text="Protected Layers:")
col.prop(arm, "layers_protected", text="")
layout.label(text="Deform:")
flow = layout.column_flow()
- flow.prop(arm, "use_deform_vertex_groups", text=_("Vertex Groups"))
- flow.prop(arm, "use_deform_envelopes", text=_("Envelopes"))
- flow.prop(arm, "use_deform_preserve_volume", text=_("Quaternion"))
+ flow.prop(arm, "use_deform_vertex_groups", text="Vertex Groups")
+ flow.prop(arm, "use_deform_envelopes", text="Envelopes")
+ flow.prop(arm, "use_deform_preserve_volume", text="Quaternion")
if context.scene.render.engine == "BLENDER_GAME":
layout.row().prop(arm, "vert_deformer", expand=True)
@@ -90,15 +89,15 @@ class DATA_PT_display(ArmatureButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.prop(arm, "show_names", text=_("Names"))
- col.prop(arm, "show_axes", text=_("Axes"))
- col.prop(arm, "show_bone_custom_shapes", text=_("Shapes"))
+ col.prop(arm, "show_names", text="Names")
+ col.prop(arm, "show_axes", text="Axes")
+ col.prop(arm, "show_bone_custom_shapes", text="Shapes")
col = split.column()
- col.prop(arm, "show_group_colors", text=_("Colors"))
+ col.prop(arm, "show_group_colors", text="Colors")
if ob:
- col.prop(ob, "show_x_ray", text=_("X-Ray"))
- col.prop(arm, "use_deform_delay", text=_("Delay Refresh"))
+ col.prop(ob, "show_x_ray", text="X-Ray")
+ col.prop(arm, "use_deform_delay", text="Delay Refresh")
class DATA_PT_bone_group_specials(Menu):
@@ -162,12 +161,12 @@ class DATA_PT_bone_groups(ArmatureButtonsPanel, Panel):
row.active = (ob.proxy is None)
sub = row.row(align=True)
- sub.operator("pose.group_assign", text=_("Assign"))
- sub.operator("pose.group_unassign", text=_("Remove")) # row.operator("pose.bone_group_remove_from", text=_("Remove"))
+ sub.operator("pose.group_assign", text="Assign")
+ sub.operator("pose.group_unassign", text="Remove") # row.operator("pose.bone_group_remove_from", text="Remove")
sub = row.row(align=True)
- sub.operator("pose.group_select", text=_("Select"))
- sub.operator("pose.group_deselect", text=_("Deselect"))
+ sub.operator("pose.group_select", text="Select")
+ sub.operator("pose.group_deselect", text="Deselect")
class DATA_PT_pose_library(ArmatureButtonsPanel, Panel):
@@ -231,16 +230,16 @@ class DATA_PT_ghost(ArmatureButtonsPanel, Panel):
col = split.column(align=True)
if arm.ghost_type == 'RANGE':
- col.prop(arm, "ghost_frame_start", text=_("Start"))
- col.prop(arm, "ghost_frame_end", text=_("End"))
- col.prop(arm, "ghost_size", text=_("Step"))
+ col.prop(arm, "ghost_frame_start", text="Start")
+ col.prop(arm, "ghost_frame_end", text="End")
+ col.prop(arm, "ghost_size", text="Step")
elif arm.ghost_type == 'CURRENT_FRAME':
- col.prop(arm, "ghost_step", text=_("Range"))
- col.prop(arm, "ghost_size", text=_("Step"))
+ col.prop(arm, "ghost_step", text="Range")
+ col.prop(arm, "ghost_size", text="Step")
col = split.column()
- col.label(text=_("Display:"))
- col.prop(arm, "show_only_ghost_selected", text=_("Selected Only"))
+ col.label(text="Display:")
+ col.prop(arm, "show_only_ghost_selected", text="Selected Only")
class DATA_PT_iksolver_itasc(ArmatureButtonsPanel, Panel):
@@ -264,7 +263,7 @@ class DATA_PT_iksolver_itasc(ArmatureButtonsPanel, Panel):
layout.prop(itasc, "mode", expand=True)
simulation = (itasc.mode == 'SIMULATION')
if simulation:
- layout.label(text=_("Reiteration:"))
+ layout.label(text="Reiteration:")
layout.prop(itasc, "reiteration_method", expand=True)
row = layout.row()
@@ -276,8 +275,8 @@ class DATA_PT_iksolver_itasc(ArmatureButtonsPanel, Panel):
layout.prop(itasc, "use_auto_step")
row = layout.row()
if itasc.use_auto_step:
- row.prop(itasc, "step_min", text=_("Min"))
- row.prop(itasc, "step_max", text=_("Max"))
+ row.prop(itasc, "step_min", text="Min")
+ row.prop(itasc, "step_max", text="Max")
else:
row.prop(itasc, "step_count")
@@ -287,7 +286,7 @@ class DATA_PT_iksolver_itasc(ArmatureButtonsPanel, Panel):
layout.prop(itasc, "velocity_max")
if itasc.solver == 'DLS':
row = layout.row()
- row.prop(itasc, "damping_max", text=_("Damp"), slider=True)
+ row.prop(itasc, "damping_max", text="Damp", slider=True)
row.prop(itasc, "damping_epsilon", text="Eps", slider=True)
from bl_ui.properties_animviz import (
@@ -315,8 +314,8 @@ class DATA_PT_motion_paths(MotionPathButtonsPanel, Panel):
layout.separator()
split = layout.split()
- split.operator("pose.paths_calculate", text=_("Calculate Paths"))
- split.operator("pose.paths_clear", text=_("Clear Paths"))
+ split.operator("pose.paths_calculate", text="Calculate Paths")
+ split.operator("pose.paths_clear", text="Clear Paths")
class DATA_PT_onion_skinning(OnionSkinButtonsPanel): # , Panel): # inherit from panel when ready
diff --git a/release/scripts/startup/bl_ui/properties_data_bone.py b/release/scripts/startup/bl_ui/properties_data_bone.py
index 54045cd7d6e..b3eaf88d5bf 100644
--- a/release/scripts/startup/bl_ui/properties_data_bone.py
+++ b/release/scripts/startup/bl_ui/properties_data_bone.py
@@ -21,7 +21,6 @@
import bpy
from bpy.types import Panel
from rna_prop_ui import PropertyPanel
-from blf import gettext as _
class BoneButtonsPanel():
@@ -77,14 +76,14 @@ class BONE_PT_transform(BoneButtonsPanel, Panel):
col = row.column()
if pchan.rotation_mode == 'QUATERNION':
- col.prop(pchan, "rotation_quaternion", text=_("Rotation"))
+ col.prop(pchan, "rotation_quaternion", text="Rotation")
elif pchan.rotation_mode == 'AXIS_ANGLE':
- #col.label(text=_("Rotation"))
- #col.prop(pchan, "rotation_angle", text=_("Angle"))
- #col.prop(pchan, "rotation_axis", text=_("Axis"))
- col.prop(pchan, "rotation_axis_angle", text=_("Rotation"))
+ #col.label(text="Rotation")
+ #col.prop(pchan, "rotation_angle", text="Angle")
+ #col.prop(pchan, "rotation_axis", text="Axis")
+ col.prop(pchan, "rotation_axis_angle", text="Rotation")
else:
- col.prop(pchan, "rotation_euler", text=_("Rotation"))
+ col.prop(pchan, "rotation_euler", text="Rotation")
row.column().prop(pchan, "scale")
@@ -98,7 +97,7 @@ class BONE_PT_transform(BoneButtonsPanel, Panel):
col = row.column()
sub = col.column(align=True)
- sub.label(text=_("Roll:"))
+ sub.label(text="Roll:")
sub.prop(bone, "roll", text="")
sub.label()
sub.prop(bone, "lock")
@@ -127,12 +126,12 @@ class BONE_PT_transform_locks(BoneButtonsPanel, Panel):
col = row.column()
if pchan.rotation_mode in {'QUATERNION', 'AXIS_ANGLE'}:
- col.prop(pchan, "lock_rotations_4d", text=_("Lock Rotation"))
+ col.prop(pchan, "lock_rotations_4d", text="Lock Rotation")
if pchan.lock_rotations_4d:
col.prop(pchan, "lock_rotation_w", text="W")
col.prop(pchan, "lock_rotation", text="")
else:
- col.prop(pchan, "lock_rotation", text=_("Rotation"))
+ col.prop(pchan, "lock_rotation", text="Rotation")
row.column().prop(pchan, "lock_scale")
@@ -156,17 +155,17 @@ class BONE_PT_relations(BoneButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Layers:"))
+ col.label(text="Layers:")
col.prop(bone, "layers", text="")
col.separator()
if ob and pchan:
- col.label(text=_("Bone Group:"))
+ col.label(text="Bone Group:")
col.prop_search(pchan, "bone_group", ob.pose, "bone_groups", text="")
col = split.column()
- col.label(text=_("Parent:"))
+ col.label(text="Parent:")
if context.bone:
col.prop(bone, "parent", text="")
else:
@@ -175,11 +174,11 @@ class BONE_PT_relations(BoneButtonsPanel, Panel):
sub = col.column()
sub.active = (bone.parent is not None)
sub.prop(bone, "use_connect")
- sub.prop(bone, "use_inherit_rotation", text=_("Inherit Rotation"))
- sub.prop(bone, "use_inherit_scale", text=_("Inherit Scale"))
+ sub.prop(bone, "use_inherit_rotation", text="Inherit Rotation")
+ sub.prop(bone, "use_inherit_scale", text="Inherit Scale")
sub = col.column()
sub.active = (not bone.parent or not bone.use_connect)
- sub.prop(bone, "use_local_location", text=_("Local Location"))
+ sub.prop(bone, "use_local_location", text="Local Location")
class BONE_PT_display(BoneButtonsPanel, Panel):
@@ -207,16 +206,16 @@ class BONE_PT_display(BoneButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.prop(bone, "show_wire", text=_("Wireframe"))
- col.prop(bone, "hide", text=_("Hide"))
+ col.prop(bone, "show_wire", text="Wireframe")
+ col.prop(bone, "hide", text="Hide")
if pchan:
col = split.column()
- col.label(text=_("Custom Shape:"))
+ col.label(text="Custom Shape:")
col.prop(pchan, "custom_shape", text="")
if pchan.custom_shape:
- col.prop_search(pchan, "custom_shape_transform", ob.pose, "bones", text=_("At"))
+ col.prop_search(pchan, "custom_shape_transform", ob.pose, "bones", text="At")
class BONE_PT_inverse_kinematics(BoneButtonsPanel, Panel):
@@ -242,13 +241,13 @@ class BONE_PT_inverse_kinematics(BoneButtonsPanel, Panel):
split.prop(pchan, "lock_ik_x", icon='LOCKED' if pchan.lock_ik_x else 'UNLOCKED', text="X")
split.active = pchan.is_in_ik_chain
row = split.row()
- row.prop(pchan, "ik_stiffness_x", text=_("Stiffness"), slider=True)
+ row.prop(pchan, "ik_stiffness_x", text="Stiffness", slider=True)
row.active = pchan.lock_ik_x == False and pchan.is_in_ik_chain
split = layout.split(percentage=0.25)
sub = split.row()
- sub.prop(pchan, "use_ik_limit_x", text=_("Limit"))
+ sub.prop(pchan, "use_ik_limit_x", text="Limit")
sub.active = pchan.lock_ik_x == False and pchan.is_in_ik_chain
sub = split.row(align=True)
sub.prop(pchan, "ik_min_x", text="")
@@ -259,13 +258,13 @@ class BONE_PT_inverse_kinematics(BoneButtonsPanel, Panel):
split.prop(pchan, "lock_ik_y", icon='LOCKED' if pchan.lock_ik_y else 'UNLOCKED', text="Y")
split.active = pchan.is_in_ik_chain
row = split.row()
- row.prop(pchan, "ik_stiffness_y", text=_("Stiffness"), slider=True)
+ row.prop(pchan, "ik_stiffness_y", text="Stiffness", slider=True)
row.active = pchan.lock_ik_y == False and pchan.is_in_ik_chain
split = layout.split(percentage=0.25)
sub = split.row()
- sub.prop(pchan, "use_ik_limit_y", text=_("Limit"))
+ sub.prop(pchan, "use_ik_limit_y", text="Limit")
sub.active = pchan.lock_ik_y == False and pchan.is_in_ik_chain
sub = split.row(align=True)
@@ -277,13 +276,13 @@ class BONE_PT_inverse_kinematics(BoneButtonsPanel, Panel):
split.prop(pchan, "lock_ik_z", icon='LOCKED' if pchan.lock_ik_z else 'UNLOCKED', text="Z")
split.active = pchan.is_in_ik_chain
sub = split.row()
- sub.prop(pchan, "ik_stiffness_z", text=_("Stiffness"), slider=True)
+ sub.prop(pchan, "ik_stiffness_z", text="Stiffness", slider=True)
sub.active = pchan.lock_ik_z == False and pchan.is_in_ik_chain
split = layout.split(percentage=0.25)
sub = split.row()
- sub.prop(pchan, "use_ik_limit_z", text=_("Limit"))
+ sub.prop(pchan, "use_ik_limit_z", text="Limit")
sub.active = pchan.lock_ik_z == False and pchan.is_in_ik_chain
sub = split.row(align=True)
sub.prop(pchan, "ik_min_z", text="")
@@ -291,7 +290,7 @@ class BONE_PT_inverse_kinematics(BoneButtonsPanel, Panel):
sub.active = pchan.lock_ik_z == False and pchan.use_ik_limit_z and pchan.is_in_ik_chain
split = layout.split(percentage=0.25)
- split.label(text=_("Stretch:"))
+ split.label(text="Stretch:")
sub = split.row()
sub.prop(pchan, "ik_stretch", text="", slider=True)
sub.active = pchan.is_in_ik_chain
@@ -299,15 +298,15 @@ class BONE_PT_inverse_kinematics(BoneButtonsPanel, Panel):
if ob.pose.ik_solver == 'ITASC':
split = layout.split()
col = split.column()
- col.prop(pchan, "use_ik_rotation_control", text=_("Control Rotation"))
+ col.prop(pchan, "use_ik_rotation_control", text="Control Rotation")
col.active = pchan.is_in_ik_chain
col = split.column()
- col.prop(pchan, "ik_rotation_weight", text=_("Weight"), slider=True)
+ col.prop(pchan, "ik_rotation_weight", text="Weight", slider=True)
col.active = pchan.is_in_ik_chain
# not supported yet
#row = layout.row()
- #row.prop(pchan, "use_ik_linear_control", text=_("Joint Size"))
- #row.prop(pchan, "ik_linear_weight", text=_("Weight"), slider=True)
+ #row.prop(pchan, "use_ik_linear_control", text="Joint Size")
+ #row.prop(pchan, "ik_linear_weight", text="Weight", slider=True)
class BONE_PT_deform(BoneButtonsPanel, Panel):
@@ -335,27 +334,27 @@ class BONE_PT_deform(BoneButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Envelope:"))
+ col.label(text="Envelope:")
sub = col.column(align=True)
- sub.prop(bone, "envelope_distance", text=_("Distance"))
- sub.prop(bone, "envelope_weight", text=_("Weight"))
- col.prop(bone, "use_envelope_multiply", text=_("Multiply"))
+ sub.prop(bone, "envelope_distance", text="Distance")
+ sub.prop(bone, "envelope_weight", text="Weight")
+ col.prop(bone, "use_envelope_multiply", text="Multiply")
sub = col.column(align=True)
- sub.label(text=_("Radius:"))
- sub.prop(bone, "head_radius", text=_("Head"))
- sub.prop(bone, "tail_radius", text=_("Tail"))
+ sub.label(text="Radius:")
+ sub.prop(bone, "head_radius", text="Head")
+ sub.prop(bone, "tail_radius", text="Tail")
col = split.column()
- col.label(text=_("Curved Bones:"))
+ col.label(text="Curved Bones:")
sub = col.column(align=True)
- sub.prop(bone, "bbone_segments", text=_("Segments"))
- sub.prop(bone, "bbone_in", text=_("Ease In"))
- sub.prop(bone, "bbone_out", text=_("Ease Out"))
+ sub.prop(bone, "bbone_segments", text="Segments")
+ sub.prop(bone, "bbone_in", text="Ease In")
+ sub.prop(bone, "bbone_out", text="Ease Out")
- col.label(text=_("Offset:"))
+ col.label(text="Offset:")
col.prop(bone, "use_cyclic_offset")
diff --git a/release/scripts/startup/bl_ui/properties_data_camera.py b/release/scripts/startup/bl_ui/properties_data_camera.py
index 6d6f4c27ddf..5255af40951 100644
--- a/release/scripts/startup/bl_ui/properties_data_camera.py
+++ b/release/scripts/startup/bl_ui/properties_data_camera.py
@@ -20,7 +20,6 @@
import bpy
from bpy.types import Panel
from rna_prop_ui import PropertyPanel
-from blf import gettext as _
class CameraButtonsPanel():
@@ -92,16 +91,16 @@ class DATA_PT_camera(CameraButtonsPanel, Panel):
split = layout.split()
col = split.column(align=True)
- col.label(text=_("Shift:"))
+ col.label(text="Shift:")
col.prop(cam, "shift_x", text="X")
col.prop(cam, "shift_y", text="Y")
col = split.column(align=True)
- col.label(text=_("Clipping:"))
- col.prop(cam, "clip_start", text=_("Start"))
- col.prop(cam, "clip_end", text=_("End"))
+ col.label(text="Clipping:")
+ col.prop(cam, "clip_start", text="Start")
+ col.prop(cam, "clip_end", text="End")
- layout.label(text=_("Depth of Field:"))
+ layout.label(text="Depth of Field:")
split = layout.split()
split.prop(cam, "dof_object", text="")
@@ -110,7 +109,7 @@ class DATA_PT_camera(CameraButtonsPanel, Panel):
if cam.dof_object is not None:
col.enabled = False
- col.prop(cam, "dof_distance", text=_("Distance"))
+ col.prop(cam, "dof_distance", text="Distance")
class DATA_PT_camera_display(CameraButtonsPanel, Panel):
@@ -125,19 +124,19 @@ class DATA_PT_camera_display(CameraButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.prop(cam, "show_limits", text=_("Limits"))
- col.prop(cam, "show_mist", text=_("Mist"))
- col.prop(cam, "show_title_safe", text=_("Title Safe"))
- col.prop(cam, "show_name", text=_("Name"))
+ col.prop(cam, "show_limits", text="Limits")
+ col.prop(cam, "show_mist", text="Mist")
+ col.prop(cam, "show_title_safe", text="Title Safe")
+ col.prop(cam, "show_name", text="Name")
col.prop_menu_enum(cam, "show_guide")
col = split.column()
- col.prop(cam, "draw_size", text=_("Size"))
+ col.prop(cam, "draw_size", text="Size")
col.separator()
- col.prop(cam, "show_passepartout", text=_("Passepartout"))
+ col.prop(cam, "show_passepartout", text="Passepartout")
sub = col.column()
sub.active = cam.show_passepartout
- sub.prop(cam, "passepartout_alpha", text=_("Alpha"), slider=True)
+ sub.prop(cam, "passepartout_alpha", text="Alpha", slider=True)
class DATA_PT_custom_props_camera(CameraButtonsPanel, PropertyPanel, Panel):
diff --git a/release/scripts/startup/bl_ui/properties_data_curve.py b/release/scripts/startup/bl_ui/properties_data_curve.py
index 47051194fc0..2e0b36a7a75 100644
--- a/release/scripts/startup/bl_ui/properties_data_curve.py
+++ b/release/scripts/startup/bl_ui/properties_data_curve.py
@@ -20,7 +20,6 @@
import bpy
from bpy.types import Panel
from rna_prop_ui import PropertyPanel
-from blf import gettext as _
class CurveButtonsPanel():
@@ -68,7 +67,7 @@ class DATA_PT_context_curve(CurveButtonsPanel, Panel):
class DATA_PT_shape_curve(CurveButtonsPanel, Panel):
- bl_label = _("Shape")
+ bl_label = "Shape"
def draw(self, context):
layout = self.layout
@@ -86,17 +85,17 @@ class DATA_PT_shape_curve(CurveButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Resolution:"))
+ col.label(text="Resolution:")
sub = col.column(align=True)
- sub.prop(curve, "resolution_u", text=_("Preview U"))
- sub.prop(curve, "render_resolution_u", text=_("Render U"))
+ sub.prop(curve, "resolution_u", text="Preview U")
+ sub.prop(curve, "render_resolution_u", text="Render U")
if is_curve:
- col.label(text=_("Twisting:"))
+ col.label(text="Twisting:")
col.prop(curve, "twist_mode", text="")
- col.prop(curve, "twist_smooth", text=_("Smooth"))
+ col.prop(curve, "twist_smooth", text="Smooth")
if is_text:
- col.label(text=_("Display:"))
- col.prop(curve, "use_fast_edit", text=_("Fast Editing"))
+ col.label(text="Display:")
+ col.prop(curve, "use_fast_edit", text="Fast Editing")
col = split.column()
@@ -104,15 +103,15 @@ class DATA_PT_shape_curve(CurveButtonsPanel, Panel):
sub = col.column()
sub.label(text="")
sub = col.column(align=True)
- sub.prop(curve, "resolution_v", text=_("Preview V"))
- sub.prop(curve, "render_resolution_v", text=_("Render V"))
+ sub.prop(curve, "resolution_v", text="Preview V")
+ sub.prop(curve, "render_resolution_v", text="Render V")
if (is_curve or is_text):
- col.label(text=_("Fill:"))
+ col.label(text="Fill:")
sub = col.column()
sub.active = (curve.dimensions == '2D' or (curve.bevel_object is None and curve.dimensions == '3D'))
sub.prop(curve, "fill_mode", text="")
- col.prop(curve, "use_fill_deform", text=_("Fill Deformed"))
+ col.prop(curve, "use_fill_deform", text="Fill Deformed")
class DATA_PT_curve_texture_space(CurveButtonsPanel, Panel):
@@ -130,8 +129,8 @@ class DATA_PT_curve_texture_space(CurveButtonsPanel, Panel):
row.prop(curve, "use_uv_as_generated")
row = layout.row()
- row.column().prop(curve, "texspace_location", text=_("Location"))
- row.column().prop(curve, "texspace_size", text=_("Size"))
+ row.column().prop(curve, "texspace_location", text="Location")
+ row.column().prop(curve, "texspace_size", text="Size")
class DATA_PT_geometry_curve(CurveButtonsPanel, Panel):
@@ -153,17 +152,17 @@ class DATA_PT_geometry_curve(CurveButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Modification:"))
+ col.label(text="Modification:")
col.prop(curve, "offset")
col.prop(curve, "extrude")
- col.label(text=_("Taper Object:"))
+ col.label(text="Taper Object:")
col.prop(curve, "taper_object", text="")
col = split.column()
- col.label(text=_("Bevel:"))
- col.prop(curve, "bevel_depth", text=_("Depth"))
- col.prop(curve, "bevel_resolution", text=_("Resolution"))
- col.label(text=_("Bevel Object:"))
+ col.label(text="Bevel:")
+ col.prop(curve, "bevel_depth", text="Depth")
+ col.prop(curve, "bevel_resolution", text="Resolution")
+ col.label(text="Bevel Object:")
col.prop(curve, "bevel_object", text="")
@@ -183,7 +182,7 @@ class DATA_PT_pathanim(CurveButtonsPanelCurve, Panel):
layout.active = curve.use_path
col = layout.column()
- layout.prop(curve, "path_duration", text=_("Frames"))
+ layout.prop(curve, "path_duration", text="Frames")
layout.prop(curve, "eval_time")
split = layout.split()
@@ -195,7 +194,7 @@ class DATA_PT_pathanim(CurveButtonsPanelCurve, Panel):
col = split.column()
col.prop(curve, "use_radius")
- col.prop(curve, "use_time_offset", text=_("Offset Children"))
+ col.prop(curve, "use_time_offset", text="Offset Children")
class DATA_PT_active_spline(CurveButtonsPanelActive, Panel):
@@ -216,20 +215,20 @@ class DATA_PT_active_spline(CurveButtonsPanelActive, Panel):
# These settings are below but its easier to have
# poly's set aside since they use so few settings
col = split.column()
- col.label(text=_("Cyclic:"))
+ col.label(text="Cyclic:")
col.prop(act_spline, "use_smooth")
col = split.column()
col.prop(act_spline, "use_cyclic_u", text="U")
else:
col = split.column()
- col.label(text=_("Cyclic:"))
+ col.label(text="Cyclic:")
if act_spline.type == 'NURBS':
- col.label(text=_("Bezier:"))
- col.label(text=_("Endpoint:"))
- col.label(text=_("Order:"))
+ col.label(text="Bezier:")
+ col.label(text="Endpoint:")
+ col.label(text="Order:")
- col.label(text=_("Resolution:"))
+ col.label(text="Resolution:")
col = split.column()
col.prop(act_spline, "use_cyclic_u", text="U")
@@ -262,9 +261,9 @@ class DATA_PT_active_spline(CurveButtonsPanelActive, Panel):
col = split.column()
col.active = (curve.dimensions == '3D')
- col.label(text=_("Interpolation:"))
- col.prop(act_spline, "tilt_interpolation", text=_("Tilt"))
- col.prop(act_spline, "radius_interpolation", text=_("Radius"))
+ col.label(text="Interpolation:")
+ col.prop(act_spline, "tilt_interpolation", text="Tilt")
+ col.prop(act_spline, "radius_interpolation", text="Radius")
layout.prop(act_spline, "use_smooth")
@@ -283,16 +282,16 @@ class DATA_PT_font(CurveButtonsPanel, Panel):
char = context.curve.edit_format
row = layout.split(percentage=0.25)
- row.label(text=_("Regular"))
+ row.label(text="Regular")
row.template_ID(text, "font", open="font.open", unlink="font.unlink")
row = layout.split(percentage=0.25)
- row.label(text=_("Bold"))
+ row.label(text="Bold")
row.template_ID(text, "font_bold", open="font.open", unlink="font.unlink")
row = layout.split(percentage=0.25)
- row.label(text=_("Italic"))
+ row.label(text="Italic")
row.template_ID(text, "font_italic", open="font.open", unlink="font.unlink")
row = layout.split(percentage=0.25)
- row.label(text=_("Bold & Italic"))
+ row.label(text="Bold & Italic")
row.template_ID(text, "font_bold_italic", open="font.open", unlink="font.unlink")
#layout.prop(text, "font")
@@ -300,36 +299,36 @@ class DATA_PT_font(CurveButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.prop(text, "size", text=_("Size"))
+ col.prop(text, "size", text="Size")
col = split.column()
col.prop(text, "shear")
split = layout.split()
col = split.column()
- col.label(text=_("Object Font:"))
+ col.label(text="Object Font:")
col.prop(text, "family", text="")
col = split.column()
- col.label(text=_("Text on Curve:"))
+ col.label(text="Text on Curve:")
col.prop(text, "follow_curve", text="")
split = layout.split()
col = split.column()
colsub = col.column(align=True)
- colsub.label(text=_("Underline:"))
- colsub.prop(text, "underline_position", text=_("Position"))
- colsub.prop(text, "underline_height", text=_("Thickness"))
+ colsub.label(text="Underline:")
+ colsub.prop(text, "underline_position", text="Position")
+ colsub.prop(text, "underline_height", text="Thickness")
col = split.column()
- col.label(text=_("Character:"))
+ col.label(text="Character:")
col.prop(char, "use_bold")
col.prop(char, "use_italic")
col.prop(char, "use_underline")
row = layout.row()
- row.prop(text, "small_caps_scale", text=_("Small Caps"))
+ row.prop(text, "small_caps_scale", text="Small Caps")
row.prop(char, "use_small_caps")
@@ -345,19 +344,19 @@ class DATA_PT_paragraph(CurveButtonsPanel, Panel):
text = context.curve
- layout.label(text=_("Align:"))
+ layout.label(text="Align:")
layout.prop(text, "align", expand=True)
split = layout.split()
col = split.column(align=True)
- col.label(text=_("Spacing:"))
- col.prop(text, "space_character", text=_("Character"))
- col.prop(text, "space_word", text=_("Word"))
- col.prop(text, "space_line", text=_("Line"))
+ col.label(text="Spacing:")
+ col.prop(text, "space_character", text="Character")
+ col.prop(text, "space_word", text="Word")
+ col.prop(text, "space_line", text="Line")
col = split.column(align=True)
- col.label(text=_("Offset:"))
+ col.label(text="Offset:")
col.prop(text, "offset_x", text="X")
col.prop(text, "offset_y", text="Y")
@@ -389,13 +388,13 @@ class DATA_PT_text_boxes(CurveButtonsPanel, Panel):
col = split.column(align=True)
- col.label(text=_("Dimensions:"))
- col.prop(box, "width", text=_("Width"))
- col.prop(box, "height", text=_("Height"))
+ col.label(text="Dimensions:")
+ col.prop(box, "width", text="Width")
+ col.prop(box, "height", text="Height")
col = split.column(align=True)
- col.label(text=_("Offset:"))
+ col.label(text="Offset:")
col.prop(box, "x", text="X")
col.prop(box, "y", text="Y")
diff --git a/release/scripts/startup/bl_ui/properties_data_empty.py b/release/scripts/startup/bl_ui/properties_data_empty.py
index fac6d8fcfb1..c781873e16c 100644
--- a/release/scripts/startup/bl_ui/properties_data_empty.py
+++ b/release/scripts/startup/bl_ui/properties_data_empty.py
@@ -19,7 +19,6 @@
# <pep8 compliant>
import bpy
from bpy.types import Panel
-from blf import gettext as _
class DataButtonsPanel():
@@ -40,17 +39,17 @@ class DATA_PT_empty(DataButtonsPanel, Panel):
ob = context.object
- layout.prop(ob, "empty_draw_type", text=_("Display"))
+ layout.prop(ob, "empty_draw_type", text="Display")
if ob.empty_draw_type == 'IMAGE':
layout.template_ID(ob, "data", open="image.open", unlink="image.unlink")
- layout.prop(ob, "color", text=_("Transparency"), index=3, slider=True)
+ layout.prop(ob, "color", text="Transparency", index=3, slider=True)
row = layout.row(align=True)
- row.prop(ob, "empty_image_offset", text=_("Offset X"), index=0)
- row.prop(ob, "empty_image_offset", text=_("Offset Y"), index=1)
+ row.prop(ob, "empty_image_offset", text="Offset X", index=0)
+ row.prop(ob, "empty_image_offset", text="Offset Y", index=1)
- layout.prop(ob, "empty_draw_size", text=_("Size"))
+ layout.prop(ob, "empty_draw_size", text="Size")
if __name__ == "__main__": # only for live edit.
bpy.utils.register_module(__name__)
diff --git a/release/scripts/startup/bl_ui/properties_data_lamp.py b/release/scripts/startup/bl_ui/properties_data_lamp.py
index f488669b424..4ff180f74fb 100644
--- a/release/scripts/startup/bl_ui/properties_data_lamp.py
+++ b/release/scripts/startup/bl_ui/properties_data_lamp.py
@@ -20,11 +20,10 @@
import bpy
from bpy.types import Menu, Panel
from rna_prop_ui import PropertyPanel
-from blf import gettext as _
class LAMP_MT_sunsky_presets(Menu):
- bl_label = _("Sun & Sky Presets")
+ bl_label = "Sun & Sky Presets"
preset_subdir = "sunsky"
preset_operator = "script.execute_preset"
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
@@ -94,15 +93,15 @@ class DATA_PT_lamp(DataButtonsPanel, Panel):
sub.prop(lamp, "energy")
if lamp.type in {'POINT', 'SPOT'}:
- sub.label(text=_("Falloff:"))
+ sub.label(text="Falloff:")
sub.prop(lamp, "falloff_type", text="")
sub.prop(lamp, "distance")
if lamp.falloff_type == 'LINEAR_QUADRATIC_WEIGHTED':
- col.label(text=_("Attenuation Factors:"))
+ col.label(text="Attenuation Factors:")
sub = col.column(align=True)
- sub.prop(lamp, "linear_attenuation", slider=True, text=_("Linear"))
- sub.prop(lamp, "quadratic_attenuation", slider=True, text=_("Quadratic"))
+ sub.prop(lamp, "linear_attenuation", slider=True, text="Linear")
+ sub.prop(lamp, "quadratic_attenuation", slider=True, text="Quadratic")
col.prop(lamp, "use_sphere")
@@ -112,7 +111,7 @@ class DATA_PT_lamp(DataButtonsPanel, Panel):
col = split.column()
col.prop(lamp, "use_negative")
- col.prop(lamp, "use_own_layer", text=_("This Layer Only"))
+ col.prop(lamp, "use_own_layer", text="This Layer Only")
col.prop(lamp, "use_specular")
col.prop(lamp, "use_diffuse")
@@ -140,34 +139,34 @@ class DATA_PT_sunsky(DataButtonsPanel, Panel):
row = layout.row()
row.active = lamp.use_sky or lamp.use_atmosphere
- row.prop(lamp, "atmosphere_turbidity", text=_("Turbidity"))
+ row.prop(lamp, "atmosphere_turbidity", text="Turbidity")
split = layout.split()
col = split.column()
col.active = lamp.use_sky
- col.label(text=_("Blending:"))
+ col.label(text="Blending:")
sub = col.column()
sub.prop(lamp, "sky_blend_type", text="")
- sub.prop(lamp, "sky_blend", text=_("Factor"))
+ sub.prop(lamp, "sky_blend", text="Factor")
- col.label(text=_("Color Space:"))
+ col.label(text="Color Space:")
sub = col.column()
sub.row().prop(lamp, "sky_color_space", expand=True)
- sub.prop(lamp, "sky_exposure", text=_("Exposure"))
+ sub.prop(lamp, "sky_exposure", text="Exposure")
col = split.column()
col.active = lamp.use_sky
- col.label(text=_("Horizon:"))
+ col.label(text="Horizon:")
sub = col.column()
- sub.prop(lamp, "horizon_brightness", text=_("Brightness"))
- sub.prop(lamp, "spread", text=_("Spread"))
+ sub.prop(lamp, "horizon_brightness", text="Brightness")
+ sub.prop(lamp, "spread", text="Spread")
- col.label(text=_("Sun:"))
+ col.label(text="Sun:")
sub = col.column()
- sub.prop(lamp, "sun_brightness", text=_("Brightness"))
- sub.prop(lamp, "sun_size", text=_("Size"))
- sub.prop(lamp, "backscattered_light", slider=True, text=_("Back Light"))
+ sub.prop(lamp, "sun_brightness", text="Brightness")
+ sub.prop(lamp, "sun_size", text="Size")
+ sub.prop(lamp, "backscattered_light", slider=True, text="Back Light")
layout.separator()
@@ -177,16 +176,16 @@ class DATA_PT_sunsky(DataButtonsPanel, Panel):
col = split.column()
col.active = lamp.use_atmosphere
- col.label(text=_("Intensity:"))
- col.prop(lamp, "sun_intensity", text=_("Sun"))
- col.prop(lamp, "atmosphere_distance_factor", text=_("Distance"))
+ col.label(text="Intensity:")
+ col.prop(lamp, "sun_intensity", text="Sun")
+ col.prop(lamp, "atmosphere_distance_factor", text="Distance")
col = split.column()
col.active = lamp.use_atmosphere
- col.label(text=_("Scattering:"))
+ col.label(text="Scattering:")
sub = col.column(align=True)
- sub.prop(lamp, "atmosphere_inscattering", slider=True, text=_("Inscattering"))
- sub.prop(lamp, "atmosphere_extinction", slider=True, text=_("Extinction"))
+ sub.prop(lamp, "atmosphere_inscattering", slider=True, text="Inscattering")
+ sub.prop(lamp, "atmosphere_extinction", slider=True, text="Extinction")
class DATA_PT_shadow(DataButtonsPanel, Panel):
@@ -210,15 +209,15 @@ class DATA_PT_shadow(DataButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Form factor sampling:"))
+ col.label(text="Form factor sampling:")
sub = col.row(align=True)
if lamp.shape == 'SQUARE':
- sub.prop(lamp, "shadow_ray_samples_x", text=_("Samples"))
+ sub.prop(lamp, "shadow_ray_samples_x", text="Samples")
elif lamp.shape == 'RECTANGLE':
- sub.prop(lamp, "shadow_ray_samples_x", text=_("Samples X"))
- sub.prop(lamp, "shadow_ray_samples_y", text=_("Samples Y"))
+ sub.prop(lamp, "shadow_ray_samples_x", text="Samples X")
+ sub.prop(lamp, "shadow_ray_samples_y", text="Samples Y")
if lamp.shadow_method != 'NOSHADOW':
split = layout.split()
@@ -227,34 +226,34 @@ class DATA_PT_shadow(DataButtonsPanel, Panel):
col.prop(lamp, "shadow_color", text="")
col = split.column()
- col.prop(lamp, "use_shadow_layer", text=_("This Layer Only"))
+ col.prop(lamp, "use_shadow_layer", text="This Layer Only")
col.prop(lamp, "use_only_shadow")
if lamp.shadow_method == 'RAY_SHADOW':
split = layout.split()
col = split.column()
- col.label(text=_("Sampling:"))
+ col.label(text="Sampling:")
if lamp.type in {'POINT', 'SUN', 'SPOT'}:
sub = col.row()
- sub.prop(lamp, "shadow_ray_samples", text=_("Samples"))
- sub.prop(lamp, "shadow_soft_size", text=_("Soft Size"))
+ sub.prop(lamp, "shadow_ray_samples", text="Samples")
+ sub.prop(lamp, "shadow_soft_size", text="Soft Size")
elif lamp.type == 'AREA':
sub = col.row(align=True)
if lamp.shape == 'SQUARE':
- sub.prop(lamp, "shadow_ray_samples_x", text=_("Samples"))
+ sub.prop(lamp, "shadow_ray_samples_x", text="Samples")
elif lamp.shape == 'RECTANGLE':
- sub.prop(lamp, "shadow_ray_samples_x", text=_("Samples X"))
- sub.prop(lamp, "shadow_ray_samples_y", text=_("Samples Y"))
+ sub.prop(lamp, "shadow_ray_samples_x", text="Samples X")
+ sub.prop(lamp, "shadow_ray_samples_y", text="Samples Y")
col.row().prop(lamp, "shadow_ray_sample_method", expand=True)
if lamp.shadow_ray_sample_method == 'ADAPTIVE_QMC':
- layout.prop(lamp, "shadow_adaptive_threshold", text=_("Threshold"))
+ layout.prop(lamp, "shadow_adaptive_threshold", text="Threshold")
if lamp.type == 'AREA' and lamp.shadow_ray_sample_method == 'CONSTANT_JITTERED':
row = layout.row()
@@ -264,44 +263,44 @@ class DATA_PT_shadow(DataButtonsPanel, Panel):
elif lamp.shadow_method == 'BUFFER_SHADOW':
col = layout.column()
- col.label(text=_("Buffer Type:"))
+ col.label(text="Buffer Type:")
col.row().prop(lamp, "shadow_buffer_type", expand=True)
if lamp.shadow_buffer_type in {'REGULAR', 'HALFWAY', 'DEEP'}:
split = layout.split()
col = split.column()
- col.label(text=_("Filter Type:"))
+ col.label(text="Filter Type:")
col.prop(lamp, "shadow_filter_type", text="")
sub = col.column(align=True)
- sub.prop(lamp, "shadow_buffer_soft", text=_("Soft"))
- sub.prop(lamp, "shadow_buffer_bias", text=_("Bias"))
+ sub.prop(lamp, "shadow_buffer_soft", text="Soft")
+ sub.prop(lamp, "shadow_buffer_bias", text="Bias")
col = split.column()
- col.label(text=_("Sample Buffers:"))
+ col.label(text="Sample Buffers:")
col.prop(lamp, "shadow_sample_buffers", text="")
sub = col.column(align=True)
- sub.prop(lamp, "shadow_buffer_size", text=_("Size"))
- sub.prop(lamp, "shadow_buffer_samples", text=_("Samples"))
+ sub.prop(lamp, "shadow_buffer_size", text="Size")
+ sub.prop(lamp, "shadow_buffer_samples", text="Samples")
if lamp.shadow_buffer_type == 'DEEP':
col.prop(lamp, "compression_threshold")
elif lamp.shadow_buffer_type == 'IRREGULAR':
- layout.prop(lamp, "shadow_buffer_bias", text=_("Bias"))
+ layout.prop(lamp, "shadow_buffer_bias", text="Bias")
split = layout.split()
col = split.column()
- col.prop(lamp, "use_auto_clip_start", text=_("Autoclip Start"))
+ col.prop(lamp, "use_auto_clip_start", text="Autoclip Start")
sub = col.column()
sub.active = not lamp.use_auto_clip_start
- sub.prop(lamp, "shadow_buffer_clip_start", text=_("Clip Start"))
+ sub.prop(lamp, "shadow_buffer_clip_start", text="Clip Start")
col = split.column()
- col.prop(lamp, "use_auto_clip_end", text=_("Autoclip End"))
+ col.prop(lamp, "use_auto_clip_end", text="Autoclip End")
sub = col.column()
sub.active = not lamp.use_auto_clip_end
- sub.prop(lamp, "shadow_buffer_clip_end", text=_(" Clip End"))
+ sub.prop(lamp, "shadow_buffer_clip_end", text=" Clip End")
class DATA_PT_area(DataButtonsPanel, Panel):
@@ -326,8 +325,8 @@ class DATA_PT_area(DataButtonsPanel, Panel):
if (lamp.shape == 'SQUARE'):
sub.prop(lamp, "size")
elif (lamp.shape == 'RECTANGLE'):
- sub.prop(lamp, "size", text=_("Size X"))
- sub.prop(lamp, "size_y", text=_("Size Y"))
+ sub.prop(lamp, "size", text="Size X")
+ sub.prop(lamp, "size_y", text="Size Y")
class DATA_PT_spot(DataButtonsPanel, Panel):
@@ -349,8 +348,8 @@ class DATA_PT_spot(DataButtonsPanel, Panel):
col = split.column()
sub = col.column()
- sub.prop(lamp, "spot_size", text=_("Size"))
- sub.prop(lamp, "spot_blend", text=_("Blend"), slider=True)
+ sub.prop(lamp, "spot_size", text="Size")
+ sub.prop(lamp, "spot_blend", text="Blend", slider=True)
col.prop(lamp, "use_square")
col.prop(lamp, "show_cone")
@@ -359,9 +358,9 @@ class DATA_PT_spot(DataButtonsPanel, Panel):
col.prop(lamp, "use_halo")
sub = col.column(align=True)
sub.active = lamp.use_halo
- sub.prop(lamp, "halo_intensity", text=_("Intensity"))
+ sub.prop(lamp, "halo_intensity", text="Intensity")
if lamp.shadow_method == 'BUFFER_SHADOW':
- sub.prop(lamp, "halo_step", text=_("Step"))
+ sub.prop(lamp, "halo_step", text="Step")
class DATA_PT_falloff_curve(DataButtonsPanel, Panel):
diff --git a/release/scripts/startup/bl_ui/properties_data_mesh.py b/release/scripts/startup/bl_ui/properties_data_mesh.py
index 82185b0b1b0..ff19ece8f94 100644
--- a/release/scripts/startup/bl_ui/properties_data_mesh.py
+++ b/release/scripts/startup/bl_ui/properties_data_mesh.py
@@ -20,11 +20,10 @@
import bpy
from bpy.types import Menu, Panel
from rna_prop_ui import PropertyPanel
-from blf import gettext as _
class MESH_MT_vertex_group_specials(Menu):
- bl_label = _("Vertex Group Specials")
+ bl_label = "Vertex Group Specials"
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
def draw(self, context):
@@ -35,7 +34,7 @@ class MESH_MT_vertex_group_specials(Menu):
layout.operator("object.vertex_group_copy_to_linked", icon='LINK_AREA')
layout.operator("object.vertex_group_copy_to_selected", icon='LINK_AREA')
layout.operator("object.vertex_group_mirror", icon='ARROW_LEFTRIGHT')
- layout.operator("object.vertex_group_remove", icon='X', text=_("Delete All")).all = True
+ layout.operator("object.vertex_group_remove", icon='X', text="Delete All").all = True
layout.separator()
layout.operator("object.vertex_group_lock", icon='LOCK', text="Lock All").action = 'SELECT'
layout.operator("object.vertex_group_lock", icon='UNLOCK', text="UnLock All").action = 'DESELECT'
@@ -52,7 +51,7 @@ class MESH_MT_shape_key_specials(Menu):
layout.operator("object.shape_key_transfer", icon='COPY_ID') # icon is not ideal
layout.operator("object.join_shapes", icon='COPY_ID') # icon is not ideal
layout.operator("object.shape_key_mirror", icon='ARROW_LEFTRIGHT')
- op = layout.operator("object.shape_key_add", icon='ZOOMIN', text=_("New Shape From Mix"))
+ op = layout.operator("object.shape_key_add", icon='ZOOMIN', text="New Shape From Mix")
op.from_mix = True
@@ -100,7 +99,7 @@ class DATA_PT_normals(MeshButtonsPanel, Panel):
col.prop(mesh, "use_auto_smooth")
sub = col.column()
sub.active = mesh.use_auto_smooth
- sub.prop(mesh, "auto_smooth_angle", text=_("Angle"))
+ sub.prop(mesh, "auto_smooth_angle", text="Angle")
split.prop(mesh, "show_double_sided")
@@ -121,8 +120,8 @@ class DATA_PT_texture_space(MeshButtonsPanel, Panel):
layout.prop(mesh, "use_auto_texspace")
row = layout.row()
- row.column().prop(mesh, "texspace_location", text=_("Location"))
- row.column().prop(mesh, "texspace_size", text=_("Size"))
+ row.column().prop(mesh, "texspace_location", text="Location")
+ row.column().prop(mesh, "texspace_size", text="Size")
class DATA_PT_vertex_groups(MeshButtonsPanel, Panel):
@@ -164,14 +163,14 @@ class DATA_PT_vertex_groups(MeshButtonsPanel, Panel):
row = layout.row()
sub = row.row(align=True)
- sub.operator("object.vertex_group_assign", text=_("Assign"))
- sub.operator("object.vertex_group_remove_from", text=_("Remove"))
+ sub.operator("object.vertex_group_assign", text="Assign")
+ sub.operator("object.vertex_group_remove_from", text="Remove")
sub = row.row(align=True)
- sub.operator("object.vertex_group_select", text=_("Select"))
- sub.operator("object.vertex_group_deselect", text=_("Deselect"))
+ sub.operator("object.vertex_group_select", text="Select")
+ sub.operator("object.vertex_group_deselect", text="Deselect")
- layout.prop(context.tool_settings, "vertex_group_weight", text=_("Weight"))
+ layout.prop(context.tool_settings, "vertex_group_weight", text="Weight")
class DATA_PT_shape_keys(MeshButtonsPanel, Panel):
@@ -251,13 +250,13 @@ class DATA_PT_shape_keys(MeshButtonsPanel, Panel):
col = split.column(align=True)
col.active = enable_edit_value
- col.label(text=_("Range:"))
- col.prop(kb, "slider_min", text=_("Min"))
- col.prop(kb, "slider_max", text=_("Max"))
+ col.label(text="Range:")
+ col.prop(kb, "slider_min", text="Min")
+ col.prop(kb, "slider_max", text="Max")
col = split.column(align=True)
col.active = enable_edit_value
- col.label(text=_("Blend:"))
+ col.label(text="Blend:")
col.prop_search(kb, "vertex_group", ob, "vertex_groups", text="")
col.prop_search(kb, "relative_key", key, "key_blocks", text="")
diff --git a/release/scripts/startup/bl_ui/properties_data_metaball.py b/release/scripts/startup/bl_ui/properties_data_metaball.py
index dbb947e416c..cd894e60dbb 100644
--- a/release/scripts/startup/bl_ui/properties_data_metaball.py
+++ b/release/scripts/startup/bl_ui/properties_data_metaball.py
@@ -20,7 +20,6 @@
import bpy
from bpy.types import Panel
from rna_prop_ui import PropertyPanel
-from blf import gettext as _
class DataButtonsPanel():
@@ -61,16 +60,16 @@ class DATA_PT_metaball(DataButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Resolution:"))
+ col.label(text="Resolution:")
sub = col.column(align=True)
- sub.prop(mball, "resolution", text=_("View"))
- sub.prop(mball, "render_resolution", text=_("Render"))
+ sub.prop(mball, "resolution", text="View")
+ sub.prop(mball, "render_resolution", text="Render")
col = split.column()
- col.label(text=_("Settings:"))
- col.prop(mball, "threshold", text=_("Threshold"))
+ col.label(text="Settings:")
+ col.prop(mball, "threshold", text="Threshold")
- layout.label(text=_("Update:"))
+ layout.label(text="Update:")
layout.prop(mball, "update_method", expand=True)
@@ -87,8 +86,8 @@ class DATA_PT_mball_texture_space(DataButtonsPanel, Panel):
layout.prop(mball, "use_auto_texspace")
row = layout.row()
- row.column().prop(mball, "texspace_location", text=_("Location"))
- row.column().prop(mball, "texspace_size", text=_("Size"))
+ row.column().prop(mball, "texspace_location", text="Location")
+ row.column().prop(mball, "texspace_size", text="Size")
class DATA_PT_metaball_element(DataButtonsPanel, Panel):
@@ -108,25 +107,25 @@ class DATA_PT_metaball_element(DataButtonsPanel, Panel):
split = layout.split()
col = split.column(align=True)
- col.label(text=_("Settings:"))
- col.prop(metaelem, "stiffness", text=_("Stiffness"))
- col.prop(metaelem, "use_negative", text=_("Negative"))
- col.prop(metaelem, "hide", text=_("Hide"))
+ col.label(text="Settings:")
+ col.prop(metaelem, "stiffness", text="Stiffness")
+ col.prop(metaelem, "use_negative", text="Negative")
+ col.prop(metaelem, "hide", text="Hide")
col = split.column(align=True)
if metaelem.type in {'CUBE', 'ELLIPSOID'}:
- col.label(text=_("Size:"))
+ col.label(text="Size:")
col.prop(metaelem, "size_x", text="X")
col.prop(metaelem, "size_y", text="Y")
col.prop(metaelem, "size_z", text="Z")
elif metaelem.type == 'TUBE':
- col.label(text=_("Size:"))
+ col.label(text="Size:")
col.prop(metaelem, "size_x", text="X")
elif metaelem.type == 'PLANE':
- col.label(text=_("Size:"))
+ col.label(text="Size:")
col.prop(metaelem, "size_x", text="X")
col.prop(metaelem, "size_y", text="Y")
diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py
index 4719ae450f7..98466b41c2e 100644
--- a/release/scripts/startup/bl_ui/properties_data_modifier.py
+++ b/release/scripts/startup/bl_ui/properties_data_modifier.py
@@ -19,7 +19,6 @@
# <pep8 compliant>
import bpy
from bpy.types import Panel
-from blf import gettext as _
class ModifierButtonsPanel():
@@ -52,14 +51,14 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Object:"))
+ col.label(text="Object:")
col.prop(md, "object", text="")
col.prop(md, "use_deform_preserve_volume")
col = split.column()
- col.label(text=_("Bind To:"))
- col.prop(md, "use_vertex_groups", text=_("Vertex Groups"))
- col.prop(md, "use_bone_envelopes", text=_("Bone Envelopes"))
+ col.label(text="Bind To:")
+ col.prop(md, "use_vertex_groups", text="Vertex Groups")
+ col.prop(md, "use_bone_envelopes", text="Bone Envelopes")
layout.separator()
@@ -93,11 +92,11 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
col.separator()
- col.prop(md, "use_merge_vertices", text=_("Merge"))
+ col.prop(md, "use_merge_vertices", text="Merge")
sub = col.column()
sub.active = md.use_merge_vertices
- sub.prop(md, "use_merge_vertices_cap", text=_("First Last"))
- sub.prop(md, "merge_threshold", text=_("Distance"))
+ sub.prop(md, "use_merge_vertices_cap", text="First Last")
+ sub.prop(md, "merge_threshold", text="Distance")
col = split.column()
col.prop(md, "use_relative_offset")
@@ -123,7 +122,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
split.prop(md, "width")
split.prop(md, "use_only_vertices")
- layout.label(text=_("Limit Method:"))
+ layout.label(text="Limit Method:")
layout.row().prop(md, "limit_method", expand=True)
if md.limit_method == 'ANGLE':
layout.prop(md, "angle_limit")
@@ -134,11 +133,11 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Operation:"))
+ col.label(text="Operation:")
col.prop(md, "operation", text="")
col = split.column()
- col.label(text=_("Object:"))
+ col.label(text="Object:")
col.prop(md, "object", text="")
def BUILD(self, layout, ob, md):
@@ -157,7 +156,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
def CAST(self, layout, ob, md):
split = layout.split(percentage=0.25)
- split.label(text=_("Cast Type:"))
+ split.label(text="Cast Type:")
split.prop(md, "cast_type", text="")
split = layout.split(percentage=0.25)
@@ -176,52 +175,52 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Vertex Group:"))
+ col.label(text="Vertex Group:")
col.prop_search(md, "vertex_group", ob, "vertex_groups", text="")
col = split.column()
- col.label(text=_("Control Object:"))
+ col.label(text="Control Object:")
col.prop(md, "object", text="")
if md.object:
col.prop(md, "use_transform")
def CLOTH(self, layout, ob, md):
- layout.label(text=_("Settings can be found inside the Physics context"))
+ layout.label(text="Settings can be found inside the Physics context")
def COLLISION(self, layout, ob, md):
- layout.label(text=_("Settings can be found inside the Physics context"))
+ layout.label(text="Settings can be found inside the Physics context")
def CURVE(self, layout, ob, md):
split = layout.split()
col = split.column()
- col.label(text=_("Object:"))
+ col.label(text="Object:")
col.prop(md, "object", text="")
col = split.column()
- col.label(text=_("Vertex Group:"))
+ col.label(text="Vertex Group:")
col.prop_search(md, "vertex_group", ob, "vertex_groups", text="")
- layout.label(text=_("Deformation Axis:"))
+ layout.label(text="Deformation Axis:")
layout.row().prop(md, "deform_axis", expand=True)
def DECIMATE(self, layout, ob, md):
layout.prop(md, "ratio")
- layout.label(text=_("Face Count") + ": %d" % md.face_count)
+ layout.label(text="Face Count" + ": %d" % md.face_count)
def DISPLACE(self, layout, ob, md):
split = layout.split()
col = split.column()
- col.label(text=_("Texture:"))
+ col.label(text="Texture:")
col.template_ID(md, "texture", new="texture.new")
- col.label(text=_("Vertex Group:"))
+ col.label(text="Vertex Group:")
col.prop_search(md, "vertex_group", ob, "vertex_groups", text="")
col = split.column()
- col.label(text=_("Direction:"))
+ col.label(text="Direction:")
col.prop(md, "direction", text="")
- col.label(text=_("Texture Coordinates:"))
+ col.label(text="Texture Coordinates:")
col.prop(md, "texture_coords", text="")
if md.texture_coords == 'OBJECT':
- layout.prop(md, "texture_coords_object", text=_("Object"))
+ layout.prop(md, "texture_coords_object", text="Object")
elif md.texture_coords == 'UV' and ob.type == 'MESH':
layout.prop_search(md, "uv_layer", ob.data, "uv_textures")
@@ -235,23 +234,23 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.prop(md, "use_edge_angle", text=_("Edge Angle"))
+ col.prop(md, "use_edge_angle", text="Edge Angle")
sub = col.column()
sub.active = md.use_edge_angle
sub.prop(md, "split_angle")
- split.prop(md, "use_edge_sharp", text=_("Sharp Edges"))
+ split.prop(md, "use_edge_sharp", text="Sharp Edges")
def EXPLODE(self, layout, ob, md):
split = layout.split()
col = split.column()
- col.label(text=_("Vertex group:"))
+ col.label(text="Vertex group:")
col.prop_search(md, "vertex_group", ob, "vertex_groups", text="")
sub = col.column()
sub.active = bool(md.vertex_group)
sub.prop(md, "protect")
- col.label(text=_("Particle UV"))
+ col.label(text="Particle UV")
col.prop_search(md, "particle_uv", ob.data, "uv_textures", text="")
col = split.column()
@@ -261,22 +260,22 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
col.prop(md, "show_dead")
col.prop(md, "use_size")
- layout.operator("object.explode_refresh", text=_("Refresh"))
+ layout.operator("object.explode_refresh", text="Refresh")
def FLUID_SIMULATION(self, layout, ob, md):
- layout.label(text=_("Settings can be found inside the Physics context"))
+ layout.label(text="Settings can be found inside the Physics context")
def HOOK(self, layout, ob, md):
split = layout.split()
col = split.column()
- col.label(text=_("Object:"))
+ col.label(text="Object:")
col.prop(md, "object", text="")
if md.object and md.object.type == 'ARMATURE':
- col.label(text=_("Bone:"))
+ col.label(text="Bone:")
col.prop_search(md, "subtarget", md.object.data, "bones", text="")
col = split.column()
- col.label(text=_("Vertex Group:"))
+ col.label(text="Vertex Group:")
col.prop_search(md, "vertex_group", ob, "vertex_groups", text="")
layout.separator()
@@ -288,38 +287,38 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
col.prop(md, "force", slider=True)
col = split.column()
- col.operator("object.hook_reset", text=_("Reset"))
- col.operator("object.hook_recenter", text=_("Recenter"))
+ col.operator("object.hook_reset", text="Reset")
+ col.operator("object.hook_recenter", text="Recenter")
if ob.mode == 'EDIT':
layout.separator()
row = layout.row()
- row.operator("object.hook_select", text=_("Select"))
- row.operator("object.hook_assign", text=_("Assign"))
+ row.operator("object.hook_select", text="Select")
+ row.operator("object.hook_assign", text="Assign")
def LATTICE(self, layout, ob, md):
split = layout.split()
col = split.column()
- col.label(text=_("Object:"))
+ col.label(text="Object:")
col.prop(md, "object", text="")
col = split.column()
- col.label(text=_("Vertex Group:"))
+ col.label(text="Vertex Group:")
col.prop_search(md, "vertex_group", ob, "vertex_groups", text="")
def MASK(self, layout, ob, md):
split = layout.split()
col = split.column()
- col.label(text=_("Mode:"))
+ col.label(text="Mode:")
col.prop(md, "mode", text="")
col = split.column()
if md.mode == 'ARMATURE':
- col.label(text=_("Armature:"))
+ col.label(text="Armature:")
col.prop(md, "armature", text="")
elif md.mode == 'VERTEX_GROUP':
- col.label(text=_("Vertex Group:"))
+ col.label(text="Vertex Group:")
col.prop_search(md, "vertex_group", ob, "vertex_groups", text="")
sub = col.column()
@@ -331,11 +330,11 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
col = split.column()
sub = col.column()
- sub.label(text=_("Object:"))
+ sub.label(text="Object:")
sub.prop(md, "object", text="")
sub.active = not md.is_bound
col = split.column()
- col.label(text=_("Vertex Group:"))
+ col.label(text="Vertex Group:")
col.prop_search(md, "vertex_group", ob, "vertex_groups", text="")
sub = col.column()
@@ -345,9 +344,9 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
layout.separator()
if md.is_bound:
- layout.operator("object.meshdeform_bind", text=_("Unbind"))
+ layout.operator("object.meshdeform_bind", text="Unbind")
else:
- layout.operator("object.meshdeform_bind", text=_("Bind"))
+ layout.operator("object.meshdeform_bind", text="Bind")
row = layout.row()
row.prop(md, "precision")
@@ -357,19 +356,19 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
split = layout.split(percentage=0.25)
col = split.column()
- col.label(text=_("Axis:"))
+ col.label(text="Axis:")
col.prop(md, "use_x")
col.prop(md, "use_y")
col.prop(md, "use_z")
col = split.column()
- col.label(text=_("Options:"))
- col.prop(md, "use_mirror_merge", text=_("Merge"))
- col.prop(md, "use_clip", text=_("Clipping"))
- col.prop(md, "use_mirror_vertex_groups", text=_("Vertex Groups"))
+ col.label(text="Options:")
+ col.prop(md, "use_mirror_merge", text="Merge")
+ col.prop(md, "use_clip", text="Clipping")
+ col.prop(md, "use_mirror_vertex_groups", text="Vertex Groups")
col = split.column()
- col.label(text=_("Textures:"))
+ col.label(text="Textures:")
col.prop(md, "use_mirror_u", text="U")
col.prop(md, "use_mirror_v", text="V")
@@ -377,7 +376,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
if md.use_mirror_merge == True:
col.prop(md, "merge_threshold")
- col.label(text=_("Mirror Object:"))
+ col.label(text="Mirror Object:")
col.prop(md, "mirror_object", text="")
def NAVMESH(self, layout, ob, md):
@@ -389,17 +388,17 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.prop(md, "levels", text=_("Preview"))
- col.prop(md, "sculpt_levels", text=_("Sculpt"))
- col.prop(md, "render_levels", text=_("Render"))
+ col.prop(md, "levels", text="Preview")
+ col.prop(md, "sculpt_levels", text="Sculpt")
+ col.prop(md, "render_levels", text="Render")
col = split.column()
col.enabled = ob.mode != 'EDIT'
- col.operator("object.multires_subdivide", text=_("Subdivide"))
- col.operator("object.multires_higher_levels_delete", text=_("Delete Higher"))
- col.operator("object.multires_reshape", text=_("Reshape"))
- col.operator("object.multires_base_apply", text=_("Apply Base"))
+ col.operator("object.multires_subdivide", text="Subdivide")
+ col.operator("object.multires_higher_levels_delete", text="Delete Higher")
+ col.operator("object.multires_reshape", text="Reshape")
+ col.operator("object.multires_base_apply", text="Apply Base")
col.prop(md, "use_subsurf_uv")
col.prop(md, "show_only_control_edges")
@@ -408,34 +407,34 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
col = layout.column()
row = col.row()
if md.is_external:
- row.operator("object.multires_external_pack", text=_("Pack External"))
+ row.operator("object.multires_external_pack", text="Pack External")
row.label()
row = col.row()
row.prop(md, "filepath", text="")
else:
- row.operator("object.multires_external_save", text=_("Save External..."))
+ row.operator("object.multires_external_save", text="Save External...")
row.label()
def PARTICLE_INSTANCE(self, layout, ob, md):
layout.prop(md, "object")
- layout.prop(md, "particle_system_index", text=_("Particle System"))
+ layout.prop(md, "particle_system_index", text="Particle System")
split = layout.split()
col = split.column()
- col.label(text=_("Create From:"))
+ col.label(text="Create From:")
col.prop(md, "use_normal")
col.prop(md, "use_children")
col.prop(md, "use_size")
col = split.column()
- col.label(text=_("Show Particles When:"))
+ col.label(text="Show Particles When:")
col.prop(md, "show_alive")
col.prop(md, "show_unborn")
col.prop(md, "show_dead")
layout.separator()
- layout.prop(md, "use_path", text=_("Create Along Paths"))
+ layout.prop(md, "use_path", text="Create Along Paths")
split = layout.split()
split.active = md.use_path
@@ -445,17 +444,17 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
col = split.column()
col.prop(md, "position", slider=True)
- col.prop(md, "random_position", text=_("Random"), slider=True)
+ col.prop(md, "random_position", text="Random", slider=True)
def PARTICLE_SYSTEM(self, layout, ob, md):
- layout.label(text=_("Settings can be found inside the Particle context"))
+ layout.label(text="Settings can be found inside the Particle context")
def SCREW(self, layout, ob, md):
split = layout.split()
col = split.column()
col.prop(md, "axis")
- col.prop(md, "object", text=_("AxisOb"))
+ col.prop(md, "object", text="AxisOb")
col.prop(md, "angle")
col.prop(md, "steps")
col.prop(md, "render_steps")
@@ -474,10 +473,10 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
def SHRINKWRAP(self, layout, ob, md):
split = layout.split()
col = split.column()
- col.label(text=_("Target:"))
+ col.label(text="Target:")
col.prop(md, "target", text="")
col = split.column()
- col.label(text=_("Vertex Group:"))
+ col.label(text="Vertex Group:")
col.prop_search(md, "vertex_group", ob, "vertex_groups", text="")
split = layout.split()
@@ -487,28 +486,28 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
col.prop(md, "subsurf_levels")
col = split.column()
- col.label(text=_("Mode:"))
+ col.label(text="Mode:")
col.prop(md, "wrap_method", text="")
if md.wrap_method == 'PROJECT':
split = layout.split(percentage=0.25)
col = split.column()
- col.label(text=_("Axis:"))
+ col.label(text="Axis:")
col.prop(md, "use_project_x")
col.prop(md, "use_project_y")
col.prop(md, "use_project_z")
col = split.column()
- col.label(text=_("Direction:"))
+ col.label(text="Direction:")
col.prop(md, "use_negative_direction")
col.prop(md, "use_positive_direction")
col = split.column()
- col.label(text=_("Cull Faces:"))
+ col.label(text="Cull Faces:")
col.prop(md, "cull_face", expand=True)
- layout.label(text=_("Auxiliary Target:"))
+ layout.label(text="Auxiliary Target:")
layout.prop(md, "auxiliary_target", text="")
elif md.wrap_method == 'NEAREST_SURFACEPOINT':
@@ -518,24 +517,24 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Mode:"))
+ col.label(text="Mode:")
col.prop(md, "deform_method", text="")
col = split.column()
- col.label(text=_("Vertex Group:"))
+ col.label(text="Vertex Group:")
col.prop_search(md, "vertex_group", ob, "vertex_groups", text="")
split = layout.split()
col = split.column()
- col.label(text=_("Origin:"))
+ col.label(text="Origin:")
col.prop(md, "origin", text="")
sub = col.column()
sub.active = (md.origin is not None)
sub.prop(md, "use_relative")
col = split.column()
- col.label(text=_("Deform:"))
+ col.label(text="Deform:")
col.prop(md, "factor")
col.prop(md, "limits", slider=True)
if md.deform_method in {'TAPER', 'STRETCH'}:
@@ -543,13 +542,13 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
col.prop(md, "lock_y")
def SMOKE(self, layout, ob, md):
- layout.label(text=_("Settings can be found inside the Physics context"))
+ layout.label(text="Settings can be found inside the Physics context")
def SMOOTH(self, layout, ob, md):
split = layout.split(percentage=0.25)
col = split.column()
- col.label(text=_("Axis:"))
+ col.label(text="Axis:")
col.prop(md, "use_x")
col.prop(md, "use_y")
col.prop(md, "use_z")
@@ -557,11 +556,11 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
col = split.column()
col.prop(md, "factor")
col.prop(md, "iterations")
- col.label(text=_("Vertex Group:"))
+ col.label(text="Vertex Group:")
col.prop_search(md, "vertex_group", ob, "vertex_groups", text="")
def SOFT_BODY(self, layout, ob, md):
- layout.label(text=_("Settings can be found inside the Physics context"))
+ layout.label(text="Settings can be found inside the Physics context")
def SOLIDIFY(self, layout, ob, md):
split = layout.split()
@@ -570,19 +569,19 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
col.prop(md, "thickness")
col.prop_search(md, "vertex_group", ob, "vertex_groups", text="")
- col.label(text=_("Crease:"))
- col.prop(md, "edge_crease_inner", text=_("Inner"))
- col.prop(md, "edge_crease_outer", text=_("Outer"))
- col.prop(md, "edge_crease_rim", text=_("Rim"))
- col.label(text=_("Material Index Offset:"))
+ col.label(text="Crease:")
+ col.prop(md, "edge_crease_inner", text="Inner")
+ col.prop(md, "edge_crease_outer", text="Outer")
+ col.prop(md, "edge_crease_rim", text="Rim")
+ col.label(text="Material Index Offset:")
col = split.column()
col.prop(md, "offset")
sub = col.column()
sub.active = bool(md.vertex_group)
- sub.prop(md, "invert_vertex_group", text=_("Invert"))
- sub.prop(md, "thickness_vertex_group", text=_("Factor"))
+ sub.prop(md, "invert_vertex_group", text="Invert")
+ sub.prop(md, "thickness_vertex_group", text="Factor")
col.prop(md, "use_even_offset")
col.prop(md, "use_quality_normals")
@@ -593,64 +592,64 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
row.prop(md, "material_offset", text="")
row = row.row()
row.active = md.use_rim
- row.prop(md, "material_offset_rim", text=_("Rim"))
+ row.prop(md, "material_offset_rim", text="Rim")
def SUBSURF(self, layout, ob, md):
layout.row().prop(md, "subdivision_type", expand=True)
split = layout.split()
col = split.column()
- col.label(text=_("Subdivisions:"))
- col.prop(md, "levels", text=_("View"))
- col.prop(md, "render_levels", text=_("Render"))
+ col.label(text="Subdivisions:")
+ col.prop(md, "levels", text="View")
+ col.prop(md, "render_levels", text="Render")
col = split.column()
- col.label(text=_("Options:"))
+ col.label(text="Options:")
col.prop(md, "use_subsurf_uv")
col.prop(md, "show_only_control_edges")
def SURFACE(self, layout, ob, md):
- layout.label(text=_("Settings can be found inside the Physics context"))
+ layout.label(text="Settings can be found inside the Physics context")
def UV_PROJECT(self, layout, ob, md):
split = layout.split()
col = split.column()
- col.label(text=_("Image:"))
+ col.label(text="Image:")
col.prop(md, "image", text="")
col = split.column()
- col.label(text=_("UV Layer:"))
+ col.label(text="UV Layer:")
col.prop_search(md, "uv_layer", ob.data, "uv_textures", text="")
split = layout.split()
col = split.column()
col.prop(md, "use_image_override")
- col.prop(md, "projector_count", text=_("Projectors"))
+ col.prop(md, "projector_count", text="Projectors")
for proj in md.projectors:
col.prop(proj, "object", text="")
col = split.column()
sub = col.column(align=True)
- sub.prop(md, "aspect_x", text=_("Aspect X"))
- sub.prop(md, "aspect_y", text=_("Aspect Y"))
+ sub.prop(md, "aspect_x", text="Aspect X")
+ sub.prop(md, "aspect_y", text="Aspect Y")
sub = col.column(align=True)
- sub.prop(md, "scale_x", text=_("Scale X"))
- sub.prop(md, "scale_y", text=_("Scale Y"))
+ sub.prop(md, "scale_x", text="Scale X")
+ sub.prop(md, "scale_y", text="Scale Y")
def WARP(self, layout, ob, md):
use_falloff = (md.falloff_type != 'NONE')
split = layout.split()
col = split.column()
- col.label(text=_("From:"))
+ col.label(text="From:")
col.prop(md, "object_from", text="")
col.prop(md, "use_volume_preserve")
col = split.column()
- col.label(text=_("To:"))
+ col.label(text="To:")
col.prop(md, "object_to", text="")
col.prop_search(md, "vertex_group", ob, "vertex_groups", text="")
@@ -669,15 +668,15 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
# 2 new columns
split = layout.split()
col = split.column()
- col.label(text=_("Texture:"))
+ col.label(text="Texture:")
col.prop(md, "texture", text="")
col = split.column()
- col.label(text=_("Texture Coordinates:"))
+ col.label(text="Texture Coordinates:")
col.prop(md, "texture_coords", text="")
if md.texture_coords == 'OBJECT':
- layout.prop(md, "texture_coords_object", text=_("Object"))
+ layout.prop(md, "texture_coords_object", text="Object")
elif md.texture_coords == 'UV' and ob.type == 'MESH':
layout.prop_search(md, "uv_layer", ob.data, "uv_textures")
@@ -685,7 +684,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Motion:"))
+ col.label(text="Motion:")
col.prop(md, "use_x")
col.prop(md, "use_y")
col.prop(md, "use_cyclic")
@@ -701,18 +700,18 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Time:"))
+ col.label(text="Time:")
sub = col.column(align=True)
- sub.prop(md, "time_offset", text=_("Offset"))
- sub.prop(md, "lifetime", text=_("Life"))
- col.prop(md, "damping_time", text=_("Damping"))
+ sub.prop(md, "time_offset", text="Offset")
+ sub.prop(md, "lifetime", text="Life")
+ col.prop(md, "damping_time", text="Damping")
col = split.column()
- col.label(text=_("Position:"))
+ col.label(text="Position:")
sub = col.column(align=True)
sub.prop(md, "start_position_x", text="X")
sub.prop(md, "start_position_y", text="Y")
- col.prop(md, "falloff_radius", text=_("Falloff"))
+ col.prop(md, "falloff_radius", text="Falloff")
layout.separator()
@@ -720,7 +719,7 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
layout.prop_search(md, "vertex_group", ob, "vertex_groups")
split = layout.split(percentage=0.33)
col = split.column()
- col.label(text=_("Texture"))
+ col.label(text="Texture")
col = split.column()
col.template_ID(md, "texture", new="texture.new")
layout.prop(md, "texture_coords")
diff --git a/release/scripts/startup/bl_ui/properties_game.py b/release/scripts/startup/bl_ui/properties_game.py
index efe50b6fe2b..26b95484b28 100644
--- a/release/scripts/startup/bl_ui/properties_game.py
+++ b/release/scripts/startup/bl_ui/properties_game.py
@@ -19,7 +19,6 @@
# <pep8 compliant>
import bpy
from bpy.types import Panel
-from blf import gettext as _
class PhysicsButtonsPanel():
@@ -55,7 +54,7 @@ class PHYSICS_PT_game_physics(PhysicsButtonsPanel, Panel):
col = split.column()
col.prop(game, "use_actor")
col.prop(game, "use_ghost")
- col.prop(ob, "hide_render", text=_("Invisible")) # out of place but useful
+ col.prop(ob, "hide_render", text="Invisible") # out of place but useful
col = split.column()
col.prop(game, "use_material_physics_fh")
@@ -67,7 +66,7 @@ class PHYSICS_PT_game_physics(PhysicsButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Attributes:"))
+ col.label(text="Attributes:")
col.prop(game, "mass")
col.prop(game, "radius")
col.prop(game, "form_factor")
@@ -82,29 +81,29 @@ class PHYSICS_PT_game_physics(PhysicsButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Velocity:"))
+ col.label(text="Velocity:")
sub = col.column(align=True)
- sub.prop(game, "velocity_min", text=_("Minimum"))
- sub.prop(game, "velocity_max", text=_("Maximum"))
+ sub.prop(game, "velocity_min", text="Minimum")
+ sub.prop(game, "velocity_max", text="Maximum")
col = split.column()
- col.label(text=_("Damping:"))
+ col.label(text="Damping:")
sub = col.column(align=True)
- sub.prop(game, "damping", text=_("Translation"), slider=True)
- sub.prop(game, "rotation_damping", text=_("Rotation"), slider=True)
+ sub.prop(game, "damping", text="Translation", slider=True)
+ sub.prop(game, "rotation_damping", text="Rotation", slider=True)
layout.separator()
split = layout.split()
col = split.column()
- col.label(text=_("Lock Translation:"))
+ col.label(text="Lock Translation:")
col.prop(game, "lock_location_x", text="X")
col.prop(game, "lock_location_y", text="Y")
col.prop(game, "lock_location_z", text="Z")
col = split.column()
- col.label(text=_("Lock Rotation:"))
+ col.label(text="Lock Rotation:")
col.prop(game, "lock_rotation_x", text="X")
col.prop(game, "lock_rotation_y", text="Y")
col.prop(game, "lock_rotation_z", text="Z")
@@ -113,21 +112,21 @@ class PHYSICS_PT_game_physics(PhysicsButtonsPanel, Panel):
col = layout.column()
col.prop(game, "use_actor")
col.prop(game, "use_ghost")
- col.prop(ob, "hide_render", text=_("Invisible"))
+ col.prop(ob, "hide_render", text="Invisible")
layout.separator()
split = layout.split()
col = split.column()
- col.label(text=_("Attributes:"))
+ col.label(text="Attributes:")
col.prop(game, "mass")
col.prop(soft, "weld_threshold")
col.prop(soft, "location_iterations")
col.prop(soft, "linear_stiffness", slider=True)
col.prop(soft, "dynamic_friction", slider=True)
col.prop(soft, "collision_margin", slider=True)
- col.prop(soft, "use_bending_constraints", text=_("Bending Constraints"))
+ col.prop(soft, "use_bending_constraints", text="Bending Constraints")
col = split.column()
col.prop(soft, "use_shape_match")
@@ -137,25 +136,25 @@ class PHYSICS_PT_game_physics(PhysicsButtonsPanel, Panel):
col.separator()
- col.label(text=_("Cluster Collision:"))
+ col.label(text="Cluster Collision:")
col.prop(soft, "use_cluster_rigid_to_softbody")
col.prop(soft, "use_cluster_soft_to_softbody")
sub = col.column()
sub.active = (soft.use_cluster_rigid_to_softbody or soft.use_cluster_soft_to_softbody)
- sub.prop(soft, "cluster_iterations", text=_("Iterations"))
+ sub.prop(soft, "cluster_iterations", text="Iterations")
elif game.physics_type == 'STATIC':
col = layout.column()
col.prop(game, "use_actor")
col.prop(game, "use_ghost")
- col.prop(ob, "hide_render", text=_("Invisible"))
+ col.prop(ob, "hide_render", text="Invisible")
layout.separator()
split = layout.split()
col = split.column()
- col.label(text=_("Attributes:"))
+ col.label(text="Attributes:")
col.prop(game, "radius")
col = split.column()
@@ -166,7 +165,7 @@ class PHYSICS_PT_game_physics(PhysicsButtonsPanel, Panel):
subsub.prop(game, "friction_coefficients", text="", slider=True)
elif game.physics_type in {'SENSOR', 'INVISIBLE', 'NO_COLLISION', 'OCCLUDE'}:
- layout.prop(ob, "hide_render", text=_("Invisible"))
+ layout.prop(ob, "hide_render", text="Invisible")
class PHYSICS_PT_game_collision_bounds(PhysicsButtonsPanel, Panel):
@@ -190,11 +189,11 @@ class PHYSICS_PT_game_collision_bounds(PhysicsButtonsPanel, Panel):
game = context.active_object.game
layout.active = game.use_collision_bounds
- layout.prop(game, "collision_bounds_type", text=_("Bounds"))
+ layout.prop(game, "collision_bounds_type", text="Bounds")
row = layout.row()
- row.prop(game, "collision_margin", text=_("Margin"), slider=True)
- row.prop(game, "use_collision_compound", text=_("Compound"))
+ row.prop(game, "collision_margin", text="Margin", slider=True)
+ row.prop(game, "use_collision_compound", text="Compound")
class PHYSICS_PT_game_obstacles(PhysicsButtonsPanel, Panel):
@@ -243,7 +242,7 @@ class RENDER_PT_game(RenderButtonsPanel, Panel):
layout = self.layout
row = layout.row()
- row.operator("view3d.game_start", text=_("Start"))
+ row.operator("view3d.game_start", text="Start")
row.label()
@@ -261,20 +260,20 @@ class RENDER_PT_game_player(RenderButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Resolution:"))
+ col.label(text="Resolution:")
sub = col.column(align=True)
sub.prop(gs, "resolution_x", slider=False, text="X")
sub.prop(gs, "resolution_y", slider=False, text="Y")
col = split.column()
- col.label(text=_("Quality:"))
+ col.label(text="Quality:")
sub = col.column(align=True)
- sub.prop(gs, "depth", text=_("Bit Depth"), slider=False)
- sub.prop(gs, "frequency", text=_("FPS"), slider=False)
+ sub.prop(gs, "depth", text="Bit Depth", slider=False)
+ sub.prop(gs, "frequency", text="FPS", slider=False)
# framing:
col = layout.column()
- col.label(text=_("Framing:"))
+ col.label(text="Framing:")
col.row().prop(gs, "frame_type", expand=True)
if gs.frame_type == 'LETTERBOX':
col.prop(gs, "frame_color", text="")
@@ -300,7 +299,7 @@ class RENDER_PT_game_stereo(RenderButtonsPanel, Panel):
# dome:
elif stereo_mode == 'DOME':
- layout.prop(gs, "dome_mode", text=_("Dome Type"))
+ layout.prop(gs, "dome_mode", text="Dome Type")
dome_type = gs.dome_mode
@@ -311,23 +310,23 @@ class RENDER_PT_game_stereo(RenderButtonsPanel, Panel):
dome_type == 'TRUNCATED_FRONT':
col = split.column()
- col.prop(gs, "dome_buffer_resolution", text=_("Resolution"), slider=True)
+ col.prop(gs, "dome_buffer_resolution", text="Resolution", slider=True)
col.prop(gs, "dome_angle", slider=True)
col = split.column()
- col.prop(gs, "dome_tesselation", text=_("Tesselation"))
+ col.prop(gs, "dome_tesselation", text="Tesselation")
col.prop(gs, "dome_tilt")
elif dome_type == 'PANORAM_SPH':
col = split.column()
- col.prop(gs, "dome_buffer_resolution", text=_("Resolution"), slider=True)
+ col.prop(gs, "dome_buffer_resolution", text="Resolution", slider=True)
col = split.column()
- col.prop(gs, "dome_tesselation", text=_("Tesselation"))
+ col.prop(gs, "dome_tesselation", text="Tesselation")
else: # cube map
col = split.column()
- col.prop(gs, "dome_buffer_resolution", text=_("Resolution"), slider=True)
+ col.prop(gs, "dome_buffer_resolution", text="Resolution", slider=True)
col = split.column()
@@ -349,15 +348,15 @@ class RENDER_PT_game_shading(RenderButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.prop(gs, "use_glsl_lights", text=_("Lights"))
- col.prop(gs, "use_glsl_shaders", text=_("Shaders"))
- col.prop(gs, "use_glsl_shadows", text=_("Shadows"))
- col.prop(gs, "use_glsl_color_management", text=_("Color Management"))
+ col.prop(gs, "use_glsl_lights", text="Lights")
+ col.prop(gs, "use_glsl_shaders", text="Shaders")
+ col.prop(gs, "use_glsl_shadows", text="Shadows")
+ col.prop(gs, "use_glsl_color_management", text="Color Management")
col = split.column()
- col.prop(gs, "use_glsl_ramps", text=_("Ramps"))
- col.prop(gs, "use_glsl_nodes", text=_("Nodes"))
- col.prop(gs, "use_glsl_extra_textures", text=_("Extra Textures"))
+ col.prop(gs, "use_glsl_ramps", text="Ramps")
+ col.prop(gs, "use_glsl_nodes", text="Nodes")
+ col.prop(gs, "use_glsl_extra_textures", text="Extra Textures")
class RENDER_PT_game_performance(RenderButtonsPanel, Panel):
@@ -385,11 +384,11 @@ class RENDER_PT_game_display(RenderButtonsPanel, Panel):
gs = context.scene.game_settings
flow = layout.column_flow()
- flow.prop(gs, "show_debug_properties", text=_("Debug Properties"))
- flow.prop(gs, "show_framerate_profile", text=_("Framerate and Profile"))
- flow.prop(gs, "show_physics_visualization", text=_("Physics Visualization"))
+ flow.prop(gs, "show_debug_properties", text="Debug Properties")
+ flow.prop(gs, "show_framerate_profile", text="Framerate and Profile")
+ flow.prop(gs, "show_physics_visualization", text="Physics Visualization")
flow.prop(gs, "use_deprecation_warnings")
- flow.prop(gs, "show_mouse", text=_("Mouse Cursor"))
+ flow.prop(gs, "show_mouse", text="Mouse Cursor")
class SceneButtonsPanel():
@@ -547,37 +546,37 @@ class WORLD_PT_game_physics(WorldButtonsPanel, Panel):
layout.prop(gs, "physics_engine")
if gs.physics_engine != 'NONE':
- layout.prop(gs, "physics_gravity", text=_("Gravity"))
+ layout.prop(gs, "physics_gravity", text="Gravity")
split = layout.split()
col = split.column()
- col.label(text=_("Physics Steps:"))
+ col.label(text="Physics Steps:")
sub = col.column(align=True)
- sub.prop(gs, "physics_step_max", text=_("Max"))
- sub.prop(gs, "physics_step_sub", text=_("Substeps"))
- col.prop(gs, "fps", text=_("FPS"))
+ sub.prop(gs, "physics_step_max", text="Max")
+ sub.prop(gs, "physics_step_sub", text="Substeps")
+ col.prop(gs, "fps", text="FPS")
col = split.column()
- col.label(text=_("Logic Steps:"))
- col.prop(gs, "logic_step_max", text=_("Max"))
+ col.label(text="Logic Steps:")
+ col.prop(gs, "logic_step_max", text="Max")
col = layout.column()
- col.prop(gs, "use_occlusion_culling", text=_("Occlusion Culling"))
+ col.prop(gs, "use_occlusion_culling", text="Occlusion Culling")
sub = col.column()
sub.active = gs.use_occlusion_culling
- sub.prop(gs, "occlusion_culling_resolution", text=_("Resolution"))
+ sub.prop(gs, "occlusion_culling_resolution", text="Resolution")
else:
split = layout.split()
col = split.column()
- col.label(text=_("Physics Steps:"))
- col.prop(gs, "fps", text=_("FPS"))
+ col.label(text="Physics Steps:")
+ col.prop(gs, "fps", text="FPS")
col = split.column()
- col.label(text=_("Logic Steps:"))
- col.prop(gs, "logic_step_max", text=_("Max"))
+ col.label(text="Logic Steps:")
+ col.prop(gs, "logic_step_max", text="Max")
class WORLD_PT_game_physics_obstacles(WorldButtonsPanel, Panel):
diff --git a/release/scripts/startup/bl_ui/properties_material.py b/release/scripts/startup/bl_ui/properties_material.py
index 3a1a4358979..1c9ff6dda0e 100644
--- a/release/scripts/startup/bl_ui/properties_material.py
+++ b/release/scripts/startup/bl_ui/properties_material.py
@@ -20,7 +20,6 @@
import bpy
from bpy.types import Menu, Panel
from rna_prop_ui import PropertyPanel
-from blf import gettext as _
def active_node_mat(mat):
@@ -115,9 +114,9 @@ class MATERIAL_PT_context_material(MaterialButtonsPanel, Panel):
if ob.mode == 'EDIT':
row = layout.row(align=True)
- row.operator("object.material_slot_assign", text=_("Assign"))
- row.operator("object.material_slot_select", text=_("Select"))
- row.operator("object.material_slot_deselect", text=_("Deselect"))
+ row.operator("object.material_slot_assign", text="Assign")
+ row.operator("object.material_slot_select", text="Select")
+ row.operator("object.material_slot_deselect", text="Deselect")
split = layout.split(percentage=0.65)
@@ -143,7 +142,7 @@ class MATERIAL_PT_context_material(MaterialButtonsPanel, Panel):
if mat.active_node_material:
row.prop(mat.active_node_material, "name", text="")
else:
- row.label(text=_("No material node selected"))
+ row.label(text="No material node selected")
class MATERIAL_PT_preview(MaterialButtonsPanel, Panel):
@@ -198,8 +197,8 @@ class MATERIAL_PT_pipeline(MaterialButtonsPanel, Panel):
col = split.column()
col.active = mat_type
- col.prop(mat, "use_cast_shadows_only", text=_("Cast Only"))
- col.prop(mat, "shadow_cast_alpha", text=_("Casting Alpha"))
+ col.prop(mat, "use_cast_shadows_only", text="Cast Only")
+ col.prop(mat, "shadow_cast_alpha", text="Casting Alpha")
col.prop(mat, "use_cast_buffer_shadows")
col.prop(mat, "use_cast_approximate")
col.prop(mat, "pass_index")
@@ -226,12 +225,12 @@ class MATERIAL_PT_diffuse(MaterialButtonsPanel, Panel):
col.prop(mat, "diffuse_color", text="")
sub = col.column()
sub.active = (not mat.use_shadeless)
- sub.prop(mat, "diffuse_intensity", text=_("Intensity"))
+ sub.prop(mat, "diffuse_intensity", text="Intensity")
col = split.column()
col.active = (not mat.use_shadeless)
col.prop(mat, "diffuse_shader", text="")
- col.prop(mat, "use_diffuse_ramp", text=_("Ramp"))
+ col.prop(mat, "use_diffuse_ramp", text="Ramp")
col = layout.column()
col.active = (not mat.use_shadeless)
@@ -241,12 +240,12 @@ class MATERIAL_PT_diffuse(MaterialButtonsPanel, Panel):
col.prop(mat, "darkness")
elif mat.diffuse_shader == 'TOON':
row = col.row()
- row.prop(mat, "diffuse_toon_size", text=_("Size"))
- row.prop(mat, "diffuse_toon_smooth", text=_("Smooth"))
+ row.prop(mat, "diffuse_toon_size", text="Size")
+ row.prop(mat, "diffuse_toon_smooth", text="Smooth")
elif mat.diffuse_shader == 'FRESNEL':
row = col.row()
- row.prop(mat, "diffuse_fresnel", text=_("Fresnel"))
- row.prop(mat, "diffuse_fresnel_factor", text=_("Factor"))
+ row.prop(mat, "diffuse_fresnel", text="Fresnel")
+ row.prop(mat, "diffuse_fresnel_factor", text="Factor")
if mat.use_diffuse_ramp:
col = layout.column()
@@ -256,10 +255,10 @@ class MATERIAL_PT_diffuse(MaterialButtonsPanel, Panel):
col.separator()
row = col.row()
- row.prop(mat, "diffuse_ramp_input", text=_("Input"))
- row.prop(mat, "diffuse_ramp_blend", text=_("Blend"))
+ row.prop(mat, "diffuse_ramp_input", text="Input")
+ row.prop(mat, "diffuse_ramp_blend", text="Blend")
- col.prop(mat, "diffuse_ramp_factor", text=_("Factor"))
+ col.prop(mat, "diffuse_ramp_factor", text="Factor")
class MATERIAL_PT_specular(MaterialButtonsPanel, Panel):
@@ -283,25 +282,25 @@ class MATERIAL_PT_specular(MaterialButtonsPanel, Panel):
col = split.column()
col.prop(mat, "specular_color", text="")
- col.prop(mat, "specular_intensity", text=_("Intensity"))
+ col.prop(mat, "specular_intensity", text="Intensity")
col = split.column()
col.prop(mat, "specular_shader", text="")
- col.prop(mat, "use_specular_ramp", text=_("Ramp"))
+ col.prop(mat, "use_specular_ramp", text="Ramp")
col = layout.column()
if mat.specular_shader in {'COOKTORR', 'PHONG'}:
- col.prop(mat, "specular_hardness", text=_("Hardness"))
+ col.prop(mat, "specular_hardness", text="Hardness")
elif mat.specular_shader == 'BLINN':
row = col.row()
- row.prop(mat, "specular_hardness", text=_("Hardness"))
- row.prop(mat, "specular_ior", text=_("IOR"))
+ row.prop(mat, "specular_hardness", text="Hardness")
+ row.prop(mat, "specular_ior", text="IOR")
elif mat.specular_shader == 'WARDISO':
- col.prop(mat, "specular_slope", text=_("Slope"))
+ col.prop(mat, "specular_slope", text="Slope")
elif mat.specular_shader == 'TOON':
row = col.row()
- row.prop(mat, "specular_toon_size", text=_("Size"))
- row.prop(mat, "specular_toon_smooth", text=_("Smooth"))
+ row.prop(mat, "specular_toon_size", text="Size")
+ row.prop(mat, "specular_toon_smooth", text="Smooth")
if mat.use_specular_ramp:
layout.separator()
@@ -309,10 +308,10 @@ class MATERIAL_PT_specular(MaterialButtonsPanel, Panel):
layout.separator()
row = layout.row()
- row.prop(mat, "specular_ramp_input", text=_("Input"))
- row.prop(mat, "specular_ramp_blend", text=_("Blend"))
+ row.prop(mat, "specular_ramp_input", text="Input")
+ row.prop(mat, "specular_ramp_blend", text="Blend")
- layout.prop(mat, "specular_ramp_factor", text=_("Factor"))
+ layout.prop(mat, "specular_ramp_factor", text="Factor")
class MATERIAL_PT_shading(MaterialButtonsPanel, Panel):
@@ -385,14 +384,14 @@ class MATERIAL_PT_transp(MaterialButtonsPanel, Panel):
col.prop(mat, "alpha")
row = col.row()
row.active = (base_mat.transparency_method != 'MASK') and (not mat.use_shadeless)
- row.prop(mat, "specular_alpha", text=_("Specular"))
+ row.prop(mat, "specular_alpha", text="Specular")
col = split.column()
col.active = (not mat.use_shadeless)
col.prop(rayt, "fresnel")
sub = col.column()
sub.active = rayt.fresnel > 0
- sub.prop(rayt, "fresnel_factor", text=_("Blend"))
+ sub.prop(rayt, "fresnel_factor", text="Blend")
if base_mat.transparency_method == 'RAYTRACE':
layout.separator()
@@ -407,12 +406,12 @@ class MATERIAL_PT_transp(MaterialButtonsPanel, Panel):
col.prop(rayt, "depth")
col = split.column()
- col.label(text=_("Gloss:"))
- col.prop(rayt, "gloss_factor", text=_("Amount"))
+ col.label(text="Gloss:")
+ col.prop(rayt, "gloss_factor", text="Amount")
sub = col.column()
sub.active = rayt.gloss_factor < 1.0
- sub.prop(rayt, "gloss_threshold", text=_("Threshold"))
- sub.prop(rayt, "gloss_samples", text=_("Samples"))
+ sub.prop(rayt, "gloss_threshold", text="Threshold")
+ sub.prop(rayt, "gloss_samples", text="Samples")
class MATERIAL_PT_mirror(MaterialButtonsPanel, Panel):
@@ -449,28 +448,28 @@ class MATERIAL_PT_mirror(MaterialButtonsPanel, Panel):
col.prop(raym, "fresnel")
sub = col.column()
sub.active = raym.fresnel > 0
- sub.prop(raym, "fresnel_factor", text=_("Blend"))
+ sub.prop(raym, "fresnel_factor", text="Blend")
split = layout.split()
col = split.column()
col.separator()
col.prop(raym, "depth")
- col.prop(raym, "distance", text=_("Max Dist"))
+ col.prop(raym, "distance", text="Max Dist")
col.separator()
sub = col.split(percentage=0.4)
sub.active = raym.distance > 0.0
- sub.label(text=_("Fade To:"))
+ sub.label(text="Fade To:")
sub.prop(raym, "fade_to", text="")
col = split.column()
- col.label(text=_("Gloss:"))
- col.prop(raym, "gloss_factor", text=_("Amount"))
+ col.label(text="Gloss:")
+ col.prop(raym, "gloss_factor", text="Amount")
sub = col.column()
sub.active = raym.gloss_factor < 1.0
- sub.prop(raym, "gloss_threshold", text=_("Threshold"))
- sub.prop(raym, "gloss_samples", text=_("Samples"))
- sub.prop(raym, "gloss_anisotropic", text=_("Anisotropic"))
+ sub.prop(raym, "gloss_threshold", text="Threshold")
+ sub.prop(raym, "gloss_samples", text="Samples")
+ sub.prop(raym, "gloss_anisotropic", text="Anisotropic")
class MATERIAL_PT_sss(MaterialButtonsPanel, Panel):
@@ -511,18 +510,18 @@ class MATERIAL_PT_sss(MaterialButtonsPanel, Panel):
col.prop(sss, "ior")
col.prop(sss, "scale")
col.prop(sss, "color", text="")
- col.prop(sss, "radius", text=_("RGB Radius"), expand=True)
+ col.prop(sss, "radius", text="RGB Radius", expand=True)
col = split.column()
sub = col.column(align=True)
- sub.label(text=_("Blend:"))
- sub.prop(sss, "color_factor", text=_("Color"))
- sub.prop(sss, "texture_factor", text=_("Texture"))
- sub.label(text=_("Scattering Weight:"))
+ sub.label(text="Blend:")
+ sub.prop(sss, "color_factor", text="Color")
+ sub.prop(sss, "texture_factor", text="Texture")
+ sub.label(text="Scattering Weight:")
sub.prop(sss, "front")
sub.prop(sss, "back")
col.separator()
- col.prop(sss, "error_threshold", text=_("Error"))
+ col.prop(sss, "error_threshold", text="Error")
class MATERIAL_PT_halo(MaterialButtonsPanel, Panel):
@@ -562,7 +561,7 @@ class MATERIAL_PT_halo(MaterialButtonsPanel, Panel):
col.prop(halo, "hardness")
col.prop(halo, "add")
- layout.label(text=_("Options:"))
+ layout.label(text="Options:")
split = layout.split()
col = split.column()
@@ -604,13 +603,13 @@ class MATERIAL_PT_flare(MaterialButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.prop(halo, "flare_size", text=_("Size"))
- col.prop(halo, "flare_boost", text=_("Boost"))
- col.prop(halo, "flare_seed", text=_("Seed"))
+ col.prop(halo, "flare_size", text="Size")
+ col.prop(halo, "flare_boost", text="Boost")
+ col.prop(halo, "flare_seed", text="Seed")
col = split.column()
- col.prop(halo, "flare_subflare_count", text=_("Subflares"))
- col.prop(halo, "flare_subflare_size", text=_("Subsize"))
+ col.prop(halo, "flare_subflare_count", text="Subflares")
+ col.prop(halo, "flare_subflare_size", text="Subsize")
class MATERIAL_PT_game_settings(MaterialButtonsPanel, bpy.types.Panel):
@@ -662,7 +661,7 @@ class MATERIAL_PT_physics(MaterialButtonsPanel, bpy.types.Panel):
row.prop(phys, "elasticity", slider=True)
row = layout.row()
- row.label(text=_("Force Field:"))
+ row.label(text="Force Field:")
row = layout.row()
row.prop(phys, "fh_force")
@@ -694,10 +693,10 @@ class MATERIAL_PT_strand(MaterialButtonsPanel, Panel):
col = split.column()
sub = col.column(align=True)
- sub.label(text=_("Size:"))
- sub.prop(tan, "root_size", text=_("Root"))
- sub.prop(tan, "tip_size", text=_("Tip"))
- sub.prop(tan, "size_min", text=_("Minimum"))
+ sub.label(text="Size:")
+ sub.prop(tan, "root_size", text="Root")
+ sub.prop(tan, "tip_size", text="Tip")
+ sub.prop(tan, "size_min", text="Minimum")
sub.prop(tan, "use_blender_units")
sub = col.column()
sub.active = (not mat.use_shadeless)
@@ -705,7 +704,7 @@ class MATERIAL_PT_strand(MaterialButtonsPanel, Panel):
col.prop(tan, "shape")
col = split.column()
- col.label(text=_("Shading:"))
+ col.label(text="Shading:")
col.prop(tan, "width_fade")
ob = context.object
if ob and ob.type == 'MESH':
@@ -715,9 +714,9 @@ class MATERIAL_PT_strand(MaterialButtonsPanel, Panel):
col.separator()
sub = col.column()
sub.active = (not mat.use_shadeless)
- sub.label(_("Surface diffuse:"))
+ sub.label("Surface diffuse:")
sub = col.column()
- sub.prop(tan, "blend_distance", text=_("Distance"))
+ sub.prop(tan, "blend_distance", text="Distance")
class MATERIAL_PT_options(MaterialButtonsPanel, Panel):
@@ -750,11 +749,11 @@ class MATERIAL_PT_options(MaterialButtonsPanel, Panel):
sub.prop(mat, "offset_z")
sub.active = mat.use_transparency and mat.transparency_method == 'Z_TRANSPARENCY'
sub = col.column(align=True)
- sub.label(text=_("Light Group:"))
+ sub.label(text="Light Group:")
sub.prop(mat, "light_group", text="")
row = sub.row()
row.active = bool(mat.light_group)
- row.prop(mat, "use_light_group_exclusive", text=_("Exclusive"))
+ row.prop(mat, "use_light_group_exclusive", text="Exclusive")
col = split.column()
col.prop(mat, "use_face_texture")
@@ -789,12 +788,12 @@ class MATERIAL_PT_shadow(MaterialButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.prop(mat, "use_shadows", text=_("Receive"))
- col.prop(mat, "use_transparent_shadows", text=_("Receive Transparent"))
+ col.prop(mat, "use_shadows", text="Receive")
+ col.prop(mat, "use_transparent_shadows", text="Receive Transparent")
if simple_material(base_mat):
- col.prop(mat, "use_cast_shadows_only", text=_("Cast Only"))
- col.prop(mat, "shadow_cast_alpha", text=_("Casting Alpha"))
- col.prop(mat, "use_only_shadow", text=_("Shadows Only"))
+ col.prop(mat, "use_cast_shadows_only", text="Cast Only")
+ col.prop(mat, "shadow_cast_alpha", text="Casting Alpha")
+ col.prop(mat, "use_only_shadow", text="Shadows Only")
sub = col.column()
sub.active = mat.use_only_shadow
sub.prop(mat, "shadow_only_type", text="")
@@ -804,11 +803,11 @@ class MATERIAL_PT_shadow(MaterialButtonsPanel, Panel):
col.prop(mat, "use_cast_buffer_shadows")
sub = col.column()
sub.active = mat.use_cast_buffer_shadows
- sub.prop(mat, "shadow_buffer_bias", text=_("Buffer Bias"))
- col.prop(mat, "use_ray_shadow_bias", text=_("Auto Ray Bias"))
+ sub.prop(mat, "shadow_buffer_bias", text="Buffer Bias")
+ col.prop(mat, "use_ray_shadow_bias", text="Auto Ray Bias")
sub = col.column()
sub.active = (not mat.use_ray_shadow_bias)
- sub.prop(mat, "shadow_ray_bias", text=_("Ray Bias"))
+ sub.prop(mat, "shadow_ray_bias", text="Ray Bias")
if simple_material(base_mat):
col.prop(mat, "use_cast_approximate")
@@ -921,7 +920,7 @@ class MATERIAL_PT_volume_lighting(VolumeButtonsPanel, Panel):
sub = col.column()
sub.enabled = True
sub.active = False
- sub.label(_("Light Cache Enabled"))
+ sub.label("Light Cache Enabled")
col.prop(vol, "cache_resolution")
sub = col.column(align=True)
@@ -960,7 +959,7 @@ class MATERIAL_PT_volume_integration(VolumeButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Step Calculation:"))
+ col.label(text="Step Calculation:")
col.prop(vol, "step_method", text="")
col = col.column(align=True)
col.prop(vol, "step_size")
@@ -995,11 +994,11 @@ class MATERIAL_PT_volume_options(VolumeButtonsPanel, Panel):
col.prop(mat, "use_mist")
col = split.column()
- col.label(text=_("Light Group:"))
+ col.label(text="Light Group:")
col.prop(mat, "light_group", text="")
row = col.row()
row.active = bool(mat.light_group)
- row.prop(mat, "use_light_group_exclusive", text=_("Exclusive"))
+ row.prop(mat, "use_light_group_exclusive", text="Exclusive")
class MATERIAL_PT_custom_props(MaterialButtonsPanel, PropertyPanel, Panel):
diff --git a/release/scripts/startup/bl_ui/properties_object.py b/release/scripts/startup/bl_ui/properties_object.py
index 89ffd4d3ed1..0779debb102 100644
--- a/release/scripts/startup/bl_ui/properties_object.py
+++ b/release/scripts/startup/bl_ui/properties_object.py
@@ -20,7 +20,6 @@
import bpy
from bpy.types import Panel
from rna_prop_ui import PropertyPanel
-from blf import gettext as _
class ObjectButtonsPanel():
@@ -56,14 +55,14 @@ class OBJECT_PT_transform(ObjectButtonsPanel, Panel):
row.column().prop(ob, "location")
if ob.rotation_mode == 'QUATERNION':
- row.column().prop(ob, "rotation_quaternion", text=_("Rotation"))
+ row.column().prop(ob, "rotation_quaternion", text="Rotation")
elif ob.rotation_mode == 'AXIS_ANGLE':
- #row.column().label(text=_("Rotation"))
- #row.column().prop(pchan, "rotation_angle", text=_("Angle"))
- #row.column().prop(pchan, "rotation_axis", text=_("Axis"))
- row.column().prop(ob, "rotation_axis_angle", text=_("Rotation"))
+ #row.column().label(text="Rotation")
+ #row.column().prop(pchan, "rotation_angle", text="Angle")
+ #row.column().prop(pchan, "rotation_axis", text="Axis")
+ row.column().prop(ob, "rotation_axis_angle", text="Rotation")
else:
- row.column().prop(ob, "rotation_euler", text=_("Rotation"))
+ row.column().prop(ob, "rotation_euler", text="Rotation")
row.column().prop(ob, "scale")
@@ -83,15 +82,15 @@ class OBJECT_PT_delta_transform(ObjectButtonsPanel, Panel):
row.column().prop(ob, "delta_location")
if ob.rotation_mode == 'QUATERNION':
- row.column().prop(ob, "delta_rotation_quaternion", text=_("Rotation"))
+ row.column().prop(ob, "delta_rotation_quaternion", text="Rotation")
elif ob.rotation_mode == 'AXIS_ANGLE':
- #row.column().label(text=_("Rotation"))
- #row.column().prop(pchan, "delta_rotation_angle", text=_("Angle"))
- #row.column().prop(pchan, "delta_rotation_axis", text=_("Axis"))
- #row.column().prop(ob, "delta_rotation_axis_angle", text=_("Rotation"))
- row.column().label(text=_("Not for Axis-Angle"))
+ #row.column().label(text="Rotation")
+ #row.column().prop(pchan, "delta_rotation_angle", text="Angle")
+ #row.column().prop(pchan, "delta_rotation_axis", text="Axis")
+ #row.column().prop(ob, "delta_rotation_axis_angle", text="Rotation")
+ row.column().label(text="Not for Axis-Angle")
else:
- row.column().prop(ob, "delta_rotation_euler", text=_("Rotation"))
+ row.column().prop(ob, "delta_rotation_euler", text="Rotation")
row.column().prop(ob, "delta_scale")
@@ -108,18 +107,18 @@ class OBJECT_PT_transform_locks(ObjectButtonsPanel, Panel):
row = layout.row()
col = row.column()
- col.prop(ob, "lock_location", text=_("Location"))
+ col.prop(ob, "lock_location", text="Location")
col = row.column()
if ob.rotation_mode in {'QUATERNION', 'AXIS_ANGLE'}:
- col.prop(ob, "lock_rotations_4d", text=_("Rotation"))
+ col.prop(ob, "lock_rotations_4d", text="Rotation")
if ob.lock_rotations_4d:
col.prop(ob, "lock_rotation_w", text="W")
col.prop(ob, "lock_rotation", text="")
else:
- col.prop(ob, "lock_rotation", text=_("Rotation"))
+ col.prop(ob, "lock_rotation", text="Rotation")
- row.column().prop(ob, "lock_scale", text=_("Scale"))
+ row.column().prop(ob, "lock_scale", text="Scale")
class OBJECT_PT_relations(ObjectButtonsPanel, Panel):
@@ -138,7 +137,7 @@ class OBJECT_PT_relations(ObjectButtonsPanel, Panel):
col.prop(ob, "pass_index")
col = split.column()
- col.label(text=_("Parent:"))
+ col.label(text="Parent:")
col.prop(ob, "parent", text="")
sub = col.column()
@@ -158,7 +157,7 @@ class OBJECT_PT_groups(ObjectButtonsPanel, Panel):
ob = context.object
row = layout.row(align=True)
- row.operator("object.group_link", text=_("Add to Group"))
+ row.operator("object.group_link", text="Add to Group")
row.operator("object.group_add", text="", icon='ZOOMIN')
# XXX, this is bad practice, yes, I wrote it :( - campbell
@@ -177,12 +176,12 @@ class OBJECT_PT_groups(ObjectButtonsPanel, Panel):
split = col.box().split()
col = split.column()
- col.prop(group, "layers", text=_("Dupli"))
+ col.prop(group, "layers", text="Dupli")
col = split.column()
col.prop(group, "dupli_offset", text="")
- prop = col.operator("wm.context_set_value", text=_("From Cursor"))
+ prop = col.operator("wm.context_set_value", text="From Cursor")
prop.data_path = "object.users_group[%d].dupli_offset" % index
prop.value = value
index += 1
@@ -198,11 +197,11 @@ class OBJECT_PT_display(ObjectButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.prop(ob, "draw_type", text=_("Type"))
+ col.prop(ob, "draw_type", text="Type")
col = split.column()
row = col.row()
- row.prop(ob, "show_bounds", text=_("Bounds"))
+ row.prop(ob, "show_bounds", text="Bounds")
sub = row.row()
sub.active = ob.show_bounds
sub.prop(ob, "draw_bounds_type", text="")
@@ -210,16 +209,16 @@ class OBJECT_PT_display(ObjectButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.prop(ob, "show_name", text=_("Name"))
- col.prop(ob, "show_axis", text=_("Axis"))
- col.prop(ob, "show_wire", text=_("Wire"))
- col.prop(ob, "color", text=_("Object Color"))
+ col.prop(ob, "show_name", text="Name")
+ col.prop(ob, "show_axis", text="Axis")
+ col.prop(ob, "show_wire", text="Wire")
+ col.prop(ob, "color", text="Object Color")
col = split.column()
- col.prop(ob, "show_texture_space", text=_("Texture Space"))
- col.prop(ob, "show_x_ray", text=_("X-Ray"))
+ col.prop(ob, "show_texture_space", text="Texture Space")
+ col.prop(ob, "show_x_ray", text="X-Ray")
if ob.type == 'MESH':
- col.prop(ob, "show_transparent", text=_("Transparency"))
+ col.prop(ob, "show_transparent", text="Transparency")
class OBJECT_PT_duplication(ObjectButtonsPanel, Panel):
@@ -236,26 +235,26 @@ class OBJECT_PT_duplication(ObjectButtonsPanel, Panel):
split = layout.split()
col = split.column(align=True)
- col.prop(ob, "dupli_frames_start", text=_("Start"))
- col.prop(ob, "dupli_frames_end", text=_("End"))
+ col.prop(ob, "dupli_frames_start", text="Start")
+ col.prop(ob, "dupli_frames_end", text="End")
col = split.column(align=True)
- col.prop(ob, "dupli_frames_on", text=_("On"))
- col.prop(ob, "dupli_frames_off", text=_("Off"))
+ col.prop(ob, "dupli_frames_on", text="On")
+ col.prop(ob, "dupli_frames_off", text="Off")
- layout.prop(ob, "use_dupli_frames_speed", text=_("Speed"))
+ layout.prop(ob, "use_dupli_frames_speed", text="Speed")
elif ob.dupli_type == 'VERTS':
- layout.prop(ob, "use_dupli_vertices_rotation", text=_("Rotation"))
+ layout.prop(ob, "use_dupli_vertices_rotation", text="Rotation")
elif ob.dupli_type == 'FACES':
row = layout.row()
- row.prop(ob, "use_dupli_faces_scale", text=_("Scale"))
- row.prop(ob, "dupli_faces_scale", text=_("Inherit Scale"))
+ row.prop(ob, "use_dupli_faces_scale", text="Scale")
+ row.prop(ob, "dupli_faces_scale", text="Inherit Scale")
elif ob.dupli_type == 'GROUP':
- layout.prop(ob, "dupli_group", text=_("Group"))
+ layout.prop(ob, "dupli_group", text="Group")
# XXX: the following options are all quite buggy, ancient hacks that should be dropped
@@ -272,21 +271,21 @@ class OBJECT_PT_animation(ObjectButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Time Offset:"))
- col.prop(ob, "use_time_offset_edit", text=_("Edit"))
+ col.label(text="Time Offset:")
+ col.prop(ob, "use_time_offset_edit", text="Edit")
row = col.row()
- row.prop(ob, "use_time_offset_parent", text=_("Parent"))
+ row.prop(ob, "use_time_offset_parent", text="Parent")
row.active = (ob.parent is not None)
row = col.row()
row.prop(ob, "use_slow_parent")
row.active = (ob.parent is not None)
- col.prop(ob, "time_offset", text=_("Offset"))
+ col.prop(ob, "time_offset", text="Offset")
# XXX: these are still used for a few curve-related tracking features
col = split.column()
- col.label(text=_("Tracking Axes:"))
- col.prop(ob, "track_axis", text=_("Axis"))
- col.prop(ob, "up_axis", text=_("Up Axis"))
+ col.label(text="Tracking Axes:")
+ col.prop(ob, "track_axis", text="Axis")
+ col.prop(ob, "up_axis", text="Up Axis")
from bl_ui.properties_animviz import (
@@ -313,8 +312,8 @@ class OBJECT_PT_motion_paths(MotionPathButtonsPanel, Panel):
layout.separator()
row = layout.row()
- row.operator("object.paths_calculate", text=_("Calculate Paths"))
- row.operator("object.paths_clear", text=_("Clear Paths"))
+ row.operator("object.paths_calculate", text="Calculate Paths")
+ row.operator("object.paths_clear", text="Clear Paths")
class OBJECT_PT_onion_skinning(OnionSkinButtonsPanel): # , Panel): # inherit from panel when ready
diff --git a/release/scripts/startup/bl_ui/properties_object_constraint.py b/release/scripts/startup/bl_ui/properties_object_constraint.py
index 7b48834eb79..05fac2026a0 100644
--- a/release/scripts/startup/bl_ui/properties_object_constraint.py
+++ b/release/scripts/startup/bl_ui/properties_object_constraint.py
@@ -19,7 +19,6 @@
# <pep8 compliant>
import bpy
from bpy.types import Panel
-from blf import gettext as _
class ConstraintButtonsPanel():
@@ -44,7 +43,7 @@ class ConstraintButtonsPanel():
split = layout.split(percentage=0.2)
- split.label(text=_("Space:"))
+ split.label(text="Space:")
row = split.row()
if target:
@@ -61,21 +60,21 @@ class ConstraintButtonsPanel():
if con.target and subtargets:
if con.target.type == 'ARMATURE':
- layout.prop_search(con, "subtarget", con.target.data, "bones", text=_("Bone"))
+ layout.prop_search(con, "subtarget", con.target.data, "bones", text="Bone")
if hasattr(con, "head_tail"):
row = layout.row()
- row.label(text=_("Head/Tail:"))
+ row.label(text="Head/Tail:")
row.prop(con, "head_tail", text="")
elif con.target.type in {'MESH', 'LATTICE'}:
- layout.prop_search(con, "subtarget", con.target, "vertex_groups", text=_("Vertex Group"))
+ layout.prop_search(con, "subtarget", con.target, "vertex_groups", text="Vertex Group")
def ik_template(self, layout, con):
# only used for iTaSC
layout.prop(con, "pole_target")
if con.pole_target and con.pole_target.type == 'ARMATURE':
- layout.prop_search(con, "pole_subtarget", con.pole_target.data, "bones", text=_("Bone"))
+ layout.prop_search(con, "pole_subtarget", con.pole_target.data, "bones", text="Bone")
if con.pole_target:
row = layout.row()
@@ -97,19 +96,19 @@ class ConstraintButtonsPanel():
split = layout.split()
col = split.column()
- col.label(text=_("Location:"))
+ col.label(text="Location:")
col.prop(con, "use_location_x", text="X")
col.prop(con, "use_location_y", text="Y")
col.prop(con, "use_location_z", text="Z")
col = split.column()
- col.label(text=_("Rotation:"))
+ col.label(text="Rotation:")
col.prop(con, "use_rotation_x", text="X")
col.prop(con, "use_rotation_y", text="Y")
col.prop(con, "use_rotation_z", text="Z")
col = split.column()
- col.label(text=_("Scale:"))
+ col.label(text="Scale:")
col.prop(con, "use_scale_x", text="X")
col.prop(con, "use_scale_y", text="Y")
col.prop(con, "use_scale_z", text="Z")
@@ -122,11 +121,11 @@ class ConstraintButtonsPanel():
self.target_template(layout, con)
row = layout.row()
- row.label(text=_("To:"))
+ row.label(text="To:")
row.prop(con, "track_axis", expand=True)
row = layout.row()
- row.prop(con, "up_axis", text=_("Up"))
+ row.prop(con, "up_axis", text="Up")
row.prop(con, "use_target_z")
self.space_template(layout, con)
@@ -141,7 +140,7 @@ class ConstraintButtonsPanel():
layout.prop(con, "pole_target")
if con.pole_target and con.pole_target.type == 'ARMATURE':
- layout.prop_search(con, "pole_subtarget", con.pole_target.data, "bones", text=_("Bone"))
+ layout.prop_search(con, "pole_subtarget", con.pole_target.data, "bones", text="Bone")
if con.pole_target:
row = layout.row()
@@ -153,11 +152,11 @@ class ConstraintButtonsPanel():
col.prop(con, "iterations")
col.prop(con, "chain_count")
- col.label(text=_("Weight:"))
- col.prop(con, "weight", text=_("Position"), slider=True)
+ col.label(text="Weight:")
+ col.prop(con, "weight", text="Position", slider=True)
sub = col.column()
sub.active = con.use_rotation
- sub.prop(con, "orient_weight", text=_("Rotation"), slider=True)
+ sub.prop(con, "orient_weight", text="Rotation", slider=True)
col = split.column()
col.prop(con, "use_tail")
@@ -171,16 +170,16 @@ class ConstraintButtonsPanel():
self.ik_template(layout, con)
row = layout.row()
- row.label(text=_("Axis Ref:"))
+ row.label(text="Axis Ref:")
row.prop(con, "reference_axis", expand=True)
split = layout.split(percentage=0.33)
split.row().prop(con, "use_location")
row = split.row()
- row.prop(con, "weight", text=_("Weight"), slider=True)
+ row.prop(con, "weight", text="Weight", slider=True)
row.active = con.use_location
split = layout.split(percentage=0.33)
row = split.row()
- row.label(text=_("Lock:"))
+ row.label(text="Lock:")
row = split.row()
row.prop(con, "lock_location_x", text="X")
row.prop(con, "lock_location_y", text="Y")
@@ -190,11 +189,11 @@ class ConstraintButtonsPanel():
split = layout.split(percentage=0.33)
split.row().prop(con, "use_rotation")
row = split.row()
- row.prop(con, "orient_weight", text=_("Weight"), slider=True)
+ row.prop(con, "orient_weight", text="Weight", slider=True)
row.active = con.use_rotation
split = layout.split(percentage=0.33)
row = split.row()
- row.label(text=_("Lock:"))
+ row.label(text="Lock:")
row = split.row()
row.prop(con, "lock_rotation_x", text="X")
row.prop(con, "lock_rotation_y", text="Y")
@@ -208,8 +207,8 @@ class ConstraintButtonsPanel():
layout.prop(con, "limit_mode")
row = layout.row()
- row.prop(con, "weight", text=_("Weight"), slider=True)
- row.prop(con, "distance", text=_("Distance"), slider=True)
+ row.prop(con, "weight", text="Weight", slider=True)
+ row.prop(con, "distance", text="Distance", slider=True)
def FOLLOW_PATH(self, context, layout, con):
self.target_template(layout, con)
@@ -223,16 +222,16 @@ class ConstraintButtonsPanel():
col = split.column()
col.prop(con, "use_fixed_location")
if con.use_fixed_location:
- col.prop(con, "offset_factor", text=_("Offset"))
+ col.prop(con, "offset_factor", text="Offset")
else:
col.prop(con, "offset")
row = layout.row()
- row.label(text=_("Forward:"))
+ row.label(text="Forward:")
row.prop(con, "forward_axis", expand=True)
row = layout.row()
- row.prop(con, "up_axis", text=_("Up"))
+ row.prop(con, "up_axis", text="Up")
row.label()
def LIMIT_ROTATION(self, context, layout, con):
@@ -242,27 +241,27 @@ class ConstraintButtonsPanel():
col.prop(con, "use_limit_x")
sub = col.column()
sub.active = con.use_limit_x
- sub.prop(con, "min_x", text=_("Min"))
- sub.prop(con, "max_x", text=_("Max"))
+ sub.prop(con, "min_x", text="Min")
+ sub.prop(con, "max_x", text="Max")
col = split.column(align=True)
col.prop(con, "use_limit_y")
sub = col.column()
sub.active = con.use_limit_y
- sub.prop(con, "min_y", text=_("Min"))
- sub.prop(con, "max_y", text=_("Max"))
+ sub.prop(con, "min_y", text="Min")
+ sub.prop(con, "max_y", text="Max")
col = split.column(align=True)
col.prop(con, "use_limit_z")
sub = col.column()
sub.active = con.use_limit_z
- sub.prop(con, "min_z", text=_("Min"))
- sub.prop(con, "max_z", text=_("Max"))
+ sub.prop(con, "min_z", text="Min")
+ sub.prop(con, "max_z", text="Max")
layout.prop(con, "use_transform_limit")
row = layout.row()
- row.label(text=_("Convert:"))
+ row.label(text="Convert:")
row.prop(con, "owner_space", text="")
def LIMIT_LOCATION(self, context, layout, con):
@@ -303,7 +302,7 @@ class ConstraintButtonsPanel():
row.label()
row = layout.row()
- row.label(text=_("Convert:"))
+ row.label(text="Convert:")
row.prop(con, "owner_space", text="")
def LIMIT_SCALE(self, context, layout, con):
@@ -344,7 +343,7 @@ class ConstraintButtonsPanel():
row.label()
row = layout.row()
- row.label(text=_("Convert:"))
+ row.label(text="Convert:")
row.prop(con, "owner_space", text="")
def COPY_ROTATION(self, context, layout, con):
@@ -356,19 +355,19 @@ class ConstraintButtonsPanel():
col.prop(con, "use_x", text="X")
sub = col.column()
sub.active = con.use_x
- sub.prop(con, "invert_x", text=_("Invert"))
+ sub.prop(con, "invert_x", text="Invert")
col = split.column()
col.prop(con, "use_y", text="Y")
sub = col.column()
sub.active = con.use_y
- sub.prop(con, "invert_y", text=_("Invert"))
+ sub.prop(con, "invert_y", text="Invert")
col = split.column()
col.prop(con, "use_z", text="Z")
sub = col.column()
sub.active = con.use_z
- sub.prop(con, "invert_z", text=_("Invert"))
+ sub.prop(con, "invert_z", text="Invert")
layout.prop(con, "use_offset")
@@ -383,19 +382,19 @@ class ConstraintButtonsPanel():
col.prop(con, "use_x", text="X")
sub = col.column()
sub.active = con.use_x
- sub.prop(con, "invert_x", text=_("Invert"))
+ sub.prop(con, "invert_x", text="Invert")
col = split.column()
col.prop(con, "use_y", text="Y")
sub = col.column()
sub.active = con.use_y
- sub.prop(con, "invert_y", text=_("Invert"))
+ sub.prop(con, "invert_y", text="Invert")
col = split.column()
col.prop(con, "use_z", text="Z")
sub = col.column()
sub.active = con.use_z
- sub.prop(con, "invert_z", text=_("Invert"))
+ sub.prop(con, "invert_z", text="Invert")
layout.prop(con, "use_offset")
@@ -416,7 +415,7 @@ class ConstraintButtonsPanel():
def MAINTAIN_VOLUME(self, context, layout, con):
row = layout.row()
- row.label(text=_("Free:"))
+ row.label(text="Free:")
row.prop(con, "free_axis", expand=True)
layout.prop(con, "volume")
@@ -440,28 +439,28 @@ class ConstraintButtonsPanel():
split = layout.split()
col = split.column(align=True)
- col.label(text=_("Action Length:"))
- col.prop(con, "frame_start", text=_("Start"))
- col.prop(con, "frame_end", text=_("End"))
+ col.label(text="Action Length:")
+ col.prop(con, "frame_start", text="Start")
+ col.prop(con, "frame_end", text="End")
col = split.column(align=True)
- col.label(text=_("Target Range:"))
- col.prop(con, "min", text=_("Min"))
- col.prop(con, "max", text=_("Max"))
+ col.label(text="Target Range:")
+ col.prop(con, "min", text="Min")
+ col.prop(con, "max", text="Max")
row = layout.row()
- row.label(text=_("Convert:"))
+ row.label(text="Convert:")
row.prop(con, "target_space", text="")
def LOCKED_TRACK(self, context, layout, con):
self.target_template(layout, con)
row = layout.row()
- row.label(text=_("To:"))
+ row.label(text="To:")
row.prop(con, "track_axis", expand=True)
row = layout.row()
- row.label(text=_("Lock:"))
+ row.label(text="Lock:")
row.prop(con, "lock_axis", expand=True)
def LIMIT_DISTANCE(self, context, layout, con):
@@ -472,7 +471,7 @@ class ConstraintButtonsPanel():
col.operator("constraint.limitdistance_reset")
row = layout.row()
- row.label(text=_("Clamp Region:"))
+ row.label(text="Clamp Region:")
row.prop(con, "limit_mode", text="")
row = layout.row()
@@ -483,16 +482,16 @@ class ConstraintButtonsPanel():
self.target_template(layout, con)
row = layout.row()
- row.prop(con, "rest_length", text=_("Rest Length"))
- row.operator("constraint.stretchto_reset", text=_("Reset"))
+ row.prop(con, "rest_length", text="Rest Length")
+ row.operator("constraint.stretchto_reset", text="Reset")
- layout.prop(con, "bulge", text=_("Volume Variation"))
+ layout.prop(con, "bulge", text="Volume Variation")
row = layout.row()
- row.label(text=_("Volume:"))
+ row.label(text="Volume:")
row.prop(con, "volume", expand=True)
- row.label(text=_("Plane:"))
+ row.label(text="Plane:")
row.prop(con, "keep_axis", expand=True)
def FLOOR(self, context, layout, con):
@@ -505,7 +504,7 @@ class ConstraintButtonsPanel():
layout.prop(con, "offset")
row = layout.row()
- row.label(text=_("Min/Max:"))
+ row.label(text="Min/Max:")
row.prop(con, "floor_location", expand=True)
self.space_template(layout, con)
@@ -517,113 +516,113 @@ class ConstraintButtonsPanel():
layout.prop(con, "child")
row = layout.row()
- row.prop(con, "use_linked_collision", text=_("Linked Collision"))
- row.prop(con, "show_pivot", text=_("Display Pivot"))
+ row.prop(con, "use_linked_collision", text="Linked Collision")
+ row.prop(con, "show_pivot", text="Display Pivot")
split = layout.split()
col = split.column(align=True)
- col.label(text=_("Pivot:"))
+ col.label(text="Pivot:")
col.prop(con, "pivot_x", text="X")
col.prop(con, "pivot_y", text="Y")
col.prop(con, "pivot_z", text="Z")
col = split.column(align=True)
- col.label(text=_("Axis:"))
+ col.label(text="Axis:")
col.prop(con, "axis_x", text="X")
col.prop(con, "axis_y", text="Y")
col.prop(con, "axis_z", text="Z")
if con.pivot_type == 'CONE_TWIST':
- layout.label(text=_("Limits:"))
+ layout.label(text="Limits:")
split = layout.split()
col = split.column()
- col.prop(con, "use_angular_limit_x", text=_("Angle X"))
+ col.prop(con, "use_angular_limit_x", text="Angle X")
sub = col.column()
sub.active = con.use_angular_limit_x
sub.prop(con, "limit_angle_max_x", text="")
col = split.column()
- col.prop(con, "use_angular_limit_y", text=_("Angle Y"))
+ col.prop(con, "use_angular_limit_y", text="Angle Y")
sub = col.column()
sub.active = con.use_angular_limit_y
sub.prop(con, "limit_angle_max_y", text="")
col = split.column()
- col.prop(con, "use_angular_limit_z", text=_("Angle Z"))
+ col.prop(con, "use_angular_limit_z", text="Angle Z")
sub = col.column()
sub.active = con.use_angular_limit_z
sub.prop(con, "limit_angle_max_z", text="")
elif con.pivot_type == 'GENERIC_6_DOF':
- layout.label(text=_("Limits:"))
+ layout.label(text="Limits:")
split = layout.split()
col = split.column(align=True)
col.prop(con, "use_limit_x", text="X")
sub = col.column()
sub.active = con.use_limit_x
- sub.prop(con, "limit_min_x", text=_("Min"))
- sub.prop(con, "limit_max_x", text=_("Max"))
+ sub.prop(con, "limit_min_x", text="Min")
+ sub.prop(con, "limit_max_x", text="Max")
col = split.column(align=True)
col.prop(con, "use_limit_y", text="Y")
sub = col.column()
sub.active = con.use_limit_y
- sub.prop(con, "limit_min_y", text=_("Min"))
- sub.prop(con, "limit_max_y", text=_("Max"))
+ sub.prop(con, "limit_min_y", text="Min")
+ sub.prop(con, "limit_max_y", text="Max")
col = split.column(align=True)
col.prop(con, "use_limit_z", text="Z")
sub = col.column()
sub.active = con.use_limit_z
- sub.prop(con, "limit_min_z", text=_("Min"))
- sub.prop(con, "limit_max_z", text=_("Max"))
+ sub.prop(con, "limit_min_z", text="Min")
+ sub.prop(con, "limit_max_z", text="Max")
split = layout.split()
col = split.column(align=True)
- col.prop(con, "use_angular_limit_x", text=_("Angle X"))
+ col.prop(con, "use_angular_limit_x", text="Angle X")
sub = col.column()
sub.active = con.use_angular_limit_x
- sub.prop(con, "limit_angle_min_x", text=_("Min"))
- sub.prop(con, "limit_angle_max_x", text=_("Max"))
+ sub.prop(con, "limit_angle_min_x", text="Min")
+ sub.prop(con, "limit_angle_max_x", text="Max")
col = split.column(align=True)
- col.prop(con, "use_angular_limit_y", text=_("Angle Y"))
+ col.prop(con, "use_angular_limit_y", text="Angle Y")
sub = col.column()
sub.active = con.use_angular_limit_y
- sub.prop(con, "limit_angle_min_y", text=_("Min"))
- sub.prop(con, "limit_angle_max_y", text=_("Max"))
+ sub.prop(con, "limit_angle_min_y", text="Min")
+ sub.prop(con, "limit_angle_max_y", text="Max")
col = split.column(align=True)
- col.prop(con, "use_angular_limit_z", text=_("Angle Z"))
+ col.prop(con, "use_angular_limit_z", text="Angle Z")
sub = col.column()
sub.active = con.use_angular_limit_z
- sub.prop(con, "limit_angle_min_z", text=_("Min"))
- sub.prop(con, "limit_angle_max_z", text=_("Max"))
+ sub.prop(con, "limit_angle_min_z", text="Min")
+ sub.prop(con, "limit_angle_max_z", text="Max")
elif con.pivot_type == 'HINGE':
- layout.label(text=_("Limits:"))
+ layout.label(text="Limits:")
split = layout.split()
row = split.row(align=True)
col = row.column()
- col.prop(con, "use_angular_limit_x", text=_("Angle X"))
+ col.prop(con, "use_angular_limit_x", text="Angle X")
col = row.column()
col.active = con.use_angular_limit_x
- col.prop(con, "limit_angle_min_x", text=_("Min"))
+ col.prop(con, "limit_angle_min_x", text="Min")
col = row.column()
col.active = con.use_angular_limit_x
- col.prop(con, "limit_angle_max_x", text=_("Max"))
+ col.prop(con, "limit_angle_max_x", text="Max")
def CLAMP_TO(self, context, layout, con):
self.target_template(layout, con)
row = layout.row()
- row.label(text=_("Main Axis:"))
+ row.label(text="Main Axis:")
row.prop(con, "main_axis", expand=True)
layout.prop(con, "use_cyclic")
@@ -631,32 +630,32 @@ class ConstraintButtonsPanel():
def TRANSFORM(self, context, layout, con):
self.target_template(layout, con)
- layout.prop(con, "use_motion_extrapolate", text=_("Extrapolate"))
+ layout.prop(con, "use_motion_extrapolate", text="Extrapolate")
col = layout.column()
- col.row().label(text=_("Source:"))
+ col.row().label(text="Source:")
col.row().prop(con, "map_from", expand=True)
split = layout.split()
sub = split.column(align=True)
sub.label(text="X:")
- sub.prop(con, "from_min_x", text=_("Min"))
- sub.prop(con, "from_max_x", text=_("Max"))
+ sub.prop(con, "from_min_x", text="Min")
+ sub.prop(con, "from_max_x", text="Max")
sub = split.column(align=True)
sub.label(text="Y:")
- sub.prop(con, "from_min_y", text=_("Min"))
- sub.prop(con, "from_max_y", text=_("Max"))
+ sub.prop(con, "from_min_y", text="Min")
+ sub.prop(con, "from_max_y", text="Max")
sub = split.column(align=True)
sub.label(text="Z:")
- sub.prop(con, "from_min_z", text=_("Min"))
- sub.prop(con, "from_max_z", text=_("Max"))
+ sub.prop(con, "from_min_z", text="Min")
+ sub.prop(con, "from_max_z", text="Max")
col = layout.column()
row = col.row()
- row.label(text=_("Source to Destination Mapping:"))
+ row.label(text="Source to Destination Mapping:")
# note: chr(187) is the ASCII arrow ( >> ). Blender Text Editor can't
# open it. Thus we are using the hardcoded value instead.
@@ -675,7 +674,7 @@ class ConstraintButtonsPanel():
split = layout.split()
col = split.column()
- col.label(text=_("Destination:"))
+ col.label(text="Destination:")
col.row().prop(con, "map_to", expand=True)
split = layout.split()
@@ -684,22 +683,22 @@ class ConstraintButtonsPanel():
col.label(text="X:")
sub = col.column(align=True)
- sub.prop(con, "to_min_x", text=_("Min"))
- sub.prop(con, "to_max_x", text=_("Max"))
+ sub.prop(con, "to_min_x", text="Min")
+ sub.prop(con, "to_max_x", text="Max")
col = split.column()
col.label(text="Y:")
sub = col.column(align=True)
- sub.prop(con, "to_min_y", text=_("Min"))
- sub.prop(con, "to_max_y", text=_("Max"))
+ sub.prop(con, "to_min_y", text="Min")
+ sub.prop(con, "to_max_y", text="Max")
col = split.column()
col.label(text="Z:")
sub = col.column(align=True)
- sub.prop(con, "to_min_z", text=_("Min"))
- sub.prop(con, "to_max_z", text=_("Max"))
+ sub.prop(con, "to_min_z", text="Min")
+ sub.prop(con, "to_max_z", text="Max")
self.space_template(layout, con)
@@ -719,20 +718,20 @@ class ConstraintButtonsPanel():
self.target_template(layout, con)
row = layout.row()
- row.label(text=_("To:"))
+ row.label(text="To:")
row.prop(con, "track_axis", expand=True)
def SPLINE_IK(self, context, layout, con):
self.target_template(layout, con)
col = layout.column()
- col.label(text=_("Spline Fitting:"))
+ col.label(text="Spline Fitting:")
col.prop(con, "chain_count")
col.prop(con, "use_even_divisions")
col.prop(con, "use_chain_offset")
col = layout.column()
- col.label(text=_("Chain Scaling:"))
+ col.label(text="Chain Scaling:")
col.prop(con, "use_y_stretch")
col.prop(con, "xz_scale_mode")
col.prop(con, "use_curve_radius")
@@ -742,20 +741,20 @@ class ConstraintButtonsPanel():
if con.target:
col = layout.column()
- col.prop(con, "offset", text=_("Pivot Offset"))
+ col.prop(con, "offset", text="Pivot Offset")
else:
col = layout.column()
col.prop(con, "use_relative_location")
if con.use_relative_location:
- col.prop(con, "offset", text=_("Relative Pivot Point"))
+ col.prop(con, "offset", text="Relative Pivot Point")
else:
- col.prop(con, "offset", text=_("Absolute Pivot Point"))
+ col.prop(con, "offset", text="Absolute Pivot Point")
col = layout.column()
- col.prop(con, "rotation_range", text=_("Pivot When"))
+ col.prop(con, "rotation_range", text="Pivot When")
def SCRIPT(self, context, layout, con):
- layout.label(_("Blender 2.5 has no py-constraints"))
+ layout.label("Blender 2.5 has no py-constraints")
class OBJECT_PT_constraints(ConstraintButtonsPanel, Panel):
@@ -774,7 +773,7 @@ class OBJECT_PT_constraints(ConstraintButtonsPanel, Panel):
if ob.mode == 'POSE':
box = layout.box()
box.alert = True
- box.label(icon='INFO', text=_("See Bone Constraints tab to Add Constraints to active bone"))
+ box.label(icon='INFO', text="See Bone Constraints tab to Add Constraints to active bone")
else:
layout.operator_menu_enum("object.constraint_add", "type")
diff --git a/release/scripts/startup/bl_ui/properties_particle.py b/release/scripts/startup/bl_ui/properties_particle.py
index 6424f6dca44..d4378b0d094 100644
--- a/release/scripts/startup/bl_ui/properties_particle.py
+++ b/release/scripts/startup/bl_ui/properties_particle.py
@@ -20,7 +20,6 @@
import bpy
from bpy.types import Panel
from rna_prop_ui import PropertyPanel
-from blf import gettext as _
from bl_ui.properties_physics_common import (
point_cache_ui,
@@ -109,17 +108,17 @@ class PARTICLE_PT_context_particles(ParticleButtonsPanel, Panel):
layout.template_ID(context.space_data, "pin_id")
if part.is_fluid:
- layout.label(text=_("Settings used for fluid"))
+ layout.label(text="Settings used for fluid")
return
- layout.prop(part, "type", text=_("Type"))
+ layout.prop(part, "type", text="Type")
elif not psys.settings:
split = layout.split(percentage=0.32)
col = split.column()
- col.label(text=_("Name:"))
- col.label(text=_("Settings:"))
+ col.label(text="Name:")
+ col.label(text="Settings:")
col = split.column()
col.prop(psys, "name", text="")
@@ -129,10 +128,10 @@ class PARTICLE_PT_context_particles(ParticleButtonsPanel, Panel):
split = layout.split(percentage=0.32)
col = split.column()
- col.label(text=_("Name:"))
+ col.label(text="Name:")
if part.is_fluid == False:
- col.label(text=_("Settings:"))
- col.label(text=_("Type:"))
+ col.label(text="Settings:")
+ col.label(text="Type:")
col = split.column()
col.prop(psys, "name", text="")
@@ -142,8 +141,8 @@ class PARTICLE_PT_context_particles(ParticleButtonsPanel, Panel):
row.template_ID(psys, "settings", new="particle.new")
#row = layout.row()
- #row.label(text=_("Viewport"))
- #row.label(text=_("Render"))
+ #row.label(text="Viewport")
+ #row.label(text="Render")
if part.is_fluid:
layout.label(text=str(part.count) + " fluid particles for this frame")
@@ -158,7 +157,7 @@ class PARTICLE_PT_context_particles(ParticleButtonsPanel, Panel):
split = layout.split(percentage=0.65)
if part.type == 'HAIR':
if psys is not None and psys.is_edited:
- split.operator("particle.edited_clear", text=_("Free Edit"))
+ split.operator("particle.edited_clear", text="Free Edit")
else:
row = split.row()
row.enabled = particle_panel_enabled(context, psys)
@@ -175,7 +174,7 @@ class PARTICLE_PT_context_particles(ParticleButtonsPanel, Panel):
elif psys is not None and part.type == 'REACTOR':
split.enabled = particle_panel_enabled(context, psys)
split.prop(psys, "reactor_target_object")
- split.prop(psys, "reactor_target_particle_system", text=_("Particle System"))
+ split.prop(psys, "reactor_target_particle_system", text="Particle System")
class PARTICLE_PT_emission(ParticleButtonsPanel, Panel):
@@ -222,7 +221,7 @@ class PARTICLE_PT_emission(ParticleButtonsPanel, Panel):
col.prop(part, "lifetime")
col.prop(part, "lifetime_random", slider=True)
- layout.label(text=_("Emit From:"))
+ layout.label(text="Emit From:")
layout.prop(part, "emit_from", expand=True)
row = layout.row()
@@ -240,11 +239,11 @@ class PARTICLE_PT_emission(ParticleButtonsPanel, Panel):
row = layout.row()
if part.distribution == 'JIT':
- row.prop(part, "userjit", text=_("Particles/Face"))
- row.prop(part, "jitter_factor", text=_("Jittering Amount"), slider=True)
+ row.prop(part, "userjit", text="Particles/Face")
+ row.prop(part, "jitter_factor", text="Jittering Amount", slider=True)
elif part.distribution == 'GRID':
row.prop(part, "grid_resolution")
- row.prop(part, "grid_random", text=_("Random"), slider=True)
+ row.prop(part, "grid_random", text="Random", slider=True)
class PARTICLE_PT_hair_dynamics(ParticleButtonsPanel, Panel):
@@ -285,22 +284,22 @@ class PARTICLE_PT_hair_dynamics(ParticleButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Material:"))
+ col.label(text="Material:")
sub = col.column(align=True)
- sub.prop(cloth, "pin_stiffness", text=_("Stiffness"))
+ sub.prop(cloth, "pin_stiffness", text="Stiffness")
sub.prop(cloth, "mass")
- sub.prop(cloth, "bending_stiffness", text=_("Bending"))
+ sub.prop(cloth, "bending_stiffness", text="Bending")
sub.prop(cloth, "internal_friction", slider=True)
sub.prop(cloth, "collider_friction", slider=True)
col = split.column()
- col.label(text=_("Damping:"))
+ col.label(text="Damping:")
sub = col.column(align=True)
- sub.prop(cloth, "spring_damping", text=_("Spring"))
- sub.prop(cloth, "air_damping", text=_("Air"))
+ sub.prop(cloth, "spring_damping", text="Spring")
+ sub.prop(cloth, "air_damping", text="Air")
- col.label(text=_("Quality:"))
- col.prop(cloth, "quality", text=_("Steps"), slider=True)
+ col.label(text="Quality:")
+ col.prop(cloth, "quality", text="Steps", slider=True)
class PARTICLE_PT_cache(ParticleButtonsPanel, Panel):
@@ -356,17 +355,17 @@ class PARTICLE_PT_velocity(ParticleButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Emitter Geometry:"))
+ col.label(text="Emitter Geometry:")
col.prop(part, "normal_factor")
sub = col.column(align=True)
sub.prop(part, "tangent_factor")
sub.prop(part, "tangent_phase", slider=True)
col = split.column()
- col.label(text=_("Emitter Object:"))
+ col.label(text="Emitter Object:")
col.prop(part, "object_align_factor", text="")
- layout.label(text=_("Other:"))
+ layout.label(text="Other:")
row = layout.row()
if part.emit_from == 'PARTICLE':
row.prop(part, "particle_factor")
@@ -407,21 +406,21 @@ class PARTICLE_PT_rotation(ParticleButtonsPanel, Panel):
layout.enabled = particle_panel_enabled(context, psys)
row = layout.row()
- row.label(text=_("Initial Rotation:"))
+ row.label(text="Initial Rotation:")
row.prop(part, "use_dynamic_rotation")
split = layout.split()
col = split.column(align=True)
col.prop(part, "rotation_mode", text="")
- col.prop(part, "rotation_factor_random", slider=True, text=_("Random"))
+ col.prop(part, "rotation_factor_random", slider=True, text="Random")
col = split.column(align=True)
col.prop(part, "phase_factor", slider=True)
- col.prop(part, "phase_factor_random", text=_("Random"), slider=True)
+ col.prop(part, "phase_factor_random", text="Random", slider=True)
col = layout.column()
- col.label(text=_("Angular Velocity:"))
+ col.label(text="Angular Velocity:")
col.row().prop(part, "angular_velocity_mode", expand=True)
if part.angular_velocity_mode != 'NONE':
@@ -462,19 +461,19 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, Panel):
if part.physics_type != 'NO':
col = row.column(align=True)
col.prop(part, "mass")
- col.prop(part, "use_multiply_size_mass", text=_("Multiply mass with size"))
+ col.prop(part, "use_multiply_size_mass", text="Multiply mass with size")
if part.physics_type in {'NEWTON', 'FLUID'}:
split = layout.split()
col = split.column()
- col.label(text=_("Forces:"))
+ col.label(text="Forces:")
col.prop(part, "brownian_factor")
col.prop(part, "drag_factor", slider=True)
col.prop(part, "damping", slider=True)
col = split.column()
- col.label(text=_("Integration:"))
+ col.label(text="Integration:")
col.prop(part, "integrator", text="")
col.prop(part, "timestep")
col.prop(part, "subframes")
@@ -489,13 +488,13 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Fluid properties:"))
- col.prop(fluid, "stiffness", text=_("Stiffness"))
- col.prop(fluid, "linear_viscosity", text=_("Viscosity"))
- col.prop(fluid, "buoyancy", text=_("Buoancy"), slider=True)
+ col.label(text="Fluid properties:")
+ col.prop(fluid, "stiffness", text="Stiffness")
+ col.prop(fluid, "linear_viscosity", text="Viscosity")
+ col.prop(fluid, "buoyancy", text="Buoancy", slider=True)
col = split.column()
- col.label(text=_("Advanced:"))
+ col.label(text="Advanced:")
sub = col.row()
sub.prop(fluid, "repulsion", slider=fluid.factor_repulsion)
@@ -516,8 +515,8 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Springs:"))
- col.prop(fluid, "spring_force", text=_("Force"))
+ col.label(text="Springs:")
+ col.prop(fluid, "spring_force", text="Force")
col.prop(fluid, "use_viscoelastic_springs")
sub = col.column(align=True)
sub.active = fluid.use_viscoelastic_springs
@@ -525,7 +524,7 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, Panel):
sub.prop(fluid, "plasticity", slider=True)
col = split.column()
- col.label(text=_("Advanced:"))
+ col.label(text="Advanced:")
sub = col.row()
sub.prop(fluid, "rest_length", slider=fluid.factor_rest_length)
sub.prop(fluid, "factor_rest_length", text="")
@@ -533,7 +532,7 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, Panel):
sub = col.column()
sub.active = fluid.use_viscoelastic_springs
sub.prop(fluid, "use_initial_rest_length")
- sub.prop(fluid, "spring_frames", text=_("Frames"))
+ sub.prop(fluid, "spring_frames", text="Frames")
elif part.physics_type == 'KEYED':
split = layout.split()
@@ -542,11 +541,11 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, Panel):
row = layout.row()
col = row.column()
col.active = not psys.use_keyed_timing
- col.prop(part, "keyed_loops", text=_("Loops"))
+ col.prop(part, "keyed_loops", text="Loops")
if psys:
- row.prop(psys, "use_keyed_timing", text=_("Use Timing"))
+ row.prop(psys, "use_keyed_timing", text="Use Timing")
- layout.label(text=_("Keys:"))
+ layout.label(text="Keys:")
elif part.physics_type == 'BOIDS':
boids = part.boids
@@ -582,7 +581,7 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, Panel):
row = layout.row()
col = row.column(align=True)
- col.label(text=_("Battle:"))
+ col.label(text="Battle:")
col.prop(boids, "health")
col.prop(boids, "strength")
col.prop(boids, "aggression")
@@ -590,16 +589,16 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, Panel):
col.prop(boids, "range")
col = row.column()
- col.label(text=_("Misc:"))
+ col.label(text="Misc:")
col.prop(boids, "bank", slider=True)
col.prop(boids, "pitch", slider=True)
col.prop(boids, "height", slider=True)
if psys and part.physics_type in {'KEYED', 'BOIDS', 'FLUID'}:
if part.physics_type == 'BOIDS':
- layout.label(text=_("Relations:"))
+ layout.label(text="Relations:")
elif part.physics_type == 'FLUID':
- layout.label(text=_("Fluid interaction:"))
+ layout.label(text="Fluid interaction:")
row = layout.row()
row.template_list(psys, "targets", psys, "active_particle_target_index")
@@ -622,7 +621,7 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, Panel):
#doesn't work yet
#col.alert = key.valid
col.prop(key, "object", text="")
- col.prop(key, "system", text=_("System"))
+ col.prop(key, "system", text="System")
col = row.column()
col.active = psys.use_keyed_timing
col.prop(key, "time")
@@ -632,7 +631,7 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, Panel):
#doesn't work yet
#sub.alert = key.valid
sub.prop(key, "object", text="")
- sub.prop(key, "system", text=_("System"))
+ sub.prop(key, "system", text="System")
layout.prop(key, "alliance", expand=True)
elif part.physics_type == 'FLUID':
@@ -640,7 +639,7 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, Panel):
#doesn't work yet
#sub.alert = key.valid
sub.prop(key, "object", text="")
- sub.prop(key, "system", text=_("System"))
+ sub.prop(key, "system", text="System")
class PARTICLE_PT_boidbrain(ParticleButtonsPanel, Panel):
@@ -679,7 +678,7 @@ class PARTICLE_PT_boidbrain(ParticleButtonsPanel, Panel):
state = boids.active_boid_state
- #layout.prop(state, "name", text=_("State name"))
+ #layout.prop(state, "name", text="State name")
row = layout.row()
row.prop(state, "ruleset_type")
@@ -722,7 +721,7 @@ class PARTICLE_PT_boidbrain(ParticleButtonsPanel, Panel):
row.prop(rule, "use_predict")
row.prop(rule, "fear_factor")
elif rule.type == 'FOLLOW_PATH':
- row.label(text=_("Not yet functional"))
+ row.label(text="Not yet functional")
elif rule.type == 'AVOID_COLLISION':
row.prop(rule, "use_avoid")
row.prop(rule, "use_avoid_collision")
@@ -801,14 +800,14 @@ class PARTICLE_PT_render(ParticleButtonsPanel, Panel):
sub.active = (part.use_render_adaptive is True and part.use_strand_primitive is False)
sub.prop(part, "adaptive_pixel")
col.prop(part, "use_hair_bspline")
- col.prop(part, "render_step", text=_("Steps"))
+ col.prop(part, "render_step", text="Steps")
col = split.column()
- col.label(text=_("Timing:"))
+ col.label(text="Timing:")
col.prop(part, "use_absolute_path_time")
- col.prop(part, "path_start", text=_("Start"), slider=not part.use_absolute_path_time)
- col.prop(part, "path_end", text=_("End"), slider=not part.use_absolute_path_time)
- col.prop(part, "length_random", text=_("Random"), slider=True)
+ col.prop(part, "path_start", text="Start", slider=not part.use_absolute_path_time)
+ col.prop(part, "path_end", text="End", slider=not part.use_absolute_path_time)
+ col.prop(part, "length_random", text="Random", slider=True)
row = layout.row()
col = row.column()
@@ -865,30 +864,30 @@ class PARTICLE_PT_render(ParticleButtonsPanel, Panel):
elif part.render_type == 'BILLBOARD':
ob = context.object
- col.label(text=_("Align:"))
+ col.label(text="Align:")
row = layout.row()
row.prop(part, "billboard_align", expand=True)
- row.prop(part, "lock_billboard", text=_("Lock"))
+ row.prop(part, "lock_billboard", text="Lock")
row = layout.row()
row.prop(part, "billboard_object")
row = layout.row()
col = row.column(align=True)
- col.label(text=_("Tilt:"))
- col.prop(part, "billboard_tilt", text=_("Angle"), slider=True)
- col.prop(part, "billboard_tilt_random", text=_("Random"), slider=True)
+ col.label(text="Tilt:")
+ col.prop(part, "billboard_tilt", text="Angle", slider=True)
+ col.prop(part, "billboard_tilt_random", text="Random", slider=True)
col = row.column()
col.prop(part, "billboard_offset")
row = layout.row()
col = row.column()
- col.prop(part, "billboard_size", text=_("Scale"))
+ col.prop(part, "billboard_size", text="Scale")
if part.billboard_align == 'VEL':
col = row.column(align=True)
- col.label(_("Velocity Scale:"))
- col.prop(part, "billboard_velocity_head", text=_("Head"))
- col.prop(part, "billboard_velocity_tail", text=_("Tail"))
+ col.label("Velocity Scale:")
+ col.prop(part, "billboard_velocity_head", text="Head")
+ col.prop(part, "billboard_velocity_tail", text="Tail")
if psys:
col = layout.column()
@@ -896,8 +895,8 @@ class PARTICLE_PT_render(ParticleButtonsPanel, Panel):
col.prop_search(psys, "billboard_time_index_uv", ob.data, "uv_textures")
split = layout.split(percentage=0.33)
- split.label(text=_("Split uv's:"))
- split.prop(part, "billboard_uv_split", text=_("Number of splits"))
+ split.label(text="Split uv's:")
+ split.prop(part, "billboard_uv_split", text="Number of splits")
if psys:
col = layout.column()
@@ -905,9 +904,9 @@ class PARTICLE_PT_render(ParticleButtonsPanel, Panel):
col.prop_search(psys, "billboard_split_uv", ob.data, "uv_textures")
row = col.row()
- row.label(text=_("Animate:"))
+ row.label(text="Animate:")
row.prop(part, "billboard_animation", text="")
- row.label(text=_("Offset:"))
+ row.label(text="Offset:")
row.prop(part, "billboard_offset_split", text="")
if part.render_type == 'HALO' or part.render_type == 'LINE' or part.render_type == 'BILLBOARD':
@@ -915,10 +914,10 @@ class PARTICLE_PT_render(ParticleButtonsPanel, Panel):
col = row.column()
col.prop(part, "trail_count")
if part.trail_count > 1:
- col.prop(part, "use_absolute_path_time", text=_("Length in frames"))
+ col.prop(part, "use_absolute_path_time", text="Length in frames")
col = row.column()
- col.prop(part, "path_end", text=_("Length"), slider=not part.use_absolute_path_time)
- col.prop(part, "length_random", text=_("Random"), slider=True)
+ col.prop(part, "path_end", text="Length", slider=not part.use_absolute_path_time)
+ col.prop(part, "length_random", text="Random", slider=True)
else:
col = row.column()
col.label(text="")
@@ -966,11 +965,11 @@ class PARTICLE_PT_draw(ParticleButtonsPanel, Panel):
if part.draw_percentage != 100 and psys is not None:
if part.type == 'HAIR':
if psys.use_hair_dynamics and psys.point_cache.is_baked == False:
- layout.row().label(text=_("Display percentage makes dynamics inaccurate without baking!"))
+ layout.row().label(text="Display percentage makes dynamics inaccurate without baking!")
else:
phystype = part.physics_type
if phystype != 'NO' and phystype != 'KEYED' and psys.point_cache.is_baked == False:
- layout.row().label(text=_("Display percentage makes dynamics inaccurate without baking!"))
+ layout.row().label(text="Display percentage makes dynamics inaccurate without baking!")
row = layout.row()
col = row.column()
@@ -981,11 +980,11 @@ class PARTICLE_PT_draw(ParticleButtonsPanel, Panel):
col.prop(part, "show_health")
col = row.column(align=True)
- col.label(text=_("Color:"))
+ col.label(text="Color:")
col.prop(part, "draw_color", text="")
sub = col.row()
sub.active = part.draw_color in ('VELOCITY', 'ACCELERATION')
- sub.prop(part, "color_maximum", text=_("Max"))
+ sub.prop(part, "color_maximum", text="Max")
if (path):
col.prop(part, "draw_step")
@@ -1014,24 +1013,24 @@ class PARTICLE_PT_children(ParticleButtonsPanel, Panel):
row = layout.row()
col = row.column(align=True)
- col.prop(part, "child_nbr", text=_("Display"))
- col.prop(part, "rendered_child_count", text=_("Render"))
+ col.prop(part, "child_nbr", text="Display")
+ col.prop(part, "rendered_child_count", text="Render")
if part.child_type == 'INTERPOLATED':
col = row.column()
if psys:
- col.prop(psys, "child_seed", text=_("Seed"))
+ col.prop(psys, "child_seed", text="Seed")
col.prop(part, "virtual_parents", slider=True)
col.prop(part, "create_long_hair_children")
else:
col = row.column(align=True)
- col.prop(part, "child_size", text=_("Size"))
- col.prop(part, "child_size_random", text=_("Random"))
+ col.prop(part, "child_size", text="Size")
+ col.prop(part, "child_size_random", text="Random")
split = layout.split()
col = split.column()
- col.label(text=_("Effects:"))
+ col.label(text="Effects:")
sub = col.column(align=True)
sub.prop(part, "clump_factor", slider=True)
@@ -1043,38 +1042,38 @@ class PARTICLE_PT_children(ParticleButtonsPanel, Panel):
if part.child_type == 'SIMPLE':
sub = col.column(align=True)
- sub.prop(part, "child_radius", text=_("Radius"))
- sub.prop(part, "child_roundness", text=_("Roundness"), slider=True)
+ sub.prop(part, "child_radius", text="Radius")
+ sub.prop(part, "child_roundness", text="Roundness", slider=True)
if psys:
- sub.prop(psys, "child_seed", text=_("Seed"))
+ sub.prop(psys, "child_seed", text="Seed")
elif part.virtual_parents > 0.0:
sub = col.column(align=True)
- sub.label(text=_("Parting not"))
- sub.label(text=_("available with"))
- sub.label(text=_("virtual parents"))
+ sub.label(text="Parting not")
+ sub.label(text="available with")
+ sub.label(text="virtual parents")
else:
sub = col.column(align=True)
- sub.prop(part, "child_parting_factor", text=_("Parting"), slider=True)
- sub.prop(part, "child_parting_min", text=_("Min"))
- sub.prop(part, "child_parting_max", text=_("Max"))
+ sub.prop(part, "child_parting_factor", text="Parting", slider=True)
+ sub.prop(part, "child_parting_min", text="Min")
+ sub.prop(part, "child_parting_max", text="Max")
col = split.column()
- col.label(text=_("Roughness:"))
+ col.label(text="Roughness:")
sub = col.column(align=True)
- sub.prop(part, "roughness_1", text=_("Uniform"))
- sub.prop(part, "roughness_1_size", text=_("Size"))
+ sub.prop(part, "roughness_1", text="Uniform")
+ sub.prop(part, "roughness_1_size", text="Size")
sub = col.column(align=True)
sub.prop(part, "roughness_endpoint", "Endpoint")
sub.prop(part, "roughness_end_shape")
sub = col.column(align=True)
- sub.prop(part, "roughness_2", text=_("Random"))
- sub.prop(part, "roughness_2_size", text=_("Size"))
+ sub.prop(part, "roughness_2", text="Random")
+ sub.prop(part, "roughness_2_size", text="Size")
sub.prop(part, "roughness_2_threshold", slider=True)
- layout.row().label(text=_("Kink:"))
+ layout.row().label(text="Kink:")
layout.row().prop(part, "kink", expand=True)
split = layout.split()
@@ -1083,7 +1082,7 @@ class PARTICLE_PT_children(ParticleButtonsPanel, Panel):
col = split.column()
sub = col.column(align=True)
sub.prop(part, "kink_amplitude")
- sub.prop(part, "kink_amplitude_clump", text=_("Clump"), slider=True)
+ sub.prop(part, "kink_amplitude_clump", text="Clump", slider=True)
col.prop(part, "kink_flat", slider=True)
col = split.column()
sub = col.column(align=True)
@@ -1124,25 +1123,25 @@ class PARTICLE_PT_force_fields(ParticleButtonsPanel, Panel):
row = layout.row()
row.prop(part, "use_self_effect")
- row.prop(part, "effector_amount", text=_("Amount"))
+ row.prop(part, "effector_amount", text="Amount")
split = layout.split(percentage=0.2)
- split.label(text=_("Type 1:"))
+ split.label(text="Type 1:")
split.prop(part.force_field_1, "type", text="")
basic_force_field_settings_ui(self, context, part.force_field_1)
if part.force_field_1.type != 'NONE':
- layout.label(text=_("Falloff:"))
+ layout.label(text="Falloff:")
basic_force_field_falloff_ui(self, context, part.force_field_1)
if part.force_field_1.type != 'NONE':
layout.label(text="")
split = layout.split(percentage=0.2)
- split.label(text=_("Type 2:"))
+ split.label(text="Type 2:")
split.prop(part.force_field_2, "type", text="")
basic_force_field_settings_ui(self, context, part.force_field_2)
if part.force_field_2.type != 'NONE':
- layout.label(text=_("Falloff:"))
+ layout.label(text="Falloff:")
basic_force_field_falloff_ui(self, context, part.force_field_2)
@@ -1164,56 +1163,56 @@ class PARTICLE_PT_vertexgroups(ParticleButtonsPanel, Panel):
psys = context.particle_system
row = layout.row()
- row.label(text=_("Vertex Group"))
- row.label(text=_("Negate"))
+ row.label(text="Vertex Group")
+ row.label(text="Negate")
row = layout.row()
- row.prop_search(psys, "vertex_group_density", ob, "vertex_groups", text=_("Density"))
+ row.prop_search(psys, "vertex_group_density", ob, "vertex_groups", text="Density")
row.prop(psys, "invert_vertex_group_density", text="")
# Commented out vertex groups don't work and are still waiting for better implementation
# row = layout.row()
- # row.prop_search(psys, "vertex_group_velocity", ob, "vertex_groups", text=_("Velocity"))
+ # row.prop_search(psys, "vertex_group_velocity", ob, "vertex_groups", text="Velocity")
# row.prop(psys, "invert_vertex_group_velocity", text="")
row = layout.row()
- row.prop_search(psys, "vertex_group_length", ob, "vertex_groups", text=_("Length"))
+ row.prop_search(psys, "vertex_group_length", ob, "vertex_groups", text="Length")
row.prop(psys, "invert_vertex_group_length", text="")
row = layout.row()
- row.prop_search(psys, "vertex_group_clump", ob, "vertex_groups", text=_("Clump"))
+ row.prop_search(psys, "vertex_group_clump", ob, "vertex_groups", text="Clump")
row.prop(psys, "invert_vertex_group_clump", text="")
row = layout.row()
- row.prop_search(psys, "vertex_group_kink", ob, "vertex_groups", text=_("Kink"))
+ row.prop_search(psys, "vertex_group_kink", ob, "vertex_groups", text="Kink")
row.prop(psys, "invert_vertex_group_kink", text="")
row = layout.row()
- row.prop_search(psys, "vertex_group_roughness_1", ob, "vertex_groups", text=_("Roughness 1"))
+ row.prop_search(psys, "vertex_group_roughness_1", ob, "vertex_groups", text="Roughness 1")
row.prop(psys, "invert_vertex_group_roughness_1", text="")
row = layout.row()
- row.prop_search(psys, "vertex_group_roughness_2", ob, "vertex_groups", text=_("Roughness 2"))
+ row.prop_search(psys, "vertex_group_roughness_2", ob, "vertex_groups", text="Roughness 2")
row.prop(psys, "invert_vertex_group_roughness_2", text="")
row = layout.row()
- row.prop_search(psys, "vertex_group_roughness_end", ob, "vertex_groups", text=_("Roughness End"))
+ row.prop_search(psys, "vertex_group_roughness_end", ob, "vertex_groups", text="Roughness End")
row.prop(psys, "invert_vertex_group_roughness_end", text="")
# row = layout.row()
- # row.prop_search(psys, "vertex_group_size", ob, "vertex_groups", text=_("Size"))
+ # row.prop_search(psys, "vertex_group_size", ob, "vertex_groups", text="Size")
# row.prop(psys, "invert_vertex_group_size", text="")
# row = layout.row()
- # row.prop_search(psys, "vertex_group_tangent", ob, "vertex_groups", text=_("Tangent"))
+ # row.prop_search(psys, "vertex_group_tangent", ob, "vertex_groups", text="Tangent")
# row.prop(psys, "invert_vertex_group_tangent", text="")
# row = layout.row()
- # row.prop_search(psys, "vertex_group_rotation", ob, "vertex_groups", text=_("Rotation"))
+ # row.prop_search(psys, "vertex_group_rotation", ob, "vertex_groups", text="Rotation")
# row.prop(psys, "invert_vertex_group_rotation", text="")
# row = layout.row()
- # row.prop_search(psys, "vertex_group_field", ob, "vertex_groups", text=_("Field"))
+ # row.prop_search(psys, "vertex_group_field", ob, "vertex_groups", text="Field")
# row.prop(psys, "invert_vertex_group_field", text="")
diff --git a/release/scripts/startup/bl_ui/properties_physics_cloth.py b/release/scripts/startup/bl_ui/properties_physics_cloth.py
index de74d1473c8..c66a0563754 100644
--- a/release/scripts/startup/bl_ui/properties_physics_cloth.py
+++ b/release/scripts/startup/bl_ui/properties_physics_cloth.py
@@ -19,7 +19,6 @@
# <pep8 compliant>
import bpy
from bpy.types import Menu, Panel
-from blf import gettext as _
from bl_ui.properties_physics_common import (
point_cache_ui,
@@ -71,50 +70,50 @@ class PHYSICS_PT_cloth(PhysicButtonsPanel, Panel):
col = split.column()
- col.label(text=_("Presets:"))
+ col.label(text="Presets:")
sub = col.row(align=True)
sub.menu("CLOTH_MT_presets", text=bpy.types.CLOTH_MT_presets.bl_label)
sub.operator("cloth.preset_add", text="", icon="ZOOMIN")
sub.operator("cloth.preset_add", text="", icon="ZOOMOUT").remove_active = True
- col.label(text=_("Quality:"))
- col.prop(cloth, "quality", text=_("Steps"), slider=True)
+ col.label(text="Quality:")
+ col.prop(cloth, "quality", text="Steps", slider=True)
- col.label(text=_("Material:"))
+ col.label(text="Material:")
col.prop(cloth, "mass")
- col.prop(cloth, "structural_stiffness", text=_("Structural"))
- col.prop(cloth, "bending_stiffness", text=_("Bending"))
+ col.prop(cloth, "structural_stiffness", text="Structural")
+ col.prop(cloth, "bending_stiffness", text="Bending")
col = split.column()
- col.label(text=_("Damping:"))
- col.prop(cloth, "spring_damping", text=_("Spring"))
- col.prop(cloth, "air_damping", text=_("Air"))
+ col.label(text="Damping:")
+ col.prop(cloth, "spring_damping", text="Spring")
+ col.prop(cloth, "air_damping", text="Air")
- col.prop(cloth, "use_pin_cloth", text=_("Pinning"))
+ col.prop(cloth, "use_pin_cloth", text="Pinning")
sub = col.column()
sub.active = cloth.use_pin_cloth
sub.prop_search(cloth, "vertex_group_mass", ob, "vertex_groups", text="")
- sub.prop(cloth, "pin_stiffness", text=_("Stiffness"))
+ sub.prop(cloth, "pin_stiffness", text="Stiffness")
- col.label(text=_("Pre roll:"))
- col.prop(cloth, "pre_roll", text=_("Frame"))
+ col.label(text="Pre roll:")
+ col.prop(cloth, "pre_roll", text="Frame")
# Disabled for now
"""
if cloth.vertex_group_mass:
- layout.label(text=_("Goal:"))
+ layout.label(text="Goal:")
col = layout.column_flow()
- col.prop(cloth, "goal_default", text=_("Default"))
- col.prop(cloth, "goal_spring", text=_("Stiffness"))
- col.prop(cloth, "goal_friction", text=_("Friction"))
+ col.prop(cloth, "goal_default", text="Default")
+ col.prop(cloth, "goal_spring", text="Stiffness")
+ col.prop(cloth, "goal_friction", text="Friction")
"""
key = ob.data.shape_keys
if key:
- col.label(text=_("Rest Shape Key:"))
+ col.label(text="Rest Shape Key:")
col.prop_search(cloth, "rest_shape_key", key, "key_blocks", text="")
@@ -156,18 +155,18 @@ class PHYSICS_PT_cloth_collision(PhysicButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.prop(cloth, "collision_quality", slider=True, text=_("Quality"))
- col.prop(cloth, "distance_min", slider=True, text=_("Distance"))
- col.prop(cloth, "repel_force", slider=True, text=_("Repel"))
- col.prop(cloth, "distance_repel", slider=True, text=_("Repel Distance"))
+ col.prop(cloth, "collision_quality", slider=True, text="Quality")
+ col.prop(cloth, "distance_min", slider=True, text="Distance")
+ col.prop(cloth, "repel_force", slider=True, text="Repel")
+ col.prop(cloth, "distance_repel", slider=True, text="Repel Distance")
col.prop(cloth, "friction")
col = split.column()
- col.prop(cloth, "use_self_collision", text=_("Self Collision"))
+ col.prop(cloth, "use_self_collision", text="Self Collision")
sub = col.column()
sub.active = cloth.use_self_collision
- sub.prop(cloth, "self_collision_quality", slider=True, text=_("Quality"))
- sub.prop(cloth, "self_distance_min", slider=True, text=_("Distance"))
+ sub.prop(cloth, "self_collision_quality", slider=True, text="Quality")
+ sub.prop(cloth, "self_distance_min", slider=True, text="Distance")
layout.prop(cloth, "group")
@@ -198,14 +197,14 @@ class PHYSICS_PT_cloth_stiffness(PhysicButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Structural Stiffness:"))
+ col.label(text="Structural Stiffness:")
col.prop_search(cloth, "vertex_group_structural_stiffness", ob, "vertex_groups", text="")
- col.prop(cloth, "structural_stiffness_max", text=_("Max"))
+ col.prop(cloth, "structural_stiffness_max", text="Max")
col = split.column()
- col.label(text=_("Bending Stiffness:"))
+ col.label(text="Bending Stiffness:")
col.prop_search(cloth, "vertex_group_bending", ob, "vertex_groups", text="")
- col.prop(cloth, "bending_stiffness_max", text=_("Max"))
+ col.prop(cloth, "bending_stiffness_max", text="Max")
class PHYSICS_PT_cloth_field_weights(PhysicButtonsPanel, Panel):
diff --git a/release/scripts/startup/bl_ui/properties_physics_common.py b/release/scripts/startup/bl_ui/properties_physics_common.py
index 7ca97c20422..204e25d9f01 100644
--- a/release/scripts/startup/bl_ui/properties_physics_common.py
+++ b/release/scripts/startup/bl_ui/properties_physics_common.py
@@ -20,7 +20,6 @@
import bpy
from bpy.types import Panel
-from blf import gettext as _
class PhysicButtonsPanel():
@@ -54,27 +53,27 @@ class PHYSICS_PT_add(PhysicButtonsPanel, Panel):
ob = context.object
layout = self.layout
- layout.label(_("Enable physics for:"))
+ layout.label("Enable physics for:")
split = layout.split()
col = split.column()
if(context.object.field.type == 'NONE'):
- col.operator("object.forcefield_toggle", text=_("Force Field"), icon='FORCE_FORCE')
+ col.operator("object.forcefield_toggle", text="Force Field", icon='FORCE_FORCE')
else:
- col.operator("object.forcefield_toggle", text=_("Force Field"), icon='X')
+ col.operator("object.forcefield_toggle", text="Force Field", icon='X')
if(ob.type == 'MESH'):
- physics_add(self, col, context.collision, _("Collision"), 'COLLISION', 'MOD_PHYSICS', False)
- physics_add(self, col, context.cloth, _("Cloth"), 'CLOTH', 'MOD_CLOTH', True)
+ physics_add(self, col, context.collision, "Collision", 'COLLISION', 'MOD_PHYSICS', False)
+ physics_add(self, col, context.cloth, "Cloth", 'CLOTH', 'MOD_CLOTH', True)
col = split.column()
if(ob.type == 'MESH' or ob.type == 'LATTICE'or ob.type == 'CURVE'):
- physics_add(self, col, context.soft_body, _("Soft Body"), 'SOFT_BODY', 'MOD_SOFT', True)
+ physics_add(self, col, context.soft_body, "Soft Body", 'SOFT_BODY', 'MOD_SOFT', True)
if(ob.type == 'MESH'):
- physics_add(self, col, context.fluid, _("Fluid"), 'FLUID_SIMULATION', 'MOD_FLUIDSIM', True)
- physics_add(self, col, context.smoke, _("Smoke"), 'SMOKE', 'MOD_SMOKE', True)
+ physics_add(self, col, context.fluid, "Fluid", 'FLUID_SIMULATION', 'MOD_FLUIDSIM', True)
+ physics_add(self, col, context.smoke, "Smoke", 'SMOKE', 'MOD_SMOKE', True)
#cachetype can be 'PSYS' 'HAIR' 'SMOKE' etc
@@ -96,11 +95,11 @@ def point_cache_ui(self, context, cache, enabled, cachetype):
if cache.use_external:
split = layout.split(percentage=0.80)
- split.prop(cache, "name", text=_("File Name"))
+ split.prop(cache, "name", text="File Name")
split.prop(cache, "index", text="")
row = layout.row()
- row.label(text=_("File Path:"))
+ row.label(text="File Path:")
row.prop(cache, "use_library_path", "Use Lib Path")
layout.prop(cache, "filepath", text="")
@@ -109,13 +108,13 @@ def point_cache_ui(self, context, cache, enabled, cachetype):
else:
if cachetype == 'SMOKE':
if not bpy.data.is_saved:
- layout.label(text=_("Cache is disabled until the file is saved"))
+ layout.label(text="Cache is disabled until the file is saved")
layout.enabled = False
if cache.use_disk_cache:
- layout.prop(cache, "name", text=_("File Name"))
+ layout.prop(cache, "name", text="File Name")
else:
- layout.prop(cache, "name", text=_("Cache Name"))
+ layout.prop(cache, "name", text="Cache Name")
row = layout.row(align=True)
@@ -143,7 +142,7 @@ def point_cache_ui(self, context, cache, enabled, cachetype):
row = layout.row()
row.enabled = enabled and bpy.data.is_saved
row.active = cache.use_disk_cache
- row.label(text=_("Compression:"))
+ row.label(text="Compression:")
row.prop(cache, "compression", expand=True)
layout.separator()
@@ -153,22 +152,22 @@ def point_cache_ui(self, context, cache, enabled, cachetype):
col = split.column()
if cache.is_baked == True:
- col.operator("ptcache.free_bake", text=_("Free Bake"))
+ col.operator("ptcache.free_bake", text="Free Bake")
else:
- col.operator("ptcache.bake", text=_("Bake")).bake = True
+ col.operator("ptcache.bake", text="Bake").bake = True
sub = col.row()
sub.enabled = (cache.frames_skipped or cache.is_outdated) and enabled
- sub.operator("ptcache.bake", text=_("Calculate To Frame")).bake = False
+ sub.operator("ptcache.bake", text="Calculate To Frame").bake = False
sub = col.column()
sub.enabled = enabled
- sub.operator("ptcache.bake_from_cache", text=_("Current Cache to Bake"))
+ sub.operator("ptcache.bake_from_cache", text="Current Cache to Bake")
col = split.column()
- col.operator("ptcache.bake_all", text=_("Bake All Dynamics")).bake = True
- col.operator("ptcache.free_bake_all", text=_("Free All Bakes"))
- col.operator("ptcache.bake_all", text=_("Update All To Frame")).bake = False
+ col.operator("ptcache.bake_all", text="Bake All Dynamics").bake = True
+ col.operator("ptcache.free_bake_all", text="Free All Bakes")
+ col.operator("ptcache.bake_all", text="Update All To Frame").bake = False
def effector_weights_ui(self, context, weights):
@@ -216,7 +215,7 @@ def basic_force_field_settings_ui(self, context, field):
col = split.column()
if field.type == 'DRAG':
- col.prop(field, "linear_drag", text=_("Linear"))
+ col.prop(field, "linear_drag", text="Linear")
else:
col.prop(field, "strength")
@@ -224,12 +223,12 @@ def basic_force_field_settings_ui(self, context, field):
col.prop(field, "size")
col.prop(field, "flow")
elif field.type == 'HARMONIC':
- col.prop(field, "harmonic_damping", text=_("Damping"))
+ col.prop(field, "harmonic_damping", text="Damping")
col.prop(field, "rest_length")
elif field.type == 'VORTEX' and field.shape != 'POINT':
col.prop(field, "inflow")
elif field.type == 'DRAG':
- col.prop(field, "quadratic_drag", text=_("Quadratic"))
+ col.prop(field, "quadratic_drag", text="Quadratic")
else:
col.prop(field, "flow")
@@ -238,19 +237,19 @@ def basic_force_field_settings_ui(self, context, field):
sub.prop(field, "noise")
sub.prop(field, "seed")
if field.type == 'TURBULENCE':
- col.prop(field, "use_global_coords", text=_("Global"))
+ col.prop(field, "use_global_coords", text="Global")
elif field.type == 'HARMONIC':
col.prop(field, "use_multiple_springs")
split = layout.split()
col = split.column()
- col.label(text=_("Effect point:"))
+ col.label(text="Effect point:")
col.prop(field, "apply_to_location")
col.prop(field, "apply_to_rotation")
col = split.column()
- col.label(text=_("Collision:"))
+ col.label(text="Collision:")
col.prop(field, "use_absorption")
@@ -266,7 +265,7 @@ def basic_force_field_falloff_ui(self, context, field):
col.prop(field, "z_direction", text="")
col = split.column()
- col.prop(field, "falloff_power", text=_("Power"))
+ col.prop(field, "falloff_power", text="Power")
split = layout.split()
col = split.column()
@@ -274,14 +273,14 @@ def basic_force_field_falloff_ui(self, context, field):
row.prop(field, "use_min_distance", text="")
sub = row.row()
sub.active = field.use_min_distance
- sub.prop(field, "distance_min", text=_("Minimum"))
+ sub.prop(field, "distance_min", text="Minimum")
col = split.column()
row = col.row(align=True)
row.prop(field, "use_max_distance", text="")
sub = row.row()
sub.active = field.use_max_distance
- sub.prop(field, "distance_max", text=_("Maximum"))
+ sub.prop(field, "distance_max", text="Maximum")
if __name__ == "__main__": # only for live edit.
bpy.utils.register_module(__name__)
diff --git a/release/scripts/startup/bl_ui/properties_physics_field.py b/release/scripts/startup/bl_ui/properties_physics_field.py
index 937df5c0ad9..f0755962580 100644
--- a/release/scripts/startup/bl_ui/properties_physics_field.py
+++ b/release/scripts/startup/bl_ui/properties_physics_field.py
@@ -19,7 +19,6 @@
# <pep8 compliant>
import bpy
from bpy.types import Panel
-from blf import gettext as _
from bl_ui.properties_physics_common import (
basic_force_field_settings_ui,
@@ -54,13 +53,13 @@ class PHYSICS_PT_field(PhysicButtonsPanel, Panel):
field = ob.field
split = layout.split(percentage=0.2)
- split.label(text=_("Type:"))
+ split.label(text="Type:")
split.prop(field, "type", text="")
if field.type not in {'NONE', 'GUIDE', 'TEXTURE'}:
split = layout.split(percentage=0.2)
- split.label(text=_("Shape:"))
+ split.label(text="Shape:")
split.prop(field, "shape", text="")
split = layout.split()
@@ -76,7 +75,7 @@ class PHYSICS_PT_field(PhysicButtonsPanel, Panel):
col.prop(field, "use_guide_path_weight")
col = split.column()
- col.label(text=_("Clumping:"))
+ col.label(text="Clumping:")
col.prop(field, "guide_clump_amount")
col.prop(field, "guide_clump_shape")
@@ -117,7 +116,7 @@ class PHYSICS_PT_field(PhysicButtonsPanel, Panel):
if field.type not in {'NONE', 'GUIDE'}:
- layout.label(text=_("Falloff:"))
+ layout.label(text="Falloff:")
layout.prop(field, "falloff_type", expand=True)
basic_force_field_falloff_ui(self, context, field)
@@ -128,20 +127,20 @@ class PHYSICS_PT_field(PhysicButtonsPanel, Panel):
split = layout.split(percentage=0.35)
col = split.column()
- col.label(text=_("Angular:"))
- col.prop(field, "use_radial_min", text=_("Use Minimum"))
- col.prop(field, "use_radial_max", text=_("Use Maximum"))
+ col.label(text="Angular:")
+ col.prop(field, "use_radial_min", text="Use Minimum")
+ col.prop(field, "use_radial_max", text="Use Maximum")
col = split.column()
- col.prop(field, "radial_falloff", text=_("Power"))
+ col.prop(field, "radial_falloff", text="Power")
sub = col.column()
sub.active = field.use_radial_min
- sub.prop(field, "radial_min", text=_("Angle"))
+ sub.prop(field, "radial_min", text="Angle")
sub = col.column()
sub.active = field.use_radial_max
- sub.prop(field, "radial_max", text=_("Angle"))
+ sub.prop(field, "radial_max", text="Angle")
elif field.falloff_type == 'TUBE':
layout.separator()
@@ -149,20 +148,20 @@ class PHYSICS_PT_field(PhysicButtonsPanel, Panel):
split = layout.split(percentage=0.35)
col = split.column()
- col.label(text=_("Radial:"))
- col.prop(field, "use_radial_min", text=_("Use Minimum"))
- col.prop(field, "use_radial_max", text=_("Use Maximum"))
+ col.label(text="Radial:")
+ col.prop(field, "use_radial_min", text="Use Minimum")
+ col.prop(field, "use_radial_max", text="Use Maximum")
col = split.column()
- col.prop(field, "radial_falloff", text=_("Power"))
+ col.prop(field, "radial_falloff", text="Power")
sub = col.column()
sub.active = field.use_radial_min
- sub.prop(field, "radial_min", text=_("Distance"))
+ sub.prop(field, "radial_min", text="Distance")
sub = col.column()
sub.active = field.use_radial_max
- sub.prop(field, "radial_max", text=_("Distance"))
+ sub.prop(field, "radial_max", text="Distance")
class PHYSICS_PT_collision(PhysicButtonsPanel, Panel):
@@ -192,31 +191,31 @@ class PHYSICS_PT_collision(PhysicButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Particle:"))
+ col.label(text="Particle:")
col.prop(settings, "permeability", slider=True)
col.prop(settings, "stickness")
col.prop(settings, "use_particle_kill")
- col.label(text=_("Particle Damping:"))
+ col.label(text="Particle Damping:")
sub = col.column(align=True)
- sub.prop(settings, "damping_factor", text=_("Factor"), slider=True)
- sub.prop(settings, "damping_random", text=_("Random"), slider=True)
+ sub.prop(settings, "damping_factor", text="Factor", slider=True)
+ sub.prop(settings, "damping_random", text="Random", slider=True)
- col.label(text=_("Particle Friction:"))
+ col.label(text="Particle Friction:")
sub = col.column(align=True)
- sub.prop(settings, "friction_factor", text=_("Factor"), slider=True)
- sub.prop(settings, "friction_random", text=_("Random"), slider=True)
+ sub.prop(settings, "friction_factor", text="Factor", slider=True)
+ sub.prop(settings, "friction_random", text="Random", slider=True)
col = split.column()
- col.label(text=_("Soft Body and Cloth:"))
+ col.label(text="Soft Body and Cloth:")
sub = col.column(align=True)
- sub.prop(settings, "thickness_outer", text=_("Outer"), slider=True)
- sub.prop(settings, "thickness_inner", text=_("Inner"), slider=True)
+ sub.prop(settings, "thickness_outer", text="Outer", slider=True)
+ sub.prop(settings, "thickness_inner", text="Inner", slider=True)
- col.label(text=_("Soft Body Damping:"))
- col.prop(settings, "damping", text=_("Factor"), slider=True)
+ col.label(text="Soft Body Damping:")
+ col.prop(settings, "damping", text="Factor", slider=True)
- col.label(text=_("Force Fields:"))
- col.prop(settings, "absorption", text=_("Absorption"))
+ col.label(text="Force Fields:")
+ col.prop(settings, "absorption", text="Absorption")
if __name__ == "__main__": # only for live edit.
bpy.utils.register_module(__name__)
diff --git a/release/scripts/startup/bl_ui/properties_physics_fluid.py b/release/scripts/startup/bl_ui/properties_physics_fluid.py
index 35c8466e685..c25b42e298e 100644
--- a/release/scripts/startup/bl_ui/properties_physics_fluid.py
+++ b/release/scripts/startup/bl_ui/properties_physics_fluid.py
@@ -19,7 +19,6 @@
# <pep8 compliant>
import bpy
from bpy.types import Panel
-from blf import gettext as _
class PhysicButtonsPanel():
@@ -47,7 +46,7 @@ class PHYSICS_PT_fluid(PhysicButtonsPanel, Panel):
row = layout.row()
if fluid is None:
- row.label(_("Built without fluids"))
+ row.label("Built without fluids")
return
row.prop(fluid, "type")
@@ -59,28 +58,28 @@ class PHYSICS_PT_fluid(PhysicButtonsPanel, Panel):
layout.active = fluid.use
if fluid.type == 'DOMAIN':
- layout.operator("fluid.bake", text=_("Bake (Req. Memory:") + " %s)" % fluid.memory_estimate, icon='MOD_FLUIDSIM')
+ layout.operator("fluid.bake", text="Bake (Req. Memory:" + " %s)" % fluid.memory_estimate, icon='MOD_FLUIDSIM')
split = layout.split()
col = split.column()
- col.label(text=_("Resolution:"))
- col.prop(fluid, "resolution", text=_("Final"))
- col.label(text=_("Render Display:"))
+ col.label(text="Resolution:")
+ col.prop(fluid, "resolution", text="Final")
+ col.label(text="Render Display:")
col.prop(fluid, "render_display_mode", text="")
col = split.column()
col.label()
- col.prop(fluid, "preview_resolution", text=_("Preview"))
- col.label(text=_("Viewport Display:"))
+ col.prop(fluid, "preview_resolution", text="Preview")
+ col.label(text="Viewport Display:")
col.prop(fluid, "viewport_display_mode", text="")
split = layout.split()
col = split.column()
- col.label(text=_("Time:"))
+ col.label(text="Time:")
sub = col.column(align=True)
- sub.prop(fluid, "start_time", text=_("Start"))
- sub.prop(fluid, "end_time", text=_("End"))
+ sub.prop(fluid, "start_time", text="Start")
+ sub.prop(fluid, "end_time", text="End")
col = split.column()
col.label()
@@ -93,36 +92,36 @@ class PHYSICS_PT_fluid(PhysicButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Volume Initialization:"))
+ col.label(text="Volume Initialization:")
col.prop(fluid, "volume_initialization", text="")
col.prop(fluid, "use_animated_mesh")
col = split.column()
- col.label(text=_("Initial Velocity:"))
+ col.label(text="Initial Velocity:")
col.prop(fluid, "initial_velocity", text="")
elif fluid.type == 'OBSTACLE':
split = layout.split()
col = split.column()
- col.label(text=_("Volume Initialization:"))
+ col.label(text="Volume Initialization:")
col.prop(fluid, "volume_initialization", text="")
col.prop(fluid, "use_animated_mesh")
col = split.column()
- col.label(text=_("Slip Type:"))
+ col.label(text="Slip Type:")
col.prop(fluid, "slip_type", text="")
if fluid.slip_type == 'PARTIALSLIP':
- col.prop(fluid, "partial_slip_factor", slider=True, text=_("Amount"))
+ col.prop(fluid, "partial_slip_factor", slider=True, text="Amount")
- col.label(text=_("Impact:"))
- col.prop(fluid, "impact_factor", text=_("Factor"))
+ col.label(text="Impact:")
+ col.prop(fluid, "impact_factor", text="Factor")
elif fluid.type == 'INFLOW':
split = layout.split()
col = split.column()
- col.label(text=_("Volume Initialization:"))
+ col.label(text="Volume Initialization:")
col.prop(fluid, "volume_initialization", text="")
col.prop(fluid, "use_animated_mesh")
row = col.row()
@@ -130,14 +129,14 @@ class PHYSICS_PT_fluid(PhysicButtonsPanel, Panel):
row.prop(fluid, "use_local_coords")
col = split.column()
- col.label(text=_("Inflow Velocity:"))
+ col.label(text="Inflow Velocity:")
col.prop(fluid, "inflow_velocity", text="")
elif fluid.type == 'OUTFLOW':
split = layout.split()
col = split.column()
- col.label(text=_("Volume Initialization:"))
+ col.label(text="Volume Initialization:")
col.prop(fluid, "volume_initialization", text="")
col.prop(fluid, "use_animated_mesh")
@@ -147,12 +146,12 @@ class PHYSICS_PT_fluid(PhysicButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Influence:"))
- col.prop(fluid, "particle_influence", text=_("Size"))
- col.prop(fluid, "alpha_influence", text=_("Alpha"))
+ col.label(text="Influence:")
+ col.prop(fluid, "particle_influence", text="Size")
+ col.prop(fluid, "alpha_influence", text="Alpha")
col = split.column()
- col.label(text=_("Type:"))
+ col.label(text="Type:")
col.prop(fluid, "use_drops")
col.prop(fluid, "use_floats")
col.prop(fluid, "show_tracer")
@@ -168,24 +167,24 @@ class PHYSICS_PT_fluid(PhysicButtonsPanel, Panel):
col.prop(fluid, "use_reverse_frames")
col = split.column()
- col.label(text=_("Time:"))
+ col.label(text="Time:")
sub = col.column(align=True)
- sub.prop(fluid, "start_time", text=_("Start"))
- sub.prop(fluid, "end_time", text=_("End"))
+ sub.prop(fluid, "start_time", text="Start")
+ sub.prop(fluid, "end_time", text="End")
split = layout.split()
col = split.column()
- col.label(text=_("Attraction Force:"))
+ col.label(text="Attraction Force:")
sub = col.column(align=True)
- sub.prop(fluid, "attraction_strength", text=_("Strength"))
- sub.prop(fluid, "attraction_radius", text=_("Radius"))
+ sub.prop(fluid, "attraction_strength", text="Strength")
+ sub.prop(fluid, "attraction_radius", text="Radius")
col = split.column()
- col.label(text=_("Velocity Force:"))
+ col.label(text="Velocity Force:")
sub = col.column(align=True)
- sub.prop(fluid, "velocity_strength", text=_("Strength"))
- sub.prop(fluid, "velocity_radius", text=_("Radius"))
+ sub.prop(fluid, "velocity_strength", text="Strength")
+ sub.prop(fluid, "velocity_radius", text="Radius")
class PHYSICS_PT_domain_gravity(PhysicButtonsPanel, Panel):
@@ -207,33 +206,33 @@ class PHYSICS_PT_domain_gravity(PhysicButtonsPanel, Panel):
col = split.column()
if scene.use_gravity:
- col.label(text=_("Using Scene Gravity"), icon="SCENE_DATA")
+ col.label(text="Using Scene Gravity", icon="SCENE_DATA")
sub = col.column()
sub.enabled = False
sub.prop(fluid, "gravity", text="")
else:
- col.label(text=_("Gravity:"))
+ col.label(text="Gravity:")
col.prop(fluid, "gravity", text="")
if scene.unit_settings.system != 'NONE':
- col.label(text=_("Using Scene Size Units"), icon="SCENE_DATA")
+ col.label(text="Using Scene Size Units", icon="SCENE_DATA")
sub = col.column()
sub.enabled = False
- sub.prop(fluid, "simulation_scale", text=_("Metres"))
+ sub.prop(fluid, "simulation_scale", text="Metres")
else:
- col.label(text=_("Real World Size:"))
- col.prop(fluid, "simulation_scale", text=_("Metres"))
+ col.label(text="Real World Size:")
+ col.prop(fluid, "simulation_scale", text="Metres")
col = split.column()
- col.label(text=_("Viscosity Presets:"))
+ col.label(text="Viscosity Presets:")
sub = col.column(align=True)
sub.prop(fluid, "viscosity_preset", text="")
if fluid.viscosity_preset == 'MANUAL':
- sub.prop(fluid, "viscosity_base", text=_("Base"))
- sub.prop(fluid, "viscosity_exponent", text=_("Exponent"), slider=True)
+ sub.prop(fluid, "viscosity_base", text="Base")
+ sub.prop(fluid, "viscosity_exponent", text="Exponent", slider=True)
- col.label(text=_("Optimization:"))
+ col.label(text="Optimization:")
col.prop(fluid, "grid_levels", slider=True)
col.prop(fluid, "compressibility", slider=True)
@@ -255,16 +254,16 @@ class PHYSICS_PT_domain_boundary(PhysicButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Slip Type:"))
+ col.label(text="Slip Type:")
col.prop(fluid, "slip_type", text="")
if fluid.slip_type == 'PARTIALSLIP':
- col.prop(fluid, "partial_slip_factor", slider=True, text=_("Amount"))
+ col.prop(fluid, "partial_slip_factor", slider=True, text="Amount")
col.prop(fluid, "surface_noobs")
col = split.column()
- col.label(text=_("Surface:"))
- col.prop(fluid, "surface_smooth", text=_("Smoothing"))
- col.prop(fluid, "surface_subdivisions", text=_("Subdivisions"))
+ col.label(text="Surface:")
+ col.prop(fluid, "surface_smooth", text="Smoothing")
+ col.prop(fluid, "surface_subdivisions", text="Subdivisions")
class PHYSICS_PT_domain_particles(PhysicButtonsPanel, Panel):
diff --git a/release/scripts/startup/bl_ui/properties_physics_smoke.py b/release/scripts/startup/bl_ui/properties_physics_smoke.py
index 61c477b6d49..e270b53d6bb 100644
--- a/release/scripts/startup/bl_ui/properties_physics_smoke.py
+++ b/release/scripts/startup/bl_ui/properties_physics_smoke.py
@@ -19,7 +19,6 @@
# <pep8 compliant>
import bpy
from bpy.types import Panel
-from blf import gettext as _
from bl_ui.properties_physics_common import (
point_cache_ui,
@@ -59,23 +58,23 @@ class PHYSICS_PT_smoke(PhysicButtonsPanel, Panel):
split.enabled = not domain.point_cache.is_baked
col = split.column()
- col.label(text=_("Resolution:"))
- col.prop(domain, "resolution_max", text=_("Divisions"))
- col.label(text=_("Time:"))
- col.prop(domain, "time_scale", text=_("Scale"))
- col.label(text=_("Border Collisions:"))
+ col.label(text="Resolution:")
+ col.prop(domain, "resolution_max", text="Divisions")
+ col.label(text="Time:")
+ col.prop(domain, "time_scale", text="Scale")
+ col.label(text="Border Collisions:")
col.prop(domain, "collision_extents", text="")
col = split.column()
- col.label(text=_("Behavior:"))
+ col.label(text="Behavior:")
col.prop(domain, "alpha")
- col.prop(domain, "beta", text=_("Temp. Diff."))
+ col.prop(domain, "beta", text="Temp. Diff.")
col.prop(domain, "vorticity")
- col.prop(domain, "use_dissolve_smoke", text=_("Dissolve"))
+ col.prop(domain, "use_dissolve_smoke", text="Dissolve")
sub = col.column()
sub.active = domain.use_dissolve_smoke
- sub.prop(domain, "dissolve_speed", text=_("Time"))
- sub.prop(domain, "use_dissolve_smoke_log", text_("Slow"))
+ sub.prop(domain, "dissolve_speed", text="Time")
+ sub.prop(domain, "use_dissolve_smoke_log", text="Slow")
elif md.smoke_type == 'FLOW':
@@ -85,20 +84,20 @@ class PHYSICS_PT_smoke(PhysicButtonsPanel, Panel):
col = split.column()
col.prop(flow, "use_outflow")
- col.label(text=_("Particle System:"))
+ col.label(text="Particle System:")
col.prop_search(flow, "particle_system", ob, "particle_systems", text="")
sub = col.column()
sub.active = not md.flow_settings.use_outflow
- sub.prop(flow, "initial_velocity", text=_("Initial Velocity"))
+ sub.prop(flow, "initial_velocity", text="Initial Velocity")
sub = sub.column()
sub.active = flow.initial_velocity
- sub.prop(flow, "velocity_factor", text=_("Multiplier"))
+ sub.prop(flow, "velocity_factor", text="Multiplier")
sub = split.column()
sub.active = not md.flow_settings.use_outflow
- sub.label(text=_("Initial Values:"))
+ sub.label(text="Initial Values:")
sub.prop(flow, "use_absolute")
sub.prop(flow, "density")
sub.prop(flow, "temperature")
@@ -121,14 +120,14 @@ class PHYSICS_PT_smoke_groups(PhysicButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Flow Group:"))
+ col.label(text="Flow Group:")
col.prop(group, "fluid_group", text="")
- #col.label(text=_("Effector Group:"))
+ #col.label(text="Effector Group:")
#col.prop(group, "effector_group", text="")
col = split.column()
- col.label(text=_("Collision Group:"))
+ col.label(text="Collision Group:")
col.prop(group, "collision_group", text="")
@@ -157,12 +156,12 @@ class PHYSICS_PT_smoke_highres(PhysicButtonsPanel, Panel):
split.enabled = not md.point_cache.is_baked
col = split.column()
- col.label(text=_("Resolution:"))
- col.prop(md, "amplify", text=_("Divisions"))
+ col.label(text="Resolution:")
+ col.prop(md, "amplify", text="Divisions")
col.prop(md, "smooth_emitter")
col = split.column()
- col.label(text=_("Noise Method:"))
+ col.label(text="Noise Method:")
col.row().prop(md, "noise_type", text="")
col.prop(md, "strength")
@@ -184,7 +183,7 @@ class PHYSICS_PT_smoke_cache(PhysicButtonsPanel, Panel):
md = context.smoke.domain_settings
cache = md.point_cache
- layout.label(text=_("Compression:"))
+ layout.label(text="Compression:")
layout.prop(md, "point_cache_compress_type", expand=True)
point_cache_ui(self, context, cache, (cache.is_baked is False), 'SMOKE')
diff --git a/release/scripts/startup/bl_ui/properties_physics_softbody.py b/release/scripts/startup/bl_ui/properties_physics_softbody.py
index 5449e54c6e6..b9f8910fa59 100644
--- a/release/scripts/startup/bl_ui/properties_physics_softbody.py
+++ b/release/scripts/startup/bl_ui/properties_physics_softbody.py
@@ -19,7 +19,6 @@
# <pep8 compliant>
import bpy
from bpy.types import Panel
-from blf import gettext as _
from bl_ui.properties_physics_common import (
point_cache_ui,
@@ -62,13 +61,13 @@ class PHYSICS_PT_softbody(PhysicButtonsPanel, Panel):
split.enabled = softbody_panel_enabled(md)
col = split.column()
- col.label(text=_("Object:"))
+ col.label(text="Object:")
col.prop(softbody, "friction")
col.prop(softbody, "mass")
- col.prop_search(softbody, "vertex_group_mass", ob, "vertex_groups", text=_("Mass:"))
+ col.prop_search(softbody, "vertex_group_mass", ob, "vertex_groups", text="Mass:")
col = split.column()
- col.label(text=_("Simulation:"))
+ col.label(text="Simulation:")
col.prop(softbody, "speed")
@@ -114,18 +113,18 @@ class PHYSICS_PT_softbody_goal(PhysicButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Goal Strengths:"))
- col.prop(softbody, "goal_default", text=_("Default"))
+ col.label(text="Goal Strengths:")
+ col.prop(softbody, "goal_default", text="Default")
sub = col.column(align=True)
- sub.prop(softbody, "goal_min", text=_("Minimum"))
- sub.prop(softbody, "goal_max", text=_("Maximum"))
+ sub.prop(softbody, "goal_min", text="Minimum")
+ sub.prop(softbody, "goal_max", text="Maximum")
col = split.column()
- col.label(text=_("Goal Settings:"))
- col.prop(softbody, "goal_spring", text=_("Stiffness"))
- col.prop(softbody, "goal_friction", text=_("Damping"))
+ col.label(text="Goal Settings:")
+ col.prop(softbody, "goal_spring", text="Stiffness")
+ col.prop(softbody, "goal_friction", text="Damping")
- layout.prop_search(softbody, "vertex_group_goal", ob, "vertex_groups", text=_("Vertex Group"))
+ layout.prop_search(softbody, "vertex_group_goal", ob, "vertex_groups", text="Vertex Group")
class PHYSICS_PT_softbody_edge(PhysicButtonsPanel, Panel):
@@ -154,14 +153,14 @@ class PHYSICS_PT_softbody_edge(PhysicButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Springs:"))
+ col.label(text="Springs:")
col.prop(softbody, "pull")
col.prop(softbody, "push")
col.prop(softbody, "damping")
col.prop(softbody, "plastic")
col.prop(softbody, "bend")
- col.prop(softbody, "spring_length", text=_("Length"))
- col.prop_search(softbody, "vertex_group_spring", ob, "vertex_groups", text=_("Springs:"))
+ col.prop(softbody, "spring_length", text="Length")
+ col.prop_search(softbody, "vertex_group_spring", ob, "vertex_groups", text="Springs:")
col = split.column()
col.prop(softbody, "use_stiff_quads")
@@ -169,16 +168,16 @@ class PHYSICS_PT_softbody_edge(PhysicButtonsPanel, Panel):
sub.active = softbody.use_stiff_quads
sub.prop(softbody, "shear")
- col.label(text=_("Aerodynamics:"))
+ col.label(text="Aerodynamics:")
col.row().prop(softbody, "aerodynamics_type", expand=True)
- col.prop(softbody, "aero", text=_("Factor"))
+ col.prop(softbody, "aero", text="Factor")
#sub = col.column()
#sub.enabled = softbody.aero > 0
- col.label(text=_("Collision:"))
- col.prop(softbody, "use_edge_collision", text=_("Edge"))
- col.prop(softbody, "use_face_collision", text=_("Face"))
+ col.label(text="Collision:")
+ col.prop(softbody, "use_edge_collision", text="Edge")
+ col.prop(softbody, "use_face_collision", text="Face")
class PHYSICS_PT_softbody_collision(PhysicButtonsPanel, Panel):
@@ -203,14 +202,14 @@ class PHYSICS_PT_softbody_collision(PhysicButtonsPanel, Panel):
layout.active = softbody.use_self_collision and softbody_panel_enabled(md)
- layout.label(text=_("Collision Ball Size Calculation:"))
+ layout.label(text="Collision Ball Size Calculation:")
layout.prop(softbody, "collision_type", expand=True)
col = layout.column(align=True)
- col.label(text=_("Ball:"))
- col.prop(softbody, "ball_size", text=_("Size"))
- col.prop(softbody, "ball_stiff", text=_("Stiffness"))
- col.prop(softbody, "ball_damp", text=_("Dampening"))
+ col.label(text="Ball:")
+ col.prop(softbody, "ball_size", text="Size")
+ col.prop(softbody, "ball_stiff", text="Stiffness")
+ col.prop(softbody, "ball_damp", text="Dampening")
class PHYSICS_PT_softbody_solver(PhysicButtonsPanel, Panel):
@@ -233,18 +232,18 @@ class PHYSICS_PT_softbody_solver(PhysicButtonsPanel, Panel):
split = layout.split()
col = split.column(align=True)
- col.label(text=_("Step Size:"))
+ col.label(text="Step Size:")
col.prop(softbody, "step_min")
col.prop(softbody, "step_max")
- col.prop(softbody, "use_auto_step", text=_("Auto-Step"))
+ col.prop(softbody, "use_auto_step", text="Auto-Step")
col = split.column()
col.prop(softbody, "error_threshold")
- col.label(text=_("Helpers:"))
+ col.label(text="Helpers:")
col.prop(softbody, "choke")
col.prop(softbody, "fuzzy")
- layout.label(text=_("Diagnostics:"))
+ layout.label(text="Diagnostics:")
layout.prop(softbody, "use_diagnose")
layout.prop(softbody, "use_estimate_matrix")
diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py
index f6586d105a5..57b5c9d848a 100644
--- a/release/scripts/startup/bl_ui/properties_render.py
+++ b/release/scripts/startup/bl_ui/properties_render.py
@@ -19,7 +19,6 @@
# <pep8 compliant>
import bpy
from bpy.types import Menu, Panel
-from blf import gettext as _
class RENDER_MT_presets(Menu):
@@ -65,10 +64,10 @@ class RENDER_PT_render(RenderButtonsPanel, Panel):
rd = context.scene.render
row = layout.row()
- row.operator("render.render", text=_("Image"), icon='RENDER_STILL')
- row.operator("render.render", text=_("Animation"), icon='RENDER_ANIMATION').animation = True
+ row.operator("render.render", text="Image", icon='RENDER_STILL')
+ row.operator("render.render", text="Animation", icon='RENDER_ANIMATION').animation = True
- layout.prop(rd, "display_mode", text=_("Display"))
+ layout.prop(rd, "display_mode", text="Display")
class RENDER_PT_layers(RenderButtonsPanel, Panel):
@@ -98,25 +97,25 @@ class RENDER_PT_layers(RenderButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.prop(scene, "layers", text=_("Scene"))
+ col.prop(scene, "layers", text="Scene")
col.label(text="")
- col.prop(rl, "light_override", text=_("Light"))
- col.prop(rl, "material_override", text=_("Material"))
+ col.prop(rl, "light_override", text="Light")
+ col.prop(rl, "material_override", text="Material")
col = split.column()
- col.prop(rl, "layers", text=_("Layer"))
- col.label(text=_("Mask Layers:"))
+ col.prop(rl, "layers", text="Layer")
+ col.label(text="Mask Layers:")
col.prop(rl, "layers_zmask", text="")
layout.separator()
- layout.label(text=_("Include:"))
+ layout.label(text="Include:")
split = layout.split()
col = split.column()
col.prop(rl, "use_zmask")
row = col.row()
- row.prop(rl, "invert_zmask", text=_("Negate"))
+ row.prop(rl, "invert_zmask", text="Negate")
row.active = rl.use_zmask
col.prop(rl, "use_all_z")
@@ -136,7 +135,7 @@ class RENDER_PT_layers(RenderButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Passes:"))
+ col.label(text="Passes:")
col.prop(rl, "use_pass_combined")
col.prop(rl, "use_pass_z")
col.prop(rl, "use_pass_vector")
@@ -624,29 +623,29 @@ class RENDER_PT_dimensions(RenderButtonsPanel, Panel):
col = split.column()
sub = col.column(align=True)
- sub.label(text=_("Resolution:"))
+ sub.label(text="Resolution:")
sub.prop(rd, "resolution_x", text="X")
sub.prop(rd, "resolution_y", text="Y")
sub.prop(rd, "resolution_percentage", text="")
- sub.label(text=_("Aspect Ratio:"))
+ sub.label(text="Aspect Ratio:")
sub.prop(rd, "pixel_aspect_x", text="X")
sub.prop(rd, "pixel_aspect_y", text="Y")
row = col.row()
- row.prop(rd, "use_border", text=_("Border"))
+ row.prop(rd, "use_border", text="Border")
sub = row.row()
sub.active = rd.use_border
- sub.prop(rd, "use_crop_to_border", text=_("Crop"))
+ sub.prop(rd, "use_crop_to_border", text="Crop")
col = split.column()
sub = col.column(align=True)
- sub.label(text=_("Frame Range:"))
+ sub.label(text="Frame Range:")
sub.prop(scene, "frame_start")
sub.prop(scene, "frame_end")
sub.prop(scene, "frame_step")
- sub.label(text=_("Frame Rate:"))
+ sub.label(text="Frame Rate:")
if rd.fps_base == 1:
fps_rate = round(rd.fps / rd.fps_base)
else:
@@ -656,7 +655,7 @@ class RENDER_PT_dimensions(RenderButtonsPanel, Panel):
custom_framerate = (fps_rate not in {23.98, 24, 25, 29.97, 30, 50, 59.94, 60})
if custom_framerate == True:
- fps_label_text = _("Custom (") + str(fps_rate) + " fps)"
+ fps_label_text = "Custom (" + str(fps_rate) + " fps)"
else:
fps_label_text = str(fps_rate) + " fps"
@@ -666,10 +665,10 @@ class RENDER_PT_dimensions(RenderButtonsPanel, Panel):
sub.prop(rd, "fps")
sub.prop(rd, "fps_base", text="/")
subrow = sub.row(align=True)
- subrow.label(text=_("Time Remapping:"))
+ subrow.label(text="Time Remapping:")
subrow = sub.row(align=True)
- subrow.prop(rd, "frame_map_old", text=_("Old"))
- subrow.prop(rd, "frame_map_new", text=_("New"))
+ subrow.prop(rd, "frame_map_old", text="Old")
+ subrow.prop(rd, "frame_map_new", text="New")
class RENDER_PT_antialiasing(RenderButtonsPanel, Panel):
@@ -697,7 +696,7 @@ class RENDER_PT_antialiasing(RenderButtonsPanel, Panel):
col = split.column()
col.prop(rd, "pixel_filter_type", text="")
- col.prop(rd, "filter_size", text=_("Size"))
+ col.prop(rd, "filter_size", text="Size")
class RENDER_PT_motion_blur(RenderButtonsPanel, Panel):
@@ -739,15 +738,15 @@ class RENDER_PT_shading(RenderButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.prop(rd, "use_textures", text=_("Textures"))
- col.prop(rd, "use_shadows", text=_("Shadows"))
- col.prop(rd, "use_sss", text=_("Subsurface Scattering"))
- col.prop(rd, "use_envmaps", text=_("Environment Map"))
+ col.prop(rd, "use_textures", text="Textures")
+ col.prop(rd, "use_shadows", text="Shadows")
+ col.prop(rd, "use_sss", text="Subsurface Scattering")
+ col.prop(rd, "use_envmaps", text="Environment Map")
col = split.column()
- col.prop(rd, "use_raytrace", text=_("Ray Tracing"))
+ col.prop(rd, "use_raytrace", text="Ray Tracing")
col.prop(rd, "use_color_management")
- col.prop(rd, "alpha_mode", text=_("Alpha"))
+ col.prop(rd, "alpha_mode", text="Alpha")
class RENDER_PT_performance(RenderButtonsPanel, Panel):
@@ -763,18 +762,18 @@ class RENDER_PT_performance(RenderButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Threads:"))
+ col.label(text="Threads:")
col.row().prop(rd, "threads_mode", expand=True)
sub = col.column()
sub.enabled = rd.threads_mode == 'FIXED'
sub.prop(rd, "threads")
sub = col.column(align=True)
- sub.label(text=_("Tiles:"))
+ sub.label(text="Tiles:")
sub.prop(rd, "parts_x", text="X")
sub.prop(rd, "parts_y", text="Y")
col = split.column()
- col.label(text=_("Memory:"))
+ col.label(text="Memory:")
sub = col.column()
sub.enabled = not (rd.use_border or rd.use_full_sample)
sub.prop(rd, "use_save_buffers")
@@ -784,13 +783,13 @@ class RENDER_PT_performance(RenderButtonsPanel, Panel):
sub.prop(rd, "use_free_unused_nodes")
sub = col.column()
sub.active = rd.use_raytrace
- sub.label(text=_("Acceleration structure:"))
+ sub.label(text="Acceleration structure:")
sub.prop(rd, "raytrace_method", text="")
if rd.raytrace_method == 'OCTREE':
- sub.prop(rd, "octree_resolution", text=_("Resolution"))
+ sub.prop(rd, "octree_resolution", text="Resolution")
else:
- sub.prop(rd, "use_instances", text=_("Instances"))
- sub.prop(rd, "use_local_coords", text=_("Local Coordinates"))
+ sub.prop(rd, "use_instances", text="Instances")
+ sub.prop(rd, "use_local_coords", text="Local Coordinates")
class RENDER_PT_post_processing(RenderButtonsPanel, Panel):
@@ -809,24 +808,24 @@ class RENDER_PT_post_processing(RenderButtonsPanel, Panel):
col.prop(rd, "use_compositing")
col.prop(rd, "use_sequencer")
- split.prop(rd, "dither_intensity", text=_("Dither"), slider=True)
+ split.prop(rd, "dither_intensity", text="Dither", slider=True)
layout.separator()
split = layout.split()
col = split.column()
- col.prop(rd, "use_fields", text=_("Fields"))
+ col.prop(rd, "use_fields", text="Fields")
sub = col.column()
sub.active = rd.use_fields
sub.row().prop(rd, "field_order", expand=True)
- sub.prop(rd, "use_fields_still", text=_("Still"))
+ sub.prop(rd, "use_fields_still", text="Still")
col = split.column()
col.prop(rd, "use_edge_enhance")
sub = col.column()
sub.active = rd.use_edge_enhance
- sub.prop(rd, "edge_threshold", text=_("Threshold"), slider=True)
+ sub.prop(rd, "edge_threshold", text="Threshold", slider=True)
sub.prop(rd, "edge_color", text="")
layout.separator()
@@ -855,26 +854,26 @@ class RENDER_PT_stamp(RenderButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.prop(rd, "use_stamp_time", text=_("Time"))
- col.prop(rd, "use_stamp_date", text=_("Date"))
- col.prop(rd, "use_stamp_render_time", text=_("RenderTime"))
- col.prop(rd, "use_stamp_frame", text=_("Frame"))
- col.prop(rd, "use_stamp_scene", text=_("Scene"))
- col.prop(rd, "use_stamp_camera", text=_("Camera"))
- col.prop(rd, "use_stamp_lens", text=_("Lens"))
- col.prop(rd, "use_stamp_filename", text=_("Filename"))
- col.prop(rd, "use_stamp_marker", text=_("Marker"))
- col.prop(rd, "use_stamp_sequencer_strip", text=_("Seq. Strip"))
+ col.prop(rd, "use_stamp_time", text="Time")
+ col.prop(rd, "use_stamp_date", text="Date")
+ col.prop(rd, "use_stamp_render_time", text="RenderTime")
+ col.prop(rd, "use_stamp_frame", text="Frame")
+ col.prop(rd, "use_stamp_scene", text="Scene")
+ col.prop(rd, "use_stamp_camera", text="Camera")
+ col.prop(rd, "use_stamp_lens", text="Lens")
+ col.prop(rd, "use_stamp_filename", text="Filename")
+ col.prop(rd, "use_stamp_marker", text="Marker")
+ col.prop(rd, "use_stamp_sequencer_strip", text="Seq. Strip")
col = split.column()
col.active = rd.use_stamp
col.prop(rd, "stamp_foreground", slider=True)
col.prop(rd, "stamp_background", slider=True)
col.separator()
- col.prop(rd, "stamp_font_size", text=_("Font Size"))
+ col.prop(rd, "stamp_font_size", text="Font Size")
row = layout.split(percentage=0.2)
- row.prop(rd, "use_stamp_note", text=_("Note"))
+ row.prop(rd, "use_stamp_note", text="Note")
sub = row.row()
sub.active = rd.use_stamp_note
sub.prop(rd, "stamp_note_text", text="")
@@ -896,7 +895,7 @@ class RENDER_PT_output(RenderButtonsPanel, Panel):
col = split.column()
col.prop(rd, "file_format", text="")
- col.row().prop(rd, "color_mode", text=_("Color"), expand=True)
+ col.row().prop(rd, "color_mode", text="Color", expand=True)
col = split.column()
col.prop(rd, "use_file_extension")
@@ -907,11 +906,11 @@ class RENDER_PT_output(RenderButtonsPanel, Panel):
layout.prop(rd, "file_quality", slider=True)
if file_format == 'PNG':
- layout.prop(rd, "file_quality", slider=True, text=_("Compression"))
+ layout.prop(rd, "file_quality", slider=True, text="Compression")
if file_format in {'OPEN_EXR', 'MULTILAYER'}:
row = layout.row()
- row.prop(rd, "exr_codec", text=_("Codec"))
+ row.prop(rd, "exr_codec", text="Codec")
if file_format == 'OPEN_EXR':
row = layout.row()
@@ -922,7 +921,7 @@ class RENDER_PT_output(RenderButtonsPanel, Panel):
elif file_format == 'JPEG2000':
split = layout.split()
col = split.column()
- col.label(text=_("Depth:"))
+ col.label(text="Depth:")
col.row().prop(rd, "jpeg2k_depth", expand=True)
col = split.column()
@@ -935,13 +934,13 @@ class RENDER_PT_output(RenderButtonsPanel, Panel):
split.label("FIXME: hard coded Non-Linear, Gamma:1.0")
'''
col = split.column()
- col.prop(rd, "use_cineon_log", text=_("Convert to Log"))
+ col.prop(rd, "use_cineon_log", text="Convert to Log")
col = split.column(align=True)
col.active = rd.use_cineon_log
- col.prop(rd, "cineon_black", text=_("Black"))
- col.prop(rd, "cineon_white", text=_("White"))
- col.prop(rd, "cineon_gamma", text=_("Gamma"))
+ col.prop(rd, "cineon_black", text="Black")
+ col.prop(rd, "cineon_white", text="White")
+ col.prop(rd, "cineon_gamma", text="Gamma")
'''
elif file_format == 'TIFF':
@@ -953,11 +952,11 @@ class RENDER_PT_output(RenderButtonsPanel, Panel):
elif file_format == 'QUICKTIME_QTKIT':
split = layout.split()
col = split.column()
- col.prop(rd, "quicktime_codec_type", text=_("Video Codec"))
- col.prop(rd, "quicktime_codec_spatial_quality", text=_("Quality"))
+ col.prop(rd, "quicktime_codec_type", text="Video Codec")
+ col.prop(rd, "quicktime_codec_spatial_quality", text="Quality")
# Audio
- col.prop(rd, "quicktime_audiocodec_type", text=_("Audio Codec"))
+ col.prop(rd, "quicktime_audiocodec_type", text="Audio Codec")
if rd.quicktime_audiocodec_type != 'No audio':
split = layout.split()
if rd.quicktime_audiocodec_type == 'LPCM':
@@ -995,7 +994,7 @@ class RENDER_PT_encoding(RenderButtonsPanel, Panel):
rd = context.scene.render
- layout.menu("RENDER_MT_ffmpeg_presets", text=_("Presets"))
+ layout.menu("RENDER_MT_ffmpeg_presets", text="Presets")
split = layout.split()
split.prop(rd, "ffmpeg_format")
@@ -1011,22 +1010,22 @@ class RENDER_PT_encoding(RenderButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Rate:"))
- col.prop(rd, "ffmpeg_minrate", text=_("Minimum"))
- col.prop(rd, "ffmpeg_maxrate", text=_("Maximum"))
- col.prop(rd, "ffmpeg_buffersize", text=_("Buffer"))
+ col.label(text="Rate:")
+ col.prop(rd, "ffmpeg_minrate", text="Minimum")
+ col.prop(rd, "ffmpeg_maxrate", text="Maximum")
+ col.prop(rd, "ffmpeg_buffersize", text="Buffer")
col = split.column()
col.prop(rd, "ffmpeg_autosplit")
- col.label(text=_("Mux:"))
- col.prop(rd, "ffmpeg_muxrate", text=_("Rate"))
- col.prop(rd, "ffmpeg_packetsize", text=_("Packet Size"))
+ col.label(text="Mux:")
+ col.prop(rd, "ffmpeg_muxrate", text="Rate")
+ col.prop(rd, "ffmpeg_packetsize", text="Packet Size")
layout.separator()
# Audio:
if rd.ffmpeg_format not in {'MP3'}:
- layout.prop(rd, "ffmpeg_audio_codec", text=_("Audio Codec"))
+ layout.prop(rd, "ffmpeg_audio_codec", text="Audio Codec")
row = layout.row()
row.prop(rd, "ffmpeg_audio_bitrate")
@@ -1068,7 +1067,7 @@ class RENDER_PT_bake(RenderButtonsPanel, Panel):
col = split.column()
col.prop(rd, "use_bake_clear")
col.prop(rd, "bake_margin")
- col.prop(rd, "bake_quad_split", text=_("Split"))
+ col.prop(rd, "bake_quad_split", text="Split")
col = split.column()
col.prop(rd, "use_bake_selected_to_active")
diff --git a/release/scripts/startup/bl_ui/properties_scene.py b/release/scripts/startup/bl_ui/properties_scene.py
index 7efb9cb6dc3..167cead9a3b 100644
--- a/release/scripts/startup/bl_ui/properties_scene.py
+++ b/release/scripts/startup/bl_ui/properties_scene.py
@@ -18,9 +18,8 @@
# <pep8 compliant>
import bpy
-from bpy.types import Operator, Panel
+from bpy.types import Panel
from rna_prop_ui import PropertyPanel
-from blf import gettext as _
class SceneButtonsPanel():
@@ -42,7 +41,7 @@ class SCENE_PT_scene(SceneButtonsPanel, Panel):
scene = context.scene
layout.prop(scene, "camera")
- layout.prop(scene, "background_set", text=_("Background"))
+ layout.prop(scene, "background_set", text="Background")
class SCENE_PT_audio(SceneButtonsPanel, Panel):
@@ -60,15 +59,15 @@ class SCENE_PT_audio(SceneButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(_("Listener:"))
+ col.label("Listener:")
col.prop(scene, "audio_distance_model", text="")
- col.prop(scene, "audio_doppler_speed", text=_("Speed"))
- col.prop(scene, "audio_doppler_factor", text=_("Doppler"))
+ col.prop(scene, "audio_doppler_speed", text="Speed")
+ col.prop(scene, "audio_doppler_factor", text="Doppler")
col = split.column()
- col.label(_("Format:"))
+ col.label("Format:")
col.prop(rd, "ffmpeg_audio_channels", text="")
- col.prop(rd, "ffmpeg_audio_mixrate", text=_("Rate"))
+ col.prop(rd, "ffmpeg_audio_mixrate", text="Rate")
layout.operator("sound.mixdown")
@@ -87,7 +86,7 @@ class SCENE_PT_unit(SceneButtonsPanel, Panel):
row = layout.row()
row.active = (unit.system != 'NONE')
- row.prop(unit, "scale_length", text=_("Scale"))
+ row.prop(unit, "scale_length", text="Scale")
row.prop(unit, "use_separate")
@@ -116,11 +115,11 @@ class SCENE_PT_keying_sets(SceneButtonsPanel, Panel):
subcol = col.column()
subcol.operator_context = 'INVOKE_DEFAULT'
- op = subcol.operator("anim.keying_set_export", text=_("Export to File"))
+ op = subcol.operator("anim.keying_set_export", text="Export to File")
op.filepath = "keyingset.py"
col = row.column()
- col.label(text=_("Keyframing Settings:"))
+ col.label(text="Keyframing Settings:")
col.prop(ks, "bl_options")
@@ -139,7 +138,7 @@ class SCENE_PT_keying_set_paths(SceneButtonsPanel, Panel):
ks = scene.keying_sets.active
row = layout.row()
- row.label(text=_("Paths:"))
+ row.label(text="Paths:")
row = layout.row()
@@ -153,20 +152,20 @@ class SCENE_PT_keying_set_paths(SceneButtonsPanel, Panel):
ksp = ks.paths.active
if ksp:
col = layout.column()
- col.label(text=_("Target:"))
+ col.label(text="Target:")
col.template_any_ID(ksp, "id", "id_type")
col.template_path_builder(ksp, "data_path", ksp.id)
row = layout.row()
col = row.column()
- col.label(text=_("Array Target:"))
+ col.label(text="Array Target:")
col.prop(ksp, "use_entire_array")
if ksp.use_entire_array is False:
col.prop(ksp, "array_index")
col = row.column()
- col.label(text=_("F-Curve Grouping:"))
+ col.label(text="F-Curve Grouping:")
col.prop(ksp, "group_method")
if ksp.group_method == 'NAMED':
col.prop(ksp, "group")
@@ -210,14 +209,14 @@ class SCENE_PT_simplify(SceneButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.prop(rd, "simplify_subdivision", text=_("Subdivision"))
- col.prop(rd, "simplify_child_particles", text=_("Child Particles"))
+ col.prop(rd, "simplify_subdivision", text="Subdivision")
+ col.prop(rd, "simplify_child_particles", text="Child Particles")
col.prop(rd, "use_simplify_triangulate")
col = split.column()
- col.prop(rd, "simplify_shadow_samples", text=_("Shadow Samples"))
- col.prop(rd, "simplify_ao_sss", text=_("AO and SSS"))
+ col.prop(rd, "simplify_shadow_samples", text="Shadow Samples")
+ col.prop(rd, "simplify_ao_sss", text="AO and SSS")
class SCENE_PT_custom_props(SceneButtonsPanel, PropertyPanel, Panel):
@@ -225,112 +224,5 @@ class SCENE_PT_custom_props(SceneButtonsPanel, PropertyPanel, Panel):
_context_path = "scene"
_property_type = bpy.types.Scene
-# XXX, move operator to op/ dir
-
-
-class ANIM_OT_keying_set_export(Operator):
- "Export Keying Set to a python script"
- bl_idname = "anim.keying_set_export"
- bl_label = "Export Keying Set..."
-
- filepath = bpy.props.StringProperty(name="File Path", description="Filepath to write file to")
- filter_folder = bpy.props.BoolProperty(name="Filter folders", description="", default=True, options={'HIDDEN'})
- filter_text = bpy.props.BoolProperty(name="Filter text", description="", default=True, options={'HIDDEN'})
- filter_python = bpy.props.BoolProperty(name="Filter python", description="", default=True, options={'HIDDEN'})
-
- def execute(self, context):
- if not self.filepath:
- raise Exception("Filepath not set")
-
- f = open(self.filepath, "w")
- if not f:
- raise Exception("Could not open file")
-
- scene = context.scene
- ks = scene.keying_sets.active
-
- f.write("# Keying Set: %s\n" % ks.name)
-
- f.write("import bpy\n\n")
- f.write("scene= bpy.data.scenes[0]\n\n") # XXX, why not use the current scene?
-
- # Add KeyingSet and set general settings
- f.write("# Keying Set Level declarations\n")
- f.write("ks= scene.keying_sets.new(name=\"%s\")\n" % ks.name)
-
- if not ks.is_path_absolute:
- f.write("ks.is_path_absolute = False\n")
- f.write("\n")
-
- f.write("ks.bl_options = %r\n" % ks.bl_options)
- f.write("\n")
-
- # generate and write set of lookups for id's used in paths
- id_to_paths_cache = {} # cache for syncing ID-blocks to bpy paths + shorthands
-
- for ksp in ks.paths:
- if ksp.id is None:
- continue
- if ksp.id in id_to_paths_cache:
- continue
-
- # - idtype_list is used to get the list of id-datablocks from bpy.data.*
- # since this info isn't available elsewhere
- # - id.bl_rna.name gives a name suitable for UI,
- # with a capitalised first letter, but we need
- # the plural form that's all lower case
- idtype_list = ksp.id.bl_rna.name.lower() + "s"
- id_bpy_path = "bpy.data.%s[\"%s\"]" % (idtype_list, ksp.id.name)
-
- # shorthand ID for the ID-block (as used in the script)
- short_id = "id_%d" % len(id_to_paths_cache)
-
- # store this in the cache now
- id_to_paths_cache[ksp.id] = [short_id, id_bpy_path]
-
- f.write("# ID's that are commonly used\n")
- for id_pair in id_to_paths_cache.values():
- f.write("%s = %s\n" % (id_pair[0], id_pair[1]))
- f.write("\n")
-
- # write paths
- f.write("# Path Definitions\n")
- for ksp in ks.paths:
- f.write("ksp = ks.paths.add(")
-
- # id-block + data_path
- if ksp.id:
- # find the relevant shorthand from the cache
- id_bpy_path = id_to_paths_cache[ksp.id][0]
- else:
- id_bpy_path = "None" # XXX...
- f.write("%s, '%s'" % (id_bpy_path, ksp.data_path))
-
- # array index settings (if applicable)
- if ksp.use_entire_array:
- f.write(", index=-1")
- else:
- f.write(", index=%d" % ksp.array_index)
-
- # grouping settings (if applicable)
- # NOTE: the current default is KEYINGSET, but if this changes, change this code too
- if ksp.group_method == 'NAMED':
- f.write(", group_method='%s', group_name=\"%s\"" % (ksp.group_method, ksp.group))
- elif ksp.group_method != 'KEYINGSET':
- f.write(", group_method='%s'" % ksp.group_method)
-
- # finish off
- f.write(")\n")
-
- f.write("\n")
- f.close()
-
- return {'FINISHED'}
-
- def invoke(self, context, event):
- wm = context.window_manager
- wm.fileselect_add(self)
- return {'RUNNING_MODAL'}
-
if __name__ == "__main__": # only for live edit.
bpy.utils.register_module(__name__)
diff --git a/release/scripts/startup/bl_ui/properties_texture.py b/release/scripts/startup/bl_ui/properties_texture.py
index c5f8708040f..34f5a948ee7 100644
--- a/release/scripts/startup/bl_ui/properties_texture.py
+++ b/release/scripts/startup/bl_ui/properties_texture.py
@@ -20,7 +20,6 @@
import bpy
from bpy.types import Menu, Panel
from rna_prop_ui import PropertyPanel
-from blf import gettext as _
class TEXTURE_MT_specials(Menu):
@@ -144,11 +143,11 @@ class TEXTURE_PT_context_texture(TextureButtonsPanel, Panel):
if tex.use_nodes:
if slot:
- split.label(text=_("Output:"))
+ split.label(text="Output:")
split.prop(slot, "output_node", text="")
else:
- split.label(text=_("Type:"))
+ split.label(text="Type:")
split.prop(tex, "type", text="")
@@ -179,21 +178,21 @@ class TEXTURE_PT_colors(TextureButtonsPanel, Panel):
tex = context.texture
- layout.prop(tex, "use_color_ramp", text=_("Ramp"))
+ layout.prop(tex, "use_color_ramp", text="Ramp")
if tex.use_color_ramp:
layout.template_color_ramp(tex, "color_ramp", expand=True)
split = layout.split()
col = split.column()
- col.label(text=_("RGB Multiply:"))
+ col.label(text="RGB Multiply:")
sub = col.column(align=True)
sub.prop(tex, "factor_red", text="R")
sub.prop(tex, "factor_green", text="G")
sub.prop(tex, "factor_blue", text="B")
col = split.column()
- col.label(text=_("Adjust:"))
+ col.label(text="Adjust:")
col.prop(tex, "intensity")
col.prop(tex, "contrast")
col.prop(tex, "saturation")
@@ -236,17 +235,17 @@ class TEXTURE_PT_clouds(TextureTypePanel, Panel):
tex = context.texture
layout.prop(tex, "cloud_type", expand=True)
- layout.label(text=_("Noise:"))
- layout.prop(tex, "noise_type", text=_("Type"), expand=True)
- layout.prop(tex, "noise_basis", text=_("Basis"))
+ layout.label(text="Noise:")
+ layout.prop(tex, "noise_type", text="Type", expand=True)
+ layout.prop(tex, "noise_basis", text="Basis")
split = layout.split()
col = split.column()
- col.prop(tex, "noise_scale", text=_("Size"))
- col.prop(tex, "noise_depth", text=_("Depth"))
+ col.prop(tex, "noise_scale", text="Size")
+ col.prop(tex, "noise_depth", text="Depth")
- split.prop(tex, "nabla", text=_("Nabla"))
+ split.prop(tex, "nabla", text="Nabla")
class TEXTURE_PT_wood(TextureTypePanel, Panel):
@@ -264,15 +263,15 @@ class TEXTURE_PT_wood(TextureTypePanel, Panel):
col = layout.column()
col.active = tex.wood_type in {'RINGNOISE', 'BANDNOISE'}
- col.label(text=_("Noise:"))
- col.row().prop(tex, "noise_type", text=_("Type"), expand=True)
- layout.prop(tex, "noise_basis", text=_("Basis"))
+ col.label(text="Noise:")
+ col.row().prop(tex, "noise_type", text="Type", expand=True)
+ layout.prop(tex, "noise_basis", text="Basis")
split = layout.split()
split.active = tex.wood_type in {'RINGNOISE', 'BANDNOISE'}
col = split.column()
- col.prop(tex, "noise_scale", text=_("Size"))
+ col.prop(tex, "noise_scale", text="Size")
col.prop(tex, "turbulence")
split.prop(tex, "nabla")
@@ -290,15 +289,15 @@ class TEXTURE_PT_marble(TextureTypePanel, Panel):
layout.prop(tex, "marble_type", expand=True)
layout.prop(tex, "noise_basis_2", expand=True)
- layout.label(text=_("Noise:"))
- layout.prop(tex, "noise_type", text=_("Type"), expand=True)
- layout.prop(tex, "noise_basis", text=_("Basis"))
+ layout.label(text="Noise:")
+ layout.prop(tex, "noise_type", text="Type", expand=True)
+ layout.prop(tex, "noise_basis", text="Basis")
split = layout.split()
col = split.column()
- col.prop(tex, "noise_scale", text=_("Size"))
- col.prop(tex, "noise_depth", text=_("Depth"))
+ col.prop(tex, "noise_scale", text="Size")
+ col.prop(tex, "noise_depth", text="Depth")
col = split.column()
col.prop(tex, "turbulence")
@@ -316,7 +315,7 @@ class TEXTURE_PT_magic(TextureTypePanel, Panel):
tex = context.texture
row = layout.row()
- row.prop(tex, "noise_depth", text=_("Depth"))
+ row.prop(tex, "noise_depth", text="Depth")
row.prop(tex, "turbulence")
@@ -349,12 +348,12 @@ class TEXTURE_PT_stucci(TextureTypePanel, Panel):
tex = context.texture
layout.prop(tex, "stucci_type", expand=True)
- layout.label(text=_("Noise:"))
- layout.prop(tex, "noise_type", text=_("Type"), expand=True)
- layout.prop(tex, "noise_basis", text=_("Basis"))
+ layout.label(text="Noise:")
+ layout.prop(tex, "noise_type", text="Type", expand=True)
+ layout.prop(tex, "noise_basis", text="Basis")
row = layout.row()
- row.prop(tex, "noise_scale", text=_("Size"))
+ row.prop(tex, "noise_scale", text="Size")
row.prop(tex, "turbulence")
@@ -372,13 +371,13 @@ class TEXTURE_PT_image(TextureTypePanel, Panel):
def texture_filter_common(tex, layout):
- layout.label(text=_("Filter:"))
+ layout.label(text="Filter:")
layout.prop(tex, "filter_type", text="")
if tex.use_mipmap and tex.filter_type in {'AREA', 'EWA', 'FELINE'}:
if tex.filter_type == 'FELINE':
- layout.prop(tex, "filter_probes", text=_("Probes"))
+ layout.prop(tex, "filter_probes", text="Probes")
else:
- layout.prop(tex, "filter_eccentricity", text=_("Eccentricity"))
+ layout.prop(tex, "filter_eccentricity", text="Eccentricity")
layout.prop(tex, "filter_size")
layout.prop(tex, "use_filter_size_min")
@@ -400,12 +399,12 @@ class TEXTURE_PT_image_sampling(TextureTypePanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Alpha:"))
- col.prop(tex, "use_alpha", text=_("Use"))
- col.prop(tex, "use_calculate_alpha", text=_("Calculate"))
- col.prop(tex, "invert_alpha", text=_("Invert"))
+ col.label(text="Alpha:")
+ col.prop(tex, "use_alpha", text="Use")
+ col.prop(tex, "use_calculate_alpha", text="Calculate")
+ col.prop(tex, "invert_alpha", text="Invert")
col.separator()
- col.prop(tex, "use_flip_axis", text=_("Flip X/Y Axis"))
+ col.prop(tex, "use_flip_axis", text="Flip X/Y Axis")
col = split.column()
@@ -446,12 +445,12 @@ class TEXTURE_PT_image_mapping(TextureTypePanel, Panel):
if tex.extension == 'REPEAT':
col = split.column(align=True)
- col.label(text=_("Repeat:"))
+ col.label(text="Repeat:")
col.prop(tex, "repeat_x", text="X")
col.prop(tex, "repeat_y", text="Y")
col = split.column(align=True)
- col.label(text=_("Mirror:"))
+ col.label(text="Mirror:")
row = col.row()
row.prop(tex, "use_mirror_x", text="X")
row.active = (tex.repeat_x > 1)
@@ -463,11 +462,11 @@ class TEXTURE_PT_image_mapping(TextureTypePanel, Panel):
elif tex.extension == 'CHECKER':
col = split.column(align=True)
row = col.row()
- row.prop(tex, "use_checker_even", text=_("Even"))
- row.prop(tex, "use_checker_odd", text=_("Odd"))
+ row.prop(tex, "use_checker_even", text="Even")
+ row.prop(tex, "use_checker_odd", text="Odd")
col = split.column()
- col.prop(tex, "checker_distance", text=_("Distance"))
+ col.prop(tex, "checker_distance", text="Distance")
layout.separator()
@@ -475,12 +474,12 @@ class TEXTURE_PT_image_mapping(TextureTypePanel, Panel):
col = split.column(align=True)
#col.prop(tex, "crop_rectangle")
- col.label(text=_("Crop Minimum:"))
+ col.label(text="Crop Minimum:")
col.prop(tex, "crop_min_x", text="X")
col.prop(tex, "crop_min_y", text="Y")
col = split.column(align=True)
- col.label(text=_("Crop Maximum:"))
+ col.label(text="Crop Maximum:")
col.prop(tex, "crop_max_x", text="X")
col.prop(tex, "crop_max_y", text="Y")
@@ -518,9 +517,9 @@ class TEXTURE_PT_envmap(TextureTypePanel, Panel):
col = split.column(align=True)
- col.label(text=_("Clipping:"))
- col.prop(env, "clip_start", text=_("Start"))
- col.prop(env, "clip_end", text=_("End"))
+ col.label(text="Clipping:")
+ col.prop(env, "clip_start", text="Start")
+ col.prop(env, "clip_end", text="End")
class TEXTURE_PT_envmap_sampling(TextureTypePanel, Panel):
@@ -552,7 +551,7 @@ class TEXTURE_PT_musgrave(TextureTypePanel, Panel):
split = layout.split()
col = split.column()
- col.prop(tex, "dimension_max", text=_("Dimension"))
+ col.prop(tex, "dimension_max", text="Dimension")
col.prop(tex, "lacunarity")
col.prop(tex, "octaves")
@@ -561,16 +560,16 @@ class TEXTURE_PT_musgrave(TextureTypePanel, Panel):
if musgrave_type in {'HETERO_TERRAIN', 'RIDGED_MULTIFRACTAL', 'HYBRID_MULTIFRACTAL'}:
col.prop(tex, "offset")
if musgrave_type in {'MULTIFRACTAL', 'RIDGED_MULTIFRACTAL', 'HYBRID_MULTIFRACTAL'}:
- col.prop(tex, "noise_intensity", text=_("Intensity"))
+ col.prop(tex, "noise_intensity", text="Intensity")
if musgrave_type in {'RIDGED_MULTIFRACTAL', 'HYBRID_MULTIFRACTAL'}:
col.prop(tex, "gain")
- layout.label(text=_("Noise:"))
+ layout.label(text="Noise:")
- layout.prop(tex, "noise_basis", text=_("Basis"))
+ layout.prop(tex, "noise_basis", text="Basis")
row = layout.row()
- row.prop(tex, "noise_scale", text=_("Size"))
+ row.prop(tex, "noise_scale", text="Size")
row.prop(tex, "nabla")
@@ -587,26 +586,26 @@ class TEXTURE_PT_voronoi(TextureTypePanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Distance Metric:"))
+ col.label(text="Distance Metric:")
col.prop(tex, "distance_metric", text="")
sub = col.column()
sub.active = tex.distance_metric == 'MINKOVSKY'
- sub.prop(tex, "minkovsky_exponent", text=_("Exponent"))
- col.label(text=_("Coloring:"))
+ sub.prop(tex, "minkovsky_exponent", text="Exponent")
+ col.label(text="Coloring:")
col.prop(tex, "color_mode", text="")
- col.prop(tex, "noise_intensity", text=_("Intensity"))
+ col.prop(tex, "noise_intensity", text="Intensity")
col = split.column()
sub = col.column(align=True)
- sub.label(text=_("Feature Weights:"))
+ sub.label(text="Feature Weights:")
sub.prop(tex, "weight_1", text="1", slider=True)
sub.prop(tex, "weight_2", text="2", slider=True)
sub.prop(tex, "weight_3", text="3", slider=True)
sub.prop(tex, "weight_4", text="4", slider=True)
- layout.label(text=_("Noise:"))
+ layout.label(text="Noise:")
row = layout.row()
- row.prop(tex, "noise_scale", text=_("Size"))
+ row.prop(tex, "noise_scale", text="Size")
row.prop(tex, "nabla")
@@ -621,13 +620,13 @@ class TEXTURE_PT_distortednoise(TextureTypePanel, Panel):
tex = context.texture
layout.prop(tex, "noise_distortion")
- layout.prop(tex, "noise_basis", text=_("Basis"))
+ layout.prop(tex, "noise_basis", text="Basis")
split = layout.split()
col = split.column()
- col.prop(tex, "distortion", text=_("Distortion"))
- col.prop(tex, "noise_scale", text=_("Size"))
+ col.prop(tex, "distortion", text="Distortion")
+ col.prop(tex, "noise_scale", text="Size")
split.prop(tex, "nabla")
@@ -694,26 +693,26 @@ class TEXTURE_PT_pointdensity(TextureButtonsPanel, Panel):
col = split.column()
if pd.point_source == 'PARTICLE_SYSTEM':
- col.label(text=_("Object:"))
+ col.label(text="Object:")
col.prop(pd, "object", text="")
sub = col.column()
sub.enabled = bool(pd.object)
if pd.object:
- sub.label(text=_("System:"))
+ sub.label(text="System:")
sub.prop_search(pd, "particle_system", pd.object, "particle_systems", text="")
- sub.label(text=_("Cache:"))
+ sub.label(text="Cache:")
sub.prop(pd, "particle_cache_space", text="")
else:
- col.label(text=_("Object:"))
+ col.label(text="Object:")
col.prop(pd, "object", text="")
- col.label(text=_("Cache:"))
+ col.label(text="Cache:")
col.prop(pd, "vertex_cache_space", text="")
col.separator()
if pd.point_source == 'PARTICLE_SYSTEM':
- col.label(text=_("Color Source:"))
+ col.label(text="Color Source:")
col.prop(pd, "color_source", text="")
if pd.color_source in {'PARTICLE_SPEED', 'PARTICLE_VELOCITY'}:
col.prop(pd, "speed_scale")
@@ -723,7 +722,7 @@ class TEXTURE_PT_pointdensity(TextureButtonsPanel, Panel):
col = split.column()
col.label()
col.prop(pd, "radius")
- col.label(text=_("Falloff:"))
+ col.label(text="Falloff:")
col.prop(pd, "falloff", text="")
if pd.falloff == 'SOFT':
col.prop(pd, "falloff_soft")
@@ -734,7 +733,7 @@ class TEXTURE_PT_pointdensity(TextureButtonsPanel, Panel):
if pd.use_falloff_curve:
col = layout.column()
- col.label(text=_("Falloff Curve"))
+ col.label(text="Falloff Curve")
col.template_curve_mapping(pd, "falloff_curve", brush=False)
@@ -763,9 +762,9 @@ class TEXTURE_PT_pointdensity_turbulence(TextureButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Influence:"))
+ col.label(text="Influence:")
col.prop(pd, "turbulence_influence", text="")
- col.label(text=_("Noise Basis:"))
+ col.label(text="Noise Basis:")
col.prop(pd, "noise_basis", text="")
col = split.column()
@@ -802,7 +801,7 @@ class TEXTURE_PT_mapping(TextureSlotPanel, Panel):
if not isinstance(idblock, bpy.types.Brush):
split = layout.split(percentage=0.3)
col = split.column()
- col.label(text=_("Coordinates:"))
+ col.label(text="Coordinates:")
col = split.column()
col.prop(tex, "texture_coords", text="")
@@ -811,12 +810,12 @@ class TEXTURE_PT_mapping(TextureSlotPanel, Panel):
ob = context.object
if ob and ob.type == 'MESH':
split = layout.split(percentage=0.3)
- split.label(text=_("Mesh:"))
+ split.label(text="Mesh:")
split.prop(ob.data, "texco_mesh", text="")
"""
elif tex.texture_coords == 'UV':
split = layout.split(percentage=0.3)
- split.label(text=_("Layer:"))
+ split.label(text="Layer:")
ob = context.object
if ob and ob.type == 'MESH':
split.prop_search(tex, "uv_layer", ob.data, "uv_textures", text="")
@@ -825,12 +824,12 @@ class TEXTURE_PT_mapping(TextureSlotPanel, Panel):
elif tex.texture_coords == 'OBJECT':
split = layout.split(percentage=0.3)
- split.label(text=_("Object:"))
+ split.label(text="Object:")
split.prop(tex, "object", text="")
if isinstance(idblock, bpy.types.Brush):
if context.sculpt_object:
- layout.label(text=_("Brush Mapping:"))
+ layout.label(text="Brush Mapping:")
layout.prop(tex, "map_mode", expand=True)
row = layout.row()
@@ -839,7 +838,7 @@ class TEXTURE_PT_mapping(TextureSlotPanel, Panel):
else:
if isinstance(idblock, bpy.types.Material):
split = layout.split(percentage=0.3)
- split.label(text=_("Projection:"))
+ split.label(text="Projection:")
split.prop(tex, "mapping", text="")
split = layout.split()
@@ -901,111 +900,111 @@ class TEXTURE_PT_influence(TextureSlotPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Diffuse:"))
- factor_but(col, "use_map_diffuse", "diffuse_factor", _("Intensity"))
- factor_but(col, "use_map_color_diffuse", "diffuse_color_factor", _("Color"))
- factor_but(col, "use_map_alpha", "alpha_factor", _("Alpha"))
- factor_but(col, "use_map_translucency", "translucency_factor", _("Translucency"))
+ col.label(text="Diffuse:")
+ factor_but(col, "use_map_diffuse", "diffuse_factor", "Intensity")
+ factor_but(col, "use_map_color_diffuse", "diffuse_color_factor", "Color")
+ factor_but(col, "use_map_alpha", "alpha_factor", "Alpha")
+ factor_but(col, "use_map_translucency", "translucency_factor", "Translucency")
- col.label(text=_("Specular:"))
- factor_but(col, "use_map_specular", "specular_factor", _("Intensity"))
- factor_but(col, "use_map_color_spec", "specular_color_factor", _("Color"))
- factor_but(col, "use_map_hardness", "hardness_factor", _("Hardness"))
+ col.label(text="Specular:")
+ factor_but(col, "use_map_specular", "specular_factor", "Intensity")
+ factor_but(col, "use_map_color_spec", "specular_color_factor", "Color")
+ factor_but(col, "use_map_hardness", "hardness_factor", "Hardness")
col = split.column()
- col.label(text=_("Shading:"))
- factor_but(col, "use_map_ambient", "ambient_factor", _("Ambient"))
- factor_but(col, "use_map_emit", "emit_factor", _("Emit"))
- factor_but(col, "use_map_mirror", "mirror_factor", _("Mirror"))
- factor_but(col, "use_map_raymir", "raymir_factor", _("Ray Mirror"))
+ col.label(text="Shading:")
+ factor_but(col, "use_map_ambient", "ambient_factor", "Ambient")
+ factor_but(col, "use_map_emit", "emit_factor", "Emit")
+ factor_but(col, "use_map_mirror", "mirror_factor", "Mirror")
+ factor_but(col, "use_map_raymir", "raymir_factor", "Ray Mirror")
- col.label(text=_("Geometry:"))
+ col.label(text="Geometry:")
# XXX replace 'or' when displacement is fixed to not rely on normal influence value.
- sub_tmp = factor_but(col, "use_map_normal", "normal_factor", _("Normal"))
+ sub_tmp = factor_but(col, "use_map_normal", "normal_factor", "Normal")
sub_tmp.active = (tex.use_map_normal or tex.use_map_displacement)
# END XXX
- factor_but(col, "use_map_warp", "warp_factor", _("Warp"))
- factor_but(col, "use_map_displacement", "displacement_factor", _("Displace"))
+ factor_but(col, "use_map_warp", "warp_factor", "Warp")
+ factor_but(col, "use_map_displacement", "displacement_factor", "Displace")
#sub = col.column()
#sub.active = tex.use_map_translucency or tex.map_emit or tex.map_alpha or tex.map_raymir or tex.map_hardness or tex.map_ambient or tex.map_specularity or tex.map_reflection or tex.map_mirror
- #sub.prop(tex, "default_value", text=_("Amount"), slider=True)
+ #sub.prop(tex, "default_value", text="Amount", slider=True)
elif idblock.type == 'HALO':
- layout.label(text=_("Halo:"))
+ layout.label(text="Halo:")
split = layout.split()
col = split.column()
- factor_but(col, "use_map_color_diffuse", "diffuse_color_factor", _("Color"))
- factor_but(col, "use_map_alpha", "alpha_factor", _("Alpha"))
+ factor_but(col, "use_map_color_diffuse", "diffuse_color_factor", "Color")
+ factor_but(col, "use_map_alpha", "alpha_factor", "Alpha")
col = split.column()
- factor_but(col, "use_map_raymir", "raymir_factor", _("Size"))
- factor_but(col, "use_map_hardness", "hardness_factor", _("Hardness"))
- factor_but(col, "use_map_translucency", "translucency_factor", _("Add"))
+ factor_but(col, "use_map_raymir", "raymir_factor", "Size")
+ factor_but(col, "use_map_hardness", "hardness_factor", "Hardness")
+ factor_but(col, "use_map_translucency", "translucency_factor", "Add")
elif idblock.type == 'VOLUME':
split = layout.split()
col = split.column()
- factor_but(col, "use_map_density", "density_factor", _("Density"))
- factor_but(col, "use_map_emission", "emission_factor", _("Emission"))
- factor_but(col, "use_map_scatter", "scattering_factor", _("Scattering"))
- factor_but(col, "use_map_reflect", "reflection_factor", _("Reflection"))
+ factor_but(col, "use_map_density", "density_factor", "Density")
+ factor_but(col, "use_map_emission", "emission_factor", "Emission")
+ factor_but(col, "use_map_scatter", "scattering_factor", "Scattering")
+ factor_but(col, "use_map_reflect", "reflection_factor", "Reflection")
col = split.column()
col.label(text=" ")
- factor_but(col, "use_map_color_emission", "emission_color_factor", _("Emission Color"))
- factor_but(col, "use_map_color_transmission", "transmission_color_factor", _("Transmission Color"))
- factor_but(col, "use_map_color_reflection", "reflection_color_factor", _("Reflection Color"))
+ factor_but(col, "use_map_color_emission", "emission_color_factor", "Emission Color")
+ factor_but(col, "use_map_color_transmission", "transmission_color_factor", "Transmission Color")
+ factor_but(col, "use_map_color_reflection", "reflection_color_factor", "Reflection Color")
elif isinstance(idblock, bpy.types.Lamp):
split = layout.split()
col = split.column()
- factor_but(col, "use_map_color", "color_factor", _("Color"))
+ factor_but(col, "use_map_color", "color_factor", "Color")
col = split.column()
- factor_but(col, "use_map_shadow", "shadow_factor", _("Shadow"))
+ factor_but(col, "use_map_shadow", "shadow_factor", "Shadow")
elif isinstance(idblock, bpy.types.World):
split = layout.split()
col = split.column()
- factor_but(col, "use_map_blend", "blend_factor", _("Blend"))
- factor_but(col, "use_map_horizon", "horizon_factor", _("Horizon"))
+ factor_but(col, "use_map_blend", "blend_factor", "Blend")
+ factor_but(col, "use_map_horizon", "horizon_factor", "Horizon")
col = split.column()
- factor_but(col, "use_map_zenith_up", "zenith_up_factor", _("Zenith Up"))
- factor_but(col, "use_map_zenith_down", "zenith_down_factor", _("Zenith Down"))
+ factor_but(col, "use_map_zenith_up", "zenith_up_factor", "Zenith Up")
+ factor_but(col, "use_map_zenith_down", "zenith_down_factor", "Zenith Down")
elif isinstance(idblock, bpy.types.ParticleSettings):
split = layout.split()
col = split.column()
- col.label(text=_("General:"))
- factor_but(col, "use_map_time", "time_factor", _("Time"))
- factor_but(col, "use_map_life", "life_factor", _("Lifetime"))
- factor_but(col, "use_map_density", "density_factor", _("Density"))
- factor_but(col, "use_map_size", "size_factor", _("Size"))
+ col.label(text="General:")
+ factor_but(col, "use_map_time", "time_factor", "Time")
+ factor_but(col, "use_map_life", "life_factor", "Lifetime")
+ factor_but(col, "use_map_density", "density_factor", "Density")
+ factor_but(col, "use_map_size", "size_factor", "Size")
col = split.column()
- col.label(text=_("Physics:"))
- factor_but(col, "use_map_velocity", "velocity_factor", _("Velocity"))
- factor_but(col, "use_map_damp", "damp_factor", _("Damp"))
- factor_but(col, "use_map_gravity", "gravity_factor", _("Gravity"))
- factor_but(col, "use_map_field", "field_factor", _("Force Fields"))
+ col.label(text="Physics:")
+ factor_but(col, "use_map_velocity", "velocity_factor", "Velocity")
+ factor_but(col, "use_map_damp", "damp_factor", "Damp")
+ factor_but(col, "use_map_gravity", "gravity_factor", "Gravity")
+ factor_but(col, "use_map_field", "field_factor", "Force Fields")
- layout.label(text=_("Hair:"))
+ layout.label(text="Hair:")
split = layout.split()
col = split.column()
- factor_but(col, "use_map_length", "length_factor", _("Length"))
- factor_but(col, "use_map_clump", "clump_factor", _("Clump"))
+ factor_but(col, "use_map_length", "length_factor", "Length")
+ factor_but(col, "use_map_clump", "clump_factor", "Clump")
col = split.column()
- factor_but(col, "use_map_kink", "kink_factor", _("Kink"))
- factor_but(col, "use_map_rough", "rough_factor", _("Rough"))
+ factor_but(col, "use_map_kink", "kink_factor", "Kink")
+ factor_but(col, "use_map_rough", "rough_factor", "Rough")
layout.separator()
@@ -1013,32 +1012,32 @@ class TEXTURE_PT_influence(TextureSlotPanel, Panel):
split = layout.split()
col = split.column()
- col.prop(tex, "blend_type", text=_("Blend"))
+ col.prop(tex, "blend_type", text="Blend")
col.prop(tex, "use_rgb_to_intensity")
# color is used on grayscale textures even when use_rgb_to_intensity is disabled.
col.prop(tex, "color", text="")
col = split.column()
- col.prop(tex, "invert", text=_("Negative"))
+ col.prop(tex, "invert", text="Negative")
col.prop(tex, "use_stencil")
if isinstance(idblock, bpy.types.Material) or isinstance(idblock, bpy.types.World):
- col.prop(tex, "default_value", text=_("DVar"), slider=True)
+ col.prop(tex, "default_value", text="DVar", slider=True)
if isinstance(idblock, bpy.types.Material):
- layout.label(text=_("Bump Mapping:"))
+ layout.label(text="Bump Mapping:")
# only show bump settings if activated but not for normalmap images
row = layout.row()
sub = row.row()
sub.active = (tex.use_map_normal or tex.use_map_warp) and not (tex.texture.type == 'IMAGE' and (tex.texture.use_normal_map or tex.texture.use_derivative_map))
- sub.prop(tex, "bump_method", text=_("Method"))
+ sub.prop(tex, "bump_method", text="Method")
# the space setting is supported for: derivmaps + bumpmaps (DEFAULT,BEST_QUALITY), not for normalmaps
sub = row.row()
sub.active = (tex.use_map_normal or tex.use_map_warp) and not (tex.texture.type == 'IMAGE' and tex.texture.use_normal_map) and ((tex.bump_method in {'BUMP_DEFAULT', 'BUMP_BEST_QUALITY'}) or (tex.texture.type == 'IMAGE' and tex.texture.use_derivative_map))
- sub.prop(tex, "bump_objectspace", text=_("Space"))
+ sub.prop(tex, "bump_objectspace", text="Space")
class TEXTURE_PT_custom_props(TextureButtonsPanel, PropertyPanel, Panel):
diff --git a/release/scripts/startup/bl_ui/properties_world.py b/release/scripts/startup/bl_ui/properties_world.py
index 916667ea400..71ee03296a0 100644
--- a/release/scripts/startup/bl_ui/properties_world.py
+++ b/release/scripts/startup/bl_ui/properties_world.py
@@ -20,7 +20,6 @@
import bpy
from bpy.types import Panel
from rna_prop_ui import PropertyPanel
-from blf import gettext as _
class WorldButtonsPanel():
@@ -116,12 +115,12 @@ class WORLD_PT_ambient_occlusion(WorldButtonsPanel, Panel):
layout.active = light.use_ambient_occlusion
split = layout.split()
- split.prop(light, "ao_factor", text=_("Factor"))
+ split.prop(light, "ao_factor", text="Factor")
split.prop(light, "ao_blend_type", text="")
class WORLD_PT_environment_lighting(WorldButtonsPanel, Panel):
- bl_label = _("Environment Lighting")
+ bl_label = "Environment Lighting"
COMPAT_ENGINES = {'BLENDER_RENDER'}
def draw_header(self, context):
@@ -135,7 +134,7 @@ class WORLD_PT_environment_lighting(WorldButtonsPanel, Panel):
layout.active = light.use_environment_light
split = layout.split()
- split.prop(light, "environment_energy", text=_("Energy"))
+ split.prop(light, "environment_energy", text="Energy")
split.prop(light, "environment_color", text="")
@@ -154,11 +153,11 @@ class WORLD_PT_indirect_lighting(WorldButtonsPanel, Panel):
layout.active = light.use_indirect_light and light.gather_method == 'APPROXIMATE'
split = layout.split()
- split.prop(light, "indirect_factor", text=_("Factor"))
- split.prop(light, "indirect_bounces", text=_("Bounces"))
+ split.prop(light, "indirect_factor", text="Factor")
+ split.prop(light, "indirect_bounces", text="Bounces")
if light.gather_method == 'RAYTRACE':
- layout.label(text=_("Only works with Approximate gather method"))
+ layout.label(text="Only works with Approximate gather method")
class WORLD_PT_gather(WorldButtonsPanel, Panel):
@@ -176,18 +175,18 @@ class WORLD_PT_gather(WorldButtonsPanel, Panel):
split = layout.split()
col = split.column()
- col.label(text=_("Attenuation:"))
+ col.label(text="Attenuation:")
if light.gather_method == 'RAYTRACE':
col.prop(light, "distance")
col.prop(light, "use_falloff")
sub = col.row()
sub.active = light.use_falloff
- sub.prop(light, "falloff_strength", text=_("Strength"))
+ sub.prop(light, "falloff_strength", text="Strength")
if light.gather_method == 'RAYTRACE':
col = split.column()
- col.label(text=_("Sampling:"))
+ col.label(text="Sampling:")
col.prop(light, "sample_method", text="")
sub = col.column()
@@ -202,9 +201,9 @@ class WORLD_PT_gather(WorldButtonsPanel, Panel):
if light.gather_method == 'APPROXIMATE':
col = split.column()
- col.label(text=_("Sampling:"))
+ col.label(text="Sampling:")
col.prop(light, "passes")
- col.prop(light, "error_threshold", text=_("Error"))
+ col.prop(light, "error_threshold", text="Error")
col.prop(light, "use_cache")
col.prop(light, "correction")
@@ -258,11 +257,11 @@ class WORLD_PT_stars(WorldButtonsPanel, Panel):
col = split.column()
col.prop(world.star_settings, "size")
- col.prop(world.star_settings, "color_random", text=_("Colors"))
+ col.prop(world.star_settings, "color_random", text="Colors")
col = split.column()
- col.prop(world.star_settings, "distance_min", text=_("Min. Dist"))
- col.prop(world.star_settings, "average_separation", text=_("Separation"))
+ col.prop(world.star_settings, "distance_min", text="Min. Dist")
+ col.prop(world.star_settings, "average_separation", text="Separation")
class WORLD_PT_custom_props(WorldButtonsPanel, PropertyPanel, Panel):
diff --git a/release/scripts/startup/bl_ui/space_console.py b/release/scripts/startup/bl_ui/space_console.py
index bb0cf6eda2c..a1818c395a2 100644
--- a/release/scripts/startup/bl_ui/space_console.py
+++ b/release/scripts/startup/bl_ui/space_console.py
@@ -18,9 +18,7 @@
# <pep8 compliant>
import bpy
-from bpy.types import Header, Menu, Operator
-from bpy.props import StringProperty
-from blf import gettext as _
+from bpy.types import Header, Menu
class CONSOLE_HT_header(Header):
@@ -34,7 +32,7 @@ class CONSOLE_HT_header(Header):
if context.area.show_menus:
layout.menu("CONSOLE_MT_console")
- layout.operator("console.autocomplete", text=_("Autocomplete"))
+ layout.operator("console.autocomplete", text="Autocomplete")
class CONSOLE_MT_console(Menu):
@@ -80,87 +78,5 @@ def add_scrollback(text, text_type):
bpy.ops.console.scrollback_append(text=l.replace('\t', ' '),
type=text_type)
-
-class ConsoleExec(Operator):
- '''Execute the current console line as a python expression'''
- bl_idname = "console.execute"
- bl_label = "Console Execute"
-
- def execute(self, context):
- sc = context.space_data
-
- module = __import__("console_" + sc.language)
- execute = getattr(module, "execute", None)
-
- if execute:
- return execute(context)
- else:
- print("Error: bpy.ops.console.execute_" + sc.language + " - not found")
- return {'FINISHED'}
-
-
-class ConsoleAutocomplete(Operator):
- '''Evaluate the namespace up until the cursor and give a list of options or complete the name if there is only one'''
- bl_idname = "console.autocomplete"
- bl_label = "Console Autocomplete"
-
- def execute(self, context):
- sc = context.space_data
- module = __import__("console_" + sc.language)
- autocomplete = getattr(module, "autocomplete", None)
-
- if autocomplete:
- return autocomplete(context)
- else:
- print("Error: bpy.ops.console.autocomplete_" + sc.language + " - not found")
- return {'FINISHED'}
-
-
-class ConsoleBanner(Operator):
- '''Print a message whem the terminal initializes'''
- bl_idname = "console.banner"
- bl_label = "Console Banner"
-
- def execute(self, context):
- sc = context.space_data
-
- # default to python
- if not sc.language:
- sc.language = 'python'
-
- module = __import__("console_" + sc.language)
- banner = getattr(module, "banner", None)
-
- if banner:
- return banner(context)
- else:
- print("Error: bpy.ops.console.banner_" + sc.language + " - not found")
- return {'FINISHED'}
-
-
-class ConsoleLanguage(Operator):
- '''Set the current language for this console'''
- bl_idname = "console.language"
- bl_label = "Console Language"
-
- language = StringProperty(
- name="Language",
- maxlen=32,
- )
-
- def execute(self, context):
- sc = context.space_data
-
- # defailt to python
- sc.language = self.language
-
- bpy.ops.console.banner()
-
- # insert a new blank line
- bpy.ops.console.history_append(text="", current_character=0,
- remove_duplicates=True)
-
- return {'FINISHED'}
-
if __name__ == "__main__": # only for live edit.
bpy.utils.register_module(__name__)
diff --git a/release/scripts/startup/bl_ui/space_dopesheet.py b/release/scripts/startup/bl_ui/space_dopesheet.py
index 580a4e7f1b6..90dcc99e6d7 100644
--- a/release/scripts/startup/bl_ui/space_dopesheet.py
+++ b/release/scripts/startup/bl_ui/space_dopesheet.py
@@ -20,7 +20,6 @@
import bpy
from bpy.types import Header, Menu
-from blf import gettext as _
#######################################
@@ -118,7 +117,7 @@ class DOPESHEET_HT_header(Header):
row.menu("DOPESHEET_MT_gpencil_frame")
layout.prop(st, "mode", text="")
- layout.prop(st.dopesheet, "show_summary", text=_("Summary"))
+ layout.prop(st.dopesheet, "show_summary", text="Summary")
if st.mode == 'DOPESHEET':
dopesheet_filter(layout, context)
@@ -154,9 +153,9 @@ class DOPESHEET_MT_view(Menu):
layout.prop(st, "use_marker_sync")
if st.show_seconds:
- layout.operator("anim.time_toggle", text=_("Show Frames"))
+ layout.operator("anim.time_toggle", text="Show Frames")
else:
- layout.operator("anim.time_toggle", text=_("Show Seconds"))
+ layout.operator("anim.time_toggle", text="Show Seconds")
layout.separator()
layout.operator("anim.previewrange_set")
@@ -181,22 +180,22 @@ class DOPESHEET_MT_select(Menu):
# This is a bit misleading as the operator's default text is "Select All" while it actually *toggles* All/None
layout.operator("action.select_all_toggle")
- layout.operator("action.select_all_toggle", text=_("Invert Selection")).invert = True
+ layout.operator("action.select_all_toggle", text="Invert Selection").invert = True
layout.separator()
layout.operator("action.select_border")
- layout.operator("action.select_border", text=_("Border Axis Range")).axis_range = True
+ layout.operator("action.select_border", text="Border Axis Range").axis_range = True
layout.separator()
- layout.operator("action.select_column", text=_("Columns on Selected Keys")).mode = 'KEYS'
- layout.operator("action.select_column", text=_("Column on Current Frame")).mode = 'CFRA'
+ layout.operator("action.select_column", text="Columns on Selected Keys").mode = 'KEYS'
+ layout.operator("action.select_column", text="Column on Current Frame").mode = 'CFRA'
- layout.operator("action.select_column", text=_("Columns on Selected Markers")).mode = 'MARKERS_COLUMN'
- layout.operator("action.select_column", text=_("Between Selected Markers")).mode = 'MARKERS_BETWEEN'
+ layout.operator("action.select_column", text="Columns on Selected Markers").mode = 'MARKERS_COLUMN'
+ layout.operator("action.select_column", text="Between Selected Markers").mode = 'MARKERS_BETWEEN'
layout.separator()
- layout.operator("action.select_leftright", text=_("Before Current Frame")).mode = 'LEFT'
- layout.operator("action.select_leftright", text=_("After Current Frame")).mode = 'RIGHT'
+ layout.operator("action.select_leftright", text="Before Current Frame").mode = 'LEFT'
+ layout.operator("action.select_leftright", text="After Current Frame").mode = 'RIGHT'
# FIXME: grease pencil mode isn't supported for these yet, so skip for that mode only
if context.space_data.mode != 'GPENCIL':
@@ -218,14 +217,14 @@ class DOPESHEET_MT_marker(Menu):
#layout.operator_context = 'EXEC_REGION_WIN'
- layout.operator("marker.add", _("Add Marker"))
- layout.operator("marker.duplicate", text=_("Duplicate Marker"))
- layout.operator("marker.delete", text=_("Delete Marker"))
+ layout.operator("marker.add", "Add Marker")
+ layout.operator("marker.duplicate", text="Duplicate Marker")
+ layout.operator("marker.delete", text="Delete Marker")
layout.separator()
- layout.operator("marker.rename", text=_("Rename Marker"))
- layout.operator("marker.move", text=_("Grab/Move Marker"))
+ layout.operator("marker.rename", text="Rename Marker")
+ layout.operator("marker.move", text="Grab/Move Marker")
if st.mode in {'ACTION', 'SHAPEKEY'} and st.action:
layout.separator()
@@ -255,14 +254,14 @@ class DOPESHEET_MT_channel(Menu):
layout.separator()
layout.operator("anim.channels_editable_toggle")
- layout.operator_menu_enum("action.extrapolation_type", "type", text=_("Extrapolation Mode"))
+ layout.operator_menu_enum("action.extrapolation_type", "type", text="Extrapolation Mode")
layout.separator()
layout.operator("anim.channels_expand")
layout.operator("anim.channels_collapse")
layout.separator()
- layout.operator_menu_enum("anim.channels_move", "direction", text=_("Move..."))
+ layout.operator_menu_enum("anim.channels_move", "direction", text="Move...")
layout.separator()
layout.operator("anim.channels_fcurves_enable")
@@ -274,10 +273,10 @@ class DOPESHEET_MT_key(Menu):
def draw(self, context):
layout = self.layout
- layout.menu("DOPESHEET_MT_key_transform", text=_("Transform"))
+ layout.menu("DOPESHEET_MT_key_transform", text="Transform")
- layout.operator_menu_enum("action.snap", "type", text=_("Snap"))
- layout.operator_menu_enum("action.mirror", "type", text=_("Mirror"))
+ layout.operator_menu_enum("action.snap", "type", text="Snap")
+ layout.operator_menu_enum("action.mirror", "type", text="Mirror")
layout.separator()
layout.operator("action.keyframe_insert")
@@ -287,9 +286,9 @@ class DOPESHEET_MT_key(Menu):
layout.operator("action.delete")
layout.separator()
- layout.operator_menu_enum("action.keyframe_type", "type", text=_("Keyframe Type"))
- layout.operator_menu_enum("action.handle_type", "type", text=_("Handle Type"))
- layout.operator_menu_enum("action.interpolation_type", "type", text=_("Interpolation Mode"))
+ layout.operator_menu_enum("action.keyframe_type", "type", text="Keyframe Type")
+ layout.operator_menu_enum("action.handle_type", "type", text="Handle Type")
+ layout.operator_menu_enum("action.interpolation_type", "type", text="Interpolation Mode")
layout.separator()
layout.operator("action.clean")
@@ -306,10 +305,10 @@ class DOPESHEET_MT_key_transform(Menu):
def draw(self, context):
layout = self.layout
- layout.operator("transform.transform", text=_("Grab/Move")).mode = 'TIME_TRANSLATE'
- layout.operator("transform.transform", text=_("Extend")).mode = 'TIME_EXTEND'
- layout.operator("transform.transform", text=_("Slide")).mode = 'TIME_SLIDE'
- layout.operator("transform.transform", text=_("Scale")).mode = 'TIME_SCALE'
+ layout.operator("transform.transform", text="Grab/Move").mode = 'TIME_TRANSLATE'
+ layout.operator("transform.transform", text="Extend").mode = 'TIME_EXTEND'
+ layout.operator("transform.transform", text="Slide").mode = 'TIME_SLIDE'
+ layout.operator("transform.transform", text="Scale").mode = 'TIME_SCALE'
#######################################
@@ -348,7 +347,7 @@ class DOPESHEET_MT_gpencil_frame(Menu):
def draw(self, context):
layout = self.layout
- layout.menu("DOPESHEET_MT_key_transform", text=_("Transform"))
+ layout.menu("DOPESHEET_MT_key_transform", text="Transform")
#layout.operator_menu_enum("action.snap", "type", text="Snap")
#layout.operator_menu_enum("action.mirror", "type", text="Mirror")
diff --git a/release/scripts/startup/bl_ui/space_graph.py b/release/scripts/startup/bl_ui/space_graph.py
index fd50d60bd45..d4b8c415a7f 100644
--- a/release/scripts/startup/bl_ui/space_graph.py
+++ b/release/scripts/startup/bl_ui/space_graph.py
@@ -20,7 +20,6 @@
import bpy
from bpy.types import Header, Menu
-from blf import gettext as _
class GRAPH_HT_header(Header):
@@ -83,9 +82,9 @@ class GRAPH_MT_view(Menu):
layout.separator()
if st.show_handles:
- layout.operator("graph.handles_view_toggle", icon='CHECKBOX_HLT', text=_("Show All Handles"))
+ layout.operator("graph.handles_view_toggle", icon='CHECKBOX_HLT', text="Show All Handles")
else:
- layout.operator("graph.handles_view_toggle", icon='CHECKBOX_DEHLT', text=_("Show All Handles"))
+ layout.operator("graph.handles_view_toggle", icon='CHECKBOX_DEHLT', text="Show All Handles")
layout.prop(st, "use_only_selected_curves_handles")
layout.prop(st, "use_only_selected_keyframe_handles")
layout.operator("anim.time_toggle")
@@ -113,23 +112,23 @@ class GRAPH_MT_select(Menu):
# This is a bit misleading as the operator's default text is "Select All" while it actually *toggles* All/None
layout.operator("graph.select_all_toggle")
- layout.operator("graph.select_all_toggle", text=_("Invert Selection")).invert = True
+ layout.operator("graph.select_all_toggle", text="Invert Selection").invert = True
layout.separator()
layout.operator("graph.select_border")
- layout.operator("graph.select_border", text=_("Border Axis Range")).axis_range = True
- layout.operator("graph.select_border", text=_("Border (Include Handles)")).include_handles = True
+ layout.operator("graph.select_border", text="Border Axis Range").axis_range = True
+ layout.operator("graph.select_border", text="Border (Include Handles)").include_handles = True
layout.separator()
- layout.operator("graph.select_column", text=_("Columns on Selected Keys")).mode = 'KEYS'
- layout.operator("graph.select_column", text=_("Column on Current Frame")).mode = 'CFRA'
+ layout.operator("graph.select_column", text="Columns on Selected Keys").mode = 'KEYS'
+ layout.operator("graph.select_column", text="Column on Current Frame").mode = 'CFRA'
- layout.operator("graph.select_column", text=_("Columns on Selected Markers")).mode = 'MARKERS_COLUMN'
- layout.operator("graph.select_column", text=_("Between Selected Markers")).mode = 'MARKERS_BETWEEN'
+ layout.operator("graph.select_column", text="Columns on Selected Markers").mode = 'MARKERS_COLUMN'
+ layout.operator("graph.select_column", text="Between Selected Markers").mode = 'MARKERS_BETWEEN'
layout.separator()
- layout.operator("graph.select_leftright", text=_("Before Current Frame")).mode = 'LEFT'
- layout.operator("graph.select_leftright", text=_("After Current Frame")).mode = 'RIGHT'
+ layout.operator("graph.select_leftright", text="Before Current Frame").mode = 'LEFT'
+ layout.operator("graph.select_leftright", text="After Current Frame").mode = 'RIGHT'
layout.separator()
layout.operator("graph.select_more")
@@ -147,14 +146,14 @@ class GRAPH_MT_marker(Menu):
#layout.operator_context = 'EXEC_REGION_WIN'
- layout.operator("marker.add", _("Add Marker"))
- layout.operator("marker.duplicate", text=_("Duplicate Marker"))
- layout.operator("marker.delete", text=_("Delete Marker"))
+ layout.operator("marker.add", "Add Marker")
+ layout.operator("marker.duplicate", text="Duplicate Marker")
+ layout.operator("marker.delete", text="Delete Marker")
layout.separator()
- layout.operator("marker.rename", text=_("Rename Marker"))
- layout.operator("marker.move", text=_("Grab/Move Marker"))
+ layout.operator("marker.rename", text="Rename Marker")
+ layout.operator("marker.move", text="Grab/Move Marker")
# TODO: pose markers for action edit mode only?
@@ -177,14 +176,14 @@ class GRAPH_MT_channel(Menu):
layout.separator()
layout.operator("anim.channels_editable_toggle")
layout.operator("anim.channels_visibility_set")
- layout.operator_menu_enum("graph.extrapolation_type", "type", text=_("Extrapolation Mode"))
+ layout.operator_menu_enum("graph.extrapolation_type", "type", text="Extrapolation Mode")
layout.separator()
layout.operator("anim.channels_expand")
layout.operator("anim.channels_collapse")
layout.separator()
- layout.operator_menu_enum("anim.channels_move", "direction", text=_("Move..."))
+ layout.operator_menu_enum("anim.channels_move", "direction", text="Move...")
layout.separator()
layout.operator("anim.channels_fcurves_enable")
@@ -196,10 +195,10 @@ class GRAPH_MT_key(Menu):
def draw(self, context):
layout = self.layout
- layout.menu("GRAPH_MT_key_transform", text=_("Transform"))
+ layout.menu("GRAPH_MT_key_transform", text="Transform")
- layout.operator_menu_enum("graph.snap", "type", text=_("Snap"))
- layout.operator_menu_enum("graph.mirror", "type", text=_("Mirror"))
+ layout.operator_menu_enum("graph.snap", "type", text="Snap")
+ layout.operator_menu_enum("graph.mirror", "type", text="Mirror")
layout.separator()
layout.operator("graph.keyframe_insert")
@@ -211,8 +210,8 @@ class GRAPH_MT_key(Menu):
layout.operator("graph.delete")
layout.separator()
- layout.operator_menu_enum("graph.handle_type", "type", text=_("Handle Type"))
- layout.operator_menu_enum("graph.interpolation_type", "type", text=_("Interpolation Mode"))
+ layout.operator_menu_enum("graph.handle_type", "type", text="Handle Type")
+ layout.operator_menu_enum("graph.interpolation_type", "type", text="Interpolation Mode")
layout.separator()
layout.operator("graph.clean")
@@ -225,7 +224,7 @@ class GRAPH_MT_key(Menu):
layout.operator("graph.paste")
layout.separator()
- layout.operator("graph.euler_filter", text=_("Discontinuity (Euler) Filter"))
+ layout.operator("graph.euler_filter", text="Discontinuity (Euler) Filter")
class GRAPH_MT_key_transform(Menu):
@@ -234,10 +233,10 @@ class GRAPH_MT_key_transform(Menu):
def draw(self, context):
layout = self.layout
- layout.operator("transform.translate", text=_("Grab/Move"))
- layout.operator("transform.transform", text=_("Extend")).mode = 'TIME_EXTEND'
- layout.operator("transform.rotate", text=_("Rotate"))
- layout.operator("transform.resize", text=_("Scale"))
+ layout.operator("transform.translate", text="Grab/Move")
+ layout.operator("transform.transform", text="Extend").mode = 'TIME_EXTEND'
+ layout.operator("transform.rotate", text="Rotate")
+ layout.operator("transform.resize", text="Scale")
if __name__ == "__main__": # only for live edit.
bpy.utils.register_module(__name__)
diff --git a/release/scripts/startup/bl_ui/space_image.py b/release/scripts/startup/bl_ui/space_image.py
index f5be25d14f6..051854a28f1 100644
--- a/release/scripts/startup/bl_ui/space_image.py
+++ b/release/scripts/startup/bl_ui/space_image.py
@@ -19,7 +19,6 @@
# <pep8 compliant>
import bpy
from bpy.types import Header, Menu, Panel
-from blf import gettext as _
class BrushButtonsPanel():
@@ -65,8 +64,7 @@ class IMAGE_MT_view(Menu):
ratios = [[1, 8], [1, 4], [1, 2], [1, 1], [2, 1], [4, 1], [8, 1]]
for a, b in ratios:
- text = _("Zoom") + " %d:%d" % (a, b)
- layout.operator("image.view_zoom_ratio", text=text).ratio = a / b
+ layout.operator("image.view_zoom_ratio", text="Zoom" + " %d:%d" % (a, b)).ratio = a / b
layout.separator()
@@ -93,7 +91,7 @@ class IMAGE_MT_select(Menu):
layout.separator()
layout.operator("uv.select_all")
- layout.operator("uv.select_all", text=_("Inverse")).action = 'INVERT'
+ layout.operator("uv.select_all", text="Inverse").action = 'INVERT'
layout.operator("uv.unlink_selected")
layout.separator()
@@ -123,12 +121,12 @@ class IMAGE_MT_image(Menu):
layout.operator("image.save")
layout.operator("image.save_as")
- layout.operator("image.save_as", text=_("Save a Copy")).copy = True
+ layout.operator("image.save_as", text="Save a Copy").copy = True
if ima.source == 'SEQUENCE':
layout.operator("image.save_sequence")
- layout.operator("image.external_edit", _("Edit Externally"))
+ layout.operator("image.external_edit", "Edit Externally")
layout.separator()
@@ -146,7 +144,7 @@ class IMAGE_MT_image(Menu):
# this could be done in operator poll too
if ima.is_dirty:
if ima.source in {'FILE', 'GENERATED'} and ima.type != 'MULTILAYER':
- layout.operator("image.pack", text=_("Pack As PNG")).as_png = True
+ layout.operator("image.pack", text="Pack As PNG").as_png = True
layout.separator()
@@ -159,23 +157,23 @@ class IMAGE_MT_image_invert(Menu):
def draw(self, context):
layout = self.layout
- op = layout.operator("image.invert", text=_("Invert Image Colors"))
+ op = layout.operator("image.invert", text="Invert Image Colors")
op.invert_r = True
op.invert_g = True
op.invert_b = True
layout.separator()
- op = layout.operator("image.invert", text=_("Invert Red Channel"))
+ op = layout.operator("image.invert", text="Invert Red Channel")
op.invert_r = True
- op = layout.operator("image.invert", text=_("Invert Green Channel"))
+ op = layout.operator("image.invert", text="Invert Green Channel")
op.invert_g = True
- op = layout.operator("image.invert", text=_("Invert Blue Channel"))
+ op = layout.operator("image.invert", text="Invert Blue Channel")
op.invert_b = True
- op = layout.operator("image.invert", text=_("Invert Alpha Channel"))
+ op = layout.operator("image.invert", text="Invert Alpha Channel")
op.invert_a = True
@@ -186,8 +184,8 @@ class IMAGE_MT_uvs_showhide(Menu):
layout = self.layout
layout.operator("uv.reveal")
- layout.operator("uv.hide", text=_("Hide Selected"))
- layout.operator("uv.hide", text=_("Hide Unselected")).unselected = True
+ layout.operator("uv.hide", text="Hide Selected")
+ layout.operator("uv.hide", text="Hide Unselected").unselected = True
class IMAGE_MT_uvs_transform(Menu):
@@ -212,14 +210,14 @@ class IMAGE_MT_uvs_snap(Menu):
layout = self.layout
layout.operator_context = 'EXEC_REGION_WIN'
- layout.operator("uv.snap_selected", text=_("Selected to Pixels")).target = 'PIXELS'
- layout.operator("uv.snap_selected", text=_("Selected to Cursor")).target = 'CURSOR'
- layout.operator("uv.snap_selected", text=_("Selected to Adjacent Unselected")).target = 'ADJACENT_UNSELECTED'
+ layout.operator("uv.snap_selected", text="Selected to Pixels").target = 'PIXELS'
+ layout.operator("uv.snap_selected", text="Selected to Cursor").target = 'CURSOR'
+ layout.operator("uv.snap_selected", text="Selected to Adjacent Unselected").target = 'ADJACENT_UNSELECTED'
layout.separator()
- layout.operator("uv.snap_cursor", text=_("Cursor to Pixels")).target = 'PIXELS'
- layout.operator("uv.snap_cursor", text=_("Cursor to Selected")).target = 'SELECTED'
+ layout.operator("uv.snap_cursor", text="Cursor to Pixels").target = 'PIXELS'
+ layout.operator("uv.snap_cursor", text="Cursor to Selected").target = 'SELECTED'
class IMAGE_MT_uvs_mirror(Menu):
@@ -229,8 +227,8 @@ class IMAGE_MT_uvs_mirror(Menu):
layout = self.layout
layout.operator_context = 'EXEC_REGION_WIN'
- layout.operator("transform.mirror", text=_("X Axis")).constraint_axis[0] = True
- layout.operator("transform.mirror", text=_("Y Axis")).constraint_axis[1] = True
+ layout.operator("transform.mirror", text="X Axis").constraint_axis[0] = True
+ layout.operator("transform.mirror", text="Y Axis").constraint_axis[1] = True
class IMAGE_MT_uvs_weldalign(Menu):
@@ -260,7 +258,7 @@ class IMAGE_MT_uvs(Menu):
layout.prop(uv, "use_live_unwrap")
layout.operator("uv.unwrap")
- layout.operator("uv.pin", text=_("Unpin")).clear = True
+ layout.operator("uv.pin", text="Unpin").clear = True
layout.operator("uv.pin")
layout.separator()
@@ -300,32 +298,32 @@ class IMAGE_MT_uvs_select_mode(Menu):
# do smart things depending on whether uv_select_sync is on
if toolsettings.use_uv_select_sync:
- prop = layout.operator("wm.context_set_value", text=_("Vertex"), icon='VERTEXSEL')
+ prop = layout.operator("wm.context_set_value", text="Vertex", icon='VERTEXSEL')
prop.value = "(True, False, False)"
prop.data_path = "tool_settings.mesh_select_mode"
- prop = layout.operator("wm.context_set_value", text=_("Edge"), icon='EDGESEL')
+ prop = layout.operator("wm.context_set_value", text="Edge", icon='EDGESEL')
prop.value = "(False, True, False)"
prop.data_path = "tool_settings.mesh_select_mode"
- prop = layout.operator("wm.context_set_value", text=_("Face"), icon='FACESEL')
+ prop = layout.operator("wm.context_set_value", text="Face", icon='FACESEL')
prop.value = "(False, False, True)"
prop.data_path = "tool_settings.mesh_select_mode"
else:
- prop = layout.operator("wm.context_set_string", text=_("Vertex"), icon='UV_VERTEXSEL')
+ prop = layout.operator("wm.context_set_string", text="Vertex", icon='UV_VERTEXSEL')
prop.value = "VERTEX"
prop.data_path = "tool_settings.uv_select_mode"
- prop = layout.operator("wm.context_set_string", text=_("Edge"), icon='UV_EDGESEL')
+ prop = layout.operator("wm.context_set_string", text="Edge", icon='UV_EDGESEL')
prop.value = "EDGE"
prop.data_path = "tool_settings.uv_select_mode"
- prop = layout.operator("wm.context_set_string", text=_("Face"), icon='UV_FACESEL')
+ prop = layout.operator("wm.context_set_string", text="Face", icon='UV_FACESEL')
prop.value = "FACE"
prop.data_path = "tool_settings.uv_select_mode"
- prop = layout.operator("wm.context_set_string", text=_("Island"), icon='UV_ISLANDSEL')
+ prop = layout.operator("wm.context_set_string", text="Island", icon='UV_ISLANDSEL')
prop.value = "ISLAND"
prop.data_path = "tool_settings.uv_select_mode"
@@ -357,9 +355,9 @@ class IMAGE_HT_header(Header):
sub.menu("IMAGE_MT_select")
if ima and ima.is_dirty:
- sub.menu("IMAGE_MT_image", text=_("Image*"))
+ sub.menu("IMAGE_MT_image", text="Image*")
else:
- sub.menu("IMAGE_MT_image", text=_("Image"))
+ sub.menu("IMAGE_MT_image", text="Image")
if show_uvedit:
sub.menu("IMAGE_MT_uvs")
@@ -597,22 +595,22 @@ class IMAGE_PT_view_properties(Panel):
col = split.column()
if ima:
- col.prop(ima, "display_aspect", text=_("Aspect Ratio"))
+ col.prop(ima, "display_aspect", text="Aspect Ratio")
col = split.column()
- col.label(text=_("Coordinates:"))
- col.prop(sima, "show_repeat", text=_("Repeat"))
+ col.label(text="Coordinates:")
+ col.prop(sima, "show_repeat", text="Repeat")
if show_uvedit:
- col.prop(uvedit, "show_normalized_coords", text=_("Normalized"))
+ col.prop(uvedit, "show_normalized_coords", text="Normalized")
elif show_uvedit:
- col.label(text=_("Coordinates:"))
- col.prop(uvedit, "show_normalized_coords", text=_("Normalized"))
+ col.label(text="Coordinates:")
+ col.prop(uvedit, "show_normalized_coords", text="Normalized")
if show_uvedit:
col = layout.column()
- col.label(_("Cursor Location:"))
+ col.label("Cursor Location:")
col.row().prop(uvedit, "cursor_location", text="")
col.separator()
@@ -624,11 +622,11 @@ class IMAGE_PT_view_properties(Panel):
col = split.column()
col.prop(uvedit, "show_faces")
- col.prop(uvedit, "show_smooth_edges", text=_("Smooth"))
- col.prop(uvedit, "show_modified_edges", text=_("Modified"))
+ col.prop(uvedit, "show_smooth_edges", text="Smooth")
+ col.prop(uvedit, "show_modified_edges", text="Modified")
col = split.column()
- col.prop(uvedit, "show_stretch", text=_("Stretch"))
+ col.prop(uvedit, "show_stretch", text="Stretch")
sub = col.column()
sub.active = uvedit.show_stretch
sub.row().prop(uvedit, "draw_stretch_type", expand=True)
@@ -670,12 +668,12 @@ class IMAGE_PT_paint(Panel):
row.prop(brush, "jitter", slider=True)
row.prop(brush, "use_pressure_jitter", toggle=True, text="")
- col.prop(brush, "blend", text=_("Blend"))
+ col.prop(brush, "blend", text="Blend")
if brush.image_tool == 'CLONE':
col.separator()
- col.prop(brush, "clone_image", text=_("Image"))
- col.prop(brush, "clone_alpha", text=_("Alpha"))
+ col.prop(brush, "clone_image", text="Image")
+ col.prop(brush, "clone_alpha", text="Alpha")
class IMAGE_PT_tools_brush_texture(BrushButtonsPanel, Panel):
@@ -729,7 +727,7 @@ class IMAGE_PT_paint_stroke(BrushButtonsPanel, Panel):
layout.prop(brush, "use_space")
row = layout.row(align=True)
row.active = brush.use_space
- row.prop(brush, "spacing", text=_("Distance"), slider=True)
+ row.prop(brush, "spacing", text="Distance", slider=True)
row.prop(brush, "use_pressure_spacing", toggle=True, text="")
layout.prop(brush, "use_wrap")
diff --git a/release/scripts/startup/bl_ui/space_info.py b/release/scripts/startup/bl_ui/space_info.py
index 3e6abaa8ea3..644676310fc 100644
--- a/release/scripts/startup/bl_ui/space_info.py
+++ b/release/scripts/startup/bl_ui/space_info.py
@@ -18,8 +18,7 @@
# <pep8 compliant>
import bpy
-from bpy.types import Header, Menu, Operator
-from blf import gettext as _
+from bpy.types import Header, Menu
class INFO_HT_header(Header):
@@ -46,7 +45,7 @@ class INFO_HT_header(Header):
sub.menu("INFO_MT_help")
if window.screen.show_fullscreen:
- layout.operator("screen.back_to_previous", icon='SCREEN_BACK', text=_("Back to Previous"))
+ layout.operator("screen.back_to_previous", icon='SCREEN_BACK', text="Back to Previous")
layout.separator()
else:
layout.template_ID(context.window, "screen", new="screen.new", unlink="screen.delete")
@@ -74,11 +73,11 @@ class INFO_HT_header(Header):
"""
sinfo = context.space_data
row = layout.row(align=True)
- row.prop(sinfo, "show_report_debug", text=_("Debug"))
- row.prop(sinfo, "show_report_info", text=_("Info"))
- row.prop(sinfo, "show_report_operator", text=_("Operators"))
- row.prop(sinfo, "show_report_warning", text=_("Warnings"))
- row.prop(sinfo, "show_report_error", text=_("Errors"))
+ row.prop(sinfo, "show_report_debug", text="Debug")
+ row.prop(sinfo, "show_report_info", text="Info")
+ row.prop(sinfo, "show_report_operator", text="Operators")
+ row.prop(sinfo, "show_report_warning", text="Warnings")
+ row.prop(sinfo, "show_report_error", text="Errors")
row = layout.row()
row.enabled = sinfo.show_report_operator
@@ -107,25 +106,25 @@ class INFO_MT_file(Menu):
layout = self.layout
layout.operator_context = 'EXEC_AREA'
- layout.operator("wm.read_homefile", text=_("New"), icon='NEW')
+ layout.operator("wm.read_homefile", text="New", icon='NEW')
layout.operator_context = 'INVOKE_AREA'
- layout.operator("wm.open_mainfile", text=_("Open..."), icon='FILE_FOLDER')
+ layout.operator("wm.open_mainfile", text="Open...", icon='FILE_FOLDER')
layout.menu("INFO_MT_file_open_recent")
layout.operator("wm.recover_last_session", icon='RECOVER_LAST')
- layout.operator("wm.recover_auto_save", text=_("Recover Auto Save..."))
+ layout.operator("wm.recover_auto_save", text="Recover Auto Save...")
layout.separator()
layout.operator_context = 'INVOKE_AREA'
- layout.operator("wm.save_mainfile", text=_("Save"), icon='FILE_TICK').check_existing = False
+ layout.operator("wm.save_mainfile", text="Save", icon='FILE_TICK').check_existing = False
layout.operator_context = 'INVOKE_AREA'
- layout.operator("wm.save_as_mainfile", text=_("Save As..."))
+ layout.operator("wm.save_as_mainfile", text="Save As...")
layout.operator_context = 'INVOKE_AREA'
- layout.operator("wm.save_as_mainfile", text=_("Save Copy...")).copy = True
+ layout.operator("wm.save_as_mainfile", text="Save Copy...").copy = True
layout.separator()
- layout.operator("screen.userpref_show", text=_("User Preferences..."), icon='PREFERENCES')
+ layout.operator("screen.userpref_show", text="User Preferences...", icon='PREFERENCES')
layout.operator_context = 'EXEC_AREA'
layout.operator("wm.save_homefile")
@@ -134,8 +133,8 @@ class INFO_MT_file(Menu):
layout.separator()
layout.operator_context = 'INVOKE_AREA'
- layout.operator("wm.link_append", text=_("Link"))
- props = layout.operator("wm.link_append", text=_("Append"))
+ layout.operator("wm.link_append", text="Link")
+ props = layout.operator("wm.link_append", text="Append")
props.link = False
props.instance_groups = False
@@ -151,7 +150,7 @@ class INFO_MT_file(Menu):
layout.separator()
layout.operator_context = 'EXEC_AREA'
- layout.operator("wm.quit_blender", text=_("Quit"), icon='QUIT')
+ layout.operator("wm.quit_blender", text="Quit", icon='QUIT')
class INFO_MT_file_import(Menu):
@@ -178,8 +177,8 @@ class INFO_MT_file_external_data(Menu):
def draw(self, context):
layout = self.layout
- layout.operator("file.pack_all", text=_("Pack into .blend file"))
- layout.operator("file.unpack_all", text=_("Unpack into Files"))
+ layout.operator("file.pack_all", text="Pack into .blend file")
+ layout.operator("file.unpack_all", text="Unpack into Files")
layout.separator()
@@ -197,17 +196,17 @@ class INFO_MT_mesh_add(Menu):
layout = self.layout
layout.operator_context = 'INVOKE_REGION_WIN'
- layout.operator("mesh.primitive_plane_add", icon='MESH_PLANE', text=_("Plane"))
- layout.operator("mesh.primitive_cube_add", icon='MESH_CUBE', text=_("Cube"))
- layout.operator("mesh.primitive_circle_add", icon='MESH_CIRCLE', text=_("Circle"))
- layout.operator("mesh.primitive_uv_sphere_add", icon='MESH_UVSPHERE', text=_("UV Sphere"))
- layout.operator("mesh.primitive_ico_sphere_add", icon='MESH_ICOSPHERE', text=_("Icosphere"))
- layout.operator("mesh.primitive_cylinder_add", icon='MESH_CYLINDER', text=_("Cylinder"))
- layout.operator("mesh.primitive_cone_add", icon='MESH_CONE', text=_("Cone"))
+ layout.operator("mesh.primitive_plane_add", icon='MESH_PLANE', text="Plane")
+ layout.operator("mesh.primitive_cube_add", icon='MESH_CUBE', text="Cube")
+ layout.operator("mesh.primitive_circle_add", icon='MESH_CIRCLE', text="Circle")
+ layout.operator("mesh.primitive_uv_sphere_add", icon='MESH_UVSPHERE', text="UV Sphere")
+ layout.operator("mesh.primitive_ico_sphere_add", icon='MESH_ICOSPHERE', text="Icosphere")
+ layout.operator("mesh.primitive_cylinder_add", icon='MESH_CYLINDER', text="Cylinder")
+ layout.operator("mesh.primitive_cone_add", icon='MESH_CONE', text="Cone")
layout.separator()
- layout.operator("mesh.primitive_grid_add", icon='MESH_GRID', text=_("Grid"))
- layout.operator("mesh.primitive_monkey_add", icon='MESH_MONKEY', text=_("Monkey"))
- layout.operator("mesh.primitive_torus_add", text=_("Torus"), icon='MESH_TORUS')
+ layout.operator("mesh.primitive_grid_add", icon='MESH_GRID', text="Grid")
+ layout.operator("mesh.primitive_monkey_add", icon='MESH_MONKEY', text="Monkey")
+ layout.operator("mesh.primitive_torus_add", text="Torus", icon='MESH_TORUS')
class INFO_MT_curve_add(Menu):
@@ -218,11 +217,11 @@ class INFO_MT_curve_add(Menu):
layout = self.layout
layout.operator_context = 'INVOKE_REGION_WIN'
- layout.operator("curve.primitive_bezier_curve_add", icon='CURVE_BEZCURVE', text=_("Bezier"))
- layout.operator("curve.primitive_bezier_circle_add", icon='CURVE_BEZCIRCLE', text=_("Circle"))
- layout.operator("curve.primitive_nurbs_curve_add", icon='CURVE_NCURVE', text=_("Nurbs Curve"))
- layout.operator("curve.primitive_nurbs_circle_add", icon='CURVE_NCIRCLE', text=_("Nurbs Circle"))
- layout.operator("curve.primitive_nurbs_path_add", icon='CURVE_PATH', text=_("Path"))
+ layout.operator("curve.primitive_bezier_curve_add", icon='CURVE_BEZCURVE', text="Bezier")
+ layout.operator("curve.primitive_bezier_circle_add", icon='CURVE_BEZCIRCLE', text="Circle")
+ layout.operator("curve.primitive_nurbs_curve_add", icon='CURVE_NCURVE', text="Nurbs Curve")
+ layout.operator("curve.primitive_nurbs_circle_add", icon='CURVE_NCIRCLE', text="Nurbs Circle")
+ layout.operator("curve.primitive_nurbs_path_add", icon='CURVE_PATH', text="Path")
class INFO_MT_edit_curve_add(Menu):
@@ -249,12 +248,12 @@ class INFO_MT_surface_add(Menu):
layout = self.layout
layout.operator_context = 'INVOKE_REGION_WIN'
- layout.operator("surface.primitive_nurbs_surface_curve_add", icon='SURFACE_NCURVE', text=_("NURBS Curve"))
- layout.operator("surface.primitive_nurbs_surface_circle_add", icon='SURFACE_NCIRCLE', text=_("NURBS Circle"))
- layout.operator("surface.primitive_nurbs_surface_surface_add", icon='SURFACE_NSURFACE', text=_("NURBS Surface"))
- layout.operator("surface.primitive_nurbs_surface_cylinder_add", icon='SURFACE_NCYLINDER', text=_("NURBS Cylinder"))
- layout.operator("surface.primitive_nurbs_surface_sphere_add", icon='SURFACE_NSPHERE', text=_("NURBS Sphere"))
- layout.operator("surface.primitive_nurbs_surface_torus_add", icon='SURFACE_NTORUS', text=_("NURBS Torus"))
+ layout.operator("surface.primitive_nurbs_surface_curve_add", icon='SURFACE_NCURVE', text="NURBS Curve")
+ layout.operator("surface.primitive_nurbs_surface_circle_add", icon='SURFACE_NCIRCLE', text="NURBS Circle")
+ layout.operator("surface.primitive_nurbs_surface_surface_add", icon='SURFACE_NSURFACE', text="NURBS Surface")
+ layout.operator("surface.primitive_nurbs_surface_cylinder_add", icon='SURFACE_NCYLINDER', text="NURBS Cylinder")
+ layout.operator("surface.primitive_nurbs_surface_sphere_add", icon='SURFACE_NSPHERE', text="NURBS Sphere")
+ layout.operator("surface.primitive_nurbs_surface_torus_add", icon='SURFACE_NTORUS', text="NURBS Torus")
class INFO_MT_armature_add(Menu):
@@ -265,7 +264,7 @@ class INFO_MT_armature_add(Menu):
layout = self.layout
layout.operator_context = 'INVOKE_REGION_WIN'
- layout.operator("object.armature_add", text=_("Single Bone"), icon='BONE_DATA')
+ layout.operator("object.armature_add", text="Single Bone", icon='BONE_DATA')
class INFO_MT_add(Menu):
@@ -276,39 +275,39 @@ class INFO_MT_add(Menu):
layout.operator_context = 'EXEC_SCREEN'
- #layout.operator_menu_enum("object.mesh_add", "type", text=_("Mesh"), icon='OUTLINER_OB_MESH')
+ #layout.operator_menu_enum("object.mesh_add", "type", text="Mesh", icon='OUTLINER_OB_MESH')
layout.menu("INFO_MT_mesh_add", icon='OUTLINER_OB_MESH')
- #layout.operator_menu_enum("object.curve_add", "type", text=_("Curve"), icon='OUTLINER_OB_CURVE')
+ #layout.operator_menu_enum("object.curve_add", "type", text="Curve", icon='OUTLINER_OB_CURVE')
layout.menu("INFO_MT_curve_add", icon='OUTLINER_OB_CURVE')
- #layout.operator_menu_enum("object.surface_add", "type", text=_("Surface"), icon='OUTLINER_OB_SURFACE')
+ #layout.operator_menu_enum("object.surface_add", "type", text="Surface", icon='OUTLINER_OB_SURFACE')
layout.menu("INFO_MT_surface_add", icon='OUTLINER_OB_SURFACE')
- layout.operator_menu_enum("object.metaball_add", "type", text=_("Metaball"), icon='OUTLINER_OB_META')
+ layout.operator_menu_enum("object.metaball_add", "type", text="Metaball", icon='OUTLINER_OB_META')
layout.operator_context = 'INVOKE_REGION_WIN'
- layout.operator("object.text_add", text=_("Text"), icon='OUTLINER_OB_FONT')
+ layout.operator("object.text_add", text="Text", icon='OUTLINER_OB_FONT')
layout.separator()
layout.menu("INFO_MT_armature_add", icon='OUTLINER_OB_ARMATURE')
- layout.operator("object.add", text=_("Lattice"), icon='OUTLINER_OB_LATTICE').type = 'LATTICE'
- layout.operator("object.add", text=_("Empty"), icon='OUTLINER_OB_EMPTY').type = 'EMPTY'
+ layout.operator("object.add", text="Lattice", icon='OUTLINER_OB_LATTICE').type = 'LATTICE'
+ layout.operator("object.add", text="Empty", icon='OUTLINER_OB_EMPTY').type = 'EMPTY'
layout.separator()
- layout.operator("object.speaker_add", text=_("Speaker"), icon='OUTLINER_OB_SPEAKER')
+ layout.operator("object.speaker_add", text="Speaker", icon='OUTLINER_OB_SPEAKER')
layout.separator()
- layout.operator("object.camera_add", text=_("Camera"), icon='OUTLINER_OB_CAMERA')
+ layout.operator("object.camera_add", text="Camera", icon='OUTLINER_OB_CAMERA')
layout.operator_context = 'EXEC_SCREEN'
- layout.operator_menu_enum("object.lamp_add", "type", text=_("Lamp"), icon='OUTLINER_OB_LAMP')
+ layout.operator_menu_enum("object.lamp_add", "type", text="Lamp", icon='OUTLINER_OB_LAMP')
layout.separator()
- layout.operator_menu_enum("object.effector_add", "type", text=_("Force Field"), icon='OUTLINER_OB_EMPTY')
+ layout.operator_menu_enum("object.effector_add", "type", text="Force Field", icon='OUTLINER_OB_EMPTY')
layout.separator()
if(len(bpy.data.groups) > 10):
layout.operator_context = 'INVOKE_DEFAULT'
- layout.operator("object.group_instance_add", text=_("Group Instance..."), icon='OUTLINER_OB_EMPTY')
+ layout.operator("object.group_instance_add", text="Group Instance...", icon='OUTLINER_OB_EMPTY')
else:
- layout.operator_menu_enum("object.group_instance_add", "group", text=_("Group Instance"), icon='OUTLINER_OB_EMPTY')
+ layout.operator_menu_enum("object.group_instance_add", "group", text="Group Instance", icon='OUTLINER_OB_EMPTY')
class INFO_MT_game(Menu):
@@ -338,13 +337,13 @@ class INFO_MT_render(Menu):
def draw(self, context):
layout = self.layout
- layout.operator("render.render", text=_("Render Image"), icon='RENDER_STILL')
- layout.operator("render.render", text=_("Render Animation"), icon='RENDER_ANIMATION').animation = True
+ layout.operator("render.render", text="Render Image", icon='RENDER_STILL')
+ layout.operator("render.render", text="Render Animation", icon='RENDER_ANIMATION').animation = True
layout.separator()
- layout.operator("render.opengl", text=_("OpenGL Render Image"))
- layout.operator("render.opengl", text=_("OpenGL Render Animation")).animation = True
+ layout.operator("render.opengl", text="OpenGL Render Image")
+ layout.operator("render.opengl", text="OpenGL Render Animation").animation = True
layout.separator()
@@ -360,58 +359,30 @@ class INFO_MT_help(Menu):
layout = self.layout
- layout.operator("wm.url_open", text=_("Manual"), icon='HELP').url = 'http://wiki.blender.org/index.php/Doc:Manual'
- layout.operator("wm.url_open", text=_("Release Log"), icon='URL').url = 'http://www.blender.org/development/release-logs/blender-259/'
+ layout.operator("wm.url_open", text="Manual", icon='HELP').url = 'http://wiki.blender.org/index.php/Doc:Manual'
+ layout.operator("wm.url_open", text="Release Log", icon='URL').url = 'http://www.blender.org/development/release-logs/blender-259/'
layout.separator()
- layout.operator("wm.url_open", text=_("Blender Website"), icon='URL').url = 'http://www.blender.org/'
- layout.operator("wm.url_open", text=_("Blender e-Shop"), icon='URL').url = 'http://www.blender.org/e-shop'
- layout.operator("wm.url_open", text=_("Developer Community"), icon='URL').url = 'http://www.blender.org/community/get-involved/'
- layout.operator("wm.url_open", text=_("User Community"), icon='URL').url = 'http://www.blender.org/community/user-community/'
+ layout.operator("wm.url_open", text="Blender Website", icon='URL').url = 'http://www.blender.org/'
+ layout.operator("wm.url_open", text="Blender e-Shop", icon='URL').url = 'http://www.blender.org/e-shop'
+ layout.operator("wm.url_open", text="Developer Community", icon='URL').url = 'http://www.blender.org/community/get-involved/'
+ layout.operator("wm.url_open", text="User Community", icon='URL').url = 'http://www.blender.org/community/user-community/'
layout.separator()
- layout.operator("wm.url_open", text=_("Report a Bug"), icon='URL').url = 'http://projects.blender.org/tracker/?atid=498&group_id=9&func=browse'
+ layout.operator("wm.url_open", text="Report a Bug", icon='URL').url = 'http://projects.blender.org/tracker/?atid=498&group_id=9&func=browse'
layout.separator()
- layout.operator("wm.url_open", text=_("Python API Reference"), icon='URL').url = bpy.types.WM_OT_doc_view._prefix
- layout.operator("help.operator_cheat_sheet", icon='TEXT')
+ layout.operator("wm.url_open", text="Python API Reference", icon='URL').url = bpy.types.WM_OT_doc_view._prefix
+ layout.operator("wm.operator_cheat_sheet", icon='TEXT')
layout.operator("wm.sysinfo", icon='TEXT')
layout.separator()
if sys.platform[:3] == "win":
layout.operator("wm.console_toggle", icon='CONSOLE')
layout.separator()
- layout.operator("anim.update_data_paths", text=_("FCurve/Driver Version fix"), icon='HELP')
+ layout.operator("anim.update_data_paths", text="FCurve/Driver Version fix", icon='HELP')
layout.operator("logic.texface_convert", text="TexFace to Material Convert", icon='GAME')
layout.separator()
layout.operator("wm.splash", icon='BLENDER')
-
-# Help operators
-
-
-class HELP_OT_operator_cheat_sheet(Operator):
- bl_idname = "help.operator_cheat_sheet"
- bl_label = "Operator Cheat Sheet"
-
- def execute(self, context):
- op_strings = []
- tot = 0
- for op_module_name in dir(bpy.ops):
- op_module = getattr(bpy.ops, op_module_name)
- for op_submodule_name in dir(op_module):
- op = getattr(op_module, op_submodule_name)
- text = repr(op)
- if text.split("\n")[-1].startswith('bpy.ops.'):
- op_strings.append(text)
- tot += 1
-
- op_strings.append('')
-
- textblock = bpy.data.texts.new("OperatorList.txt")
- textblock.write('# %d Operators\n\n' % tot)
- textblock.write('\n'.join(op_strings))
- self.report({'INFO'}, "See OperatorList.txt textblock")
- return {'FINISHED'}
-
if __name__ == "__main__": # only for live edit.
bpy.utils.register_module(__name__)
diff --git a/release/scripts/startup/bl_ui/space_logic.py b/release/scripts/startup/bl_ui/space_logic.py
index b1149913d17..869a91124d3 100644
--- a/release/scripts/startup/bl_ui/space_logic.py
+++ b/release/scripts/startup/bl_ui/space_logic.py
@@ -19,7 +19,6 @@
# <pep8 compliant>
import bpy
from bpy.types import Header, Menu, Panel
-from blf import gettext as _
class LOGIC_PT_properties(Panel):
@@ -38,7 +37,7 @@ class LOGIC_PT_properties(Panel):
ob = context.active_object
game = ob.game
- layout.operator("object.game_property_new", text=_("Add Game Property"), icon='ZOOMIN')
+ layout.operator("object.game_property_new", text="Add Game Property", icon='ZOOMIN')
for i, prop in enumerate(game.properties):
@@ -57,9 +56,9 @@ class LOGIC_MT_logicbricks_add(Menu):
def draw(self, context):
layout = self.layout
- layout.operator_menu_enum("logic.sensor_add", "type", text=_("Sensor"))
- layout.operator_menu_enum("logic.controller_add", "type", text=_("Controller"))
- layout.operator_menu_enum("logic.actuator_add", "type", text=_("Actuator"))
+ layout.operator_menu_enum("logic.sensor_add", "type", text="Sensor")
+ layout.operator_menu_enum("logic.controller_add", "type", text="Controller")
+ layout.operator_menu_enum("logic.actuator_add", "type", text="Actuator")
class LOGIC_HT_header(Header):
diff --git a/release/scripts/startup/bl_ui/space_nla.py b/release/scripts/startup/bl_ui/space_nla.py
index 8a4b0a61291..ffead81c507 100644
--- a/release/scripts/startup/bl_ui/space_nla.py
+++ b/release/scripts/startup/bl_ui/space_nla.py
@@ -20,7 +20,6 @@
import bpy
from bpy.types import Header, Menu
-from blf import gettext as _
class NLA_HT_header(Header):
@@ -63,7 +62,7 @@ class NLA_MT_view(Menu):
layout.prop(st, "use_realtime_update")
layout.prop(st, "show_frame_indicator")
- layout.operator("anim.time_toggle", text=_("Show Frames") if st.show_seconds else _("Show Seconds"))
+ layout.operator("anim.time_toggle", text="Show Frames" if st.show_seconds else "Show Seconds")
layout.prop(st, "show_strip_curves")
@@ -88,33 +87,33 @@ class NLA_MT_select(Menu):
# This is a bit misleading as the operator's default text is "Select All" while it actually *toggles* All/None
layout.operator("nla.select_all_toggle")
- layout.operator("nla.select_all_toggle", text=_("Invert Selection")).invert = True
+ layout.operator("nla.select_all_toggle", text="Invert Selection").invert = True
layout.separator()
layout.operator("nla.select_border")
- layout.operator("nla.select_border", text=_("Border Axis Range")).axis_range = True
+ layout.operator("nla.select_border", text="Border Axis Range").axis_range = True
layout.separator()
- layout.operator("nla.select_leftright", text=_("Before Current Frame")).mode = 'LEFT'
- layout.operator("nla.select_leftright", text=_("After Current Frame")).mode = 'RIGHT'
+ layout.operator("nla.select_leftright", text="Before Current Frame").mode = 'LEFT'
+ layout.operator("nla.select_leftright", text="After Current Frame").mode = 'RIGHT'
class NLA_MT_marker(Menu):
- bl_label = _("Marker")
+ bl_label = "Marker"
def draw(self, context):
layout = self.layout
#layout.operator_context = 'EXEC_REGION_WIN'
- layout.operator("marker.add", _("Add Marker"))
- layout.operator("marker.duplicate", text=_("Duplicate Marker"))
- layout.operator("marker.delete", text=_("Delete Marker"))
+ layout.operator("marker.add", "Add Marker")
+ layout.operator("marker.duplicate", text="Duplicate Marker")
+ layout.operator("marker.delete", text="Delete Marker")
layout.separator()
- layout.operator("marker.rename", text=_("Rename Marker"))
- layout.operator("marker.move", text=_("Grab/Move Marker"))
+ layout.operator("marker.rename", text="Rename Marker")
+ layout.operator("marker.move", text="Grab/Move Marker")
class NLA_MT_edit(Menu):
@@ -125,9 +124,9 @@ class NLA_MT_edit(Menu):
scene = context.scene
- layout.menu("NLA_MT_edit_transform", text=_("Transform"))
+ layout.menu("NLA_MT_edit_transform", text="Transform")
- layout.operator_menu_enum("nla.snap", "type", text=_("Snap"))
+ layout.operator_menu_enum("nla.snap", "type", text="Snap")
layout.separator()
layout.operator("nla.duplicate")
@@ -149,14 +148,14 @@ class NLA_MT_edit(Menu):
# TODO: this really belongs more in a "channel" (or better, "track") menu
layout.separator()
- layout.operator_menu_enum("anim.channels_move", "direction", text=_("Track Ordering..."))
+ layout.operator_menu_enum("anim.channels_move", "direction", text="Track Ordering...")
layout.separator()
# TODO: names of these tools for 'tweakmode' need changing?
if scene.is_nla_tweakmode:
- layout.operator("nla.tweakmode_exit", text=_("Stop Tweaking Strip Actions"))
+ layout.operator("nla.tweakmode_exit", text="Stop Tweaking Strip Actions")
else:
- layout.operator("nla.tweakmode_enter", text=_("Start Tweaking Strip Actions"))
+ layout.operator("nla.tweakmode_enter", text="Start Tweaking Strip Actions")
class NLA_MT_add(Menu):
@@ -175,7 +174,7 @@ class NLA_MT_add(Menu):
layout.separator()
layout.operator("nla.tracks_add")
- layout.operator("nla.tracks_add", text=_("Add Tracks Above Selected")).above_selected = True
+ layout.operator("nla.tracks_add", text="Add Tracks Above Selected").above_selected = True
class NLA_MT_edit_transform(Menu):
@@ -184,9 +183,9 @@ class NLA_MT_edit_transform(Menu):
def draw(self, context):
layout = self.layout
- layout.operator("transform.translate", text=_("Grab/Move"))
- layout.operator("transform.transform", text=_("Extend")).mode = 'TIME_EXTEND'
- layout.operator("transform.transform", text=_("Scale")).mode = 'TIME_SCALE'
+ layout.operator("transform.translate", text="Grab/Move")
+ layout.operator("transform.transform", text="Extend").mode = 'TIME_EXTEND'
+ layout.operator("transform.transform", text="Scale").mode = 'TIME_SCALE'
if __name__ == "__main__": # only for live edit.
bpy.utils.register_module(__name__)
diff --git a/release/scripts/startup/bl_ui/space_node.py b/release/scripts/startup/bl_ui/space_node.py
index 0808ddf769a..708017ba749 100644
--- a/release/scripts/startup/bl_ui/space_node.py
+++ b/release/scripts/startup/bl_ui/space_node.py
@@ -19,7 +19,6 @@
# <pep8 compliant>
import bpy
from bpy.types import Header, Menu, Panel
-from blf import gettext as _
class NODE_HT_header(Header):
@@ -62,7 +61,7 @@ class NODE_HT_header(Header):
elif snode.tree_type == 'COMPOSITING':
layout.prop(snode_id, "use_nodes")
- layout.prop(snode_id.render, "use_free_unused_nodes", text=_("Free Unused"))
+ layout.prop(snode_id.render, "use_free_unused_nodes", text="Free Unused")
layout.prop(snode, "show_backdrop")
if snode.show_backdrop:
row = layout.row(align=True)
@@ -93,9 +92,9 @@ class NODE_MT_view(Menu):
if context.space_data.show_backdrop:
layout.separator()
- layout.operator("node.backimage_move", text=_("Backdrop move"))
- layout.operator("node.backimage_zoom", text=_("Backdrop zoom in")).factor = 1.2
- layout.operator("node.backimage_zoom", text=_("Backdrop zoom out")).factor = 0.833
+ layout.operator("node.backimage_move", text="Backdrop move")
+ layout.operator("node.backimage_zoom", text="Backdrop zoom in").factor = 1.2
+ layout.operator("node.backimage_zoom", text="Backdrop zoom out").factor = 0.833
layout.separator()
@@ -138,7 +137,7 @@ class NODE_MT_node(Menu):
layout.separator()
layout.operator("node.link_make")
- layout.operator("node.link_make", text=_("Make and Replace Links")).replace = True
+ layout.operator("node.link_make", text="Make and Replace Links").replace = True
layout.operator("node.links_cut")
layout.separator()
@@ -181,13 +180,13 @@ class NODE_PT_properties(Panel):
snode = context.space_data
layout.active = snode.show_backdrop
layout.prop(snode, "backdrop_channels", text="")
- layout.prop(snode, "backdrop_zoom", text=_("Zoom"))
+ layout.prop(snode, "backdrop_zoom", text="Zoom")
col = layout.column(align=True)
- col.label(text=_("Offset:"))
+ col.label(text="Offset:")
col.prop(snode, "backdrop_x", text="X")
col.prop(snode, "backdrop_y", text="Y")
- col.operator("node.backimage_move", text=_("Move"))
+ col.operator("node.backimage_move", text="Move")
if __name__ == "__main__": # only for live edit.
bpy.utils.register_module(__name__)
diff --git a/release/scripts/startup/bl_ui/space_sequencer.py b/release/scripts/startup/bl_ui/space_sequencer.py
index 65aac4ae62f..d711c37b8b5 100644
--- a/release/scripts/startup/bl_ui/space_sequencer.py
+++ b/release/scripts/startup/bl_ui/space_sequencer.py
@@ -19,7 +19,6 @@
# <pep8 compliant>
import bpy
from bpy.types import Header, Menu, Panel
-from blf import gettext as _
def act_strip(context):
@@ -65,9 +64,9 @@ class SEQUENCER_HT_header(Header):
elif st.view_type == 'SEQUENCER_PREVIEW':
layout.separator()
layout.operator("sequencer.refresh_all")
- layout.prop(st, "display_channel", text=_("Channel"))
+ layout.prop(st, "display_channel", text="Channel")
else:
- layout.prop(st, "display_channel", text=_("Channel"))
+ layout.prop(st, "display_channel", text="Channel")
ed = context.scene.sequence_editor
if ed:
@@ -102,11 +101,11 @@ class SEQUENCER_MT_view(Menu):
layout.separator()
if st.view_type in {'SEQUENCER', 'SEQUENCER_PREVIEW'}:
- layout.operator("sequencer.view_all", text=_('View all Sequences'))
+ layout.operator("sequencer.view_all", text="View all Sequences")
if st.view_type in {'PREVIEW', 'SEQUENCER_PREVIEW'}:
layout.operator_context = 'INVOKE_REGION_PREVIEW'
- layout.operator("sequencer.view_all_preview", text=_('Fit preview in window'))
- layout.operator("sequencer.view_zoom_ratio", text=_('Show preview 1:1')).ratio = 1.0
+ layout.operator("sequencer.view_all_preview", text="Fit preview in window")
+ layout.operator("sequencer.view_zoom_ratio", text="Show preview 1:1").ratio = 1.0
layout.operator_context = 'INVOKE_DEFAULT'
# # XXX, invokes in the header view
@@ -115,9 +114,9 @@ class SEQUENCER_MT_view(Menu):
layout.operator("sequencer.view_selected")
if st.show_frames:
- layout.operator("anim.time_toggle", text=_("Show Seconds"))
+ layout.operator("anim.time_toggle", text="Show Seconds")
else:
- layout.operator("anim.time_toggle", text=_("Show Frames"))
+ layout.operator("anim.time_toggle", text="Show Frames")
layout.prop(st, "show_frame_indicator")
if st.display_mode == 'IMAGE':
@@ -139,12 +138,12 @@ class SEQUENCER_MT_select(Menu):
def draw(self, context):
layout = self.layout
- layout.operator("sequencer.select_active_side", text=_("Strips to the Left")).side = 'LEFT'
- layout.operator("sequencer.select_active_side", text=_("Strips to the Right")).side = 'RIGHT'
+ layout.operator("sequencer.select_active_side", text="Strips to the Left").side = 'LEFT'
+ layout.operator("sequencer.select_active_side", text="Strips to the Right").side = 'RIGHT'
layout.separator()
- layout.operator("sequencer.select_handles", text=_("Surrounding Handles")).side = 'BOTH'
- layout.operator("sequencer.select_handles", text=_("Left Handle")).side = 'LEFT'
- layout.operator("sequencer.select_handles", text=_("Right Handle")).side = 'RIGHT'
+ layout.operator("sequencer.select_handles", text="Surrounding Handles").side = 'BOTH'
+ layout.operator("sequencer.select_handles", text="Left Handle").side = 'LEFT'
+ layout.operator("sequencer.select_handles", text="Right Handle").side = 'RIGHT'
layout.separator()
layout.operator("sequencer.select_linked")
layout.operator("sequencer.select_all_toggle")
@@ -159,14 +158,14 @@ class SEQUENCER_MT_marker(Menu):
#layout.operator_context = 'EXEC_REGION_WIN'
- layout.operator("marker.add", _("Add Marker"))
- layout.operator("marker.duplicate", text=_("Duplicate Marker"))
- layout.operator("marker.delete", text=_("Delete Marker"))
+ layout.operator("marker.add", "Add Marker")
+ layout.operator("marker.duplicate", text="Duplicate Marker")
+ layout.operator("marker.delete", text="Delete Marker")
layout.separator()
- layout.operator("marker.rename", text=_("Rename Marker"))
- layout.operator("marker.move", text=_("Grab/Move Marker"))
+ layout.operator("marker.rename", text="Rename Marker")
+ layout.operator("marker.move", text="Grab/Move Marker")
#layout.operator("sequencer.sound_strip_add", text="Transform Markers") # toggle, will be rna - (sseq->flag & SEQ_MARKER_TRANS)
@@ -181,7 +180,7 @@ class SEQUENCER_MT_change(Menu):
layout.operator_menu_enum("sequencer.change_effect_input", "swap")
layout.operator_menu_enum("sequencer.change_effect_type", "type")
- layout.operator("sequencer.change_path", text=_("Path/Files"))
+ layout.operator("sequencer.change_path", text="Path/Files")
class SEQUENCER_MT_add(Menu):
@@ -193,13 +192,13 @@ class SEQUENCER_MT_add(Menu):
if len(bpy.data.scenes) > 10:
layout.operator_context = 'INVOKE_DEFAULT'
- layout.operator("sequencer.scene_strip_add", text=_("Scene..."))
+ layout.operator("sequencer.scene_strip_add", text="Scene...")
else:
- layout.operator_menu_enum("sequencer.scene_strip_add", "scene", text=_("Scene..."))
+ layout.operator_menu_enum("sequencer.scene_strip_add", "scene", text="Scene...")
- layout.operator("sequencer.movie_strip_add", text=_("Movie"))
- layout.operator("sequencer.image_strip_add", text=_("Image"))
- layout.operator("sequencer.sound_strip_add", text=_("Sound"))
+ layout.operator("sequencer.movie_strip_add", text="Movie")
+ layout.operator("sequencer.image_strip_add", text="Image")
+ layout.operator("sequencer.sound_strip_add", text="Sound")
layout.menu("SEQUENCER_MT_add_effect")
@@ -211,22 +210,22 @@ class SEQUENCER_MT_add_effect(Menu):
layout = self.layout
layout.operator_context = 'INVOKE_REGION_WIN'
- layout.operator("sequencer.effect_strip_add", text=_("Add")).type = 'ADD'
- layout.operator("sequencer.effect_strip_add", text=_("Subtract")).type = 'SUBTRACT'
- layout.operator("sequencer.effect_strip_add", text=_("Alpha Over")).type = 'ALPHA_OVER'
- layout.operator("sequencer.effect_strip_add", text=_("Alpha Under")).type = 'ALPHA_UNDER'
- layout.operator("sequencer.effect_strip_add", text=_("Cross")).type = 'CROSS'
- layout.operator("sequencer.effect_strip_add", text=_("Gamma Cross")).type = 'GAMMA_CROSS'
- layout.operator("sequencer.effect_strip_add", text=_("Multiply")).type = 'MULTIPLY'
- layout.operator("sequencer.effect_strip_add", text=_("Over Drop")).type = 'OVER_DROP'
- layout.operator("sequencer.effect_strip_add", text=_("Plugin")).type = 'PLUGIN'
- layout.operator("sequencer.effect_strip_add", text=_("Wipe")).type = 'WIPE'
- layout.operator("sequencer.effect_strip_add", text=_("Glow")).type = 'GLOW'
- layout.operator("sequencer.effect_strip_add", text=_("Transform")).type = 'TRANSFORM'
- layout.operator("sequencer.effect_strip_add", text=_("Color")).type = 'COLOR'
- layout.operator("sequencer.effect_strip_add", text=_("Speed Control")).type = 'SPEED'
- layout.operator("sequencer.effect_strip_add", text=_("Multicam Selector")).type = 'MULTICAM'
- layout.operator("sequencer.effect_strip_add", text=_("Adjustment Layer")).type = 'ADJUSTMENT'
+ layout.operator("sequencer.effect_strip_add", text="Add").type = 'ADD'
+ layout.operator("sequencer.effect_strip_add", text="Subtract").type = 'SUBTRACT'
+ layout.operator("sequencer.effect_strip_add", text="Alpha Over").type = 'ALPHA_OVER'
+ layout.operator("sequencer.effect_strip_add", text="Alpha Under").type = 'ALPHA_UNDER'
+ layout.operator("sequencer.effect_strip_add", text="Cross").type = 'CROSS'
+ layout.operator("sequencer.effect_strip_add", text="Gamma Cross").type = 'GAMMA_CROSS'
+ layout.operator("sequencer.effect_strip_add", text="Multiply").type = 'MULTIPLY'
+ layout.operator("sequencer.effect_strip_add", text="Over Drop").type = 'OVER_DROP'
+ layout.operator("sequencer.effect_strip_add", text="Plugin").type = 'PLUGIN'
+ layout.operator("sequencer.effect_strip_add", text="Wipe").type = 'WIPE'
+ layout.operator("sequencer.effect_strip_add", text="Glow").type = 'GLOW'
+ layout.operator("sequencer.effect_strip_add", text="Transform").type = 'TRANSFORM'
+ layout.operator("sequencer.effect_strip_add", text="Color").type = 'COLOR'
+ layout.operator("sequencer.effect_strip_add", text="Speed Control").type = 'SPEED'
+ layout.operator("sequencer.effect_strip_add", text="Multicam Selector").type = 'MULTICAM'
+ layout.operator("sequencer.effect_strip_add", text="Adjustment Layer").type = 'ADJUSTMENT'
class SEQUENCER_MT_strip(Menu):
@@ -237,13 +236,13 @@ class SEQUENCER_MT_strip(Menu):
layout.operator_context = 'INVOKE_REGION_WIN'
- layout.operator("transform.transform", text=_("Grab/Move")).mode = 'TRANSLATION'
- layout.operator("transform.transform", text=_("Grab/Extend from frame")).mode = 'TIME_EXTEND'
+ layout.operator("transform.transform", text="Grab/Move").mode = 'TRANSLATION'
+ layout.operator("transform.transform", text="Grab/Extend from frame").mode = 'TIME_EXTEND'
# uiItemO(layout, NULL, 0, "sequencer.strip_snap"); // TODO - add this operator
layout.separator()
- layout.operator("sequencer.cut", text=_("Cut (hard) at frame")).type = 'HARD'
- layout.operator("sequencer.cut", text=_("Cut (soft) at frame")).type = 'SOFT'
+ layout.operator("sequencer.cut", text="Cut (hard) at frame").type = 'HARD'
+ layout.operator("sequencer.cut", text="Cut (soft) at frame").type = 'SOFT'
layout.operator("sequencer.images_separate")
layout.operator("sequencer.offset_clear")
layout.operator("sequencer.deinterlace_selected_movies")
@@ -297,7 +296,7 @@ class SEQUENCER_MT_strip(Menu):
layout.operator("sequencer.mute")
layout.operator("sequencer.unmute")
- layout.operator("sequencer.mute", text=_("Mute Deselected Strips")).unselected = True
+ layout.operator("sequencer.mute", text="Mute Deselected Strips").unselected = True
layout.operator("sequencer.snap")
@@ -345,21 +344,21 @@ class SEQUENCER_PT_edit(SequencerButtonsPanel, Panel):
strip = act_strip(context)
split = layout.split(percentage=0.3)
- split.label(text=_("Name:"))
+ split.label(text="Name:")
split.prop(strip, "name", text="")
split = layout.split(percentage=0.3)
- split.label(text=_("Type:"))
+ split.label(text="Type:")
split.prop(strip, "type", text="")
split = layout.split(percentage=0.3)
- split.label(text=_("Blend:"))
+ split.label(text="Blend:")
split.prop(strip, "blend_type", text="")
row = layout.row(align=True)
sub = row.row()
sub.active = (not strip.mute)
- sub.prop(strip, "blend_alpha", text=_("Opacity"), slider=True)
+ sub.prop(strip, "blend_alpha", text="Opacity", slider=True)
row.prop(strip, "mute", toggle=True, icon='RESTRICT_VIEW_ON' if strip.mute else 'RESTRICT_VIEW_OFF', text="")
row.prop(strip, "lock", toggle=True, icon='LOCKED' if strip.lock else 'UNLOCKED', text="")
@@ -372,13 +371,13 @@ class SEQUENCER_PT_edit(SequencerButtonsPanel, Panel):
col = layout.column(align=True)
row = col.row()
- row.label(text=_("Final Length") + ": %s" % bpy.utils.smpte_from_frame(strip.frame_final_duration))
+ row.label(text="Final Length" + ": %s" % bpy.utils.smpte_from_frame(strip.frame_final_duration))
row = col.row()
row.active = (frame_current >= strip.frame_start and frame_current <= strip.frame_start + strip.frame_duration)
- row.label(text=_("Playhead") + ": %d" % (frame_current - strip.frame_start))
+ row.label(text="Playhead" + ": %d" % (frame_current - strip.frame_start))
- col.label(text=_("Frame Offset") + " %d:%d" % (strip.frame_offset_start, strip.frame_offset_end))
- col.label(text=_("Frame Still") + " %d:%d" % (strip.frame_still_start, strip.frame_still_end))
+ col.label(text="Frame Offset" + " %d:%d" % (strip.frame_offset_start, strip.frame_offset_end))
+ col.label(text="Frame Still" + " %d:%d" % (strip.frame_still_start, strip.frame_still_end))
elem = False
@@ -388,9 +387,9 @@ class SEQUENCER_PT_edit(SequencerButtonsPanel, Panel):
elem = strip.elements[0]
if elem and elem.orig_width > 0 and elem.orig_height > 0:
- col.label(text=_("Orig Dim") + ": %dx%d" % (elem.orig_width, elem.orig_height))
+ col.label(text="Orig Dim" + ": %dx%d" % (elem.orig_width, elem.orig_height))
else:
- col.label(text=_("Orig Dim: None"))
+ col.label(text="Orig Dim: None")
class SEQUENCER_PT_effect(SequencerButtonsPanel, Panel):
@@ -430,7 +429,7 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel, Panel):
col = layout.column()
col.prop(strip, "transition_type")
- col.label(text=_("Direction:"))
+ col.label(text="Direction:")
col.row().prop(strip, "direction", expand=True)
col = layout.column()
@@ -450,13 +449,13 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel, Panel):
row.prop(strip, "use_only_boost")
elif strip.type == 'SPEED':
- layout.prop(strip, "use_default_fade", _("Stretch to input strip length"))
+ layout.prop(strip, "use_default_fade", "Stretch to input strip length")
if not strip.use_default_fade:
layout.prop(strip, "use_as_speed")
if strip.use_as_speed:
layout.prop(strip, "speed_factor")
else:
- layout.prop(strip, "speed_factor", text=_("Frame number"))
+ layout.prop(strip, "speed_factor", text="Frame number")
layout.prop(strip, "scale_to_length")
#doesn't work currently
@@ -474,7 +473,7 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel, Panel):
sub.operator("screen.animation_play", text="", icon='PAUSE' if context.screen.is_animation_playing else 'PLAY')
- row.label(_("Cut To"))
+ row.label("Cut To")
for i in range(1, strip.channel):
row.operator("sequencer.cut_multicam", text=str(i)).camera = i
@@ -482,17 +481,17 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel, Panel):
if strip.type == 'SPEED':
col.prop(strip, "multiply_speed")
elif strip.type in {'CROSS', 'GAMMA_CROSS', 'PLUGIN', 'WIPE'}:
- col.prop(strip, "use_default_fade", _("Default fade"))
+ col.prop(strip, "use_default_fade", "Default fade")
if not strip.use_default_fade:
- col.prop(strip, "effect_fader", text=_("Effect fader"))
+ col.prop(strip, "effect_fader", text="Effect fader")
- layout.prop(strip, "use_translation", text=_("Image Offset:"))
+ layout.prop(strip, "use_translation", text="Image Offset:")
if strip.use_translation:
col = layout.column(align=True)
col.prop(strip.transform, "offset_x", text="X")
col.prop(strip.transform, "offset_y", text="Y")
- layout.prop(strip, "use_crop", text=_("Image Crop:"))
+ layout.prop(strip, "use_crop", text="Image Crop:")
if strip.use_crop:
col = layout.column(align=True)
col.prop(strip.crop, "max_y")
@@ -507,7 +506,7 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel, Panel):
col.prop(strip, "interpolation")
col.prop(strip, "translation_unit")
col = layout.column(align=True)
- col.label(text=_("Position:"))
+ col.label(text="Position:")
col.prop(strip, "translate_start_x", text="X")
col.prop(strip, "translate_start_y", text="Y")
@@ -517,18 +516,18 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel, Panel):
col.prop(strip, "use_uniform_scale")
if (strip.use_uniform_scale):
col = layout.column(align=True)
- col.prop(strip, "scale_start_x", text=_("Scale"))
+ col.prop(strip, "scale_start_x", text="Scale")
else:
col = layout.column(align=True)
- col.label(text=_("Scale:"))
+ col.label(text="Scale:")
col.prop(strip, "scale_start_x", text="X")
col.prop(strip, "scale_start_y", text="Y")
layout.separator()
col = layout.column(align=True)
- col.label(text=_("Rotation:"))
- col.prop(strip, "rotation_start", text=_("Rotation"))
+ col.label(text="Rotation:")
+ col.prop(strip, "rotation_start", text="Rotation")
class SEQUENCER_PT_input(SequencerButtonsPanel, Panel):
@@ -561,7 +560,7 @@ class SEQUENCER_PT_input(SequencerButtonsPanel, Panel):
if seq_type == 'IMAGE':
split = layout.split(percentage=0.2)
col = split.column()
- col.label(text=_("Path:"))
+ col.label(text="Path:")
col = split.column()
col.prop(strip, "directory", text="")
@@ -571,7 +570,7 @@ class SEQUENCER_PT_input(SequencerButtonsPanel, Panel):
if elem:
split = layout.split(percentage=0.2)
col = split.column()
- col.label(text=_("File:"))
+ col.label(text="File:")
col = split.column()
col.prop(elem, "filename", text="") # strip.elements[0] could be a fallback
@@ -581,22 +580,22 @@ class SEQUENCER_PT_input(SequencerButtonsPanel, Panel):
elif seq_type == 'MOVIE':
split = layout.split(percentage=0.2)
col = split.column()
- col.label(text=_("Path:"))
+ col.label(text="Path:")
col = split.column()
col.prop(strip, "filepath", text="")
- col.prop(strip, "mpeg_preseek", text=_("MPEG Preseek"))
- col.prop(strip, "streamindex", text=_("Stream Index"))
+ col.prop(strip, "mpeg_preseek", text="MPEG Preseek")
+ col.prop(strip, "streamindex", text="Stream Index")
# TODO, sound???
# end drawing filename
- layout.prop(strip, "use_translation", text=_("Image Offset:"))
+ layout.prop(strip, "use_translation", text="Image Offset:")
if strip.use_translation:
col = layout.column(align=True)
col.prop(strip.transform, "offset_x", text="X")
col.prop(strip.transform, "offset_y", text="Y")
- layout.prop(strip, "use_crop", text=_("Image Crop:"))
+ layout.prop(strip, "use_crop", text="Image Crop:")
if strip.use_crop:
col = layout.column(align=True)
col.prop(strip.crop, "max_y")
@@ -606,14 +605,14 @@ class SEQUENCER_PT_input(SequencerButtonsPanel, Panel):
if not isinstance(strip, bpy.types.EffectSequence):
col = layout.column(align=True)
- col.label(text=_("Trim Duration (hard):"))
- col.prop(strip, "animation_offset_start", text=_("Start"))
- col.prop(strip, "animation_offset_end", text=_("End"))
+ col.label(text="Trim Duration (hard):")
+ col.prop(strip, "animation_offset_start", text="Start")
+ col.prop(strip, "animation_offset_end", text="End")
col = layout.column(align=True)
- col.label(text=_("Trim Duration (soft):"))
- col.prop(strip, "frame_offset_start", text=_("Start"))
- col.prop(strip, "frame_offset_end", text=_("End"))
+ col.label(text="Trim Duration (soft):")
+ col.prop(strip, "frame_offset_start", text="Start")
+ col.prop(strip, "frame_offset_end", text="End")
class SEQUENCER_PT_sound(SequencerButtonsPanel, Panel):
@@ -642,9 +641,9 @@ class SEQUENCER_PT_sound(SequencerButtonsPanel, Panel):
row = layout.row()
if strip.sound.packed_file:
- row.operator("sound.unpack", icon='PACKAGE', text=_("Unpack"))
+ row.operator("sound.unpack", icon='PACKAGE', text="Unpack")
else:
- row.operator("sound.pack", icon='UGLYPACKAGE', text=_("Pack"))
+ row.operator("sound.pack", icon='UGLYPACKAGE', text="Pack")
row.prop(strip.sound, "use_memory_cache")
@@ -655,8 +654,8 @@ class SEQUENCER_PT_sound(SequencerButtonsPanel, Panel):
col = layout.column(align=True)
col.label(text="Trim Duration:")
- col.prop(strip, "animation_offset_start", text=_("Start"))
- col.prop(strip, "animation_offset_end", text=_("End"))
+ col.prop(strip, "animation_offset_start", text="Start")
+ col.prop(strip, "animation_offset_end", text="End")
class SEQUENCER_PT_scene(SequencerButtonsPanel, Panel):
@@ -684,13 +683,13 @@ class SEQUENCER_PT_scene(SequencerButtonsPanel, Panel):
if scene:
layout.prop(scene.render, "use_sequencer")
- layout.label(text=_("Camera Override"))
+ layout.label(text="Camera Override")
layout.template_ID(strip, "scene_camera")
if scene:
sta = scene.frame_start
end = scene.frame_end
- layout.label(text=_("Original frame range") + ": %d-%d (%d)" % (sta, end, end - sta + 1))
+ layout.label(text="Original frame range" + ": %d-%d (%d)" % (sta, end, end - sta + 1))
class SEQUENCER_PT_filter(SequencerButtonsPanel, Panel):
@@ -718,22 +717,22 @@ class SEQUENCER_PT_filter(SequencerButtonsPanel, Panel):
strip = act_strip(context)
col = layout.column()
- col.label(text=_("Video:"))
+ col.label(text="Video:")
col.prop(strip, "strobe")
row = layout.row()
- row.label(text=_("Flip:"))
+ row.label(text="Flip:")
row.prop(strip, "use_flip_x", text="X")
row.prop(strip, "use_flip_y", text="Y")
col = layout.column()
- col.prop(strip, "use_reverse_frames", text=_("Backwards"))
+ col.prop(strip, "use_reverse_frames", text="Backwards")
col.prop(strip, "use_deinterlace")
col = layout.column()
- col.label(text=_("Colors:"))
- col.prop(strip, "color_saturation", text=_("Saturation"))
- col.prop(strip, "color_multiply", text=_("Multiply"))
+ col.label(text="Colors:")
+ col.prop(strip, "color_saturation", text="Saturation")
+ col.prop(strip, "color_multiply", text="Multiply")
col.prop(strip, "use_premultiply")
col.prop(strip, "use_float")
@@ -744,15 +743,15 @@ class SEQUENCER_PT_filter(SequencerButtonsPanel, Panel):
col = row.column()
col.template_color_wheel(strip.color_balance, "lift", value_slider=False, cubic=True)
col.row().prop(strip.color_balance, "lift")
- col.prop(strip.color_balance, "invert_lift", text=_("Inverse"))
+ col.prop(strip.color_balance, "invert_lift", text="Inverse")
col = row.column()
col.template_color_wheel(strip.color_balance, "gamma", value_slider=False, lock_luminosity=True, cubic=True)
col.row().prop(strip.color_balance, "gamma")
- col.prop(strip.color_balance, "invert_gamma", text=_("Inverse"))
+ col.prop(strip.color_balance, "invert_gamma", text="Inverse")
col = row.column()
col.template_color_wheel(strip.color_balance, "gain", value_slider=False, lock_luminosity=True, cubic=True)
col.row().prop(strip.color_balance, "gain")
- col.prop(strip.color_balance, "invert_gain", text=_("Inverse"))
+ col.prop(strip.color_balance, "invert_gain", text="Inverse")
class SEQUENCER_PT_proxy(SequencerButtonsPanel, Panel):
@@ -795,18 +794,18 @@ class SEQUENCER_PT_proxy(SequencerButtonsPanel, Panel):
row.prop(strip.proxy, "build_100")
col = layout.column()
- col.label(text=_("Build JPEG quality"))
+ col.label(text="Build JPEG quality")
col.prop(strip.proxy, "quality")
if strip.type == "MOVIE":
col = layout.column()
- col.label(text=_("Use timecode index:"))
+ col.label(text="Use timecode index:")
col.prop(strip.proxy, "timecode")
class SEQUENCER_PT_preview(SequencerButtonsPanel_Output, Panel):
- bl_label = _("Scene Preview/Render")
+ bl_label = "Scene Preview/Render"
bl_space_type = 'SEQUENCE_EDITOR'
bl_region_type = 'UI'
@@ -816,7 +815,7 @@ class SEQUENCER_PT_preview(SequencerButtonsPanel_Output, Panel):
col = layout.column()
col.active = False # Currently only opengl preview works!
- col.prop(render, "use_sequencer_gl_preview", text=_("Open GL Preview"))
+ col.prop(render, "use_sequencer_gl_preview", text="Open GL Preview")
col = layout.column()
#col.active = render.use_sequencer_gl_preview
col.prop(render, "sequencer_gl_preview", text="")
diff --git a/release/scripts/startup/bl_ui/space_text.py b/release/scripts/startup/bl_ui/space_text.py
index 23e68487aae..d0a3a53aa85 100644
--- a/release/scripts/startup/bl_ui/space_text.py
+++ b/release/scripts/startup/bl_ui/space_text.py
@@ -19,7 +19,6 @@
# <pep8-80 compliant>
import bpy
from bpy.types import Header, Menu, Panel
-from blf import gettext as _
class TEXT_HT_header(Header):
@@ -67,13 +66,13 @@ class TEXT_HT_header(Header):
row = layout.row()
if text.filepath:
if text.is_dirty:
- row.label(text=_("File") + ": *%r " % text.filepath + _("(unsaved)"))
+ row.label(text="File" + ": *%r " % text.filepath + "(unsaved)")
else:
- row.label(text=_("File") + ": %r" % text.filepath)
+ row.label(text="File" + ": %r" % text.filepath)
else:
- row.label(text=_("Text: External")
+ row.label(text="Text: External"
if text.library
- else _("Text: Internal"))
+ else "Text: Internal")
class TEXT_PT_properties(Panel):
@@ -137,8 +136,8 @@ class TEXT_PT_find(Panel):
# settings
layout.prop(st, "use_match_case")
row = layout.row()
- row.prop(st, "use_find_wrap", text=_("Wrap"))
- row.prop(st, "use_find_all", text=_("All"))
+ row.prop(st, "use_find_wrap", text="Wrap")
+ row.prop(st, "use_find_all", text="All")
class TEXT_MT_view(Menu):
@@ -157,10 +156,10 @@ class TEXT_MT_view(Menu):
layout.separator()
layout.operator("text.move",
- text=_("Top of File"),
+ text="Top of File",
).type = 'FILE_TOP'
layout.operator("text.move",
- text=_("Bottom of File"),
+ text="Bottom of File",
).type = 'FILE_BOTTOM'
@@ -249,10 +248,10 @@ class TEXT_MT_edit_to3d(Menu):
layout = self.layout
layout.operator("text.to_3d_object",
- text=_("One Object"),
+ text="One Object",
).split_lines = False
layout.operator("text.to_3d_object",
- text=_("One Object Per Line"),
+ text="One Object Per Line",
).split_lines = True
@@ -283,7 +282,7 @@ class TEXT_MT_edit(Menu):
layout.separator()
layout.operator("text.jump")
- layout.operator("text.properties", text=_("Find..."))
+ layout.operator("text.properties", text="Find...")
layout.separator()
diff --git a/release/scripts/startup/bl_ui/space_time.py b/release/scripts/startup/bl_ui/space_time.py
index d654c1e4d8b..db009fe43c2 100644
--- a/release/scripts/startup/bl_ui/space_time.py
+++ b/release/scripts/startup/bl_ui/space_time.py
@@ -19,7 +19,6 @@
# <pep8 compliant>
import bpy
from bpy.types import Header, Menu
-from blf import gettext as _
class TIME_HT_header(Header):
@@ -44,11 +43,11 @@ class TIME_HT_header(Header):
row = layout.row(align=True)
if not scene.use_preview_range:
- row.prop(scene, "frame_start", text=_("Start"))
- row.prop(scene, "frame_end", text=_("End"))
+ row.prop(scene, "frame_start", text="Start")
+ row.prop(scene, "frame_end", text="End")
else:
- row.prop(scene, "frame_preview_start", text=_("Start"))
- row.prop(scene, "frame_preview_end", text=_("End"))
+ row.prop(scene, "frame_preview_start", text="Start")
+ row.prop(scene, "frame_preview_end", text="End")
layout.prop(scene, "frame_current", text="")
@@ -143,14 +142,14 @@ class TIME_MT_frame(Menu):
def draw(self, context):
layout = self.layout
- layout.operator("marker.add", text=_("Add Marker"))
- layout.operator("marker.duplicate", text=_("Duplicate Marker"))
- layout.operator("marker.delete", text=_("Delete Marker"))
+ layout.operator("marker.add", text="Add Marker")
+ layout.operator("marker.duplicate", text="Duplicate Marker")
+ layout.operator("marker.delete", text="Delete Marker")
layout.separator()
- layout.operator("marker.rename", text=_("Rename Marker"))
- layout.operator("marker.move", text=_("Grab/Move Marker"))
+ layout.operator("marker.rename", text="Rename Marker")
+ layout.operator("marker.move", text="Grab/Move Marker")
layout.separator()
@@ -182,8 +181,8 @@ class TIME_MT_playback(Menu):
layout.separator()
- layout.prop(scene, "use_frame_drop", text=_("Frame Dropping"))
- layout.prop(scene, "use_audio_sync", text=_("AV-sync"), icon='SPEAKER')
+ layout.prop(scene, "use_frame_drop", text="Frame Dropping")
+ layout.prop(scene, "use_audio_sync", text="AV-sync", icon='SPEAKER')
layout.prop(scene, "use_audio")
layout.prop(scene, "use_audio_scrub")
diff --git a/release/scripts/startup/bl_ui/space_userpref.py b/release/scripts/startup/bl_ui/space_userpref.py
index a31d4791e72..5670b912c7b 100644
--- a/release/scripts/startup/bl_ui/space_userpref.py
+++ b/release/scripts/startup/bl_ui/space_userpref.py
@@ -18,12 +18,11 @@
# <pep8 compliant>
import bpy
-from bpy.types import Header, Menu, Operator, Panel
+from bpy.types import Header, Menu, Panel
import os
import addon_utils
from bpy.props import StringProperty, BoolProperty, EnumProperty
-from blf import gettext as _
def ui_items_general(col, context):
@@ -66,10 +65,10 @@ def opengl_lamp_buttons(column, lamp):
col = split.column()
col.active = lamp.use
row = col.row()
- row.label(text=_("Diffuse:"))
+ row.label(text="Diffuse:")
row.prop(lamp, "diffuse_color", text="")
row = col.row()
- row.label(text=_("Specular:"))
+ row.label(text="Specular:")
row.prop(lamp, "specular_color", text="")
col = split.column()
@@ -87,7 +86,7 @@ class USERPREF_HT_header(Header):
userpref = context.user_preferences
layout.operator_context = 'EXEC_AREA'
- layout.operator("wm.save_homefile", text=_("Save As Default"))
+ layout.operator("wm.save_homefile", text="Save As Default")
layout.operator_context = 'INVOKE_DEFAULT'
@@ -128,7 +127,7 @@ class USERPREF_MT_appconfigs(Menu):
preset_operator = "wm.appconfig_activate"
def draw(self, context):
- self.layout.operator("wm.appconfig_default", text=_("Blender (default)"))
+ self.layout.operator("wm.appconfig_default", text="Blender (default)")
# now draw the presets
Menu.draw_preset(self, context)
@@ -143,12 +142,12 @@ class USERPREF_MT_splash(Menu):
row = split.row()
row.label("")
row = split.row()
- row.label(_("Interaction:"))
+ row.label("Interaction:")
# XXX, no redraws
# text = bpy.path.display_name(context.window_manager.keyconfigs.active.name)
# if not text:
# text = "Blender (default)"
- row.menu("USERPREF_MT_appconfigs", text=_("Preset"))
+ row.menu("USERPREF_MT_appconfigs", text="Preset")
class USERPREF_PT_interface(Panel):
@@ -171,13 +170,13 @@ class USERPREF_PT_interface(Panel):
row = layout.row()
col = row.column()
- col.label(text=_("Display:"))
+ col.label(text="Display:")
col.prop(view, "show_tooltips")
col.prop(view, "show_tooltips_python")
- col.prop(view, "show_object_info", text=_("Object Info"))
+ col.prop(view, "show_object_info", text="Object Info")
col.prop(view, "show_large_cursors")
- col.prop(view, "show_view_name", text=_("View Name"))
- col.prop(view, "show_playback_fps", text=_("Playback FPS"))
+ col.prop(view, "show_view_name", text="View Name")
+ col.prop(view, "show_playback_fps", text="Playback FPS")
col.prop(view, "use_global_scene")
col.prop(view, "object_origin_size")
@@ -185,18 +184,18 @@ class USERPREF_PT_interface(Panel):
col.separator()
col.separator()
- col.prop(view, "show_mini_axis", text=_("Display Mini Axis"))
+ col.prop(view, "show_mini_axis", text="Display Mini Axis")
sub = col.column()
sub.active = view.show_mini_axis
- sub.prop(view, "mini_axis_size", text=_("Size"))
- sub.prop(view, "mini_axis_brightness", text=_("Brightness"))
+ sub.prop(view, "mini_axis_size", text="Size")
+ sub.prop(view, "mini_axis_brightness", text="Brightness")
col.separator()
row.separator()
row.separator()
col = row.column()
- col.label(text=_("View Manipulation:"))
+ col.label(text="View Manipulation:")
col.prop(view, "use_mouse_auto_depth")
col.prop(view, "use_zoom_to_mouse")
col.prop(view, "use_rotate_around_active")
@@ -212,8 +211,8 @@ class USERPREF_PT_interface(Panel):
col.separator()
col.separator()
- col.label(text=_("2D Viewports:"))
- col.prop(view, "view2d_grid_spacing_min", text=_("Minimum Grid Spacing"))
+ col.label(text="2D Viewports:")
+ col.prop(view, "view2d_grid_spacing_min", text="Minimum Grid Spacing")
col.prop(view, "timecode_style")
row.separator()
@@ -229,19 +228,19 @@ class USERPREF_PT_interface(Panel):
col.prop(view, "show_manipulator")
sub = col.column()
sub.active = view.show_manipulator
- sub.prop(view, "manipulator_size", text=_("Size"))
- sub.prop(view, "manipulator_handle_size", text=_("Handle Size"))
- sub.prop(view, "manipulator_hotspot", text=_("Hotspot"))
+ sub.prop(view, "manipulator_size", text="Size")
+ sub.prop(view, "manipulator_handle_size", text="Handle Size")
+ sub.prop(view, "manipulator_hotspot", text="Hotspot")
col.separator()
col.separator()
col.separator()
- col.label(text=_("Menus:"))
+ col.label(text="Menus:")
col.prop(view, "use_mouse_over_open")
- col.label(text=_("Menu Open Delay:"))
- col.prop(view, "open_toplevel_delay", text=_("Top Level"))
- col.prop(view, "open_sublevel_delay", text=_("Sub Level"))
+ col.label(text="Menu Open Delay:")
+ col.prop(view, "open_toplevel_delay", text="Top Level")
+ col.prop(view, "open_sublevel_delay", text="Sub Level")
col.separator()
@@ -268,97 +267,97 @@ class USERPREF_PT_edit(Panel):
row = layout.row()
col = row.column()
- col.label(text=_("Link Materials To:"))
+ col.label(text="Link Materials To:")
col.prop(edit, "material_link", text="")
col.separator()
col.separator()
col.separator()
- col.label(text=_("New Objects:"))
+ col.label(text="New Objects:")
col.prop(edit, "use_enter_edit_mode")
- col.label(text=_("Align To:"))
+ col.label(text="Align To:")
col.prop(edit, "object_align", text="")
col.separator()
col.separator()
col.separator()
- col.label(text=_("Undo:"))
+ col.label(text="Undo:")
col.prop(edit, "use_global_undo")
- col.prop(edit, "undo_steps", text=_("Steps"))
- col.prop(edit, "undo_memory_limit", text=_("Memory Limit"))
+ col.prop(edit, "undo_steps", text="Steps")
+ col.prop(edit, "undo_memory_limit", text="Memory Limit")
row.separator()
row.separator()
col = row.column()
- col.label(text=_("Grease Pencil:"))
- col.prop(edit, "grease_pencil_manhattan_distance", text=_("Manhattan Distance"))
- col.prop(edit, "grease_pencil_euclidean_distance", text=_("Euclidean Distance"))
+ col.label(text="Grease Pencil:")
+ col.prop(edit, "grease_pencil_manhattan_distance", text="Manhattan Distance")
+ col.prop(edit, "grease_pencil_euclidean_distance", text="Euclidean Distance")
#col.prop(edit, "use_grease_pencil_simplify_stroke", text="Simplify Stroke")
- col.prop(edit, "grease_pencil_eraser_radius", text=_("Eraser Radius"))
- col.prop(edit, "use_grease_pencil_smooth_stroke", text=_("Smooth Stroke"))
+ col.prop(edit, "grease_pencil_eraser_radius", text="Eraser Radius")
+ col.prop(edit, "use_grease_pencil_smooth_stroke", text="Smooth Stroke")
col.separator()
col.separator()
col.separator()
- col.label(text=_("Playback:"))
+ col.label(text="Playback:")
col.prop(edit, "use_negative_frames")
row.separator()
row.separator()
col = row.column()
- col.label(text=_("Keyframing:"))
+ col.label(text="Keyframing:")
col.prop(edit, "use_visual_keying")
- col.prop(edit, "use_keyframe_insert_needed", text=_("Only Insert Needed"))
+ col.prop(edit, "use_keyframe_insert_needed", text="Only Insert Needed")
col.separator()
- col.prop(edit, "use_auto_keying", text=_("Auto Keyframing:"))
+ col.prop(edit, "use_auto_keying", text="Auto Keyframing:")
sub = col.column()
# sub.active = edit.use_keyframe_insert_auto # incorrect, timeline can enable
- sub.prop(edit, "use_keyframe_insert_available", text=_("Only Insert Available"))
+ sub.prop(edit, "use_keyframe_insert_available", text="Only Insert Available")
col.separator()
- col.label(text=_("New F-Curve Defaults:"))
- col.prop(edit, "keyframe_new_interpolation_type", text=_("Interpolation"))
- col.prop(edit, "keyframe_new_handle_type", text=_("Handles"))
- col.prop(edit, "use_insertkey_xyz_to_rgb", text=_("XYZ to RGB"))
+ col.label(text="New F-Curve Defaults:")
+ col.prop(edit, "keyframe_new_interpolation_type", text="Interpolation")
+ col.prop(edit, "keyframe_new_handle_type", text="Handles")
+ col.prop(edit, "use_insertkey_xyz_to_rgb", text="XYZ to RGB")
col.separator()
col.separator()
col.separator()
- col.label(text=_("Transform:"))
+ col.label(text="Transform:")
col.prop(edit, "use_drag_immediately")
row.separator()
row.separator()
col = row.column()
- col.prop(edit, "sculpt_paint_overlay_color", text=_("Sculpt Overlay Color"))
+ col.prop(edit, "sculpt_paint_overlay_color", text="Sculpt Overlay Color")
col.separator()
col.separator()
col.separator()
- col.label(text=_("Duplicate Data:"))
- col.prop(edit, "use_duplicate_mesh", text=_("Mesh"))
- col.prop(edit, "use_duplicate_surface", text=_("Surface"))
- col.prop(edit, "use_duplicate_curve", text=_("Curve"))
- col.prop(edit, "use_duplicate_text", text=_("Text"))
- col.prop(edit, "use_duplicate_metaball", text=_("Metaball"))
- col.prop(edit, "use_duplicate_armature", text=_("Armature"))
- col.prop(edit, "use_duplicate_lamp", text=_("Lamp"))
- col.prop(edit, "use_duplicate_material", text=_("Material"))
- col.prop(edit, "use_duplicate_texture", text=_("Texture"))
- #col.prop(edit, "use_duplicate_fcurve", text=_("F-Curve"))
- col.prop(edit, "use_duplicate_action", text=_("Action"))
- col.prop(edit, "use_duplicate_particle", text=_("Particle"))
+ col.label(text="Duplicate Data:")
+ col.prop(edit, "use_duplicate_mesh", text="Mesh")
+ col.prop(edit, "use_duplicate_surface", text="Surface")
+ col.prop(edit, "use_duplicate_curve", text="Curve")
+ col.prop(edit, "use_duplicate_text", text="Text")
+ col.prop(edit, "use_duplicate_metaball", text="Metaball")
+ col.prop(edit, "use_duplicate_armature", text="Armature")
+ col.prop(edit, "use_duplicate_lamp", text="Lamp")
+ col.prop(edit, "use_duplicate_material", text="Material")
+ col.prop(edit, "use_duplicate_texture", text="Texture")
+ #col.prop(edit, "use_duplicate_fcurve", text="F-Curve")
+ col.prop(edit, "use_duplicate_action", text="Action")
+ col.prop(edit, "use_duplicate_particle", text="Particle")
class USERPREF_PT_system(Panel):
@@ -385,11 +384,11 @@ class USERPREF_PT_system(Panel):
colsplit = column.split(percentage=0.85)
col = colsplit.column()
- col.label(text=_("General:"))
+ col.label(text="General:")
col.prop(system, "dpi")
col.prop(system, "frame_server_port")
- col.prop(system, "scrollback", text=_("Console Scrollback"))
- col.prop(system, "author", text=_("Author"))
+ col.prop(system, "scrollback", text="Console Scrollback")
+ col.prop(system, "author", text="Author")
col.prop(system, "use_scripts_auto_execute")
col.prop(system, "use_tabs_as_spaces")
@@ -397,21 +396,21 @@ class USERPREF_PT_system(Panel):
col.separator()
col.separator()
- col.label(text=_("Sound:"))
+ col.label(text="Sound:")
col.row().prop(system, "audio_device", expand=True)
sub = col.column()
sub.active = system.audio_device != 'NONE'
#sub.prop(system, "use_preview_images")
- sub.prop(system, "audio_channels", text=_("Channels"))
- sub.prop(system, "audio_mixing_buffer", text=_("Mixing Buffer"))
- sub.prop(system, "audio_sample_rate", text=_("Sample Rate"))
- sub.prop(system, "audio_sample_format", text=_("Sample Format"))
+ sub.prop(system, "audio_channels", text="Channels")
+ sub.prop(system, "audio_mixing_buffer", text="Mixing Buffer")
+ sub.prop(system, "audio_sample_rate", text="Sample Rate")
+ sub.prop(system, "audio_sample_format", text="Sample Format")
col.separator()
col.separator()
col.separator()
- col.label(text=_("Screencast:"))
+ col.label(text="Screencast:")
col.prop(system, "screencast_fps")
col.prop(system, "screencast_wait_time")
col.separator()
@@ -423,40 +422,40 @@ class USERPREF_PT_system(Panel):
colsplit = column.split(percentage=0.85)
col = colsplit.column()
- col.label(text=_("OpenGL:"))
+ col.label(text="OpenGL:")
col.prop(system, "gl_clip_alpha", slider=True)
col.prop(system, "use_mipmaps")
- col.label(text=_("Anisotropic Filtering"))
+ col.label(text="Anisotropic Filtering")
col.prop(system, "anisotropic_filter", text="")
col.prop(system, "use_vertex_buffer_objects")
#Anti-aliasing is disabled as it breaks broder/lasso select
#col.prop(system, "use_antialiasing")
- col.label(text=_("Window Draw Method:"))
+ col.label(text="Window Draw Method:")
col.prop(system, "window_draw_method", text="")
- col.label(text=_("Text Draw Options:"))
+ col.label(text="Text Draw Options:")
col.prop(system, "use_text_antialiasing")
- col.label(text=_("Textures:"))
- col.prop(system, "gl_texture_limit", text=_("Limit Size"))
- col.prop(system, "texture_time_out", text=_("Time Out"))
- col.prop(system, "texture_collection_rate", text=_("Collection Rate"))
+ col.label(text="Textures:")
+ col.prop(system, "gl_texture_limit", text="Limit Size")
+ col.prop(system, "texture_time_out", text="Time Out")
+ col.prop(system, "texture_collection_rate", text="Collection Rate")
col.separator()
col.separator()
col.separator()
- col.label(text=_("Sequencer:"))
+ col.label(text="Sequencer:")
col.prop(system, "prefetch_frames")
col.prop(system, "memory_cache_limit")
# 3. Column
column = split.column()
- column.label(text=_("Solid OpenGL lights:"))
+ column.label(text="Solid OpenGL lights:")
split = column.split(percentage=0.1)
split.label()
- split.label(text=_("Colors:"))
- split.label(text=_("Direction:"))
+ split.label(text="Colors:")
+ split.label(text="Direction:")
lamp = system.solid_lights[0]
opengl_lamp_buttons(column, lamp)
@@ -469,12 +468,12 @@ class USERPREF_PT_system(Panel):
column.separator()
- column.label(text=_("Color Picker Type:"))
+ column.label(text="Color Picker Type:")
column.row().prop(system, "color_picker_type", text="")
column.separator()
- column.prop(system, "use_weight_color_range", text=_("Custom Weight Paint Range"))
+ column.prop(system, "use_weight_color_range", text="Custom Weight Paint Range")
sub = column.column()
sub.active = system.use_weight_color_range
sub.template_color_ramp(system, "weight_color_range", expand=True)
@@ -550,71 +549,71 @@ class USERPREF_PT_theme(Panel):
col = split.column()
ui = theme.user_interface.wcol_regular
- col.label(text=_("Regular:"))
+ col.label(text="Regular:")
ui_items_general(col, ui)
ui = theme.user_interface.wcol_tool
- col.label(text=_("Tool:"))
+ col.label(text="Tool:")
ui_items_general(col, ui)
ui = theme.user_interface.wcol_radio
- col.label(text=_("Radio Buttons:"))
+ col.label(text="Radio Buttons:")
ui_items_general(col, ui)
ui = theme.user_interface.wcol_text
- col.label(text=_("Text:"))
+ col.label(text="Text:")
ui_items_general(col, ui)
ui = theme.user_interface.wcol_option
- col.label(text=_("Option:"))
+ col.label(text="Option:")
ui_items_general(col, ui)
ui = theme.user_interface.wcol_toggle
- col.label(text=_("Toggle:"))
+ col.label(text="Toggle:")
ui_items_general(col, ui)
ui = theme.user_interface.wcol_num
- col.label(text=_("Number Field:"))
+ col.label(text="Number Field:")
ui_items_general(col, ui)
ui = theme.user_interface.wcol_numslider
- col.label(text=_("Value Slider:"))
+ col.label(text="Value Slider:")
ui_items_general(col, ui)
ui = theme.user_interface.wcol_box
- col.label(text=_("Box:"))
+ col.label(text="Box:")
ui_items_general(col, ui)
ui = theme.user_interface.wcol_menu
- col.label(text=_("Menu:"))
+ col.label(text="Menu:")
ui_items_general(col, ui)
ui = theme.user_interface.wcol_pulldown
- col.label(text=_("Pulldown:"))
+ col.label(text="Pulldown:")
ui_items_general(col, ui)
ui = theme.user_interface.wcol_menu_back
- col.label(text=_("Menu Back:"))
+ col.label(text="Menu Back:")
ui_items_general(col, ui)
ui = theme.user_interface.wcol_menu_item
- col.label(text=_("Menu Item:"))
+ col.label(text="Menu Item:")
ui_items_general(col, ui)
ui = theme.user_interface.wcol_scroll
- col.label(text=_("Scroll Bar:"))
+ col.label(text="Scroll Bar:")
ui_items_general(col, ui)
ui = theme.user_interface.wcol_progress
- col.label(text=_("Progress Bar:"))
+ col.label(text="Progress Bar:")
ui_items_general(col, ui)
ui = theme.user_interface.wcol_list_item
- col.label(text=_("List Item:"))
+ col.label(text="List Item:")
ui_items_general(col, ui)
ui = theme.user_interface.wcol_state
- col.label(text=_("State:"))
+ col.label(text="State:")
row = col.row()
@@ -650,7 +649,7 @@ class USERPREF_PT_theme(Panel):
col = split.column()
for i, ui in enumerate(theme.bone_color_sets):
- col.label(text=_("Color Set") + " %d:" % (i + 1)) # i starts from 0
+ col.label(text="Color Set" + " %d:" % (i + 1)) # i starts from 0
row = col.row()
@@ -693,22 +692,22 @@ class USERPREF_PT_file(Panel):
split = layout.split(percentage=0.7)
col = split.column()
- col.label(text=_("File Paths:"))
+ col.label(text="File Paths:")
colsplit = col.split(percentage=0.95)
col1 = colsplit.split(percentage=0.3)
sub = col1.column()
- sub.label(text=_("Fonts:"))
- sub.label(text=_("Textures:"))
- sub.label(text=_("Texture Plugins:"))
- sub.label(text=_("Sequence Plugins:"))
- sub.label(text=_("Render Output:"))
- sub.label(text=_("Scripts:"))
- sub.label(text=_("Sounds:"))
- sub.label(text=_("Temp:"))
- sub.label(text=_("Image Editor:"))
- sub.label(text=_("Animation Player:"))
+ sub.label(text="Fonts:")
+ sub.label(text="Textures:")
+ sub.label(text="Texture Plugins:")
+ sub.label(text="Sequence Plugins:")
+ sub.label(text="Render Output:")
+ sub.label(text="Scripts:")
+ sub.label(text="Sounds:")
+ sub.label(text="Temp:")
+ sub.label(text="Image Editor:")
+ sub.label(text="Animation Player:")
sub = col1.column()
sub.prop(paths, "font_directory", text="")
@@ -725,7 +724,7 @@ class USERPREF_PT_file(Panel):
subsplit.prop(paths, "animation_player", text="")
col = split.column()
- col.label(text=_("Save & Load:"))
+ col.label(text="Save & Load:")
col.prop(paths, "use_relative_paths")
col.prop(paths, "use_file_compression")
col.prop(paths, "use_load_ui")
@@ -740,11 +739,11 @@ class USERPREF_PT_file(Panel):
col.prop(paths, "save_version")
col.prop(paths, "recent_files")
col.prop(paths, "use_save_preview_images")
- col.label(text=_("Auto Save:"))
+ col.label(text="Auto Save:")
col.prop(paths, "use_auto_save_temporary_files")
sub = col.column()
sub.active = paths.use_auto_save_temporary_files
- sub.prop(paths, "auto_save_time", text=_("Timer (mins)"))
+ sub.prop(paths, "auto_save_time", text="Timer (mins)")
from bl_ui.space_userpref_keymap import InputKeyMapPanel
@@ -800,7 +799,7 @@ class USERPREF_PT_input(Panel, InputKeyMapPanel):
col = row.column()
sub = col.column()
- sub.label(text=_("Presets:"))
+ sub.label(text="Presets:")
subrow = sub.row(align=True)
subrow.menu("USERPREF_MT_interaction_presets", text=bpy.types.USERPREF_MT_interaction_presets.bl_label)
@@ -808,19 +807,19 @@ class USERPREF_PT_input(Panel, InputKeyMapPanel):
subrow.operator("wm.interaction_preset_add", text="", icon='ZOOMOUT').remove_active = True
sub.separator()
- sub.label(text=_("Mouse:"))
+ sub.label(text="Mouse:")
sub1 = sub.column()
sub1.active = (inputs.select_mouse == 'RIGHT')
sub1.prop(inputs, "use_mouse_emulate_3_button")
sub.prop(inputs, "use_mouse_continuous")
sub.prop(inputs, "drag_threshold")
- sub.label(text=_("Select With:"))
+ sub.label(text="Select With:")
sub.row().prop(inputs, "select_mouse", expand=True)
sub = col.column()
- sub.label(text=_("Double Click:"))
- sub.prop(inputs, "mouse_double_click_time", text=_("Speed"))
+ sub.label(text="Double Click:")
+ sub.prop(inputs, "mouse_double_click_time", text="Speed")
sub.separator()
@@ -828,10 +827,10 @@ class USERPREF_PT_input(Panel, InputKeyMapPanel):
sub.separator()
- sub.label(text=_("Orbit Style:"))
+ sub.label(text="Orbit Style:")
sub.row().prop(inputs, "view_rotate_method", expand=True)
- sub.label(text=_("Zoom Style:"))
+ sub.label(text="Zoom Style:")
sub.row().prop(inputs, "view_zoom_method", text="")
if inputs.view_zoom_method in {'DOLLY', 'CONTINUE'}:
sub.row().prop(inputs, "view_zoom_axis", expand=True)
@@ -842,8 +841,8 @@ class USERPREF_PT_input(Panel, InputKeyMapPanel):
#col.separator()
sub = col.column()
- sub.label(text=_("Mouse Wheel:"))
- sub.prop(inputs, "invert_zoom_wheel", text=_("Invert Wheel Zoom Direction"))
+ sub.label(text="Mouse Wheel:")
+ sub.prop(inputs, "invert_zoom_wheel", text="Invert Wheel Zoom Direction")
#sub.prop(view, "wheel_scroll_lines", text="Scroll Lines")
col.separator()
@@ -881,9 +880,9 @@ class USERPREF_MT_addons_dev_guides(Menu):
# menu to open webpages with addons development guides
def draw(self, context):
layout = self.layout
- layout.operator('wm.url_open', text=_('API Concepts'), icon='URL').url = 'http://wiki.blender.org/index.php/Dev:2.5/Py/API/Intro'
- layout.operator('wm.url_open', text=_('Addon Guidelines'), icon='URL').url = 'http://wiki.blender.org/index.php/Dev:2.5/Py/Scripts/Guidelines/Addons'
- layout.operator('wm.url_open', text=_('How to share your addon'), icon='URL').url = 'http://wiki.blender.org/index.php/Dev:Py/Sharing'
+ layout.operator("wm.url_open", text="API Concepts", icon='URL').url = "http://wiki.blender.org/index.php/Dev:2.5/Py/API/Intro"
+ layout.operator("wm.url_open", text="Addon Guidelines", icon='URL').url = "http://wiki.blender.org/index.php/Dev:2.5/Py/Scripts/Guidelines/Addons"
+ layout.operator("wm.url_open", text="How to share your addon", icon='URL').url = "http://wiki.blender.org/index.php/Dev:Py/Sharing"
class USERPREF_PT_addons(Panel):
@@ -892,18 +891,12 @@ class USERPREF_PT_addons(Panel):
bl_region_type = 'WINDOW'
bl_options = {'HIDE_HEADER'}
- _addons_fake_modules = {}
-
@classmethod
def poll(cls, context):
userpref = context.user_preferences
return (userpref.active_section == 'ADDONS')
@staticmethod
- def module_get(mod_name):
- return USERPREF_PT_addons._addons_fake_modules[mod_name]
-
- @staticmethod
def is_user_addon(mod, user_addon_paths):
if not user_addon_paths:
user_script_path = bpy.utils.user_script_path()
@@ -933,15 +926,15 @@ class USERPREF_PT_addons(Panel):
used_ext = {ext.module for ext in userpref.addons}
# collect the categories that can be filtered on
- addons = [(mod, addon_utils.module_bl_info(mod)) for mod in addon_utils.modules(USERPREF_PT_addons._addons_fake_modules)]
+ addons = [(mod, addon_utils.module_bl_info(mod)) for mod in addon_utils.modules(addon_utils.addons_fake_modules)]
split = layout.split(percentage=0.2)
col = split.column()
col.prop(context.window_manager, "addon_search", text="", icon='VIEWZOOM')
- col.label(text=_("Categories"))
+ col.label(text="Categories")
col.prop(context.window_manager, "addon_filter", expand=True)
- col.label(text=_("Supported Level"))
+ col.label(text="Supported Level")
col.prop(context.window_manager, "addon_support", expand=True)
col = split.column()
@@ -1018,23 +1011,23 @@ class USERPREF_PT_addons(Panel):
if info["show_expanded"]:
if info["description"]:
split = colsub.row().split(percentage=0.15)
- split.label(text=_('Description:'))
+ split.label(text="Description:")
split.label(text=info["description"])
if info["location"]:
split = colsub.row().split(percentage=0.15)
- split.label(text=_('Location:'))
+ split.label(text="Location:")
split.label(text=info["location"])
if info["author"]:
split = colsub.row().split(percentage=0.15)
- split.label(text=_('Author:'))
+ split.label(text="Author:")
split.label(text=info["author"])
if info["version"]:
split = colsub.row().split(percentage=0.15)
- split.label(text=_('Version:'))
+ split.label(text="Version:")
split.label(text='.'.join(str(x) for x in info["version"]))
if info["warning"]:
split = colsub.row().split(percentage=0.15)
- split.label(text=_("Warning:"))
+ split.label(text="Warning:")
split.label(text=' ' + info["warning"], icon='ERROR')
user_addon = USERPREF_PT_addons.is_user_addon(mod, user_addon_paths)
@@ -1042,13 +1035,13 @@ class USERPREF_PT_addons(Panel):
if tot_row:
split = colsub.row().split(percentage=0.15)
- split.label(text=_("Internet:"))
+ 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="Link to the Wiki", 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"]
+ split.operator("wm.url_open", text="Report a Bug", icon='URL').url = info["tracker_url"]
if user_addon:
- split.operator("wm.addon_remove", text=_("Remove"), icon='CANCEL').module = mod.__name__
+ split.operator("wm.addon_remove", text="Remove", icon='CANCEL').module = mod.__name__
for i in range(4 - tot_row):
split.separator()
@@ -1060,7 +1053,7 @@ class USERPREF_PT_addons(Panel):
if missing_modules and filter in {"All", "Enabled"}:
col.column().separator()
- col.column().label(text=_("Missing script files"))
+ col.column().label(text="Missing script files")
module_names = {mod.__name__ for mod, info in addons}
for module_name in sorted(missing_modules):
@@ -1075,292 +1068,5 @@ class USERPREF_PT_addons(Panel):
if is_enabled:
row.operator("wm.addon_disable", icon='CHECKBOX_HLT', text="", emboss=False).module = module_name
-
-class WM_OT_addon_enable(Operator):
- "Enable an addon"
- bl_idname = "wm.addon_enable"
- bl_label = "Enable Add-On"
-
- module = StringProperty(
- name="Module",
- description="Module name of the addon to enable",
- )
-
- def execute(self, context):
- mod = addon_utils.enable(self.module)
-
- if mod:
- info = addon_utils.module_bl_info(mod)
-
- info_ver = info.get("blender", (0, 0, 0))
-
- if info_ver > bpy.app.version:
- self.report({'WARNING'}, ("This script was written Blender "
- "version %d.%d.%d and might not "
- "function (correctly), "
- "though it is enabled") %
- info_ver)
- return {'FINISHED'}
- else:
- return {'CANCELLED'}
-
-
-class WM_OT_addon_disable(Operator):
- "Disable an addon"
- bl_idname = "wm.addon_disable"
- bl_label = "Disable Add-On"
-
- module = StringProperty(
- name="Module",
- description="Module name of the addon to disable",
- )
-
- def execute(self, context):
- addon_utils.disable(self.module)
- return {'FINISHED'}
-
-
-class WM_OT_addon_install(Operator):
- "Install an addon"
- bl_idname = "wm.addon_install"
- bl_label = "Install Add-On..."
-
- overwrite = BoolProperty(
- name="Overwrite",
- description="Remove existing addons with the same ID",
- default=True,
- )
- target = EnumProperty(
- name="Target Path",
- items=(('DEFAULT', "Default", ""),
- ('PREFS', "User Prefs", "")),
- )
-
- filepath = StringProperty(
- name="File Path",
- description="File path to write file to",
- )
- filter_folder = BoolProperty(
- name="Filter folders",
- default=True,
- options={'HIDDEN'},
- )
- filter_python = BoolProperty(
- name="Filter python",
- default=True,
- options={'HIDDEN'},
- )
- filter_glob = StringProperty(
- default="*.py;*.zip",
- options={'HIDDEN'},
- )
-
- @staticmethod
- def _module_remove(path_addons, module):
- module = os.path.splitext(module)[0]
- for f in os.listdir(path_addons):
- f_base = os.path.splitext(f)[0]
- if f_base == module:
- f_full = os.path.join(path_addons, f)
-
- if os.path.isdir(f_full):
- os.rmdir(f_full)
- else:
- os.remove(f_full)
-
- def execute(self, context):
- import traceback
- import zipfile
- import shutil
-
- pyfile = self.filepath
-
- if self.target == 'DEFAULT':
- # dont use bpy.utils.script_paths("addons") because we may not be able to write to it.
- path_addons = bpy.utils.user_resource('SCRIPTS', "addons", create=True)
- else:
- path_addons = bpy.context.user_preferences.filepaths.script_directory
- if path_addons:
- path_addons = os.path.join(path_addons, "addons")
-
- if not path_addons:
- self.report({'ERROR'}, "Failed to get addons path")
- return {'CANCELLED'}
-
- # create dir is if missing.
- if not os.path.exists(path_addons):
- os.makedirs(path_addons)
-
- # Check if we are installing from a target path,
- # doing so causes 2+ addons of same name or when the same from/to
- # location is used, removal of the file!
- addon_path = ""
- pyfile_dir = os.path.dirname(pyfile)
- for addon_path in addon_utils.paths():
- if os.path.samefile(pyfile_dir, addon_path):
- self.report({'ERROR'}, "Source file is in the addon search path: %r" % addon_path)
- return {'CANCELLED'}
- del addon_path
- del pyfile_dir
- # done checking for exceptional case
-
- addons_old = {mod.__name__ for mod in addon_utils.modules(USERPREF_PT_addons._addons_fake_modules)}
-
- #check to see if the file is in compressed format (.zip)
- if zipfile.is_zipfile(pyfile):
- try:
- file_to_extract = zipfile.ZipFile(pyfile, 'r')
- except:
- traceback.print_exc()
- return {'CANCELLED'}
-
- if self.overwrite:
- for f in file_to_extract.namelist():
- WM_OT_addon_install._module_remove(path_addons, f)
- else:
- for f in file_to_extract.namelist():
- path_dest = os.path.join(path_addons, os.path.basename(f))
- if os.path.exists(path_dest):
- self.report({'WARNING'}, "File already installed to %r\n" % path_dest)
- return {'CANCELLED'}
-
- try: # extract the file to "addons"
- file_to_extract.extractall(path_addons)
-
- # zip files can create this dir with metadata, don't need it
- macosx_dir = os.path.join(path_addons, '__MACOSX')
- if os.path.isdir(macosx_dir):
- shutil.rmtree(macosx_dir)
-
- except:
- traceback.print_exc()
- return {'CANCELLED'}
-
- else:
- path_dest = os.path.join(path_addons, os.path.basename(pyfile))
-
- if self.overwrite:
- WM_OT_addon_install._module_remove(path_addons, os.path.basename(pyfile))
- elif os.path.exists(path_dest):
- self.report({'WARNING'}, "File already installed to %r\n" % path_dest)
- return {'CANCELLED'}
-
- #if not compressed file just copy into the addon path
- try:
- shutil.copyfile(pyfile, path_dest)
-
- except:
- traceback.print_exc()
- return {'CANCELLED'}
-
- addons_new = {mod.__name__ for mod in addon_utils.modules(USERPREF_PT_addons._addons_fake_modules)} - addons_old
- addons_new.discard("modules")
-
- # disable any addons we may have enabled previously and removed.
- # this is unlikely but do just incase. bug [#23978]
- for new_addon in addons_new:
- addon_utils.disable(new_addon)
-
- # possible the zip contains multiple addons, we could disallow this
- # but for now just use the first
- for mod in addon_utils.modules(USERPREF_PT_addons._addons_fake_modules):
- if mod.__name__ in addons_new:
- info = addon_utils.module_bl_info(mod)
-
- # show the newly installed addon.
- context.window_manager.addon_filter = 'All'
- context.window_manager.addon_search = info["name"]
- break
-
- # incase a new module path was created to install this addon.
- bpy.utils.refresh_script_paths()
-
- # TODO, should not be a warning.
- # self.report({'WARNING'}, "File installed to '%s'\n" % path_dest)
- return {'FINISHED'}
-
- def invoke(self, context, event):
- wm = context.window_manager
- wm.fileselect_add(self)
- return {'RUNNING_MODAL'}
-
-
-class WM_OT_addon_remove(Operator):
- "Disable an addon"
- bl_idname = "wm.addon_remove"
- bl_label = "Remove Add-On"
-
- module = StringProperty(
- name="Module",
- description="Module name of the addon to remove",
- )
-
- @staticmethod
- def path_from_addon(module):
- for mod in addon_utils.modules(USERPREF_PT_addons._addons_fake_modules):
- if mod.__name__ == module:
- filepath = mod.__file__
- if os.path.exists(filepath):
- if os.path.splitext(os.path.basename(filepath))[0] == "__init__":
- return os.path.dirname(filepath), True
- else:
- return filepath, False
- return None, False
-
- def execute(self, context):
- path, isdir = WM_OT_addon_remove.path_from_addon(self.module)
- if path is None:
- self.report('WARNING', "Addon path %r could not be found" % path)
- return {'CANCELLED'}
-
- # incase its enabled
- addon_utils.disable(self.module)
-
- import shutil
- if isdir:
- shutil.rmtree(path)
- else:
- os.remove(path)
-
- context.area.tag_redraw()
- return {'FINISHED'}
-
- # lame confirmation check
- def draw(self, context):
- self.layout.label(text="Remove Addon: %r?" % self.module)
- path, isdir = WM_OT_addon_remove.path_from_addon(self.module)
- self.layout.label(text="Path: %r" % path)
-
- def invoke(self, context, event):
- wm = context.window_manager
- return wm.invoke_props_dialog(self, width=600)
-
-
-class WM_OT_addon_expand(Operator):
- "Display more information on this add-on"
- bl_idname = "wm.addon_expand"
- bl_label = ""
-
- module = StringProperty(
- name="Module",
- description="Module name of the addon to expand",
- )
-
- def execute(self, context):
- module_name = self.module
-
- # unlikely to fail, module should have already been imported
- try:
- # mod = __import__(module_name)
- mod = USERPREF_PT_addons.module_get(module_name)
- except:
- import traceback
- traceback.print_exc()
- return {'CANCELLED'}
-
- info = addon_utils.module_bl_info(mod)
- info["show_expanded"] = not info["show_expanded"]
- return {'FINISHED'}
-
if __name__ == "__main__": # only for live edit.
bpy.utils.register_module(__name__)
diff --git a/release/scripts/startup/bl_ui/space_userpref_keymap.py b/release/scripts/startup/bl_ui/space_userpref_keymap.py
index a0a614e4fb4..dcf9a7d2d7f 100644
--- a/release/scripts/startup/bl_ui/space_userpref_keymap.py
+++ b/release/scripts/startup/bl_ui/space_userpref_keymap.py
@@ -18,9 +18,8 @@
# <pep8 compliant>
import bpy
-from bpy.types import Menu, Operator, OperatorProperties
+from bpy.types import Menu, OperatorProperties
import os
-from blf import gettext as _
KM_HIERARCHY = [
@@ -132,7 +131,7 @@ class USERPREF_MT_keyconfigs(Menu):
preset_operator = "wm.keyconfig_activate"
def draw(self, context):
- props = self.layout.operator("wm.context_set_value", text=_("Blender (default)"))
+ props = self.layout.operator("wm.context_set_value", text="Blender (default)")
props.data_path = "window_manager.keyconfigs.active"
props.value = "context.window_manager.keyconfigs.default"
@@ -183,7 +182,7 @@ class InputKeyMapPanel:
row = col.row()
row.prop(km, "show_expanded_children", text="", emboss=False)
- row.label(text=_(km.name))
+ row.label(text=km.name)
row.label()
row.label()
@@ -191,7 +190,7 @@ class InputKeyMapPanel:
if km.is_modal:
row.label(text="", icon='LINKED')
if km.is_user_modified:
- row.operator("wm.keymap_restore", text=_("Restore"))
+ row.operator("wm.keymap_restore", text="Restore")
else:
row.label()
@@ -202,7 +201,7 @@ class InputKeyMapPanel:
subcol = self.indented_layout(col, level + 1)
subrow = subcol.row()
subrow.prop(km, "show_expanded_items", text="", emboss=False)
- subrow.label(text="%s " % _(km.name) + _("(Global)"))
+ subrow.label(text="%s " % km.name + "(Global)")
else:
km.show_expanded_items = True
@@ -214,7 +213,7 @@ class InputKeyMapPanel:
# "Add New" at end of keymap item list
col = self.indented_layout(col, level + 1)
subcol = col.split(percentage=0.2).column()
- subcol.operator("wm.keyitem_add", text=_("Add New"), icon='ZOOMIN')
+ subcol.operator("wm.keyitem_add", text="Add New", icon='ZOOMIN')
col.separator()
@@ -262,7 +261,7 @@ class InputKeyMapPanel:
if km.is_modal:
row.prop(kmi, "propvalue", text="")
else:
- row.label(text=_(kmi.name))
+ row.label(text=kmi.name)
row = split.row()
row.prop(kmi, "map_type", text="")
@@ -351,7 +350,7 @@ class InputKeyMapPanel:
row.label()
if km.is_user_modified:
- row.operator("wm.keymap_restore", text=_("Restore"))
+ row.operator("wm.keymap_restore", text="Restore")
else:
row.label()
@@ -361,7 +360,7 @@ class InputKeyMapPanel:
# "Add New" at end of keymap item list
col = self.indented_layout(layout, 1)
subcol = col.split(percentage=0.2).column()
- subcol.operator("wm.keyitem_add", text=_("Add New"), icon='ZOOMIN')
+ subcol.operator("wm.keyitem_add", text="Add New", icon='ZOOMIN')
def draw_hierarchy(self, display_keymaps, layout):
for entry in KM_HIERARCHY:
@@ -382,7 +381,7 @@ class InputKeyMapPanel:
#row.prop_search(wm.keyconfigs, "active", wm, "keyconfigs", text="Key Config:")
text = bpy.path.display_name(context.window_manager.keyconfigs.active.name)
if not text:
- text = _("Blender (default)")
+ text = "Blender (default)"
row.menu("USERPREF_MT_keyconfigs", text=text)
row.operator("wm.keyconfig_preset_add", text="", icon="ZOOMIN")
row.operator("wm.keyconfig_preset_add", text="", icon="ZOOMOUT").remove_active = True
@@ -402,9 +401,6 @@ class InputKeyMapPanel:
self.draw_hierarchy(display_keymaps, col)
-from bpy.props import StringProperty, BoolProperty, IntProperty
-
-
def export_properties(prefix, properties, lines=None):
if lines is None:
lines = []
@@ -420,397 +416,5 @@ def export_properties(prefix, properties, lines=None):
lines.append("%s.%s = %s\n" % (prefix, pname, value))
return lines
-
-class WM_OT_keyconfig_test(Operator):
- "Test keyconfig for conflicts"
- bl_idname = "wm.keyconfig_test"
- bl_label = _("Test Key Configuration for Conflicts")
-
- def testEntry(self, kc, entry, src=None, parent=None):
- result = False
-
- def kmistr(kmi):
- if km.is_modal:
- s = ["kmi = km.keymap_items.new_modal(\'%s\', \'%s\', \'%s\'" % (kmi.propvalue, kmi.type, kmi.value)]
- else:
- s = ["kmi = km.keymap_items.new(\'%s\', \'%s\', \'%s\'" % (kmi.idname, kmi.type, kmi.value)]
-
- if kmi.any:
- s.append(", any=True")
- else:
- if kmi.shift:
- s.append(", shift=True")
- if kmi.ctrl:
- s.append(", ctrl=True")
- if kmi.alt:
- s.append(", alt=True")
- if kmi.oskey:
- s.append(", oskey=True")
- if kmi.key_modifier and kmi.key_modifier != 'NONE':
- s.append(", key_modifier=\'%s\'" % kmi.key_modifier)
-
- s.append(")\n")
-
- props = kmi.properties
-
- if props is not None:
- export_properties("kmi.properties", props, s)
-
- return "".join(s).strip()
-
- idname, spaceid, regionid, children = entry
-
- km = kc.keymaps.find(idname, space_type=spaceid, region_type=regionid)
-
- if km:
- km = km.active()
-
- if src:
- for item in km.keymap_items:
- if src.compare(item):
- print("===========")
- print(parent.name)
- print(kmistr(src))
- print(km.name)
- print(kmistr(item))
- result = True
-
- for child in children:
- if self.testEntry(kc, child, src, parent):
- result = True
- else:
- for i in range(len(km.keymap_items)):
- src = km.keymap_items[i]
-
- for child in children:
- if self.testEntry(kc, child, src, km):
- result = True
-
- for j in range(len(km.keymap_items) - i - 1):
- item = km.keymap_items[j + i + 1]
- if src.compare(item):
- print("===========")
- print(km.name)
- print(kmistr(src))
- print(kmistr(item))
- result = True
-
- for child in children:
- if self.testEntry(kc, child):
- result = True
-
- return result
-
- def testConfig(self, kc):
- result = False
- for entry in KM_HIERARCHY:
- if self.testEntry(kc, entry):
- result = True
- return result
-
- def execute(self, context):
- wm = context.window_manager
- kc = wm.keyconfigs.default
-
- if self.testConfig(kc):
- print("CONFLICT")
-
- return {'FINISHED'}
-
-
-def _string_value(value):
- if isinstance(value, str) or isinstance(value, bool) or isinstance(value, float) or isinstance(value, int):
- result = repr(value)
- elif getattr(value, '__len__', False):
- return repr(list(value))
- else:
- print("Export key configuration: can't write ", value)
-
- return result
-
-
-class WM_OT_keyconfig_import(Operator):
- "Import key configuration from a python script"
- bl_idname = "wm.keyconfig_import"
- bl_label = "Import Key Configuration..."
-
- filepath = StringProperty(
- name="File Path",
- description="Filepath to write file to",
- default="keymap.py",
- )
- filter_folder = BoolProperty(
- name="Filter folders",
- default=True,
- options={'HIDDEN'},
- )
- filter_text = BoolProperty(
- name="Filter text",
- default=True,
- options={'HIDDEN'},
- )
- filter_python = BoolProperty(
- name="Filter python",
- default=True,
- options={'HIDDEN'},
- )
- keep_original = BoolProperty(
- name="Keep original",
- description="Keep original file after copying to configuration folder",
- default=True,
- )
-
- def execute(self, context):
- from os.path import basename
- import shutil
-
- if not self.filepath:
- self.report({'ERROR'}, "Filepath not set")
- return {'CANCELLED'}
-
- config_name = basename(self.filepath)
-
- path = bpy.utils.user_resource('SCRIPTS', os.path.join("presets", "keyconfig"), create=True)
- path = os.path.join(path, config_name)
-
- try:
- if self.keep_original:
- shutil.copy(self.filepath, path)
- else:
- shutil.move(self.filepath, path)
- except Exception as e:
- self.report({'ERROR'}, "Installing keymap failed: %s" % e)
- return {'CANCELLED'}
-
- # sneaky way to check we're actually running the code.
- bpy.utils.keyconfig_set(path)
-
- return {'FINISHED'}
-
- def invoke(self, context, event):
- wm = context.window_manager
- wm.fileselect_add(self)
- return {'RUNNING_MODAL'}
-
-# This operator is also used by interaction presets saving - AddPresetBase
-
-
-class WM_OT_keyconfig_export(Operator):
- "Export key configuration to a python script"
- bl_idname = "wm.keyconfig_export"
- bl_label = _("Export Key Configuration...")
-
- filepath = StringProperty(
- name="File Path",
- description="Filepath to write file to",
- default="keymap.py",
- )
- filter_folder = BoolProperty(
- name="Filter folders",
- default=True,
- options={'HIDDEN'},
- )
- filter_text = BoolProperty(
- name="Filter text",
- default=True,
- options={'HIDDEN'},
- )
- filter_python = BoolProperty(
- name="Filter python",
- default=True,
- options={'HIDDEN'},
- )
-
- def execute(self, context):
- if not self.filepath:
- raise Exception("Filepath not set")
-
- if not self.filepath.endswith('.py'):
- self.filepath += '.py'
-
- f = open(self.filepath, "w")
- if not f:
- raise Exception("Could not open file")
-
- wm = context.window_manager
- kc = wm.keyconfigs.active
-
- f.write("import bpy\n")
- f.write("import os\n\n")
- f.write("wm = bpy.context.window_manager\n")
- f.write("kc = wm.keyconfigs.new(os.path.splitext(os.path.basename(__file__))[0])\n\n") # keymap must be created by caller
-
- # Generate a list of keymaps to export:
- #
- # First add all user_modified keymaps (found in keyconfigs.user.keymaps list),
- # then add all remaining keymaps from the currently active custom keyconfig.
- #
- # This will create a final list of keymaps that can be used as a 'diff' against
- # the default blender keyconfig, recreating the current setup from a fresh blender
- # without needing to export keymaps which haven't been edited.
-
- class FakeKeyConfig():
- keymaps = []
- edited_kc = FakeKeyConfig()
- for km in wm.keyconfigs.user.keymaps:
- if km.is_user_modified:
- edited_kc.keymaps.append(km)
- # merge edited keymaps with non-default keyconfig, if it exists
- if kc != wm.keyconfigs.default:
- export_keymaps = _merge_keymaps(edited_kc, kc)
- else:
- export_keymaps = _merge_keymaps(edited_kc, edited_kc)
-
- for km, kc_x in export_keymaps:
-
- km = km.active()
-
- f.write("# Map %s\n" % km.name)
- f.write("km = kc.keymaps.new('%s', space_type='%s', region_type='%s', modal=%s)\n\n" % (km.name, km.space_type, km.region_type, km.is_modal))
- for kmi in km.keymap_items:
- if km.is_modal:
- f.write("kmi = km.keymap_items.new_modal('%s', '%s', '%s'" % (kmi.propvalue, kmi.type, kmi.value))
- else:
- f.write("kmi = km.keymap_items.new('%s', '%s', '%s'" % (kmi.idname, kmi.type, kmi.value))
- if kmi.any:
- f.write(", any=True")
- else:
- if kmi.shift:
- f.write(", shift=True")
- if kmi.ctrl:
- f.write(", ctrl=True")
- if kmi.alt:
- f.write(", alt=True")
- if kmi.oskey:
- f.write(", oskey=True")
- if kmi.key_modifier and kmi.key_modifier != 'NONE':
- f.write(", key_modifier='%s'" % kmi.key_modifier)
- f.write(")\n")
-
- props = kmi.properties
-
- if props is not None:
- f.write("".join(export_properties("kmi.properties", props)))
-
- f.write("\n")
-
- f.close()
-
- return {'FINISHED'}
-
- def invoke(self, context, event):
- wm = context.window_manager
- wm.fileselect_add(self)
- return {'RUNNING_MODAL'}
-
-
-class WM_OT_keymap_restore(Operator):
- "Restore key map(s)"
- bl_idname = "wm.keymap_restore"
- bl_label = "Restore Key Map(s)"
-
- all = BoolProperty(
- name="All Keymaps",
- description="Restore all keymaps to default",
- )
-
- def execute(self, context):
- wm = context.window_manager
-
- if self.all:
- for km in wm.keyconfigs.user.keymaps:
- km.restore_to_default()
- else:
- km = context.keymap
- km.restore_to_default()
-
- return {'FINISHED'}
-
-
-class WM_OT_keyitem_restore(Operator):
- "Restore key map item"
- bl_idname = "wm.keyitem_restore"
- bl_label = "Restore Key Map Item"
-
- item_id = IntProperty(
- name="Item Identifier",
- description="Identifier of the item to remove",
- )
-
- @classmethod
- def poll(cls, context):
- keymap = getattr(context, "keymap", None)
- return keymap
-
- def execute(self, context):
- km = context.keymap
- kmi = km.keymap_items.from_id(self.item_id)
-
- if (not kmi.is_user_defined) and kmi.is_user_modified:
- km.restore_item_to_default(kmi)
-
- return {'FINISHED'}
-
-
-class WM_OT_keyitem_add(Operator):
- "Add key map item"
- bl_idname = "wm.keyitem_add"
- bl_label = "Add Key Map Item"
-
- def execute(self, context):
- km = context.keymap
-
- if km.is_modal:
- km.keymap_items.new_modal("", 'A', 'PRESS') # kmi
- else:
- km.keymap_items.new("none", 'A', 'PRESS') # kmi
-
- # clear filter and expand keymap so we can see the newly added item
- if context.space_data.filter_text != "":
- context.space_data.filter_text = ""
- km.show_expanded_items = True
- km.show_expanded_children = True
-
- return {'FINISHED'}
-
-
-class WM_OT_keyitem_remove(Operator):
- "Remove key map item"
- bl_idname = "wm.keyitem_remove"
- bl_label = "Remove Key Map Item"
-
- item_id = IntProperty(
- name="Item Identifier",
- description="Identifier of the item to remove",
- )
-
- @classmethod
- def poll(cls, context):
- return hasattr(context, "keymap")
-
- def execute(self, context):
- km = context.keymap
- kmi = km.keymap_items.from_id(self.item_id)
- km.keymap_items.remove(kmi)
- return {'FINISHED'}
-
-
-class WM_OT_keyconfig_remove(Operator):
- "Remove key config"
- bl_idname = "wm.keyconfig_remove"
- bl_label = "Remove Key Config"
-
- @classmethod
- def poll(cls, context):
- wm = context.window_manager
- keyconf = wm.keyconfigs.active
- return keyconf and keyconf.is_user_defined
-
- def execute(self, context):
- wm = context.window_manager
- keyconfig = wm.keyconfigs.active
- wm.keyconfigs.remove(keyconfig)
- return {'FINISHED'}
-
if __name__ == "__main__": # only for live edit.
bpy.utils.register_module(__name__)
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index 2e86e875bab..f9e42862b9c 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -18,8 +18,7 @@
# <pep8 compliant>
import bpy
-from bpy.types import Header, Menu, Operator, Panel
-from blf import gettext as _
+from bpy.types import Header, Menu, Panel
class VIEW3D_HT_header(Header):
@@ -125,9 +124,9 @@ class ShowHideMenu():
def draw(self, context):
layout = self.layout
- layout.operator("%s.reveal" % self._operator_name, text=_("Show Hidden"))
- layout.operator("%s.hide" % self._operator_name, text=_("Hide Selected"))
- layout.operator("%s.hide" % self._operator_name, text=_("Hide Unselected")).unselected = True
+ layout.operator("%s.reveal" % self._operator_name, text="Show Hidden")
+ layout.operator("%s.hide" % self._operator_name, text="Hide Selected")
+ layout.operator("%s.hide" % self._operator_name, text="Hide Unselected").unselected = True
class VIEW3D_MT_transform(Menu):
@@ -146,35 +145,35 @@ class VIEW3D_MT_transform(Menu):
layout.separator()
- layout.operator("transform.tosphere", text=_("To Sphere"))
- layout.operator("transform.shear", text=_("Shear"))
- layout.operator("transform.warp", text=_("Warp"))
- layout.operator("transform.push_pull", text=_("Push/Pull"))
+ layout.operator("transform.tosphere", text="To Sphere")
+ layout.operator("transform.shear", text="Shear")
+ layout.operator("transform.warp", text="Warp")
+ layout.operator("transform.push_pull", text="Push/Pull")
layout.separator()
- layout.operator("transform.translate", text=_("Move Texture Space")).texture_space = True
- layout.operator("transform.resize", text=_("Scale Texture Space")).texture_space = True
+ layout.operator("transform.translate", text="Move Texture Space").texture_space = True
+ layout.operator("transform.resize", text="Scale Texture Space").texture_space = True
layout.separator()
obj = context.object
if obj.type == 'ARMATURE' and obj.mode in {'EDIT', 'POSE'} and obj.data.draw_type in {'BBONE', 'ENVELOPE'}:
- layout.operator("transform.transform", text=_("Scale Envelope/BBone")).mode = 'BONE_SIZE'
+ layout.operator("transform.transform", text="Scale Envelope/BBone").mode = 'BONE_SIZE'
if context.edit_object and context.edit_object.type == 'ARMATURE':
layout.operator("armature.align")
else:
layout.operator_context = 'EXEC_REGION_WIN'
- layout.operator("transform.transform", text=_("Align to Transform Orientation")).mode = 'ALIGN' # XXX see alignmenu() in edit.c of b2.4x to get this working
+ layout.operator("transform.transform", text="Align to Transform Orientation").mode = 'ALIGN' # XXX see alignmenu() in edit.c of b2.4x to get this working
layout.separator()
layout.operator_context = 'EXEC_AREA'
- layout.operator("object.origin_set", text=_("Geometry to Origin")).type = 'GEOMETRY_ORIGIN'
- layout.operator("object.origin_set", text=_("Origin to Geometry")).type = 'ORIGIN_GEOMETRY'
- layout.operator("object.origin_set", text=_("Origin to 3D Cursor")).type = 'ORIGIN_CURSOR'
+ layout.operator("object.origin_set", text="Geometry to Origin").type = 'GEOMETRY_ORIGIN'
+ layout.operator("object.origin_set", text="Origin to Geometry").type = 'ORIGIN_GEOMETRY'
+ layout.operator("object.origin_set", text="Origin to 3D Cursor").type = 'ORIGIN_CURSOR'
layout.separator()
@@ -192,32 +191,32 @@ class VIEW3D_MT_mirror(Menu):
def draw(self, context):
layout = self.layout
- layout.operator("transform.mirror", text=_("Interactive Mirror"))
+ layout.operator("transform.mirror", text="Interactive Mirror")
layout.separator()
layout.operator_context = 'INVOKE_REGION_WIN'
- props = layout.operator("transform.mirror", text=_("X Global"))
+ props = layout.operator("transform.mirror", text="X Global")
props.constraint_axis = (True, False, False)
props.constraint_orientation = 'GLOBAL'
- props = layout.operator("transform.mirror", text=_("Y Global"))
+ props = layout.operator("transform.mirror", text="Y Global")
props.constraint_axis = (False, True, False)
props.constraint_orientation = 'GLOBAL'
- props = layout.operator("transform.mirror", text=_("Z Global"))
+ props = layout.operator("transform.mirror", text="Z Global")
props.constraint_axis = (False, False, True)
props.constraint_orientation = 'GLOBAL'
if context.edit_object:
layout.separator()
- props = layout.operator("transform.mirror", text=_("X Local"))
+ props = layout.operator("transform.mirror", text="X Local")
props.constraint_axis = (True, False, False)
props.constraint_orientation = 'LOCAL'
- props = layout.operator("transform.mirror", text=_("Y Local"))
+ props = layout.operator("transform.mirror", text="Y Local")
props.constraint_axis = (False, True, False)
props.constraint_orientation = 'LOCAL'
- props = layout.operator("transform.mirror", text=_("Z Local"))
+ props = layout.operator("transform.mirror", text="Z Local")
props.constraint_axis = (False, False, True)
props.constraint_orientation = 'LOCAL'
@@ -230,15 +229,15 @@ class VIEW3D_MT_snap(Menu):
def draw(self, context):
layout = self.layout
- layout.operator("view3d.snap_selected_to_grid", text=_("Selection to Grid"))
- layout.operator("view3d.snap_selected_to_cursor", text=_("Selection to Cursor"))
+ layout.operator("view3d.snap_selected_to_grid", text="Selection to Grid")
+ layout.operator("view3d.snap_selected_to_cursor", text="Selection to Cursor")
layout.separator()
- layout.operator("view3d.snap_cursor_to_selected", text=_("Cursor to Selected"))
- layout.operator("view3d.snap_cursor_to_center", text=_("Cursor to Center"))
- layout.operator("view3d.snap_cursor_to_grid", text=_("Cursor to Grid"))
- layout.operator("view3d.snap_cursor_to_active", text=_("Cursor to Active"))
+ layout.operator("view3d.snap_cursor_to_selected", text="Cursor to Selected")
+ layout.operator("view3d.snap_cursor_to_center", text="Cursor to Center")
+ layout.operator("view3d.snap_cursor_to_grid", text="Cursor to Grid")
+ layout.operator("view3d.snap_cursor_to_active", text="Cursor to Active")
class VIEW3D_MT_uv_map(Menu):
@@ -264,7 +263,7 @@ class VIEW3D_MT_uv_map(Menu):
layout.separator()
layout.operator("uv.project_from_view")
- layout.operator("uv.project_from_view", text=_("Project from View (Bounds)")).scale_to_bounds = True
+ layout.operator("uv.project_from_view", text="Project from View (Bounds)").scale_to_bounds = True
layout.separator()
@@ -285,15 +284,15 @@ class VIEW3D_MT_view(Menu):
layout.separator()
- layout.operator("view3d.viewnumpad", text=_("Camera")).type = 'CAMERA'
- layout.operator("view3d.viewnumpad", text=_("Top")).type = 'TOP'
- layout.operator("view3d.viewnumpad", text=_("Bottom")).type = 'BOTTOM'
- layout.operator("view3d.viewnumpad", text=_("Front")).type = 'FRONT'
- layout.operator("view3d.viewnumpad", text=_("Back")).type = 'BACK'
- layout.operator("view3d.viewnumpad", text=_("Right")).type = 'RIGHT'
- layout.operator("view3d.viewnumpad", text=_("Left")).type = 'LEFT'
+ layout.operator("view3d.viewnumpad", text="Camera").type = 'CAMERA'
+ layout.operator("view3d.viewnumpad", text="Top").type = 'TOP'
+ layout.operator("view3d.viewnumpad", text="Bottom").type = 'BOTTOM'
+ layout.operator("view3d.viewnumpad", text="Front").type = 'FRONT'
+ layout.operator("view3d.viewnumpad", text="Back").type = 'BACK'
+ layout.operator("view3d.viewnumpad", text="Right").type = 'RIGHT'
+ layout.operator("view3d.viewnumpad", text="Left").type = 'LEFT'
- layout.menu("VIEW3D_MT_view_cameras", text=_("Cameras"))
+ layout.menu("VIEW3D_MT_view_cameras", text="Cameras")
layout.separator()
@@ -308,22 +307,22 @@ class VIEW3D_MT_view(Menu):
layout.operator_context = 'INVOKE_REGION_WIN'
- layout.operator("view3d.clip_border", text=_("Clipping Border..."))
- layout.operator("view3d.zoom_border", text=_("Zoom Border..."))
+ layout.operator("view3d.clip_border", text="Clipping Border...")
+ layout.operator("view3d.zoom_border", text="Zoom Border...")
layout.separator()
- layout.operator("view3d.layers", text=_("Show All Layers")).nr = 0
+ layout.operator("view3d.layers", text="Show All Layers").nr = 0
layout.separator()
- layout.operator("view3d.localview", text=_("View Global/Local"))
+ layout.operator("view3d.localview", text="View Global/Local")
layout.operator("view3d.view_selected")
layout.operator("view3d.view_all")
layout.separator()
- layout.operator("screen.animation_play", text=_("Playback Animation"))
+ layout.operator("screen.animation_play", text="Playback Animation")
layout.separator()
@@ -346,9 +345,9 @@ class VIEW3D_MT_view_navigation(Menu):
layout.separator()
- layout.operator("view3d.zoom", text=_("Zoom In")).delta = 1
- layout.operator("view3d.zoom", text=_("Zoom Out")).delta = -1
- layout.operator("view3d.zoom_camera_1_to_1", text=_("Zoom Camera 1:1"))
+ layout.operator("view3d.zoom", text="Zoom In").delta = 1
+ layout.operator("view3d.zoom", text="Zoom Out").delta = -1
+ layout.operator("view3d.zoom_camera_1_to_1", text="Zoom Camera 1:1")
layout.separator()
@@ -365,8 +364,8 @@ class VIEW3D_MT_view_align(Menu):
layout.separator()
- layout.operator("view3d.view_all", text=_("Center Cursor and View All")).center = True
- layout.operator("view3d.camera_to_view", text=_("Align Active Camera to View"))
+ layout.operator("view3d.view_all", text="Center Cursor and View All").center = True
+ layout.operator("view3d.camera_to_view", text="Align Active Camera to View")
layout.operator("view3d.view_selected")
layout.operator("view3d.view_center_cursor")
@@ -377,22 +376,22 @@ class VIEW3D_MT_view_align_selected(Menu):
def draw(self, context):
layout = self.layout
- props = layout.operator("view3d.viewnumpad", text=_("Top"))
+ props = layout.operator("view3d.viewnumpad", text="Top")
props.align_active = True
props.type = 'TOP'
- props = layout.operator("view3d.viewnumpad", text=_("Bottom"))
+ props = layout.operator("view3d.viewnumpad", text="Bottom")
props.align_active = True
props.type = 'BOTTOM'
- props = layout.operator("view3d.viewnumpad", text=_("Front"))
+ props = layout.operator("view3d.viewnumpad", text="Front")
props.align_active = True
props.type = 'FRONT'
- props = layout.operator("view3d.viewnumpad", text=_("Back"))
+ props = layout.operator("view3d.viewnumpad", text="Back")
props.align_active = True
props.type = 'BACK'
- props = layout.operator("view3d.viewnumpad", text=_("Right"))
+ props = layout.operator("view3d.viewnumpad", text="Right")
props.align_active = True
props.type = 'RIGHT'
- props = layout.operator("view3d.viewnumpad", text=_("Left"))
+ props = layout.operator("view3d.viewnumpad", text="Left")
props.align_active = True
props.type = 'LEFT'
@@ -404,7 +403,7 @@ class VIEW3D_MT_view_cameras(Menu):
layout = self.layout
layout.operator("view3d.object_as_camera")
- layout.operator("view3d.viewnumpad", text=_("Active Camera")).type = 'CAMERA'
+ layout.operator("view3d.viewnumpad", text="Active Camera").type = 'CAMERA'
# ********** Select menus, suffix from context.mode **********
@@ -420,19 +419,19 @@ class VIEW3D_MT_select_object(Menu):
layout.separator()
- layout.operator("object.select_all", text=_("Select/Deselect All"))
- layout.operator("object.select_inverse", text=_("Inverse"))
- layout.operator("object.select_random", text=_("Random"))
- layout.operator("object.select_mirror", text=_("Mirror"))
- layout.operator("object.select_by_layer", text=_("Select All by Layer"))
- layout.operator_menu_enum("object.select_by_type", "type", text=_("Select All by Type..."))
- layout.operator("object.select_camera", text=_("Select Camera"))
+ layout.operator("object.select_all", text="Select/Deselect All")
+ layout.operator("object.select_inverse", text="Inverse")
+ layout.operator("object.select_random", text="Random")
+ layout.operator("object.select_mirror", text="Mirror")
+ layout.operator("object.select_by_layer", text="Select All by Layer")
+ layout.operator_menu_enum("object.select_by_type", "type", text="Select All by Type...")
+ layout.operator("object.select_camera", text="Select Camera")
layout.separator()
- layout.operator_menu_enum("object.select_grouped", "type", text=_("Grouped"))
- layout.operator_menu_enum("object.select_linked", "type", text=_("Linked"))
- layout.operator("object.select_pattern", text=_("Select Pattern..."))
+ layout.operator_menu_enum("object.select_grouped", "type", text="Grouped")
+ layout.operator_menu_enum("object.select_linked", "type", text="Linked")
+ layout.operator("object.select_pattern", text="Select Pattern...")
class VIEW3D_MT_select_pose(Menu):
@@ -445,31 +444,31 @@ class VIEW3D_MT_select_pose(Menu):
layout.separator()
- layout.operator("pose.select_all", text=_("Select/Deselect All"))
- layout.operator("pose.select_inverse", text=_("Inverse"))
- layout.operator("pose.select_flip_active", text=_("Flip Active"))
- layout.operator("pose.select_constraint_target", text=_("Constraint Target"))
- layout.operator("pose.select_linked", text=_("Linked"))
+ layout.operator("pose.select_all", text="Select/Deselect All")
+ layout.operator("pose.select_inverse", text="Inverse")
+ layout.operator("pose.select_flip_active", text="Flip Active")
+ layout.operator("pose.select_constraint_target", text="Constraint Target")
+ layout.operator("pose.select_linked", text="Linked")
layout.separator()
- layout.operator("pose.select_hierarchy", text=_("Parent")).direction = 'PARENT'
- layout.operator("pose.select_hierarchy", text=_("Child")).direction = 'CHILD'
+ layout.operator("pose.select_hierarchy", text="Parent").direction = 'PARENT'
+ layout.operator("pose.select_hierarchy", text="Child").direction = 'CHILD'
layout.separator()
- props = layout.operator("pose.select_hierarchy", text=_("Extend Parent"))
+ props = layout.operator("pose.select_hierarchy", text="Extend Parent")
props.extend = True
props.direction = 'PARENT'
- props = layout.operator("pose.select_hierarchy", text=_("Extend Child"))
+ props = layout.operator("pose.select_hierarchy", text="Extend Child")
props.extend = True
props.direction = 'CHILD'
layout.separator()
- layout.operator_menu_enum("pose.select_grouped", "type", text=_("Grouped"))
- layout.operator("object.select_pattern", text=_("Select Pattern..."))
+ layout.operator_menu_enum("pose.select_grouped", "type", text="Grouped")
+ layout.operator("object.select_pattern", text="Select Pattern...")
class VIEW3D_MT_select_particle(Menu):
@@ -482,7 +481,7 @@ class VIEW3D_MT_select_particle(Menu):
layout.separator()
- layout.operator("particle.select_all", text=_("Select/Deselect All"))
+ layout.operator("particle.select_all", text="Select/Deselect All")
layout.operator("particle.select_linked")
layout.operator("particle.select_inverse")
@@ -493,8 +492,8 @@ class VIEW3D_MT_select_particle(Menu):
layout.separator()
- layout.operator("particle.select_roots", text=_("Roots"))
- layout.operator("particle.select_tips", text=_("Tips"))
+ layout.operator("particle.select_roots", text="Roots")
+ layout.operator("particle.select_tips", text="Tips")
class VIEW3D_MT_select_edit_mesh(Menu):
@@ -508,40 +507,40 @@ class VIEW3D_MT_select_edit_mesh(Menu):
layout.separator()
- layout.operator("mesh.select_all", text=_("Select/Deselect All"))
- layout.operator("mesh.select_inverse", text=_("Inverse"))
+ layout.operator("mesh.select_all", text="Select/Deselect All")
+ layout.operator("mesh.select_inverse", text="Inverse")
layout.separator()
- layout.operator("mesh.select_random", text=_("Random"))
- layout.operator("mesh.select_nth", text=_("Every N Number of Verts"))
- layout.operator("mesh.edges_select_sharp", text=_("Sharp Edges"))
- layout.operator("mesh.faces_select_linked_flat", text=_("Linked Flat Faces"))
- layout.operator("mesh.faces_select_interior", text=_("Interior Faces"))
- layout.operator("mesh.select_axis", text=_("Side of Active"))
+ layout.operator("mesh.select_random", text="Random")
+ layout.operator("mesh.select_nth", text="Every N Number of Verts")
+ layout.operator("mesh.edges_select_sharp", text="Sharp Edges")
+ layout.operator("mesh.faces_select_linked_flat", text="Linked Flat Faces")
+ layout.operator("mesh.faces_select_interior", text="Interior Faces")
+ layout.operator("mesh.select_axis", text="Side of Active")
layout.separator()
- layout.operator("mesh.select_by_number_vertices", text=_("Triangles")).type = 'TRIANGLES'
- layout.operator("mesh.select_by_number_vertices", text=_("Quads")).type = 'QUADS'
+ layout.operator("mesh.select_by_number_vertices", text="Triangles").type = 'TRIANGLES'
+ layout.operator("mesh.select_by_number_vertices", text="Quads").type = 'QUADS'
if context.scene.tool_settings.mesh_select_mode[2] == False:
- layout.operator("mesh.select_non_manifold", text=_("Non Manifold"))
- layout.operator("mesh.select_by_number_vertices", text=_("Loose Verts/Edges")).type = 'OTHER'
- layout.operator("mesh.select_similar", text=_("Similar"))
+ layout.operator("mesh.select_non_manifold", text="Non Manifold")
+ layout.operator("mesh.select_by_number_vertices", text="Loose Verts/Edges").type = 'OTHER'
+ layout.operator("mesh.select_similar", text="Similar")
layout.separator()
- layout.operator("mesh.select_less", text=_("Less"))
- layout.operator("mesh.select_more", text=_("More"))
+ layout.operator("mesh.select_less", text="Less")
+ layout.operator("mesh.select_more", text="More")
layout.separator()
- layout.operator("mesh.select_mirror", text=_("Mirror"))
+ layout.operator("mesh.select_mirror", text="Mirror")
- layout.operator("mesh.select_linked", text=_("Linked"))
- layout.operator("mesh.select_vertex_path", text=_("Vertex Path"))
- layout.operator("mesh.loop_multi_select", text=_("Edge Loop"))
- layout.operator("mesh.loop_multi_select", text=_("Edge Ring")).ring = True
+ layout.operator("mesh.select_linked", text="Linked")
+ layout.operator("mesh.select_vertex_path", text="Vertex Path")
+ layout.operator("mesh.loop_multi_select", text="Edge Loop")
+ layout.operator("mesh.loop_multi_select", text="Edge Ring").ring = True
layout.separator()
@@ -560,10 +559,10 @@ class VIEW3D_MT_select_edit_curve(Menu):
layout.separator()
- layout.operator("curve.select_all", text=_("Select/Deselect All"))
+ layout.operator("curve.select_all", text="Select/Deselect All")
layout.operator("curve.select_inverse")
layout.operator("curve.select_random")
- layout.operator("curve.select_nth", text=_("Every Nth Number of Points"))
+ layout.operator("curve.select_nth", text="Every Nth Number of Points")
layout.separator()
@@ -589,10 +588,10 @@ class VIEW3D_MT_select_edit_surface(Menu):
layout.separator()
- layout.operator("curve.select_all", text=_("Select/Deselect All"))
+ layout.operator("curve.select_all", text="Select/Deselect All")
layout.operator("curve.select_inverse")
layout.operator("curve.select_random")
- layout.operator("curve.select_nth", text=_("Every Nth Number of Points"))
+ layout.operator("curve.select_nth", text="Every Nth Number of Points")
layout.separator()
@@ -632,7 +631,7 @@ class VIEW3D_MT_select_edit_lattice(Menu):
layout.separator()
- layout.operator("lattice.select_all", text=_("Select/Deselect All"))
+ layout.operator("lattice.select_all", text="Select/Deselect All")
class VIEW3D_MT_select_edit_armature(Menu):
@@ -645,25 +644,25 @@ class VIEW3D_MT_select_edit_armature(Menu):
layout.separator()
- layout.operator("armature.select_all", text=_("Select/Deselect All"))
- layout.operator("armature.select_inverse", text=_("Inverse"))
+ layout.operator("armature.select_all", text="Select/Deselect All")
+ layout.operator("armature.select_inverse", text="Inverse")
layout.separator()
- layout.operator("armature.select_hierarchy", text=_("Parent")).direction = 'PARENT'
- layout.operator("armature.select_hierarchy", text=_("Child")).direction = 'CHILD'
+ layout.operator("armature.select_hierarchy", text="Parent").direction = 'PARENT'
+ layout.operator("armature.select_hierarchy", text="Child").direction = 'CHILD'
layout.separator()
- props = layout.operator("armature.select_hierarchy", text=_("Extend Parent"))
+ props = layout.operator("armature.select_hierarchy", text="Extend Parent")
props.extend = True
props.direction = 'PARENT'
- props = layout.operator("armature.select_hierarchy", text=_("Extend Child"))
+ props = layout.operator("armature.select_hierarchy", text="Extend Child")
props.extend = True
props.direction = 'CHILD'
- layout.operator("object.select_pattern", text=_("Select Pattern..."))
+ layout.operator("object.select_pattern", text="Select Pattern...")
class VIEW3D_MT_select_face(Menu): # XXX no matching enum
@@ -706,11 +705,11 @@ class VIEW3D_MT_object(Menu):
layout.operator("object.duplicate_move")
layout.operator("object.duplicate_move_linked")
- layout.operator("object.delete", text=_("Delete..."))
- layout.operator("object.proxy_make", text=_("Make Proxy..."))
- layout.menu("VIEW3D_MT_make_links", text=_("Make Links..."))
+ layout.operator("object.delete", text="Delete...")
+ layout.operator("object.proxy_make", text="Make Proxy...")
+ layout.menu("VIEW3D_MT_make_links", text="Make Links...")
layout.operator("object.make_dupli_face")
- layout.operator_menu_enum("object.make_local", "type", text=_("Make Local..."))
+ layout.operator_menu_enum("object.make_local", "type", text="Make Local...")
layout.menu("VIEW3D_MT_make_single_user")
layout.separator()
@@ -731,7 +730,7 @@ class VIEW3D_MT_object(Menu):
layout.separator()
- layout.operator("object.move_to_layer", text=_("Move to Layer..."))
+ layout.operator("object.move_to_layer", text="Move to Layer...")
layout.menu("VIEW3D_MT_object_showhide")
layout.operator_menu_enum("object.convert", "target")
@@ -743,9 +742,9 @@ class VIEW3D_MT_object_animation(Menu):
def draw(self, context):
layout = self.layout
- layout.operator("anim.keyframe_insert_menu", text=_("Insert Keyframe..."))
- layout.operator("anim.keyframe_delete_v3d", text=_("Delete Keyframe..."))
- layout.operator("anim.keying_set_active_set", text=_("Change Keying Set..."))
+ layout.operator("anim.keyframe_insert_menu", text="Insert Keyframe...")
+ layout.operator("anim.keyframe_delete_v3d", text="Delete Keyframe...")
+ layout.operator("anim.keying_set_active_set", text="Change Keying Set...")
class VIEW3D_MT_object_clear(Menu):
@@ -754,10 +753,10 @@ class VIEW3D_MT_object_clear(Menu):
def draw(self, context):
layout = self.layout
- layout.operator("object.location_clear", text=_("Location"))
- layout.operator("object.rotation_clear", text=_("Rotation"))
- layout.operator("object.scale_clear", text=_("Scale"))
- layout.operator("object.origin_clear", text=_("Origin"))
+ layout.operator("object.location_clear", text="Location")
+ layout.operator("object.rotation_clear", text="Rotation")
+ layout.operator("object.scale_clear", text="Scale")
+ layout.operator("object.origin_clear", text="Origin")
class VIEW3D_MT_object_specials(Menu):
@@ -776,19 +775,19 @@ class VIEW3D_MT_object_specials(Menu):
layout.operator_context = 'INVOKE_REGION_WIN'
if obj.data.type == 'PERSP':
- props = layout.operator("wm.context_modal_mouse", text=_("Camera Lens Angle"))
+ props = layout.operator("wm.context_modal_mouse", text="Camera Lens Angle")
props.data_path_iter = "selected_editable_objects"
props.data_path_item = "data.lens"
props.input_scale = 0.1
else:
- props = layout.operator("wm.context_modal_mouse", text=_("Camera Lens Scale"))
+ props = layout.operator("wm.context_modal_mouse", text="Camera Lens Scale")
props.data_path_iter = "selected_editable_objects"
props.data_path_item = "data.ortho_scale"
props.input_scale = 0.01
if not obj.data.dof_object:
#layout.label(text="Test Has DOF obj");
- props = layout.operator("wm.context_modal_mouse", text=_("DOF Distance"))
+ props = layout.operator("wm.context_modal_mouse", text="DOF Distance")
props.data_path_iter = "selected_editable_objects"
props.data_path_item = "data.dof_distance"
props.input_scale = 0.02
@@ -796,12 +795,12 @@ class VIEW3D_MT_object_specials(Menu):
if obj.type in {'CURVE', 'FONT'}:
layout.operator_context = 'INVOKE_REGION_WIN'
- props = layout.operator("wm.context_modal_mouse", text=_("Extrude Size"))
+ props = layout.operator("wm.context_modal_mouse", text="Extrude Size")
props.data_path_iter = "selected_editable_objects"
props.data_path_item = "data.extrude"
props.input_scale = 0.01
- props = layout.operator("wm.context_modal_mouse", text=_("Width Size"))
+ props = layout.operator("wm.context_modal_mouse", text="Width Size")
props.data_path_iter = "selected_editable_objects"
props.data_path_item = "data.offset"
props.input_scale = 0.01
@@ -809,7 +808,7 @@ class VIEW3D_MT_object_specials(Menu):
if obj.type == 'EMPTY':
layout.operator_context = 'INVOKE_REGION_WIN'
- props = layout.operator("wm.context_modal_mouse", text=_("Empty Draw Size"))
+ props = layout.operator("wm.context_modal_mouse", text="Empty Draw Size")
props.data_path_iter = "selected_editable_objects"
props.data_path_item = "empty_draw_size"
props.input_scale = 0.01
@@ -817,34 +816,34 @@ class VIEW3D_MT_object_specials(Menu):
if obj.type == 'LAMP':
layout.operator_context = 'INVOKE_REGION_WIN'
- props = layout.operator("wm.context_modal_mouse", text=_("Energy"))
+ props = layout.operator("wm.context_modal_mouse", text="Energy")
props.data_path_iter = "selected_editable_objects"
props.data_path_item = "data.energy"
if obj.data.type in {'SPOT', 'AREA', 'POINT'}:
- props = layout.operator("wm.context_modal_mouse", text=_("Falloff Distance"))
+ props = layout.operator("wm.context_modal_mouse", text="Falloff Distance")
props.data_path_iter = "selected_editable_objects"
props.data_path_item = "data.distance"
props.input_scale = 0.1
if obj.data.type == 'SPOT':
layout.separator()
- props = layout.operator("wm.context_modal_mouse", text=_("Spot Size"))
+ props = layout.operator("wm.context_modal_mouse", text="Spot Size")
props.data_path_iter = "selected_editable_objects"
props.data_path_item = "data.spot_size"
props.input_scale = 0.01
- props = layout.operator("wm.context_modal_mouse", text=_("Spot Blend"))
+ props = layout.operator("wm.context_modal_mouse", text="Spot Blend")
props.data_path_iter = "selected_editable_objects"
props.data_path_item = "data.spot_blend"
props.input_scale = -0.01
- props = layout.operator("wm.context_modal_mouse", text=_("Clip Start"))
+ props = layout.operator("wm.context_modal_mouse", text="Clip Start")
props.data_path_iter = "selected_editable_objects"
props.data_path_item = "data.shadow_buffer_clip_start"
props.input_scale = 0.05
- props = layout.operator("wm.context_modal_mouse", text=_("Clip End"))
+ props = layout.operator("wm.context_modal_mouse", text="Clip End")
props.data_path_iter = "selected_editable_objects"
props.data_path_item = "data.shadow_buffer_clip_end"
props.input_scale = 0.05
@@ -861,16 +860,16 @@ class VIEW3D_MT_object_apply(Menu):
def draw(self, context):
layout = self.layout
- layout.operator("object.transform_apply", text=_("Location")).location = True
- layout.operator("object.transform_apply", text=_("Rotation")).rotation = True
- layout.operator("object.transform_apply", text=_("Scale")).scale = True
- props = layout.operator("object.transform_apply", text=_("Rotation & Scale"))
+ layout.operator("object.transform_apply", text="Location").location = True
+ layout.operator("object.transform_apply", text="Rotation").rotation = True
+ layout.operator("object.transform_apply", text="Scale").scale = True
+ props = layout.operator("object.transform_apply", text="Rotation & Scale")
props.scale = True
props.rotation = True
layout.separator()
- layout.operator("object.visual_transform_apply", text=_("Visual Transform"))
+ layout.operator("object.visual_transform_apply", text="Visual Transform")
layout.operator("object.duplicates_make_real")
@@ -880,8 +879,8 @@ class VIEW3D_MT_object_parent(Menu):
def draw(self, context):
layout = self.layout
- layout.operator("object.parent_set", text=_("Set"))
- layout.operator("object.parent_clear", text=_("Clear"))
+ layout.operator("object.parent_set", text="Set")
+ layout.operator("object.parent_clear", text="Clear")
class VIEW3D_MT_object_track(Menu):
@@ -890,8 +889,8 @@ class VIEW3D_MT_object_track(Menu):
def draw(self, context):
layout = self.layout
- layout.operator("object.track_set", text=_("Set"))
- layout.operator("object.track_clear", text=_("Clear"))
+ layout.operator("object.track_set", text="Set")
+ layout.operator("object.track_clear", text="Clear")
class VIEW3D_MT_object_group(Menu):
@@ -926,9 +925,9 @@ class VIEW3D_MT_object_showhide(Menu):
def draw(self, context):
layout = self.layout
- layout.operator("object.hide_view_clear", text=_("Show Hidden"))
- layout.operator("object.hide_view_set", text=_("Hide Selected"))
- layout.operator("object.hide_view_set", text=_("Hide Unselected")).unselected = True
+ layout.operator("object.hide_view_clear", text="Show Hidden")
+ layout.operator("object.hide_view_set", text="Hide Selected")
+ layout.operator("object.hide_view_set", text="Hide Unselected").unselected = True
class VIEW3D_MT_make_single_user(Menu):
@@ -937,19 +936,19 @@ class VIEW3D_MT_make_single_user(Menu):
def draw(self, context):
layout = self.layout
- props = layout.operator("object.make_single_user", text=_("Object"))
+ props = layout.operator("object.make_single_user", text="Object")
props.object = True
- props = layout.operator("object.make_single_user", text=_("Object & Data"))
+ props = layout.operator("object.make_single_user", text="Object & Data")
props.object = props.obdata = True
- props = layout.operator("object.make_single_user", text=_("Object & Data & Materials+Tex"))
+ props = layout.operator("object.make_single_user", text="Object & Data & Materials+Tex")
props.object = props.obdata = props.material = props.texture = True
- props = layout.operator("object.make_single_user", text=_("Materials+Tex"))
+ props = layout.operator("object.make_single_user", text="Materials+Tex")
props.material = props.texture = True
- props = layout.operator("object.make_single_user", text=_("Object Animation"))
+ props = layout.operator("object.make_single_user", text="Object Animation")
props.animation = True
@@ -961,11 +960,11 @@ class VIEW3D_MT_make_links(Menu):
if(len(bpy.data.scenes) > 10):
layout.operator_context = 'INVOKE_DEFAULT'
- layout.operator("object.make_links_scene", text=_("Objects to Scene..."), icon='OUTLINER_OB_EMPTY')
- layout.operator("object.make_links_scene", text=_("Markers to Scene..."), icon='OUTLINER_OB_EMPTY')
+ layout.operator("object.make_links_scene", text="Objects to Scene...", icon='OUTLINER_OB_EMPTY')
+ layout.operator("object.make_links_scene", text="Markers to Scene...", icon='OUTLINER_OB_EMPTY')
else:
- layout.operator_menu_enum("object.make_links_scene", "scene", text=_("Objects to Scene..."))
- layout.operator_menu_enum("marker.make_links_scene", "scene", text=_("Markers to Scene..."))
+ layout.operator_menu_enum("object.make_links_scene", "scene", text="Objects to Scene...")
+ layout.operator_menu_enum("marker.make_links_scene", "scene", text="Markers to Scene...")
layout.operator_enum("object.make_links_data", "type") # inline
@@ -976,13 +975,13 @@ class VIEW3D_MT_object_game(Menu):
def draw(self, context):
layout = self.layout
- layout.operator("object.logic_bricks_copy", text=_("Copy Logic Bricks"))
+ layout.operator("object.logic_bricks_copy", text="Copy Logic Bricks")
layout.separator()
- layout.operator("object.game_property_copy", text=_("Replace Properties")).operation = 'REPLACE'
- layout.operator("object.game_property_copy", text=_("Merge Properties")).operation = 'MERGE'
- layout.operator_menu_enum("object.game_property_copy", "property", text=_("Copy Properties..."))
+ layout.operator("object.game_property_copy", text="Replace Properties").operation = 'REPLACE'
+ layout.operator("object.game_property_copy", text="Merge Properties").operation = 'MERGE'
+ layout.operator_menu_enum("object.game_property_copy", "property", text="Copy Properties...")
layout.separator()
@@ -1032,21 +1031,21 @@ class VIEW3D_MT_vertex_group(Menu):
def draw(self, context):
layout = self.layout
layout.operator_context = 'EXEC_AREA'
- layout.operator("object.vertex_group_assign", text=_("Assign to New Group")).new = True
+ layout.operator("object.vertex_group_assign", text="Assign to New Group").new = True
ob = context.active_object
if ob.mode == 'EDIT':
if ob.vertex_groups.active:
layout.separator()
- layout.operator("object.vertex_group_assign", text=_("Assign to Active Group"))
- layout.operator("object.vertex_group_remove_from", text=_("Remove from Active Group"))
- layout.operator("object.vertex_group_remove_from", text=_("Remove from All")).all = True
+ layout.operator("object.vertex_group_assign", text="Assign to Active Group")
+ layout.operator("object.vertex_group_remove_from", text="Remove from Active Group")
+ layout.operator("object.vertex_group_remove_from", text="Remove from All").all = True
layout.separator()
if ob.vertex_groups.active:
- layout.operator_menu_enum("object.vertex_group_set_active", "group", text=_("Set Active Group"))
- layout.operator("object.vertex_group_remove", text=_("Remove Active Group"))
- layout.operator("object.vertex_group_remove", text=_("Remove All Groups")).all = True
+ layout.operator_menu_enum("object.vertex_group_set_active", "group", text="Set Active Group")
+ layout.operator("object.vertex_group_remove", text="Remove Active Group")
+ layout.operator("object.vertex_group_remove", text="Remove All Groups").all = True
# ********** Weight paint menu **********
@@ -1063,16 +1062,16 @@ class VIEW3D_MT_paint_weight(Menu):
layout.separator()
- layout.operator("paint.weight_from_bones", text=_("Assign Automatic From Bones")).type = 'AUTOMATIC'
- layout.operator("paint.weight_from_bones", text=_("Assign From Bone Envelopes")).type = 'ENVELOPES'
+ layout.operator("paint.weight_from_bones", text="Assign Automatic From Bones").type = 'AUTOMATIC'
+ layout.operator("paint.weight_from_bones", text="Assign From Bone Envelopes").type = 'ENVELOPES'
layout.separator()
- layout.operator("object.vertex_group_normalize_all", text=_("Normalize All"))
- layout.operator("object.vertex_group_normalize", text=_("Normalize"))
- layout.operator("object.vertex_group_invert", text=_("Invert"))
- layout.operator("object.vertex_group_clean", text=_("Clean"))
- layout.operator("object.vertex_group_levels", text=_("Levels"))
+ layout.operator("object.vertex_group_normalize_all", text="Normalize All")
+ layout.operator("object.vertex_group_normalize", text="Normalize")
+ layout.operator("object.vertex_group_invert", text="Invert")
+ layout.operator("object.vertex_group_clean", text="Clean")
+ layout.operator("object.vertex_group_levels", text="Levels")
layout.operator("object.vertex_group_fix", text="Fix Deforms")
layout.separator()
@@ -1122,12 +1121,12 @@ class VIEW3D_MT_sculpt(Menu):
layout.operator("sculpt.set_persistent_base")
layout.separator()
- layout.prop(sculpt, "use_threaded", text=_("Threaded Sculpt"))
+ layout.prop(sculpt, "use_threaded", text="Threaded Sculpt")
layout.prop(sculpt, "show_brush")
# TODO, make availabel from paint menu!
- layout.prop(tool_settings, "sculpt_paint_use_unified_size", text=_("Unify Size"))
- layout.prop(tool_settings, "sculpt_paint_use_unified_strength", text=_("Unify Strength"))
+ layout.prop(tool_settings, "sculpt_paint_use_unified_size", text="Unify Size")
+ layout.prop(tool_settings, "sculpt_paint_use_unified_strength", text="Unify Strength")
# ********** Particle menu **********
@@ -1220,7 +1219,7 @@ class VIEW3D_MT_pose(Menu):
layout.operator("pose.copy")
layout.operator("pose.paste")
- layout.operator("pose.paste", text=_("Paste X-Flipped Pose")).flipped = True
+ layout.operator("pose.paste", text="Paste X-Flipped Pose").flipped = True
layout.separator()
@@ -1237,9 +1236,9 @@ class VIEW3D_MT_pose(Menu):
layout.separator()
layout.operator_context = 'EXEC_AREA'
- layout.operator("pose.autoside_names", text=_("AutoName Left/Right")).axis = 'XAXIS'
- layout.operator("pose.autoside_names", text=_("AutoName Front/Back")).axis = 'YAXIS'
- layout.operator("pose.autoside_names", text=_("AutoName Top/Bottom")).axis = 'ZAXIS'
+ layout.operator("pose.autoside_names", text="AutoName Left/Right").axis = 'XAXIS'
+ layout.operator("pose.autoside_names", text="AutoName Front/Back").axis = 'YAXIS'
+ layout.operator("pose.autoside_names", text="AutoName Top/Bottom").axis = 'ZAXIS'
layout.operator("pose.flip_names")
@@ -1248,13 +1247,13 @@ class VIEW3D_MT_pose(Menu):
layout.separator()
layout.operator_context = 'INVOKE_AREA'
- layout.operator("pose.armature_layers", text=_("Change Armature Layers..."))
- layout.operator("pose.bone_layers", text=_("Change Bone Layers..."))
+ layout.operator("pose.armature_layers", text="Change Armature Layers...")
+ layout.operator("pose.bone_layers", text="Change Bone Layers...")
layout.separator()
layout.menu("VIEW3D_MT_pose_showhide")
- layout.menu("VIEW3D_MT_bone_options_toggle", text=_("Bone Settings"))
+ layout.menu("VIEW3D_MT_bone_options_toggle", text="Bone Settings")
class VIEW3D_MT_pose_transform(Menu):
@@ -1263,17 +1262,17 @@ class VIEW3D_MT_pose_transform(Menu):
def draw(self, context):
layout = self.layout
- layout.operator("pose.transforms_clear", text=_("All"))
+ layout.operator("pose.transforms_clear", text="All")
layout.separator()
- layout.operator("pose.loc_clear", text=_("Location"))
- layout.operator("pose.rot_clear", text=_("Rotation"))
- layout.operator("pose.scale_clear", text=_("Scale"))
+ layout.operator("pose.loc_clear", text="Location")
+ layout.operator("pose.rot_clear", text="Rotation")
+ layout.operator("pose.scale_clear", text="Scale")
layout.separator()
- layout.operator("pose.user_transforms_clear", text=_("Reset unkeyed"))
+ layout.operator("pose.user_transforms_clear", text="Reset unkeyed")
class VIEW3D_MT_pose_slide(Menu):
@@ -1297,12 +1296,12 @@ class VIEW3D_MT_pose_propagate(Menu):
layout.separator()
- layout.operator("pose.propagate", text=_("To Next Keyframe")).mode = 'NEXT_KEY'
- layout.operator("pose.propagate", text=_("To Last Keyframe (Make Cyclic)")).mode = 'LAST_KEY'
+ layout.operator("pose.propagate", text="To Next Keyframe").mode = 'NEXT_KEY'
+ layout.operator("pose.propagate", text="To Last Keyframe (Make Cyclic)").mode = 'LAST_KEY'
layout.separator()
- layout.operator("pose.propagate", text=_("On Selected Markers")).mode = 'SELECTED_MARKERS'
+ layout.operator("pose.propagate", text="On Selected Markers").mode = 'SELECTED_MARKERS'
class VIEW3D_MT_pose_library(Menu):
@@ -1311,13 +1310,13 @@ class VIEW3D_MT_pose_library(Menu):
def draw(self, context):
layout = self.layout
- layout.operator("poselib.browse_interactive", text=_("Browse Poses..."))
+ layout.operator("poselib.browse_interactive", text="Browse Poses...")
layout.separator()
- layout.operator("poselib.pose_add", text=_("Add Pose..."))
- layout.operator("poselib.pose_rename", text=_("Rename Pose..."))
- layout.operator("poselib.pose_remove", text=_("Remove Pose..."))
+ layout.operator("poselib.pose_add", text="Add Pose...")
+ layout.operator("poselib.pose_rename", text="Rename Pose...")
+ layout.operator("poselib.pose_remove", text="Remove Pose...")
class VIEW3D_MT_pose_motion(Menu):
@@ -1326,8 +1325,8 @@ class VIEW3D_MT_pose_motion(Menu):
def draw(self, context):
layout = self.layout
- layout.operator("pose.paths_calculate", text=_("Calculate"))
- layout.operator("pose.paths_clear", text=_("Clear"))
+ layout.operator("pose.paths_calculate", text="Calculate")
+ layout.operator("pose.paths_clear", text="Clear")
class VIEW3D_MT_pose_group(Menu):
@@ -1360,7 +1359,7 @@ class VIEW3D_MT_pose_constraints(Menu):
def draw(self, context):
layout = self.layout
- layout.operator("pose.constraint_add_with_targets", text=_("Add (With Targets)..."))
+ layout.operator("pose.constraint_add_with_targets", text="Add (With Targets)...")
layout.operator("pose.constraints_copy")
layout.operator("pose.constraints_clear")
@@ -1370,7 +1369,7 @@ class VIEW3D_MT_pose_showhide(ShowHideMenu, Menu):
class VIEW3D_MT_pose_apply(Menu):
- bl_label = _("Apply")
+ bl_label = "Apply"
def draw(self, context):
layout = self.layout
@@ -1445,14 +1444,14 @@ class VIEW3D_MT_edit_mesh(Menu):
layout.separator()
- layout.menu("VIEW3D_MT_uv_map", text=_("UV Unwrap..."))
+ layout.menu("VIEW3D_MT_uv_map", text="UV Unwrap...")
layout.separator()
- layout.operator("view3d.edit_mesh_extrude_move_normal", text=_("Extrude Region"))
- layout.operator("view3d.edit_mesh_extrude_individual_move", text=_("Extrude Individual"))
+ layout.operator("view3d.edit_mesh_extrude_move_normal", text="Extrude Region")
+ layout.operator("view3d.edit_mesh_extrude_individual_move", text="Extrude Individual")
layout.operator("mesh.duplicate_move")
- layout.operator("mesh.delete", text=_("Delete..."))
+ layout.operator("mesh.delete", text="Delete...")
layout.separator()
@@ -1480,15 +1479,15 @@ class VIEW3D_MT_edit_mesh_specials(Menu):
layout.operator_context = 'INVOKE_REGION_WIN'
- layout.operator("mesh.subdivide", text=_("Subdivide"))
- layout.operator("mesh.subdivide", text=_("Subdivide Smooth")).smoothness = 1.0
- layout.operator("mesh.merge", text=_("Merge..."))
+ layout.operator("mesh.subdivide", text="Subdivide")
+ layout.operator("mesh.subdivide", text="Subdivide Smooth").smoothness = 1.0
+ layout.operator("mesh.merge", text="Merge...")
layout.operator("mesh.remove_doubles")
- layout.operator("mesh.hide", text=_("Hide"))
- layout.operator("mesh.reveal", text=_("Reveal"))
+ layout.operator("mesh.hide", text="Hide")
+ layout.operator("mesh.reveal", text="Reveal")
layout.operator("mesh.select_inverse")
layout.operator("mesh.flip_normals")
- layout.operator("mesh.vertices_smooth", text=_("Smooth"))
+ layout.operator("mesh.vertices_smooth", text="Smooth")
# layout.operator("mesh.bevel", text="Bevel")
layout.operator("mesh.faces_shade_smooth")
layout.operator("mesh.faces_shade_flat")
@@ -1505,15 +1504,15 @@ class VIEW3D_MT_edit_mesh_select_mode(Menu):
layout.operator_context = 'INVOKE_REGION_WIN'
- prop = layout.operator("wm.context_set_value", text=_("Vertex"), icon='VERTEXSEL')
+ prop = layout.operator("wm.context_set_value", text="Vertex", icon='VERTEXSEL')
prop.value = "(True, False, False)"
prop.data_path = "tool_settings.mesh_select_mode"
- prop = layout.operator("wm.context_set_value", text=_("Edge"), icon='EDGESEL')
+ prop = layout.operator("wm.context_set_value", text="Edge", icon='EDGESEL')
prop.value = "(False, True, False)"
prop.data_path = "tool_settings.mesh_select_mode"
- prop = layout.operator("wm.context_set_value", text=_("Face"), icon='FACESEL')
+ prop = layout.operator("wm.context_set_value", text="Face", icon='FACESEL')
prop.value = "(False, False, True)"
prop.data_path = "tool_settings.mesh_select_mode"
@@ -1522,10 +1521,10 @@ class VIEW3D_MT_edit_mesh_extrude(Menu):
bl_label = "Extrude"
_extrude_funcs = { \
- "VERT": lambda layout: layout.operator("mesh.extrude_vertices_move", text=_("Vertices Only")),
- "EDGE": lambda layout: layout.operator("mesh.extrude_edges_move", text=_("Edges Only")),
- "FACE": lambda layout: layout.operator("mesh.extrude_faces_move", text=_("Individual Faces")),
- "REGION": lambda layout: layout.operator("view3d.edit_mesh_extrude_move_normal", text=_("Region")),
+ "VERT": lambda layout: layout.operator("mesh.extrude_vertices_move", text="Vertices Only"),
+ "EDGE": lambda layout: layout.operator("mesh.extrude_edges_move", text="Edges Only"),
+ "FACE": lambda layout: layout.operator("mesh.extrude_faces_move", text="Individual Faces"),
+ "REGION": lambda layout: layout.operator("view3d.edit_mesh_extrude_move_normal", text="Region"),
}
@staticmethod
@@ -1552,61 +1551,6 @@ class VIEW3D_MT_edit_mesh_extrude(Menu):
self._extrude_funcs[menu_id](layout)
-class VIEW3D_OT_edit_mesh_extrude_individual_move(Operator):
- "Extrude individual elements and move"
- bl_label = "Extrude Individual and Move"
- bl_idname = "view3d.edit_mesh_extrude_individual_move"
-
- def execute(self, context):
- mesh = context.object.data
- select_mode = context.tool_settings.mesh_select_mode
-
- totface = mesh.total_face_sel
- totedge = mesh.total_edge_sel
- # totvert = mesh.total_vert_sel
-
- if select_mode[2] and totface == 1:
- bpy.ops.mesh.extrude_region_move('INVOKE_REGION_WIN', TRANSFORM_OT_translate={"constraint_orientation": 'NORMAL', "constraint_axis": (False, False, True)})
- elif select_mode[2] and totface > 1:
- bpy.ops.mesh.extrude_faces_move('INVOKE_REGION_WIN')
- elif select_mode[1] and totedge >= 1:
- bpy.ops.mesh.extrude_edges_move('INVOKE_REGION_WIN')
- else:
- bpy.ops.mesh.extrude_vertices_move('INVOKE_REGION_WIN')
-
- # ignore return from operators above because they are 'RUNNING_MODAL', and cause this one not to be freed. [#24671]
- return {'FINISHED'}
-
- def invoke(self, context, event):
- return self.execute(context)
-
-
-class VIEW3D_OT_edit_mesh_extrude_move(Operator):
- "Extrude and move along normals"
- bl_label = "Extrude and Move on Normals"
- bl_idname = "view3d.edit_mesh_extrude_move_normal"
-
- def execute(self, context):
- mesh = context.object.data
-
- totface = mesh.total_face_sel
- totedge = mesh.total_edge_sel
- # totvert = mesh.total_vert_sel
-
- if totface >= 1:
- bpy.ops.mesh.extrude_region_move('INVOKE_REGION_WIN', TRANSFORM_OT_translate={"constraint_orientation": 'NORMAL', "constraint_axis": (False, False, True)})
- elif totedge == 1:
- bpy.ops.mesh.extrude_region_move('INVOKE_REGION_WIN', TRANSFORM_OT_translate={"constraint_orientation": 'NORMAL', "constraint_axis": (True, True, False)})
- else:
- bpy.ops.mesh.extrude_region_move('INVOKE_REGION_WIN')
-
- # ignore return from operators above because they are 'RUNNING_MODAL', and cause this one not to be freed. [#24671]
- return {'FINISHED'}
-
- def invoke(self, context, event):
- return self.execute(context)
-
-
class VIEW3D_MT_edit_mesh_vertices(Menu):
bl_label = "Vertices"
@@ -1652,28 +1596,28 @@ class VIEW3D_MT_edit_mesh_edges(Menu):
layout.separator()
layout.operator("mesh.mark_seam")
- layout.operator("mesh.mark_seam", text=_("Clear Seam")).clear = True
+ layout.operator("mesh.mark_seam", text="Clear Seam").clear = True
layout.separator()
layout.operator("mesh.mark_sharp")
- layout.operator("mesh.mark_sharp", text=_("Clear Sharp")).clear = True
+ layout.operator("mesh.mark_sharp", text="Clear Sharp").clear = True
layout.separator()
- layout.operator("mesh.edge_rotate", text=_("Rotate Edge CW")).direction = 'CW'
- layout.operator("mesh.edge_rotate", text=_("Rotate Edge CCW")).direction = 'CCW'
+ layout.operator("mesh.edge_rotate", text="Rotate Edge CW").direction = 'CW'
+ layout.operator("mesh.edge_rotate", text="Rotate Edge CCW").direction = 'CCW'
layout.separator()
layout.operator("TRANSFORM_OT_edge_slide")
layout.operator("TRANSFORM_OT_edge_crease")
- layout.operator("mesh.loop_multi_select", text=_("Edge Loop"))
+ layout.operator("mesh.loop_multi_select", text="Edge Loop")
# uiItemO(layout, "Loopcut", 0, "mesh.loop_cut"); // CutEdgeloop(em, 1);
# uiItemO(layout, "Edge Slide", 0, "mesh.edge_slide"); // EdgeSlide(em, 0,0.0);
- layout.operator("mesh.loop_multi_select", text=_("Edge Ring")).ring = True
+ layout.operator("mesh.loop_multi_select", text="Edge Ring").ring = True
layout.operator("mesh.loop_to_region")
layout.operator("mesh.region_to_loop")
@@ -1717,7 +1661,7 @@ class VIEW3D_MT_edit_mesh_faces(Menu):
# uiItemO(layout, NULL, 0, "mesh.face_mode"); // mesh_set_face_flags(em, 1);
# uiItemBooleanO(layout, NULL, 0, "mesh.face_mode", "clear", 1); // mesh_set_face_flags(em, 0);
- layout.operator("mesh.edge_rotate", text=_("Rotate Edge CW")).direction = 'CW'
+ layout.operator("mesh.edge_rotate", text="Rotate Edge CW").direction = 'CW'
layout.separator()
@@ -1733,8 +1677,8 @@ class VIEW3D_MT_edit_mesh_normals(Menu):
def draw(self, context):
layout = self.layout
- layout.operator("mesh.normals_make_consistent", text=_("Recalculate Outside"))
- layout.operator("mesh.normals_make_consistent", text=_("Recalculate Inside")).inside = True
+ layout.operator("mesh.normals_make_consistent", text="Recalculate Outside")
+ layout.operator("mesh.normals_make_consistent", text="Recalculate Inside").inside = True
layout.separator()
@@ -1764,7 +1708,7 @@ def draw_curve(self, context):
layout.operator("curve.separate")
layout.operator("curve.make_segment")
layout.operator("curve.cyclic_toggle")
- layout.operator("curve.delete", text=_("Delete..."))
+ layout.operator("curve.delete", text="Delete...")
layout.separator()
@@ -1796,7 +1740,7 @@ class VIEW3D_MT_edit_curve_ctrlpoints(Menu):
edit_object = context.edit_object
if edit_object.type == 'CURVE':
- layout.operator("transform.transform", text=_("Tilt")).mode = 'TILT'
+ layout.operator("transform.transform", text="Tilt").mode = 'TILT'
layout.operator("curve.tilt_clear")
layout.operator("curve.separate")
@@ -1857,10 +1801,10 @@ class VIEW3D_MT_edit_font(Menu):
layout.separator()
- layout.operator("font.style_toggle", text=_("Toggle Bold")).style = 'BOLD'
- layout.operator("font.style_toggle", text=_("Toggle Italic")).style = 'ITALIC'
- layout.operator("font.style_toggle", text=_("Toggle Underline")).style = 'UNDERLINE'
- layout.operator("font.style_toggle", text=_("Toggle Small Caps")).style = 'SMALL_CAPS'
+ layout.operator("font.style_toggle", text="Toggle Bold").style = 'BOLD'
+ layout.operator("font.style_toggle", text="Toggle Italic").style = 'ITALIC'
+ layout.operator("font.style_toggle", text="Toggle Underline").style = 'UNDERLINE'
+ layout.operator("font.style_toggle", text="Toggle Small Caps").style = 'SMALL_CAPS'
class VIEW3D_MT_edit_text_chars(Menu):
@@ -1917,7 +1861,7 @@ class VIEW3D_MT_edit_meta(Menu):
layout.separator()
- layout.operator("mball.delete_metaelems", text=_("Delete..."))
+ layout.operator("mball.delete_metaelems", text="Delete...")
layout.operator("mball.duplicate_metaelems")
layout.separator()
@@ -1936,9 +1880,9 @@ class VIEW3D_MT_edit_meta_showhide(Menu):
def draw(self, context):
layout = self.layout
- layout.operator("mball.reveal_metaelems", text=_("Show Hidden"))
- layout.operator("mball.hide_metaelems", text=_("Hide Selected"))
- layout.operator("mball.hide_metaelems", text=_("Hide Unselected")).unselected = True
+ layout.operator("mball.reveal_metaelems", text="Show Hidden")
+ layout.operator("mball.hide_metaelems", text="Hide Selected")
+ layout.operator("mball.hide_metaelems", text="Hide Unselected").unselected = True
class VIEW3D_MT_edit_lattice(Menu):
@@ -1992,15 +1936,15 @@ class VIEW3D_MT_edit_armature(Menu):
layout.separator()
- layout.operator("armature.subdivide", text=_("Subdivide"))
- layout.operator("armature.switch_direction", text=_("Switch Direction"))
+ layout.operator("armature.subdivide", text="Subdivide")
+ layout.operator("armature.switch_direction", text="Switch Direction")
layout.separator()
layout.operator_context = 'EXEC_AREA'
- layout.operator("armature.autoside_names", text=_("AutoName Left/Right")).type = 'XAXIS'
- layout.operator("armature.autoside_names", text=_("AutoName Front/Back")).type = 'YAXIS'
- layout.operator("armature.autoside_names", text=_("AutoName Top/Bottom")).type = 'ZAXIS'
+ layout.operator("armature.autoside_names", text="AutoName Left/Right").type = 'XAXIS'
+ layout.operator("armature.autoside_names", text="AutoName Front/Back").type = 'YAXIS'
+ layout.operator("armature.autoside_names", text="AutoName Top/Bottom").type = 'ZAXIS'
layout.operator("armature.flip_names")
layout.separator()
@@ -2015,7 +1959,7 @@ class VIEW3D_MT_edit_armature(Menu):
layout.separator()
- layout.menu("VIEW3D_MT_bone_options_toggle", text=_("Bone Settings"))
+ layout.menu("VIEW3D_MT_bone_options_toggle", text="Bone Settings")
class VIEW3D_MT_armature_specials(Menu):
@@ -2026,16 +1970,16 @@ class VIEW3D_MT_armature_specials(Menu):
layout.operator_context = 'INVOKE_REGION_WIN'
- layout.operator("armature.subdivide", text=_("Subdivide"))
- layout.operator("armature.switch_direction", text=_("Switch Direction"))
+ layout.operator("armature.subdivide", text="Subdivide")
+ layout.operator("armature.switch_direction", text="Switch Direction")
layout.separator()
layout.operator_context = 'EXEC_REGION_WIN'
- layout.operator("armature.autoside_names", text=_("AutoName Left/Right")).type = 'XAXIS'
- layout.operator("armature.autoside_names", text=_("AutoName Front/Back")).type = 'YAXIS'
- layout.operator("armature.autoside_names", text=_("AutoName Top/Bottom")).type = 'ZAXIS'
- layout.operator("armature.flip_names", text=_("Flip Names"))
+ layout.operator("armature.autoside_names", text="AutoName Left/Right").type = 'XAXIS'
+ layout.operator("armature.autoside_names", text="AutoName Front/Back").type = 'YAXIS'
+ layout.operator("armature.autoside_names", text="AutoName Top/Bottom").type = 'ZAXIS'
+ layout.operator("armature.flip_names", text="Flip Names")
class VIEW3D_MT_edit_armature_parent(Menu):
@@ -2044,8 +1988,8 @@ class VIEW3D_MT_edit_armature_parent(Menu):
def draw(self, context):
layout = self.layout
- layout.operator("armature.parent_set", text=_("Make"))
- layout.operator("armature.parent_clear", text=_("Clear"))
+ layout.operator("armature.parent_set", text="Make")
+ layout.operator("armature.parent_clear", text="Clear")
class VIEW3D_MT_edit_armature_roll(Menu):
@@ -2058,7 +2002,7 @@ class VIEW3D_MT_edit_armature_roll(Menu):
layout.separator()
- layout.operator("transform.transform", text=_("Set Roll")).mode = 'BONE_ROLL'
+ layout.operator("transform.transform", text="Set Roll").mode = 'BONE_ROLL'
# ********** Panel **********
@@ -2081,26 +2025,26 @@ class VIEW3D_PT_view3d_properties(Panel):
col = layout.column()
col.active = view.region_3d.view_perspective != 'CAMERA'
col.prop(view, "lens")
- col.label(text=_("Lock to Object:"))
+ col.label(text="Lock to Object:")
col.prop(view, "lock_object", text="")
lock_object = view.lock_object
if lock_object:
if lock_object.type == 'ARMATURE':
col.prop_search(view, "lock_bone", lock_object.data, "edit_bones" if lock_object.mode == 'EDIT' else "bones", text="")
else:
- col.prop(view, "lock_cursor", text=_("Lock to Cursor"))
+ col.prop(view, "lock_cursor", text="Lock to Cursor")
col = layout.column()
col.prop(view, "lock_camera")
col = layout.column(align=True)
- col.label(text=_("Clip:"))
- col.prop(view, "clip_start", text=_("Start"))
- col.prop(view, "clip_end", text=_("End"))
+ col.label(text="Clip:")
+ col.prop(view, "clip_start", text="Start")
+ col.prop(view, "clip_end", text="End")
subcol = col.column()
subcol.enabled = not view.lock_camera_and_layers
- subcol.label(text=_("Local Camera:"))
+ subcol.label(text="Local Camera:")
subcol.prop(view, "camera", text="")
layout.column().prop(view, "cursor_location")
@@ -2166,7 +2110,7 @@ class VIEW3D_PT_view3d_display(Panel):
col = layout.column()
col.active = display_all
split = col.split(percentage=0.55)
- split.prop(view, "show_floor", text=_("Grid Floor"))
+ split.prop(view, "show_floor", text="Grid Floor")
row = split.row(align=True)
row.prop(view, "show_axis_x", text="X", toggle=True)
@@ -2175,14 +2119,14 @@ class VIEW3D_PT_view3d_display(Panel):
sub = col.column(align=True)
sub.active = (display_all and view.show_floor)
- sub.prop(view, "grid_lines", text=_("Lines"))
- sub.prop(view, "grid_scale", text=_("Scale"))
+ sub.prop(view, "grid_lines", text="Lines")
+ sub.prop(view, "grid_scale", text="Scale")
subsub = sub.column(align=True)
subsub.active = scene.unit_settings.system == 'NONE'
- subsub.prop(view, "grid_subdivisions", text=_("Subdivisions"))
+ subsub.prop(view, "grid_subdivisions", text="Subdivisions")
col = layout.column()
- col.label(text=_("Shading:"))
+ col.label(text="Shading:")
col.prop(gs, "material_mode", text="")
col.prop(view, "show_textured_solid")
@@ -2190,7 +2134,7 @@ class VIEW3D_PT_view3d_display(Panel):
region = view.region_quadview
- layout.operator("screen.region_quadview", text=_("Toggle Quad View"))
+ layout.operator("screen.region_quadview", text="Toggle Quad View")
if region:
col = layout.column()
@@ -2219,22 +2163,22 @@ class VIEW3D_PT_view3d_meshdisplay(Panel):
mesh = context.active_object.data
col = layout.column()
- col.label(text=_("Overlays:"))
- col.prop(mesh, "show_edges", text=_("Edges"))
- col.prop(mesh, "show_faces", text=_("Faces"))
- col.prop(mesh, "show_edge_crease", text=_("Creases"))
- col.prop(mesh, "show_edge_bevel_weight", text=_("Bevel Weights"))
- col.prop(mesh, "show_edge_seams", text=_("Seams"))
- col.prop(mesh, "show_edge_sharp", text=_("Sharp"))
+ col.label(text="Overlays:")
+ col.prop(mesh, "show_edges", text="Edges")
+ col.prop(mesh, "show_faces", text="Faces")
+ col.prop(mesh, "show_edge_crease", text="Creases")
+ col.prop(mesh, "show_edge_bevel_weight", text="Bevel Weights")
+ col.prop(mesh, "show_edge_seams", text="Seams")
+ col.prop(mesh, "show_edge_sharp", text="Sharp")
col.separator()
- col.label(text=_("Normals:"))
- col.prop(mesh, "show_normal_face", text=_("Face"))
- col.prop(mesh, "show_normal_vertex", text=_("Vertex"))
- col.prop(context.scene.tool_settings, "normal_size", text=_("Normal Size"))
+ col.label(text="Normals:")
+ col.prop(mesh, "show_normal_face", text="Face")
+ col.prop(mesh, "show_normal_vertex", text="Vertex")
+ col.prop(context.scene.tool_settings, "normal_size", text="Normal Size")
col.separator()
- col.label(text=_("Numerics:"))
+ col.label(text="Numerics:")
col.prop(mesh, "show_extra_edge_length")
col.prop(mesh, "show_extra_face_angle")
col.prop(mesh, "show_extra_face_area")
@@ -2256,10 +2200,10 @@ class VIEW3D_PT_view3d_curvedisplay(Panel):
curve = context.active_object.data
col = layout.column()
- col.label(text=_("Overlays:"))
- col.prop(curve, "show_handles", text=_("Handles"))
- col.prop(curve, "show_normal_face", text=_("Normals"))
- col.prop(context.scene.tool_settings, "normal_size", text=_("Normal Size"))
+ col.label(text="Overlays:")
+ col.prop(curve, "show_handles", text="Handles")
+ col.prop(curve, "show_normal_face", text="Normals")
+ col.prop(context.scene.tool_settings, "normal_size", text="Normal Size")
class VIEW3D_PT_background_image(Panel):
@@ -2286,7 +2230,7 @@ class VIEW3D_PT_background_image(Panel):
view = context.space_data
col = layout.column()
- col.operator("view3d.background_image_add", text=_("Add Image"))
+ col.operator("view3d.background_image_add", text="Add Image")
for i, bg in enumerate(view.background_images):
layout.active = view.show_background_images
@@ -2296,10 +2240,10 @@ class VIEW3D_PT_background_image(Panel):
if bg.image:
row.prop(bg.image, "name", text="", emboss=False)
else:
- row.label(text=_("Not Set"))
+ row.label(text="Not Set")
row.operator("view3d.background_image_remove", text="", emboss=False, icon='X').index = i
- box.prop(bg, "view_axis", text=_("Axis"))
+ box.prop(bg, "view_axis", text="Axis")
if bg.show_expanded:
row = box.row()
@@ -2334,13 +2278,13 @@ class VIEW3D_PT_transform_orientations(Panel):
col = layout.column()
col.prop(view, "transform_orientation")
- col.operator("transform.create_orientation", text=_("Create"))
+ col.operator("transform.create_orientation", text="Create")
orientation = view.current_orientation
if orientation:
col.prop(orientation, "name")
- col.operator("transform.delete_orientation", text=_("Delete"))
+ col.operator("transform.delete_orientation", text="Delete")
class VIEW3D_PT_etch_a_ton(Panel):
@@ -2385,7 +2329,7 @@ class VIEW3D_PT_etch_a_ton(Panel):
col.prop(toolsettings, "etch_number")
col.prop(toolsettings, "etch_side")
- col.operator("sketch.convert", text=_("Convert"))
+ col.operator("sketch.convert", text="Convert")
class VIEW3D_PT_context_properties(Panel):
diff --git a/release/scripts/startup/bl_ui/space_view3d_toolbar.py b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
index 6bd2168dab9..e322a6dcd13 100644
--- a/release/scripts/startup/bl_ui/space_view3d_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
@@ -19,7 +19,6 @@
# <pep8 compliant>
import bpy
from bpy.types import Menu, Panel
-from blf import gettext as _
class View3DPanel():
@@ -32,33 +31,33 @@ class View3DPanel():
# History/Repeat tools
def draw_repeat_tools(context, layout):
col = layout.column(align=True)
- col.label(text=_("Repeat:"))
+ col.label(text="Repeat:")
col.operator("screen.repeat_last")
- col.operator("screen.repeat_history", text=_("History..."))
+ col.operator("screen.repeat_history", text="History...")
# Keyframing tools
def draw_keyframing_tools(context, layout):
col = layout.column(align=True)
- col.label(text=_("Keyframes:"))
+ col.label(text="Keyframes:")
row = col.row()
- row.operator("anim.keyframe_insert_menu", text=_("Insert"))
- row.operator("anim.keyframe_delete_v3d", text=_("Remove"))
+ row.operator("anim.keyframe_insert_menu", text="Insert")
+ row.operator("anim.keyframe_delete_v3d", text="Remove")
# Grease Pencil tools
def draw_gpencil_tools(context, layout):
col = layout.column(align=True)
- col.label(text=_("Grease Pencil:"))
+ col.label(text="Grease Pencil:")
row = col.row()
- row.operator("gpencil.draw", text=_("Draw")).mode = 'DRAW'
- row.operator("gpencil.draw", text=_("Line")).mode = 'DRAW_STRAIGHT'
+ row.operator("gpencil.draw", text="Draw").mode = 'DRAW'
+ row.operator("gpencil.draw", text="Line").mode = 'DRAW_STRAIGHT'
row = col.row()
- row.operator("gpencil.draw", text=_("Poly")).mode = 'DRAW_POLY'
- row.operator("gpencil.draw", text=_("Erase")).mode = 'ERASER'
+ row.operator("gpencil.draw", text="Poly").mode = 'DRAW_POLY'
+ row.operator("gpencil.draw", text="Erase").mode = 'ERASER'
row = col.row()
row.prop(context.tool_settings, "use_grease_pencil_sessions")
@@ -74,16 +73,16 @@ class VIEW3D_PT_tools_objectmode(View3DPanel, Panel):
layout = self.layout
col = layout.column(align=True)
- col.label(text=_("Transform:"))
+ col.label(text="Transform:")
col.operator("transform.translate")
col.operator("transform.rotate")
- col.operator("transform.resize", text=_("Scale"))
+ col.operator("transform.resize", text="Scale")
col = layout.column(align=True)
- col.operator("object.origin_set", text=_("Origin"))
+ col.operator("object.origin_set", text="Origin")
col = layout.column(align=True)
- col.label(text=_("Object:"))
+ col.label(text="Object:")
col.operator("object.duplicate_move")
col.operator("object.delete")
col.operator("object.join")
@@ -92,17 +91,17 @@ class VIEW3D_PT_tools_objectmode(View3DPanel, Panel):
if active_object and active_object.type == 'MESH':
col = layout.column(align=True)
- col.label(text=_("Shading:"))
+ col.label(text="Shading:")
row = col.row(align=True)
- row.operator("object.shade_smooth", text=_("Smooth"))
- row.operator("object.shade_flat", text=_("Flat"))
+ row.operator("object.shade_smooth", text="Smooth")
+ row.operator("object.shade_flat", text="Flat")
draw_keyframing_tools(context, layout)
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"))
+ col.label(text="Motion Paths:")
+ col.operator("object.paths_calculate", text="Calculate Paths")
+ col.operator("object.paths_clear", text="Clear Paths")
draw_repeat_tools(context, layout)
@@ -123,8 +122,8 @@ class VIEW3D_PT_tools_meshedit(View3DPanel, Panel):
col.operator("transform.translate")
col.operator("transform.rotate")
col.operator("transform.resize", text="Scale")
- col.operator("transform.shrink_fatten", text=_("Shrink/Fatten"))
- col.operator("transform.push_pull", text=_("Push/Pull"))
+ col.operator("transform.shrink_fatten", text="Shrink/Fatten")
+ col.operator("transform.push_pull", text="Push/Pull")
col = layout.column(align=True)
col.label(text="Deform:")
@@ -1017,7 +1016,7 @@ class VIEW3D_PT_tools_brush_appearance(PaintPanel, Panel):
brush = settings.brush
if brush is None: # unlikely but can happen
- layout.label(text=_("Brush Unset"))
+ layout.label(text="Brush Unset")
return
col = layout.column()
diff --git a/source/blender/blenfont/BLF_api.h b/source/blender/blenfont/BLF_api.h
index 1bb61d02b78..038f0c433c7 100644
--- a/source/blender/blenfont/BLF_api.h
+++ b/source/blender/blenfont/BLF_api.h
@@ -47,6 +47,8 @@ int BLF_load_mem(const char *name, unsigned char *mem, int mem_size);
int BLF_load_unique(const char *name);
int BLF_load_mem_unique(const char *name, unsigned char *mem, int mem_size);
+void BLF_unload(const char *name);
+
/* Attach a file with metrics information from memory. */
void BLF_metrics_attach(int fontid, unsigned char *mem, int mem_size);
diff --git a/source/blender/blenfont/intern/blf.c b/source/blender/blenfont/intern/blf.c
index cccecd00bf7..ec0605236dd 100644
--- a/source/blender/blenfont/intern/blf.c
+++ b/source/blender/blenfont/intern/blf.c
@@ -61,10 +61,7 @@
#define BLF_MAX_FONT 16
/* Font array. */
-static FontBLF *global_font[BLF_MAX_FONT];
-
-/* Number of font. */
-static int global_font_num= 0;
+static FontBLF *global_font[BLF_MAX_FONT] = {0};
/* Default size and dpi, for BLF_draw_default. */
static int global_font_default= -1;
@@ -99,10 +96,12 @@ void BLF_exit(void)
FontBLF *font;
int i;
- for (i= 0; i < global_font_num; i++) {
+ for (i= 0; i < BLF_MAX_FONT; i++) {
font= global_font[i];
- if (font)
+ if (font) {
blf_font_free(font);
+ global_font[i]= NULL;
+ }
}
blf_font_exit();
@@ -113,7 +112,7 @@ void BLF_cache_clear(void)
FontBLF *font;
int i;
- for (i= 0; i < global_font_num; i++) {
+ for (i= 0; i < BLF_MAX_FONT; i++) {
font= global_font[i];
if (font)
blf_glyph_cache_clear(font);
@@ -130,6 +129,18 @@ static int blf_search(const char *name)
if (font && (!strcmp(font->name, name)))
return i;
}
+
+ return -1;
+}
+
+static int blf_search_available(void)
+{
+ int i;
+
+ for (i= 0; i < BLF_MAX_FONT; i++)
+ if(!global_font[i])
+ return i;
+
return -1;
}
@@ -149,7 +160,8 @@ int BLF_load(const char *name)
return i;
}
- if (global_font_num+1 >= BLF_MAX_FONT) {
+ i = blf_search_available();
+ if (i == -1) {
printf("Too many fonts!!!\n");
return -1;
}
@@ -168,9 +180,7 @@ int BLF_load(const char *name)
return -1;
}
- global_font[global_font_num]= font;
- i= global_font_num;
- global_font_num++;
+ global_font[i]= font;
return i;
}
@@ -186,7 +196,8 @@ int BLF_load_unique(const char *name)
/* Don't search in the cache!! make a new
* object font, this is for keep fonts threads safe.
*/
- if (global_font_num+1 >= BLF_MAX_FONT) {
+ i = blf_search_available();
+ if (i == -1) {
printf("Too many fonts!!!\n");
return -1;
}
@@ -205,9 +216,7 @@ int BLF_load_unique(const char *name)
return -1;
}
- global_font[global_font_num]= font;
- i= global_font_num;
- global_font_num++;
+ global_font[i]= font;
return i;
}
@@ -234,7 +243,8 @@ int BLF_load_mem(const char *name, unsigned char *mem, int mem_size)
return i;
}
- if (global_font_num+1 >= BLF_MAX_FONT) {
+ i = blf_search_available();
+ if (i == -1) {
printf("Too many fonts!!!\n");
return -1;
}
@@ -250,9 +260,7 @@ int BLF_load_mem(const char *name, unsigned char *mem, int mem_size)
return -1;
}
- global_font[global_font_num]= font;
- i= global_font_num;
- global_font_num++;
+ global_font[i]= font;
return i;
}
@@ -268,7 +276,8 @@ int BLF_load_mem_unique(const char *name, unsigned char *mem, int mem_size)
* Don't search in the cache, make a new object font!
* this is to keep the font thread safe.
*/
- if (global_font_num+1 >= BLF_MAX_FONT) {
+ i = blf_search_available();
+ if (i == -1) {
printf("Too many fonts!!!\n");
return -1;
}
@@ -284,12 +293,25 @@ int BLF_load_mem_unique(const char *name, unsigned char *mem, int mem_size)
return -1;
}
- global_font[global_font_num]= font;
- i= global_font_num;
- global_font_num++;
+ global_font[i]= font;
return i;
}
+void BLF_unload(const char *name)
+{
+ FontBLF *font;
+ int i;
+
+ for (i= 0; i < BLF_MAX_FONT; i++) {
+ font= global_font[i];
+
+ if (font && (!strcmp(font->name, name))) {
+ blf_font_free(font);
+ global_font[i]= NULL;
+ }
+ }
+}
+
void BLF_enable(int fontid, int option)
{
FontBLF *font= BLF_get(fontid);
diff --git a/source/blender/blenfont/intern/blf_font.c b/source/blender/blenfont/intern/blf_font.c
index 26af3a3fd4f..851c6542de0 100644
--- a/source/blender/blenfont/intern/blf_font.c
+++ b/source/blender/blenfont/intern/blf_font.c
@@ -529,6 +529,9 @@ FontBLF *blf_font_new(const char *name, const char *filename)
mfile= blf_dir_metrics_search(filename);
if (mfile) {
err= FT_Attach_File(font->face, mfile);
+ if(err) {
+ fprintf(stderr, "FT_Attach_File failed to load '%s' with error %d\n", filename, (int)err);
+ }
MEM_freeN(mfile);
}
diff --git a/source/blender/blenfont/intern/blf_lang.c b/source/blender/blenfont/intern/blf_lang.c
index 8f745180b8b..b0b06bf059b 100644
--- a/source/blender/blenfont/intern/blf_lang.c
+++ b/source/blender/blenfont/intern/blf_lang.c
@@ -81,8 +81,8 @@ static const char *locales[] = {
"catalan", "ca_AD",
"czech", "cs_CZ",
"ptb", "pt_BR",
- "chs", "zh_CN",
- "cht", "zh_TW",
+ "Chinese (Simplified)_China.1252", "zh_CN",
+ "Chinese (Traditional)_China.1252", "zh_TW",
"russian", "ru_RU",
"croatian", "hr_HR",
"serbian", "sr_RS",
@@ -115,7 +115,7 @@ void BLF_lang_set(const char *str)
char *locreturn;
const char *short_locale;
int ok= 1;
-#if defined (_WIN32)
+#if defined (_WIN32) && !defined(FREE_WINDOWS)
char *long_locale = locales[ 2 * U.language];
#endif
@@ -127,7 +127,7 @@ void BLF_lang_set(const char *str)
else
short_locale = locales[ 2 * U.language + 1];
-#if defined (_WIN32)
+#if defined (_WIN32) && !defined(FREE_WINDOWS)
if(short_locale) {
char *envStr;
diff --git a/source/blender/blenkernel/BKE_DerivedMesh.h b/source/blender/blenkernel/BKE_DerivedMesh.h
index 6e17b056685..2c3ffc296ba 100644
--- a/source/blender/blenkernel/BKE_DerivedMesh.h
+++ b/source/blender/blenkernel/BKE_DerivedMesh.h
@@ -257,7 +257,7 @@ struct DerivedMesh {
*/
void (*drawFacesTex)(DerivedMesh *dm,
int (*setDrawOptions)(struct MTFace *tface,
- struct MCol *mcol, int matnr));
+ int has_mcol, int matnr));
/* Draw all faces with GLSL materials
* o setMaterial is called for every different material nr
diff --git a/source/blender/blenkernel/BKE_colortools.h b/source/blender/blenkernel/BKE_colortools.h
index 5b40fa5d758..758789683d5 100644
--- a/source/blender/blenkernel/BKE_colortools.h
+++ b/source/blender/blenkernel/BKE_colortools.h
@@ -41,8 +41,6 @@ struct rctf;
#if defined _WIN32
# define DO_INLINE __inline
-#elif defined (__sgi)
-# define DO_INLINE
#elif defined (__sun) || defined (__sun__)
# define DO_INLINE
#else
diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c
index fddd2809c47..5e462238f31 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.c
+++ b/source/blender/blenkernel/intern/DerivedMesh.c
@@ -799,7 +799,7 @@ static void emDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *us
}
static void emDM_drawFacesTex_common(DerivedMesh *dm,
- int (*drawParams)(MTFace *tface, MCol *mcol, int matnr),
+ int (*drawParams)(MTFace *tface, int has_mcol, int matnr),
int (*drawParamsMapped)(void *userData, int index),
void *userData)
{
@@ -827,7 +827,7 @@ static void emDM_drawFacesTex_common(DerivedMesh *dm,
int flag;
if(drawParams)
- flag= drawParams(tf, mcol, efa->mat_nr);
+ flag= drawParams(tf, (mcol != NULL), efa->mat_nr);
else if(drawParamsMapped)
flag= drawParamsMapped(userData, i);
else
@@ -900,7 +900,7 @@ static void emDM_drawFacesTex_common(DerivedMesh *dm,
int flag;
if(drawParams)
- flag= drawParams(tf, mcol, efa->mat_nr);
+ flag= drawParams(tf, (mcol != NULL), efa->mat_nr);
else if(drawParamsMapped)
flag= drawParamsMapped(userData, i);
else
@@ -966,7 +966,7 @@ static void emDM_drawFacesTex_common(DerivedMesh *dm,
}
}
-static void emDM_drawFacesTex(DerivedMesh *dm, int (*setDrawOptions)(MTFace *tface, MCol *mcol, int matnr))
+static void emDM_drawFacesTex(DerivedMesh *dm, int (*setDrawOptions)(MTFace *tface, int has_mcol, int matnr))
{
emDM_drawFacesTex_common(dm, setDrawOptions, NULL, NULL);
}
diff --git a/source/blender/blenkernel/intern/blender.c b/source/blender/blenkernel/intern/blender.c
index 218b83fc52a..27ea1585e4b 100644
--- a/source/blender/blenkernel/intern/blender.c
+++ b/source/blender/blenkernel/intern/blender.c
@@ -318,6 +318,8 @@ static void setup_app_data(bContext *C, BlendFileData *bfd, const char *filepath
set_scene_bg(G.main, CTX_data_scene(C));
MEM_freeN(bfd);
+
+ (void)curscene; /* quiet warning */
}
static int handle_subversion_warning(Main *main, ReportList *reports)
diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c
index e1939335268..707bf95f9c3 100644
--- a/source/blender/blenkernel/intern/cdderivedmesh.c
+++ b/source/blender/blenkernel/intern/cdderivedmesh.c
@@ -647,7 +647,7 @@ static void cdDM_drawFacesColored(DerivedMesh *dm, int useTwoSided, unsigned cha
}
static void cdDM_drawFacesTex_common(DerivedMesh *dm,
- int (*drawParams)(MTFace *tface, MCol *mcol, int matnr),
+ int (*drawParams)(MTFace *tface, int has_mcol, int matnr),
int (*drawParamsMapped)(void *userData, int index),
void *userData)
{
@@ -673,7 +673,7 @@ static void cdDM_drawFacesTex_common(DerivedMesh *dm,
unsigned char *cp = NULL;
if(drawParams) {
- flag = drawParams(tf? &tf[i]: NULL, mcol? &mcol[i*4]: NULL, mf->mat_nr);
+ flag = drawParams(tf? &tf[i]: NULL, (mcol != NULL), mf->mat_nr);
}
else {
if(index) {
@@ -792,7 +792,7 @@ static void cdDM_drawFacesTex_common(DerivedMesh *dm,
int flag = 1;
if(drawParams) {
- flag = drawParams(tf? &tf[actualFace]: NULL, mcol? &mcol[actualFace*4]: NULL, mf[actualFace].mat_nr);
+ flag = drawParams(tf? &tf[actualFace]: NULL, (mcol != NULL), mf[actualFace].mat_nr);
}
else {
if(index) {
@@ -835,7 +835,7 @@ static void cdDM_drawFacesTex_common(DerivedMesh *dm,
}
}
-static void cdDM_drawFacesTex(DerivedMesh *dm, int (*setDrawOptions)(MTFace *tface, MCol *mcol, int matnr))
+static void cdDM_drawFacesTex(DerivedMesh *dm, int (*setDrawOptions)(MTFace *tface, int has_mcol, int matnr))
{
cdDM_drawFacesTex_common(dm, setDrawOptions, NULL, NULL);
}
@@ -981,9 +981,13 @@ static void cdDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *us
if(!flush && compareDrawOptions) {
int next_orig= (index==NULL) ? next_actualFace : index[next_actualFace];
- /* also compare draw options and flush buffer if they're different
- need for face selection highlight in edit mode */
- flush|= compareDrawOptions(userData, orig, next_orig) == 0;
+ if(orig==ORIGINDEX_NONE || next_orig==ORIGINDEX_NONE) {
+ flush= 1;
+ } else {
+ /* also compare draw options and flush buffer if they're different
+ need for face selection highlight in edit mode */
+ flush|= compareDrawOptions(userData, orig, next_orig) == 0;
+ }
}
if(flush) {
diff --git a/source/blender/blenkernel/intern/key.c b/source/blender/blenkernel/intern/key.c
index 2aef5b39c71..4b8209ab77e 100644
--- a/source/blender/blenkernel/intern/key.c
+++ b/source/blender/blenkernel/intern/key.c
@@ -807,7 +807,7 @@ static void do_key(const int start, int end, const int tot, char *poin, Key *key
int a, ofs[32], *ofsp;
int flagdo= 15, flagflo=0, elemsize, poinsize=0;
char *k1, *k2, *k3, *k4, *freek1, *freek2, *freek3, *freek4;
- char *cp, elemstr[8];;
+ char *cp, elemstr[8];
/* currently always 0, in future key_pointer_size may assign */
ofs[1]= 0;
diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c
index e621e800520..cd264c5ddfd 100644
--- a/source/blender/blenkernel/intern/multires.c
+++ b/source/blender/blenkernel/intern/multires.c
@@ -1408,7 +1408,7 @@ static void multires_load_old_dm(DerivedMesh *dm, Mesh *me, int totlvl)
}
/* Interior face verts */
- lvl = lvl1->next->next;
+ /* lvl = lvl1->next->next; */ /* UNUSED */
dst = 0;
for(j = 0; j < lvl1->totface; ++j) {
int sides = lvl1->faces[j].v[3] ? 4 : 3;
diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c
index 36263746228..3d3806f7c02 100644
--- a/source/blender/blenkernel/intern/subsurf_ccg.c
+++ b/source/blender/blenkernel/intern/subsurf_ccg.c
@@ -1583,7 +1583,7 @@ static void ccgDM_drawFacesColored(DerivedMesh *dm, int UNUSED(useTwoSided), uns
}
static void ccgDM_drawFacesTex_common(DerivedMesh *dm,
- int (*drawParams)(MTFace *tface, MCol *mcol, int matnr),
+ int (*drawParams)(MTFace *tface, int has_mcol, int matnr),
int (*drawParamsMapped)(void *userData, int index),
void *userData)
{
@@ -1619,7 +1619,7 @@ static void ccgDM_drawFacesTex_common(DerivedMesh *dm,
}
if(drawParams)
- flag = drawParams(tf, mcol, mat_nr);
+ flag = drawParams(tf, (mcol != NULL), mat_nr);
else if (index != ORIGINDEX_NONE)
flag= (drawParamsMapped)? drawParamsMapped(userData, index): 1;
else
@@ -1722,7 +1722,7 @@ static void ccgDM_drawFacesTex_common(DerivedMesh *dm,
}
}
-static void ccgDM_drawFacesTex(DerivedMesh *dm, int (*setDrawOptions)(MTFace *tface, MCol *mcol, int matnr))
+static void ccgDM_drawFacesTex(DerivedMesh *dm, int (*setDrawOptions)(MTFace *tface, int has_mcol, int matnr))
{
ccgDM_drawFacesTex_common(dm, setDrawOptions, NULL, NULL);
}
diff --git a/source/blender/blenlib/intern/path_util.c b/source/blender/blenlib/intern/path_util.c
index f89283178ec..0b750d5fff3 100644
--- a/source/blender/blenlib/intern/path_util.c
+++ b/source/blender/blenlib/intern/path_util.c
@@ -1155,8 +1155,8 @@ char *BLI_get_folder_version(const int id, const int ver, const int do_check)
void BLI_setenv(const char *env, const char*val)
{
- /* SGI or free windows */
-#if (defined(__sgi) || ((defined(WIN32) || defined(WIN64)) && defined(FREE_WINDOWS)))
+ /* free windows */
+#if (defined(WIN32) || defined(WIN64)) && defined(FREE_WINDOWS)
char *envstr= MEM_mallocN(sizeof(char) * (strlen(env) + strlen(val) + 2), "envstr"); /* one for = another for \0 */
sprintf(envstr, "%s=%s", env, val);
diff --git a/source/blender/blenlib/intern/storage.c b/source/blender/blenlib/intern/storage.c
index 67e27063fd0..04a6d15a0ea 100644
--- a/source/blender/blenlib/intern/storage.c
+++ b/source/blender/blenlib/intern/storage.c
@@ -45,7 +45,7 @@
#include <time.h>
#include <sys/stat.h>
-#if defined (__sun__) || defined (__sun) || defined (__sgi) || defined (__NetBSD__)
+#if defined (__sun__) || defined (__sun) || defined (__NetBSD__)
#include <sys/statvfs.h> /* Other modern unix os's should probably use this also */
#elif !defined(__FreeBSD__) && !defined(linux) && (defined(__sparc) || defined(__sparc__))
#include <sys/statfs.h>
@@ -165,7 +165,7 @@ double BLI_diskfree(const char *dir)
return (double) (freec*bytesps*sectorspc);
#else
-#if defined (__sun__) || defined (__sun) || defined (__sgi) || defined (__NetBSD__)
+#if defined (__sun__) || defined (__sun) || defined (__NetBSD__)
struct statvfs disk;
#else
struct statfs disk;
@@ -187,7 +187,7 @@ double BLI_diskfree(const char *dir)
if (statfs(name, &disk)) return(-1);
#endif
-#if defined (__sun__) || defined (__sun) || defined (__sgi) || defined (__NetBSD__)
+#if defined (__sun__) || defined (__sun) || defined (__NetBSD__)
if (statvfs(name, &disk)) return(-1);
#elif !defined(__FreeBSD__) && !defined(linux) && (defined(__sparc) || defined(__sparc__))
/* WARNING - This may not be supported by geeneric unix os's - Campbell */
diff --git a/source/blender/blenlib/intern/threads.c b/source/blender/blenlib/intern/threads.c
index 7b59a7905aa..f9cd675dd8c 100644
--- a/source/blender/blenlib/intern/threads.c
+++ b/source/blender/blenlib/intern/threads.c
@@ -318,8 +318,6 @@ int BLI_system_thread_count( void )
mib[1] = HW_NCPU;
len = sizeof(t);
sysctl(mib, 2, &t, &len, NULL, 0);
-# elif defined(__sgi)
- t = sysconf(_SC_NPROC_ONLN);
# else
t = (int)sysconf(_SC_NPROCESSORS_ONLN);
# endif
diff --git a/source/blender/blenloader/BLO_sys_types.h b/source/blender/blenloader/BLO_sys_types.h
index 4b3902dca43..8c0996528c6 100644
--- a/source/blender/blenloader/BLO_sys_types.h
+++ b/source/blender/blenloader/BLO_sys_types.h
@@ -99,7 +99,7 @@ unsigned long __attribute__((__stdcall__)) htonl(unsigned long);
#else
- /* FreeBSD, Irix, Solaris */
+ /* FreeBSD, Solaris */
#include <sys/types.h>
#endif /* ifdef platform for types */
@@ -118,7 +118,7 @@ unsigned long __attribute__((__stdcall__)) htonl(unsigned long);
#include <sys/param.h>
#elif defined (__APPLE__)
#include <sys/types.h>
-#else /* irix sun linux */
+#else /* sun linux */
#include <netinet/in.h>
#endif /* ifdef platform for htonl/ntohl */
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 1134eb17f9d..e5f259e9644 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -3010,6 +3010,9 @@ static void direct_link_texture(FileData *fd, Tex *tex)
if(tex->vd) {
tex->vd->dataset = NULL;
tex->vd->ok = 0;
+ } else {
+ if(tex->type == TEX_VOXELDATA)
+ tex->vd= MEM_callocN(sizeof(VoxelData), "direct_link_texture VoxelData");
}
tex->nodetree= newdataadr(fd, tex->nodetree);
diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c
index 689634bed3b..415d3b141bf 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -1788,7 +1788,7 @@ static void write_textures(WriteData *wd, ListBase *idbase)
if(tex->pd->coba) writestruct(wd, DATA, "ColorBand", 1, tex->pd->coba);
if(tex->pd->falloff_curve) write_curvemapping(wd, tex->pd->falloff_curve);
}
- if(tex->type == TEX_VOXELDATA && tex->vd) writestruct(wd, DATA, "VoxelData", 1, tex->vd);
+ if(tex->type == TEX_VOXELDATA) writestruct(wd, DATA, "VoxelData", 1, tex->vd);
/* nodetree is integral part of texture, no libdata */
if(tex->nodetree) {
diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp
index 2387c9a1465..e98f551a097 100644
--- a/source/blender/collada/DocumentImporter.cpp
+++ b/source/blender/collada/DocumentImporter.cpp
@@ -816,7 +816,7 @@ bool DocumentImporter::writeCamera( const COLLADAFW::Camera* camera )
double aspect = camera->getAspectRatio().getValue();
double xfov = aspect*yfov;
// xfov is in degrees, cam->lens is in millimiters
- cam->lens = angle_to_lens(DEG2RADF(xfov));;
+ cam->lens = angle_to_lens(DEG2RADF(xfov));
}
break;
}
diff --git a/source/blender/editors/armature/armature_ops.c b/source/blender/editors/armature/armature_ops.c
index 81ece9ddc9a..d559aef6fe2 100644
--- a/source/blender/editors/armature/armature_ops.c
+++ b/source/blender/editors/armature/armature_ops.c
@@ -173,6 +173,7 @@ void ED_operatormacros_armature(void)
ot= WM_operatortype_append_macro("ARMATURE_OT_duplicate_move", "Duplicate", OPTYPE_UNDO|OPTYPE_REGISTER);
if(ot) {
+ ot->description= "Make copies of the selected bones within the same armature and move them";
WM_operatortype_macro_define(ot, "ARMATURE_OT_duplicate");
otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
RNA_enum_set(otmacro->ptr, "proportional", 0);
@@ -180,6 +181,7 @@ void ED_operatormacros_armature(void)
ot= WM_operatortype_append_macro("ARMATURE_OT_extrude_move", "Extrude", OPTYPE_UNDO|OPTYPE_REGISTER);
if(ot) {
+ ot->description= "Create new bones from the selected joints and move them";
otmacro=WM_operatortype_macro_define(ot, "ARMATURE_OT_extrude");
RNA_boolean_set(otmacro->ptr, "forked", 0);
otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
@@ -190,6 +192,7 @@ void ED_operatormacros_armature(void)
// that would require fixing a properties bug 19733
ot= WM_operatortype_append_macro("ARMATURE_OT_extrude_forked", "Extrude Forked", OPTYPE_UNDO|OPTYPE_REGISTER);
if(ot) {
+ ot->description= "Create new bones from the selected joints and move them";
otmacro=WM_operatortype_macro_define(ot, "ARMATURE_OT_extrude");
RNA_boolean_set(otmacro->ptr, "forked", 1);
otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
diff --git a/source/blender/editors/armature/editarmature.c b/source/blender/editors/armature/editarmature.c
index 566ff09c366..20368bbf57b 100644
--- a/source/blender/editors/armature/editarmature.c
+++ b/source/blender/editors/armature/editarmature.c
@@ -4298,7 +4298,7 @@ int ED_do_pose_selectbuffer(Scene *scene, Base *base, unsigned int *buffer, shor
* note, special exception for armature mode so we can do multi-select
* we could check for multi-select explicitly but think its fine to
* always give pradictable behavior in weight paint mode - campbell */
- if (!(extend) || ((ob_act && ob_act->mode & OB_MODE_WEIGHT_PAINT) == 0)) {
+ if (!extend || ((ob_act && (ob_act != ob) && (ob_act->mode & OB_MODE_WEIGHT_PAINT)==0))) {
ED_pose_deselectall(ob, 0);
nearBone->flag |= (BONE_SELECTED|BONE_TIPSEL|BONE_ROOTSEL);
arm->act_bone= nearBone;
diff --git a/source/blender/editors/armature/poseobject.c b/source/blender/editors/armature/poseobject.c
index 4405f395843..43122ea08d3 100644
--- a/source/blender/editors/armature/poseobject.c
+++ b/source/blender/editors/armature/poseobject.c
@@ -1227,8 +1227,8 @@ void POSE_OT_paste (wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
- RNA_def_boolean(ot->srna, "flipped", 0, "Flipped on X-Axis", "Paste the stored pose flipped on to current pose");
- RNA_def_boolean(ot->srna, "selected_mask", 1, "On Selected Only", "Only paste the stored pose on to selected bones in the current pose");
+ RNA_def_boolean(ot->srna, "flipped", FALSE, "Flipped on X-Axis", "Paste the stored pose flipped on to current pose");
+ RNA_def_boolean(ot->srna, "selected_mask", FALSE, "On Selected Only", "Only paste the stored pose on to selected bones in the current pose");
}
/* ********************************************** */
diff --git a/source/blender/editors/curve/editcurve.c b/source/blender/editors/curve/editcurve.c
index 84df77bb120..91c06e0f125 100644
--- a/source/blender/editors/curve/editcurve.c
+++ b/source/blender/editors/curve/editcurve.c
@@ -2376,7 +2376,7 @@ static void select_adjacent_cp(ListBase *editnurb, short next, short cont, short
BezTriple *bezt;
BPoint *bp;
int a;
- short lastsel= 0, sel=0;
+ short lastsel= 0;
if(next==0) return;
@@ -2388,13 +2388,12 @@ static void select_adjacent_cp(ListBase *editnurb, short next, short cont, short
if(next < 0) bezt= (nu->bezt + (a-1));
while(a--) {
if(a-abs(next) < 0) break;
- sel= 0;
if((lastsel==0) && (bezt->hide==0) && ((bezt->f2 & SELECT) || (selstatus==0))) {
bezt+=next;
if(!(bezt->f2 & SELECT) || (selstatus==0)) {
- sel= select_beztriple(bezt, selstatus, 1, VISIBLE);
+ short sel= select_beztriple(bezt, selstatus, 1, VISIBLE);
if((sel==1) && (cont==0)) lastsel= 1;
- }
+ }
}
else {
bezt+=next;
@@ -2410,11 +2409,10 @@ static void select_adjacent_cp(ListBase *editnurb, short next, short cont, short
if(next < 0) bp= (nu->bp + (a-1));
while(a--) {
if(a-abs(next) < 0) break;
- sel=0;
if((lastsel==0) && (bp->hide==0) && ((bp->f1 & SELECT) || (selstatus==0))) {
bp+=next;
if(!(bp->f1 & SELECT) || (selstatus==0)) {
- sel= select_bpoint(bp, selstatus, 1, VISIBLE);
+ short sel= select_bpoint(bp, selstatus, 1, VISIBLE);
if((sel==1) && (cont==0)) lastsel= 1;
}
}
@@ -2443,7 +2441,6 @@ void selectend_nurb(Object *obedit, short selfirst, short doswap, short selstatu
BezTriple *bezt;
Curve *cu;
int a;
- short sel;
if(obedit==NULL) return;
@@ -2451,7 +2448,6 @@ void selectend_nurb(Object *obedit, short selfirst, short doswap, short selstatu
cu->lastsel= NULL;
for(nu= editnurb->first; nu; nu= nu->next) {
- sel= 0;
if(nu->type == CU_BEZIER) {
a= nu->pntsu;
@@ -2464,6 +2460,7 @@ void selectend_nurb(Object *obedit, short selfirst, short doswap, short selstatu
}
while(a--) {
+ short sel;
if(doswap) sel= swap_selection_beztriple(bezt);
else sel= select_beztriple(bezt, selstatus, 1, VISIBLE);
@@ -2483,6 +2480,7 @@ void selectend_nurb(Object *obedit, short selfirst, short doswap, short selstatu
while(a--) {
if (bp->hide == 0) {
+ short sel;
if(doswap) sel= swap_selection_bpoint(bp);
else sel= select_bpoint(bp, selstatus, 1, VISIBLE);
@@ -5779,6 +5777,7 @@ static int delete_exec(bContext *C, wmOperator *op)
clamp_nurb_order_u(nu);
}*/
}
+ clamp_nurb_order_u(nu);
nurbs_knot_calc_u(nu);
}
nu= next;
@@ -5927,7 +5926,14 @@ static int delete_exec(bContext *C, wmOperator *op)
MEM_freeN(nu1->bp);
nu1->bp= bp;
nu1->pntsu= a;
+ nu1->knotsu= NULL;
nu->pntsu= cut+1;
+
+ clamp_nurb_order_u(nu);
+ nurbs_knot_calc_u(nu);
+
+ clamp_nurb_order_u(nu1);
+ nurbs_knot_calc_u(nu1);
}
}
}
diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c
index 842ab92ae31..1bab362fe55 100644
--- a/source/blender/editors/gpencil/gpencil_paint.c
+++ b/source/blender/editors/gpencil/gpencil_paint.c
@@ -1478,7 +1478,7 @@ static void gpencil_draw_apply (wmOperator *op, tGPsdata *p)
/* start a new stroke, starting from previous point */
gp_stroke_addpoint(p, p->mvalo, p->opressure);
- ok= gp_stroke_addpoint(p, p->mval, p->pressure);
+ gp_stroke_addpoint(p, p->mval, p->pressure);
}
else if (ok == GP_STROKEADD_INVALID) {
/* the painting operation cannot continue... */
diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h
index 06b44e36b69..f5abebbebd5 100644
--- a/source/blender/editors/include/UI_interface.h
+++ b/source/blender/editors/include/UI_interface.h
@@ -610,6 +610,7 @@ void UI_remove_popup_handlers(struct ListBase *handlers, uiPopupBlockHandle *pop
void UI_init(void);
void UI_init_userdef(void);
+void UI_reinit_font(void);
void UI_exit(void);
/* Layout
diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c
index 2ff77d255c6..32fe0fb86f9 100644
--- a/source/blender/editors/interface/interface.c
+++ b/source/blender/editors/interface/interface.c
@@ -1935,6 +1935,9 @@ void uiFreeBlock(const bContext *C, uiBlock *block)
ui_free_but(C, but);
}
+ if(block->unit)
+ MEM_freeN(block->unit);
+
if(block->func_argN)
MEM_freeN(block->func_argN);
@@ -2010,10 +2013,15 @@ uiBlock *uiBeginBlock(const bContext *C, ARegion *region, const char *name, shor
block->active= 1;
block->dt= dt;
block->evil_C= (void*)C; // XXX
+
if (scn) {
block->color_profile= (scn->r.color_mgt_flag & R_COLOR_MANAGEMENT);
- block->unit= &scn->unit;
+
+ /* copy to avoid crash when scene gets deleted with ui still open */
+ block->unit= MEM_mallocN(sizeof(scn->unit), "UI UnitSettings");
+ memcpy(block->unit, &scn->unit, sizeof(scn->unit));
}
+
BLI_strncpy(block->name, name, sizeof(block->name));
if(region)
@@ -3552,6 +3560,11 @@ void UI_init_userdef(void)
uiStyleInit();
}
+void UI_reinit_font()
+{
+ uiStyleInit();
+}
+
void UI_exit(void)
{
ui_resources_free();
diff --git a/source/blender/editors/interface/interface_style.c b/source/blender/editors/interface/interface_style.c
index 5ea20b33b3a..3a9879384a3 100644
--- a/source/blender/editors/interface/interface_style.c
+++ b/source/blender/editors/interface/interface_style.c
@@ -323,13 +323,28 @@ void uiStyleInit(void)
if(font->uifont_id==UIFONT_DEFAULT) {
#ifdef INTERNATIONAL
- int unifont_size;
- unsigned char *unifont_ttf= BLF_get_unifont(&unifont_size);
-
- if(unifont_ttf)
- font->blf_id= BLF_load_mem_unique("default", unifont_ttf, unifont_size);
- else
- font->blf_id= BLF_load_mem("default", (unsigned char*)datatoc_bfont_ttf, datatoc_bfont_ttf_size);
+ int font_size= datatoc_bfont_ttf_size;
+ unsigned char *font_ttf= (unsigned char*)datatoc_bfont_ttf;
+ static int last_font_size = 0;
+
+ /* use unicode font for translation */
+ if(U.transopts & USER_DOTRANSLATE) {
+ font_ttf= BLF_get_unifont(&font_size);
+
+ if(!font_ttf) {
+ /* fall back if not found */
+ font_size= datatoc_bfont_ttf_size;
+ font_ttf= (unsigned char*)datatoc_bfont_ttf;
+ }
+ }
+
+ /* relload only if needed */
+ if(last_font_size != font_size) {
+ BLF_unload("default");
+ last_font_size = font_size;
+ }
+
+ font->blf_id= BLF_load_mem("default", font_ttf, font_size);
#else
font->blf_id= BLF_load_mem("default", (unsigned char*)datatoc_bfont_ttf, datatoc_bfont_ttf_size);
#endif
diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c
index 1b1b788d046..926378719d5 100644
--- a/source/blender/editors/interface/interface_templates.c
+++ b/source/blender/editors/interface/interface_templates.c
@@ -2488,7 +2488,7 @@ void uiTemplateReportsBanner(uiLayout *layout, bContext *C)
uiLayout *ui_abs;
uiBlock *block;
uiBut *but;
- uiStyle *style= U.uistyles.first;
+ uiStyle *style= UI_GetStyle();
int width;
int icon=0;
diff --git a/source/blender/editors/mesh/editmesh_add.c b/source/blender/editors/mesh/editmesh_add.c
index 0c819cd7649..98cca08fd7a 100644
--- a/source/blender/editors/mesh/editmesh_add.c
+++ b/source/blender/editors/mesh/editmesh_add.c
@@ -1472,6 +1472,8 @@ static int add_primitive_circle_exec(bContext *C, wmOperator *op)
void MESH_OT_primitive_circle_add(wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
/* identifiers */
ot->name= "Add Circle";
ot->description= "Construct a circle mesh";
@@ -1487,7 +1489,8 @@ void MESH_OT_primitive_circle_add(wmOperatorType *ot)
/* props */
RNA_def_int(ot->srna, "vertices", 32, 3, INT_MAX, "Vertices", "", 3, 500);
- RNA_def_float(ot->srna, "radius", 1.0f, 0.0, FLT_MAX, "Radius", "", 0.001, 100.00);
+ prop = RNA_def_float(ot->srna, "radius", 1.0f, 0.0, FLT_MAX, "Radius", "", 0.001, 100.00);
+ RNA_def_property_subtype(prop, PROP_DISTANCE);
RNA_def_boolean(ot->srna, "fill", 0, "Fill", "");
ED_object_add_generic_props(ot, TRUE);
@@ -1513,6 +1516,8 @@ static int add_primitive_cylinder_exec(bContext *C, wmOperator *op)
void MESH_OT_primitive_cylinder_add(wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
/* identifiers */
ot->name= "Add Cylinder";
ot->description= "Construct a cylinder mesh";
@@ -1528,8 +1533,10 @@ void MESH_OT_primitive_cylinder_add(wmOperatorType *ot)
/* props */
RNA_def_int(ot->srna, "vertices", 32, 2, INT_MAX, "Vertices", "", 2, 500);
- RNA_def_float(ot->srna, "radius", 1.0f, 0.0, FLT_MAX, "Radius", "", 0.001, 100.00);
- RNA_def_float(ot->srna, "depth", 2.0f, 0.0, FLT_MAX, "Depth", "", 0.001, 100.00);
+ prop = RNA_def_float(ot->srna, "radius", 1.0f, 0.0, FLT_MAX, "Radius", "", 0.001, 100.00);
+ RNA_def_property_subtype(prop, PROP_DISTANCE);
+ prop = RNA_def_float(ot->srna, "depth", 2.0f, 0.0, FLT_MAX, "Depth", "", 0.001, 100.00);
+ RNA_def_property_subtype(prop, PROP_DISTANCE);
RNA_def_boolean(ot->srna, "cap_ends", 1, "Cap Ends", "");
ED_object_add_generic_props(ot, TRUE);
@@ -1554,6 +1561,8 @@ static int add_primitive_cone_exec(bContext *C, wmOperator *op)
void MESH_OT_primitive_cone_add(wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
/* identifiers */
ot->name= "Add Cone";
ot->description= "Construct a conic mesh (ends filled)";
@@ -1569,8 +1578,10 @@ void MESH_OT_primitive_cone_add(wmOperatorType *ot)
/* props */
RNA_def_int(ot->srna, "vertices", 32, 2, INT_MAX, "Vertices", "", 2, 500);
- RNA_def_float(ot->srna, "radius", 1.0f, 0.0, FLT_MAX, "Radius", "", 0.001, 100.00);
- RNA_def_float(ot->srna, "depth", 2.0f, 0.0, FLT_MAX, "Depth", "", 0.001, 100.00);
+ prop = RNA_def_float(ot->srna, "radius", 1.0f, 0.0, FLT_MAX, "Radius", "", 0.001, 100.00);
+ RNA_def_property_subtype(prop, PROP_DISTANCE);
+ prop = RNA_def_float(ot->srna, "depth", 2.0f, 0.0, FLT_MAX, "Depth", "", 0.001, 100.00);
+ RNA_def_property_subtype(prop, PROP_DISTANCE);
RNA_def_boolean(ot->srna, "cap_end", 1, "Cap End", "");
ED_object_add_generic_props(ot, TRUE);
@@ -1595,6 +1606,8 @@ static int add_primitive_grid_exec(bContext *C, wmOperator *op)
void MESH_OT_primitive_grid_add(wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
/* identifiers */
ot->name= "Add Grid";
ot->description= "Construct a grid mesh";
@@ -1611,7 +1624,8 @@ void MESH_OT_primitive_grid_add(wmOperatorType *ot)
/* props */
RNA_def_int(ot->srna, "x_subdivisions", 10, 3, INT_MAX, "X Subdivisions", "", 3, 1000);
RNA_def_int(ot->srna, "y_subdivisions", 10, 3, INT_MAX, "Y Subdivisions", "", 3, 1000);
- RNA_def_float(ot->srna, "size", 1.0f, 0.0, FLT_MAX, "Size", "", 0.001, FLT_MAX);
+ prop = RNA_def_float(ot->srna, "size", 1.0f, 0.0, FLT_MAX, "Size", "", 0.001, FLT_MAX);
+ RNA_def_property_subtype(prop, PROP_DISTANCE);
ED_object_add_generic_props(ot, TRUE);
}
@@ -1668,6 +1682,8 @@ static int add_primitive_uvsphere_exec(bContext *C, wmOperator *op)
void MESH_OT_primitive_uv_sphere_add(wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
/* identifiers */
ot->name= "Add UV Sphere";
ot->description= "Construct a UV sphere mesh";
@@ -1684,7 +1700,8 @@ void MESH_OT_primitive_uv_sphere_add(wmOperatorType *ot)
/* props */
RNA_def_int(ot->srna, "segments", 32, 3, INT_MAX, "Segments", "", 3, 500);
RNA_def_int(ot->srna, "ring_count", 16, 3, INT_MAX, "Rings", "", 3, 500);
- RNA_def_float(ot->srna, "size", 1.0f, 0.0, FLT_MAX, "Size", "", 0.001, 100.00);
+ prop = RNA_def_float(ot->srna, "size", 1.0f, 0.0, FLT_MAX, "Size", "", 0.001, 100.00);
+ RNA_def_property_subtype(prop, PROP_DISTANCE);
ED_object_add_generic_props(ot, TRUE);
}
@@ -1707,6 +1724,8 @@ static int add_primitive_icosphere_exec(bContext *C, wmOperator *op)
void MESH_OT_primitive_ico_sphere_add(wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
/* identifiers */
ot->name= "Add Ico Sphere";
ot->description= "Construct an Icosphere mesh";
@@ -1722,7 +1741,8 @@ void MESH_OT_primitive_ico_sphere_add(wmOperatorType *ot)
/* props */
RNA_def_int(ot->srna, "subdivisions", 2, 1, INT_MAX, "Subdivisions", "", 1, 8);
- RNA_def_float(ot->srna, "size", 1.0f, 0.0f, FLT_MAX, "Size", "", 0.001f, 100.00);
+ prop = RNA_def_float(ot->srna, "size", 1.0f, 0.0f, FLT_MAX, "Size", "", 0.001f, 100.00);
+ RNA_def_property_subtype(prop, PROP_DISTANCE);
ED_object_add_generic_props(ot, TRUE);
}
diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c
index ec1405f74b8..8ca481655d0 100644
--- a/source/blender/editors/object/object_edit.c
+++ b/source/blender/editors/object/object_edit.c
@@ -798,7 +798,7 @@ static void UNUSED_FUNCTION(special_editmenu)(Scene *scene, View3D *v3d)
Object *par= modifiers_isDeformedByArmature(ob);
if(par && (par->mode & OB_MODE_POSE)) {
- nr= pupmenu("Specials%t|Apply Bone Envelopes to Vertex Groups %x1|Apply Bone Heat Weights to Vertex Groups %x2");
+// XXX nr= pupmenu("Specials%t|Apply Bone Envelopes to Vertex Groups %x1|Apply Bone Heat Weights to Vertex Groups %x2");
// XXX if(nr==1 || nr==2)
// XXX pose_adds_vgroups(ob, (nr == 2));
diff --git a/source/blender/editors/object/object_ops.c b/source/blender/editors/object/object_ops.c
index 452d1aded51..a9cb0423739 100644
--- a/source/blender/editors/object/object_ops.c
+++ b/source/blender/editors/object/object_ops.c
@@ -230,6 +230,7 @@ void ED_operatormacros_object(void)
ot= WM_operatortype_append_macro("OBJECT_OT_duplicate_move", "Duplicate Objects", OPTYPE_UNDO|OPTYPE_REGISTER);
if(ot) {
+ ot->description = "Duplicate selected objects and move them";
WM_operatortype_macro_define(ot, "OBJECT_OT_duplicate");
otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
RNA_enum_set(otmacro->ptr, "proportional", PROP_EDIT_OFF);
@@ -238,6 +239,7 @@ void ED_operatormacros_object(void)
/* grr, should be able to pass options on... */
ot= WM_operatortype_append_macro("OBJECT_OT_duplicate_move_linked", "Duplicate Linked", OPTYPE_UNDO|OPTYPE_REGISTER);
if(ot) {
+ ot->description = "Duplicate selected objects and move them";
otmacro= WM_operatortype_macro_define(ot, "OBJECT_OT_duplicate");
RNA_boolean_set(otmacro->ptr, "linked", 1);
otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
@@ -247,6 +249,7 @@ void ED_operatormacros_object(void)
/* XXX */
ot= WM_operatortype_append_macro("OBJECT_OT_add_named_cursor", "Add named object at cursor", OPTYPE_UNDO|OPTYPE_REGISTER);
if(ot) {
+ ot->description = "Add named object at cursor";
RNA_def_string(ot->srna, "name", "Cube", 24, "Name", "Object name to add");
WM_operatortype_macro_define(ot, "VIEW3D_OT_cursor3d");
diff --git a/source/blender/editors/object/object_vgroup.c b/source/blender/editors/object/object_vgroup.c
index 797cf428969..5265261f3af 100644
--- a/source/blender/editors/object/object_vgroup.c
+++ b/source/blender/editors/object/object_vgroup.c
@@ -955,10 +955,8 @@ static void moveCloserToDistanceFromPlane(Scene *scene, Object *ob, Mesh *me, in
wasChange = FALSE;
dm = dm_deform_recalc(scene, ob);
dm->getVert(dm, index, &m);
- oldPos[0] = m.co[0];
- oldPos[1] = m.co[1];
- oldPos[2] = m.co[2];
- distToStart = norm[0]*oldPos[0] + norm[1]*oldPos[1] + norm[2]*oldPos[2] + d;
+ copy_v3_v3(oldPos, m.co);
+ distToStart = dot_v3v3(norm, oldPos) + d;
if(distToBe == originalDistToBe) {
distToBe += distToStart - distToStart*strength;
@@ -1123,18 +1121,14 @@ static void vgroup_fix(Scene *scene, Object *ob, float distToBe, float strength,
if(count >= 3) {
float d /*, dist */ /* UNUSED */, mag;
- float coord[3] = {0};
- float norm[3] = {0};
+ float coord[3];
+ float norm[3];
getSingleCoordinate(p, count, coord);
dm->getVert(dm, i, &m);
- norm[0] = m.co[0]-coord[0];
- norm[1] = m.co[1]-coord[1];
- norm[2] = m.co[2]-coord[2];
- mag = sqrt(norm[0]*norm[0] + norm[1]*norm[1] + norm[2]*norm[2]);
- if(mag) {// zeros fix
- mul_v3_fl(norm, 1.0f/mag);
-
- d = -norm[0]*coord[0] -norm[1]*coord[1] -norm[2]*coord[2];
+ sub_v3_v3v3(norm, m.co, coord);
+ mag= normalize_v3(norm);
+ if(mag) { /* zeros fix */
+ d = -dot_v3v3(norm, coord);
/* dist = (norm[0]*m.co[0] + norm[1]*m.co[1] + norm[2]*m.co[2] + d); */ /* UNUSED */
moveCloserToDistanceFromPlane(scene, ob, me, i, norm, coord, d, distToBe, strength, cp);
}
@@ -2355,7 +2349,7 @@ void OBJECT_OT_vertex_group_fix(wmOperatorType *ot)
/* identifiers */
ot->name= "Fix Vertex Group Deform";
ot->idname= "OBJECT_OT_vertex_group_fix";
- ot->description= "Modify the position of selected vertices by changing only their respective groups' weights (this tool may be slow for many vertices).";
+ ot->description= "Modify the position of selected vertices by changing only their respective groups' weights (this tool may be slow for many vertices)";
/* api callbacks */
ot->poll= vertex_group_poll;
@@ -2363,9 +2357,9 @@ void OBJECT_OT_vertex_group_fix(wmOperatorType *ot)
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
- RNA_def_float(ot->srna, "dist", 0.0f, -FLT_MAX, FLT_MAX, "Distance", "The distance to move to.", -10.0f, 10.0f);
- RNA_def_float(ot->srna, "strength", 1.f, -2.0f, FLT_MAX, "Strength", "The distance moved can be changed by this multiplier.", -2.0f, 2.0f);
- RNA_def_float(ot->srna, "accuracy", 1.0f, 0.05f, FLT_MAX, "Change Sensitivity", "Changes the amount weights are altered with each iteration: lower values are slower.", 0.05f, 1.f);
+ RNA_def_float(ot->srna, "dist", 0.0f, -FLT_MAX, FLT_MAX, "Distance", "The distance to move to", -10.0f, 10.0f);
+ RNA_def_float(ot->srna, "strength", 1.f, -2.0f, FLT_MAX, "Strength", "The distance moved can be changed by this multiplier", -2.0f, 2.0f);
+ RNA_def_float(ot->srna, "accuracy", 1.0f, 0.05f, FLT_MAX, "Change Sensitivity", "Changes the amount weights are altered with each iteration: lower values are slower", 0.05f, 1.f);
}
diff --git a/source/blender/editors/screen/glutil.c b/source/blender/editors/screen/glutil.c
index f56ae17d366..589d652a275 100644
--- a/source/blender/editors/screen/glutil.c
+++ b/source/blender/editors/screen/glutil.c
@@ -279,18 +279,7 @@ void setlinestyle(int nr)
void set_inverted_drawing(int enable)
{
glLogicOp(enable?GL_INVERT:GL_COPY);
-
- /* Use GL_BLEND_EQUATION_EXT on sgi (if we have it),
- * apparently GL_COLOR_LOGIC_OP doesn't work on O2?
- * Is this an sgi bug or our bug?
- */
-#if defined(__sgi) && defined(GL_BLEND_EQUATION_EXT)
- glBlendEquationEXT(enable?GL_LOGIC_OP:GL_FUNC_ADD_EXT);
- glToggle(GL_BLEND, enable);
-#else
glToggle(GL_COLOR_LOGIC_OP, enable);
-#endif
-
glToggle(GL_DITHER, !enable);
}
diff --git a/source/blender/editors/sculpt_paint/paint_vertex.c b/source/blender/editors/sculpt_paint/paint_vertex.c
index 11a46bb373b..0c2cb2ee36d 100644
--- a/source/blender/editors/sculpt_paint/paint_vertex.c
+++ b/source/blender/editors/sculpt_paint/paint_vertex.c
@@ -2108,7 +2108,7 @@ static void wpaint_stroke_update_step(bContext *C, struct PaintStroke *stroke, P
if(indexar[index] && indexar[index]<=me->totface) {
MFace *mf= me->mface + (indexar[index]-1);
- unsigned int fidx= mf->v4 ? 3:2;;
+ unsigned int fidx= mf->v4 ? 3:2;
do {
unsigned int vidx= *(&mf->v1 + fidx);
diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c
index 0bdb027a903..62d6d5f16b8 100644
--- a/source/blender/editors/sculpt_paint/sculpt.c
+++ b/source/blender/editors/sculpt_paint/sculpt.c
@@ -484,13 +484,11 @@ static float integrate_overlap(Brush* br)
int i;
int m= 10;
float g = 1.0f/m;
- float overlap;
float max;
- overlap= 0;
max= 0;
for(i= 0; i < m; i++) {
- overlap = overlapped_curve(br, i*g);
+ float overlap= overlapped_curve(br, i*g);
if (overlap > max)
max = overlap;
diff --git a/source/blender/editors/space_action/action_draw.c b/source/blender/editors/space_action/action_draw.c
index f541423e69d..619e76e9e50 100644
--- a/source/blender/editors/space_action/action_draw.c
+++ b/source/blender/editors/space_action/action_draw.c
@@ -189,7 +189,7 @@ void draw_channel_strips(bAnimContext *ac, SpaceAction *saction, ARegion *ar)
/* if in NLA there's a strip active, map the view */
if (ac->datatype == ANIMCONT_ACTION) {
- adt= ANIM_nla_mapping_get(ac, NULL);
+ /* adt= ANIM_nla_mapping_get(ac, NULL); */ /* UNUSED */
/* start and end of action itself */
calc_action_range(ac->data, &act_start, &act_end, 0);
diff --git a/source/blender/editors/space_action/action_ops.c b/source/blender/editors/space_action/action_ops.c
index 491d436741e..c3af3521918 100644
--- a/source/blender/editors/space_action/action_ops.c
+++ b/source/blender/editors/space_action/action_ops.c
@@ -94,6 +94,7 @@ void ED_operatormacros_action(void)
ot= WM_operatortype_append_macro("ACTION_OT_duplicate_move", "Duplicate", OPTYPE_UNDO|OPTYPE_REGISTER);
if (ot) {
+ ot->description= "Make a copy of all selected keyframes and move them";
WM_operatortype_macro_define(ot, "ACTION_OT_duplicate");
otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_transform");
RNA_enum_set(otmacro->ptr, "mode", TFM_TIME_DUPLICATE);
diff --git a/source/blender/editors/space_file/file_ops.c b/source/blender/editors/space_file/file_ops.c
index e61d7693d19..fd52c3c4199 100644
--- a/source/blender/editors/space_file/file_ops.c
+++ b/source/blender/editors/space_file/file_ops.c
@@ -749,7 +749,9 @@ int file_exec(bContext *C, wmOperator *exec_op)
file_sfile_to_operator(op, sfile, filepath);
- fsmenu_insert_entry(fsmenu_get(), FS_CATEGORY_RECENT, sfile->params->dir,0, 1);
+ if (BLI_exist(sfile->params->dir))
+ fsmenu_insert_entry(fsmenu_get(), FS_CATEGORY_RECENT, sfile->params->dir, 0, 1);
+
BLI_make_file_string(G.main->name, filepath, BLI_get_folder_create(BLENDER_USER_CONFIG, NULL), BLENDER_BOOKMARK_FILE);
fsmenu_write_file(fsmenu_get(), filepath);
WM_event_fileselect_event(C, op, EVT_FILESELECT_EXEC);
diff --git a/source/blender/editors/space_graph/graph_ops.c b/source/blender/editors/space_graph/graph_ops.c
index 46918407447..fb148a73ed2 100644
--- a/source/blender/editors/space_graph/graph_ops.c
+++ b/source/blender/editors/space_graph/graph_ops.c
@@ -277,6 +277,7 @@ void ED_operatormacros_graph(void)
ot= WM_operatortype_append_macro("GRAPH_OT_duplicate_move", "Duplicate", OPTYPE_UNDO|OPTYPE_REGISTER);
if (ot) {
+ ot->description= "Make a copy of all selected keyframes and move them";
WM_operatortype_macro_define(ot, "GRAPH_OT_duplicate");
otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_transform");
RNA_enum_set(otmacro->ptr, "mode", TFM_TIME_DUPLICATE);
diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c
index f34cef4d2aa..970eccb8be3 100644
--- a/source/blender/editors/space_node/drawnode.c
+++ b/source/blender/editors/space_node/drawnode.c
@@ -129,7 +129,7 @@ static uiBlock *socket_component_menu(bContext *C, ARegion *ar, void *args_v)
block= uiBeginBlock(C, ar, "socket menu", UI_EMBOSS);
uiBlockSetFlag(block, UI_BLOCK_KEEP_OPEN);
- layout= uiLayoutColumn(uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, args->x, args->y+2, args->width, NODE_DY, U.uistyles.first), 0);
+ layout= uiLayoutColumn(uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, args->x, args->y+2, args->width, NODE_DY, UI_GetStyle()), 0);
uiItemR(layout, &args->ptr, "default_value", UI_ITEM_R_EXPAND, "", ICON_NONE);
@@ -788,7 +788,7 @@ static void node_draw_group(const bContext *C, ARegion *ar, SpaceNode *snode, bN
UI_ThemeColor(TH_TEXT_HI);
layout = uiBlockLayout(gnode->block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, (short)(rect.xmin+15), (short)(rect.ymax+group_header),
- MIN2((int)(rect.xmax - rect.xmin-18.0f), node_group_frame+20), group_header, U.uistyles.first);
+ MIN2((int)(rect.xmax - rect.xmin-18.0f), node_group_frame+20), group_header, UI_GetStyle());
RNA_pointer_create(&ntree->id, &RNA_Node, gnode, &ptr);
uiTemplateIDBrowse(layout, (bContext*)C, &ptr, "node_tree", NULL, NULL, NULL);
uiBlockLayoutResolve(gnode->block, NULL, NULL);
diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c
index 7cb8351cd12..916e59eae9c 100644
--- a/source/blender/editors/space_node/node_edit.c
+++ b/source/blender/editors/space_node/node_edit.c
@@ -1805,7 +1805,7 @@ void NODE_OT_link_viewer(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Link to Viewer Node";
- ot->description = "Link to Viewer Node";
+ ot->description = "Link to viewer node";
ot->idname= "NODE_OT_link_viewer";
/* api callbacks */
@@ -2275,7 +2275,7 @@ void NODE_OT_duplicate(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Duplicate Nodes";
- ot->description = "Duplicate the nodes";
+ ot->description = "Duplicate selected nodes";
ot->idname= "NODE_OT_duplicate";
/* api callbacks */
@@ -2903,12 +2903,13 @@ static int node_read_fullsamplelayers_exec(bContext *C, wmOperator *UNUSED(op))
Render *re= RE_NewRender(curscene->id.name);
WM_cursor_wait(1);
-
RE_MergeFullSample(re, bmain, curscene, snode->nodetree);
- snode_notify(C, snode);
- snode_dag_update(C, snode);
-
WM_cursor_wait(0);
+
+ /* note we are careful to send the right notifier, as otherwise the
+ compositor would reexecute and overwrite the full sample result */
+ WM_event_add_notifier(C, NC_SCENE|ND_COMPO_RESULT, NULL);
+
return OPERATOR_FINISHED;
}
diff --git a/source/blender/editors/space_node/node_header.c b/source/blender/editors/space_node/node_header.c
index 996e05afdef..205dd6bb639 100644
--- a/source/blender/editors/space_node/node_header.c
+++ b/source/blender/editors/space_node/node_header.c
@@ -93,7 +93,7 @@ static void do_node_add(bContext *C, bNodeTemplate *ntemp)
else node->flag &= ~NODE_TEST;
}
- node= node_add_node(snode, bmain, scene, ntemp, snode->mx, snode->my);
+ /* node= */ node_add_node(snode, bmain, scene, ntemp, snode->mx, snode->my);
/* select previous selection before autoconnect */
for(node= snode->edittree->nodes.first; node; node= node->next) {
diff --git a/source/blender/editors/space_node/node_ops.c b/source/blender/editors/space_node/node_ops.c
index 153d703ddf6..87f98f2bb8d 100644
--- a/source/blender/editors/space_node/node_ops.c
+++ b/source/blender/editors/space_node/node_ops.c
@@ -106,19 +106,22 @@ void ED_operatormacros_node(void)
wmOperatorTypeMacro *mot;
ot= WM_operatortype_append_macro("NODE_OT_duplicate_move", "Duplicate", OPTYPE_UNDO|OPTYPE_REGISTER);
+ ot->description = "Duplicate selected nodes and move them";
WM_operatortype_macro_define(ot, "NODE_OT_duplicate");
WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
/* modified operator call for duplicating with input links */
ot= WM_operatortype_append_macro("NODE_OT_duplicate_move_keep_inputs", "Duplicate", OPTYPE_UNDO|OPTYPE_REGISTER);
+ ot->description = "Duplicate selected nodes keeping input links and move them";
mot = WM_operatortype_macro_define(ot, "NODE_OT_duplicate");
RNA_boolean_set(mot->ptr, "keep_inputs", 1);
WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
ot= WM_operatortype_append_macro("NODE_OT_select_link_viewer", "Link Viewer", OPTYPE_UNDO);
+ ot->description = "Select node and link it to a viewer node";
WM_operatortype_macro_define(ot, "NODE_OT_select");
WM_operatortype_macro_define(ot, "NODE_OT_link_viewer");
- }
+}
void node_keymap(struct wmKeyConfig *keyconf)
{
diff --git a/source/blender/editors/space_node/space_node.c b/source/blender/editors/space_node/space_node.c
index 0990afa4fe6..9c4581a43da 100644
--- a/source/blender/editors/space_node/space_node.c
+++ b/source/blender/editors/space_node/space_node.c
@@ -178,6 +178,9 @@ static void node_area_listener(ScrArea *sa, wmNotifier *wmn)
case ND_FRAME:
ED_area_tag_refresh(sa);
break;
+ case ND_COMPO_RESULT:
+ ED_area_tag_redraw(sa);
+ break;
case ND_TRANSFORM_DONE:
if(type==NTREE_COMPOSIT) {
if(snode->flag & SNODE_AUTO_RENDER) {
diff --git a/source/blender/editors/space_outliner/outliner_tree.c b/source/blender/editors/space_outliner/outliner_tree.c
index 9fe0ed0543f..dda103b971b 100644
--- a/source/blender/editors/space_outliner/outliner_tree.c
+++ b/source/blender/editors/space_outliner/outliner_tree.c
@@ -1544,8 +1544,9 @@ void outliner_build_tree(Main *mainvar, Scene *scene, SpaceOops *soops)
while(seq) {
op= need_add_seq_dup(seq);
- if(op==1)
- ten= outliner_add_element(soops, &soops->tree, (void*)seq, NULL, TSE_SEQUENCE, 0);
+ if(op==1) {
+ /* ten= */ outliner_add_element(soops, &soops->tree, (void*)seq, NULL, TSE_SEQUENCE, 0);
+ }
else if(op==0) {
ten= outliner_add_element(soops, &soops->tree, (void*)seq, NULL, TSE_SEQUENCE_DUP, 0);
outliner_add_seq_dup(soops, seq, ten, 0);
@@ -1582,7 +1583,7 @@ void outliner_build_tree(Main *mainvar, Scene *scene, SpaceOops *soops)
wmKeyMap *km;
for(km= wm->defaultconf->keymaps.first; km; km= km->next) {
- ten= outliner_add_element(soops, &soops->tree, (void*)km, NULL, TSE_KEYMAP, 0);
+ /* ten= */ outliner_add_element(soops, &soops->tree, (void*)km, NULL, TSE_KEYMAP, 0);
}
}
else {
diff --git a/source/blender/editors/space_text/text_draw.c b/source/blender/editors/space_text/text_draw.c
index 685b15aed50..4c617115a3d 100644
--- a/source/blender/editors/space_text/text_draw.c
+++ b/source/blender/editors/space_text/text_draw.c
@@ -508,7 +508,7 @@ void wrap_offset(SpaceText *st, ARegion *ar, TextLine *linein, int cursin, int *
{
Text *text;
TextLine *linep;
- int i, j, start, end, chars, max, chop;
+ int i, j, start, end, max, chop;
char ch;
*offl= *offc= 0;
@@ -546,9 +546,9 @@ void wrap_offset(SpaceText *st, ARegion *ar, TextLine *linein, int cursin, int *
start= 0;
end= max;
chop= 1;
- chars= 0;
*offc= 0;
for(i=0, j=0; linep->line[j]!='\0'; j++) {
+ int chars;
/* Mimic replacement of tabs */
ch= linep->line[j];
@@ -557,8 +557,9 @@ void wrap_offset(SpaceText *st, ARegion *ar, TextLine *linein, int cursin, int *
if(linep==linein && i<cursin) cursin += chars-1;
ch= ' ';
}
- else
+ else {
chars= 1;
+ }
while(chars--) {
if(i-start>=max) {
diff --git a/source/blender/editors/space_view3d/drawmesh.c b/source/blender/editors/space_view3d/drawmesh.c
index b6e76885719..546e5ccba5d 100644
--- a/source/blender/editors/space_view3d/drawmesh.c
+++ b/source/blender/editors/space_view3d/drawmesh.c
@@ -362,7 +362,7 @@ static void draw_textured_end(void)
glPopMatrix();
}
-static int draw_tface__set_draw_legacy(MTFace *tface, MCol *mcol, int matnr)
+static int draw_tface__set_draw_legacy(MTFace *tface, int has_mcol, int matnr)
{
Material *ma= give_current_material(Gtexdraw.ob, matnr+1);
int validtexture=0;
@@ -377,7 +377,7 @@ static int draw_tface__set_draw_legacy(MTFace *tface, MCol *mcol, int matnr)
} else if (ma && ma->shade_flag&MA_OBCOLOR) {
glColor3ubv(Gtexdraw.obcol);
return 2; /* Don't set color */
- } else if (!mcol) {
+ } else if (!has_mcol) {
if (tface) glColor3f(1.0, 1.0, 1.0);
else {
if(ma) {
@@ -394,7 +394,7 @@ static int draw_tface__set_draw_legacy(MTFace *tface, MCol *mcol, int matnr)
return 1; /* Set color from mcol */
}
}
-static int draw_tface__set_draw(MTFace *tface, MCol *mcol, int matnr)
+static int draw_tface__set_draw(MTFace *tface, int has_mcol, int matnr)
{
Material *ma= give_current_material(Gtexdraw.ob, matnr+1);
@@ -404,7 +404,7 @@ static int draw_tface__set_draw(MTFace *tface, MCol *mcol, int matnr)
return 2; /* Don't set color */
} else if (tface && tface->mode&TF_OBCOL) {
return 2; /* Don't set color */
- } else if (!mcol) {
+ } else if (!has_mcol) {
return 1; /* Don't set color */
} else {
return 1; /* Set color from mcol */
@@ -491,38 +491,34 @@ static int draw_tface_mapped__set_draw(void *userData, int index)
Mesh *me = (Mesh*)userData;
MTFace *tface = (me->mtface)? &me->mtface[index]: NULL;
MFace *mface = &me->mface[index];
- MCol *mcol = (me->mcol)? &me->mcol[index]: NULL;
const int matnr = mface->mat_nr;
if (mface->flag & ME_HIDE) return 0;
- return draw_tface__set_draw(tface, mcol, matnr);
+ return draw_tface__set_draw(tface, (me->mcol != NULL), matnr);
}
static int draw_em_tf_mapped__set_draw(void *userData, int index)
{
- EditMesh *em = userData;
+ struct {EditMesh *em; short has_mcol; short has_mtface;} *data = userData;
+ EditMesh *em = data->em;
EditFace *efa= EM_get_face_for_index(index);
MTFace *tface;
- MCol *mcol;
int matnr;
if (efa->h)
return 0;
- tface = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
- mcol = CustomData_em_get(&em->fdata, efa->data, CD_MCOL);
+ tface = data->has_mtface ? CustomData_em_get(&em->fdata, efa->data, CD_MTFACE) : NULL;
matnr = efa->mat_nr;
- return draw_tface__set_draw_legacy(tface, mcol, matnr);
+ return draw_tface__set_draw_legacy(tface, data->has_mcol, matnr);
}
static int wpaint__setSolidDrawOptions(void *userData, int index, int *drawSmooth_r)
{
Mesh *me = (Mesh*)userData;
- if (me->mface) {
- short matnr= me->mface[index].mat_nr;
- Material *ma= me->mat[matnr];
-
+ if (me->mat && me->mface) {
+ Material *ma= me->mat[me->mface[index].mat_nr];
if (ma && (ma->game.flag & GEMAT_INVISIBLE)) {
return 0;
}
@@ -632,7 +628,13 @@ void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *o
glColor4f(1.0f,1.0f,1.0f,1.0f);
if(ob->mode & OB_MODE_EDIT) {
- dm->drawMappedFacesTex(dm, draw_em_tf_mapped__set_draw, me->edit_mesh);
+ struct {EditMesh *em; short has_mcol; short has_mtface;} data;
+
+ data.em= me->edit_mesh;
+ data.has_mcol= CustomData_has_layer(&me->edit_mesh->fdata, CD_MCOL);
+ data.has_mtface= CustomData_has_layer(&me->edit_mesh->fdata, CD_MTFACE);
+
+ dm->drawMappedFacesTex(dm, draw_em_tf_mapped__set_draw, &data);
}
else if(faceselect) {
if(ob->mode & OB_MODE_WEIGHT_PAINT)
diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c
index 44d68ded679..65267bb481a 100644
--- a/source/blender/editors/space_view3d/drawobject.c
+++ b/source/blender/editors/space_view3d/drawobject.c
@@ -5112,6 +5112,7 @@ static void drawspiral(const float cent[3], float rad, float tmat[][4], int star
const float tot_inv= (1.0f / (float)CIRCLE_RESOL);
int a;
char inverse= FALSE;
+ float x, y, fac;
if (start < 0) {
inverse = TRUE;
@@ -5121,38 +5122,56 @@ static void drawspiral(const float cent[3], float rad, float tmat[][4], int star
mul_v3_v3fl(vx, tmat[0], rad);
mul_v3_v3fl(vy, tmat[1], rad);
- copy_v3_v3(vec, cent);
+ glBegin(GL_LINE_STRIP);
if (inverse==0) {
+ copy_v3_v3(vec, cent);
+ glVertex3fv(vec);
+
for(a=0; a<CIRCLE_RESOL; a++) {
- if (a+start>31)
+ if (a+start>=CIRCLE_RESOL)
start=-a + 1;
- glBegin(GL_LINES);
- glVertex3fv(vec);
- vec[0]= cent[0] + sinval[a+start] * (vx[0] * (float)a * tot_inv) + cosval[a+start] * (vy[0] * (float)a * tot_inv);
- vec[1]= cent[1] + sinval[a+start] * (vx[1] * (float)a * tot_inv) + cosval[a+start] * (vy[1] * (float)a * tot_inv);
- vec[2]= cent[2] + sinval[a+start] * (vx[2] * (float)a * tot_inv) + cosval[a+start] * (vy[2] * (float)a * tot_inv);
+
+ fac= (float)a * tot_inv;
+ x= sinval[a+start] * fac;
+ y= cosval[a+start] * fac;
+
+ vec[0]= cent[0] + (x * vx[0] + y * vy[0]);
+ vec[1]= cent[1] + (x * vx[1] + y * vy[1]);
+ vec[2]= cent[2] + (x * vx[2] + y * vy[2]);
+
glVertex3fv(vec);
- glEnd();
}
}
else {
- a=0;
- vec[0]= cent[0] + sinval[a+start] * (vx[0] * (float)(-a+31) * tot_inv) + cosval[a+start] * (vy[0] * (float)(-a+31) * tot_inv);
- vec[1]= cent[1] + sinval[a+start] * (vx[1] * (float)(-a+31) * tot_inv) + cosval[a+start] * (vy[1] * (float)(-a+31) * tot_inv);
- vec[2]= cent[2] + sinval[a+start] * (vx[2] * (float)(-a+31) * tot_inv) + cosval[a+start] * (vy[2] * (float)(-a+31) * tot_inv);
+ a= 0;
+
+ fac= (float)(CIRCLE_RESOL-1) * tot_inv;
+ x= sinval[start] * fac;
+ y= cosval[start] * fac;
+
+ vec[0]= cent[0] + (x * vx[0] + y * vy[0]);
+ vec[1]= cent[1] + (x * vx[1] + y * vy[1]);
+ vec[2]= cent[2] + (x * vx[2] + y * vy[2]);
+
+ glVertex3fv(vec);
+
for(a=0; a<CIRCLE_RESOL; a++) {
- if (a+start>31)
+ if (a+start>=CIRCLE_RESOL)
start=-a + 1;
- glBegin(GL_LINES);
- glVertex3fv(vec);
- vec[0]= cent[0] + sinval[a+start] * (vx[0] * (float)(-a+31) * tot_inv) + cosval[a+start] * (vy[0] * (float)(-a+31) * tot_inv);
- vec[1]= cent[1] + sinval[a+start] * (vx[1] * (float)(-a+31) * tot_inv) + cosval[a+start] * (vy[1] * (float)(-a+31) * tot_inv);
- vec[2]= cent[2] + sinval[a+start] * (vx[2] * (float)(-a+31) * tot_inv) + cosval[a+start] * (vy[2] * (float)(-a+31) * tot_inv);
+
+ fac= (float)(-a+(CIRCLE_RESOL-1)) * tot_inv;
+ x= sinval[a+start] * fac;
+ y= cosval[a+start] * fac;
+
+ vec[0]= cent[0] + (x * vx[0] + y * vy[0]);
+ vec[1]= cent[1] + (x * vx[1] + y * vy[1]);
+ vec[2]= cent[2] + (x * vx[2] + y * vy[2]);
glVertex3fv(vec);
- glEnd();
}
}
+
+ glEnd();
}
/* draws a circle on x-z plane given the scaling of the circle, assuming that
diff --git a/source/blender/editors/space_view3d/view3d_header.c b/source/blender/editors/space_view3d/view3d_header.c
index 0776ca752a9..44d85af858c 100644
--- a/source/blender/editors/space_view3d/view3d_header.c
+++ b/source/blender/editors/space_view3d/view3d_header.c
@@ -285,14 +285,14 @@ static char *view3d_modeselect_pup(Scene *scene)
{
Object *ob= OBACT;
static char string[256];
- const char *title= N_("Mode: %%t");
+ const char *title= N_("Mode: %t");
char *str = string;
if(U.transopts&USER_TR_IFACE)
title= BLF_gettext(title);
- sprintf(str, title);
-
+ BLI_strncpy(str, title, sizeof(string));
+
str += modeselect_addmode(str, N_("Object Mode"), OB_MODE_OBJECT, ICON_OBJECT_DATA);
if(ob==NULL || ob->data==NULL) return string;
diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c
index 8227ba87021..df4f615e5f1 100644
--- a/source/blender/editors/space_view3d/view3d_view.c
+++ b/source/blender/editors/space_view3d/view3d_view.c
@@ -713,7 +713,7 @@ void view3d_unproject(bglMats *mats, float out[3], const short x, const short y,
}
#endif
-/* use above call to get projecting mat */
+/* use view3d_get_object_project_mat to get projecting mat */
void ED_view3d_project_float(ARegion *ar, const float vec[3], float adr[2], float mat[4][4])
{
float vec4[4];
@@ -732,6 +732,26 @@ void ED_view3d_project_float(ARegion *ar, const float vec[3], float adr[2], floa
}
}
+/* use view3d_get_object_project_mat to get projecting mat */
+void ED_view3d_project_float_v3(ARegion *ar, float *vec, float *adr, float mat[4][4])
+{
+ float vec4[4];
+
+ copy_v3_v3(vec4, vec);
+ vec4[3]= 1.0;
+ adr[0]= IS_CLIPPED;
+
+ mul_m4_v4(mat, vec4);
+
+ if( vec4[3]>FLT_EPSILON ) {
+ adr[0] = (float)(ar->winx/2.0f)+(ar->winx/2.0f)*vec4[0]/vec4[3];
+ adr[1] = (float)(ar->winy/2.0f)+(ar->winy/2.0f)*vec4[1]/vec4[3];
+ adr[2] = vec4[2]/vec4[3];
+ } else {
+ adr[0] = adr[1] = adr[2] = 0.0f;
+ }
+}
+
int ED_view3d_boundbox_clip(RegionView3D *rv3d, float obmat[][4], BoundBox *bb)
{
/* return 1: draw */
@@ -803,9 +823,9 @@ void project_int(ARegion *ar, const float vec[3], int adr[2])
RegionView3D *rv3d= ar->regiondata;
float fx, fy, vec4[4];
- adr[0]= (int)2140000000.0f;
copy_v3_v3(vec4, vec);
vec4[3]= 1.0;
+ adr[0]= (int)2140000000.0f;
mul_m4_v4(rv3d->persmat, vec4);
@@ -851,9 +871,9 @@ void project_short_noclip(ARegion *ar, const float vec[3], short adr[2])
RegionView3D *rv3d= ar->regiondata;
float fx, fy, vec4[4];
- adr[0]= IS_CLIPPED;
copy_v3_v3(vec4, vec);
vec4[3]= 1.0;
+ adr[0]= IS_CLIPPED;
mul_m4_v4(rv3d->persmat, vec4);
@@ -877,9 +897,9 @@ void project_float(ARegion *ar, const float vec[3], float adr[2])
RegionView3D *rv3d= ar->regiondata;
float vec4[4];
- adr[0]= IS_CLIPPED;
copy_v3_v3(vec4, vec);
vec4[3]= 1.0;
+ adr[0]= IS_CLIPPED;
mul_m4_v4(rv3d->persmat, vec4);
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c
index bfaf9d20092..c6381f4b311 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -3296,6 +3296,11 @@ int Trackball(TransInfo *t, const int UNUSED(mval[2]))
void initTranslation(TransInfo *t)
{
+ if (t->spacetype == SPACE_ACTION) {
+ /* this space uses time translate */
+ t->state = TRANS_CANCEL;
+ }
+
t->mode = TFM_TRANSLATION;
t->transform = Translation;
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index 77d2e6e7ff0..83f79eae4f2 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -1807,7 +1807,7 @@ void flushTransParticles(TransInfo *t)
/* ********************* mesh ****************** */
/* proportional distance based on connectivity */
-#define THRESHOLD 0.0001f
+#define THRESHOLDFACTOR (1.0f-0.0001f)
static int connectivity_edge(float mtx[][3], EditVert *v1, EditVert *v2)
{
@@ -1828,10 +1828,10 @@ static int connectivity_edge(float mtx[][3], EditVert *v1, EditVert *v2)
if (v1->f2) {
if (v2->f2) {
- if (v2->tmp.fp + edge_len + THRESHOLD < v1->tmp.fp) {
+ if (v2->tmp.fp + edge_len < THRESHOLDFACTOR * v1->tmp.fp) {
v1->tmp.fp = v2->tmp.fp + edge_len;
done = 1;
- } else if (v1->tmp.fp + edge_len + THRESHOLD < v2->tmp.fp) {
+ } else if (v1->tmp.fp + edge_len < THRESHOLDFACTOR * v2->tmp.fp) {
v2->tmp.fp = v1->tmp.fp + edge_len;
done = 1;
}
diff --git a/source/blender/editors/uvedit/uvedit_ops.c b/source/blender/editors/uvedit/uvedit_ops.c
index 61b3a9ca1ca..b1d7ab7f786 100644
--- a/source/blender/editors/uvedit/uvedit_ops.c
+++ b/source/blender/editors/uvedit/uvedit_ops.c
@@ -1064,7 +1064,7 @@ static void weld_align_uv(bContext *C, int tool)
int itmpl, jtmpl;
EditVert *eve;
int pass; /* first 2 passes find endpoints, 3rd pass moves middle points, 4th pass is fail-on-face-selected */
- EditFace *startefa, *endefa;
+ EditFace *startefa, *endefa= NULL; /* endefa shouldnt need to be initialized but just incase */
/* pass 3 variables */
float startx, starty, firstm, firstb, midx, midy;
@@ -3179,7 +3179,7 @@ static void UV_OT_cursor_set(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
- RNA_def_float_vector(ot->srna, "location", 2, NULL, -FLT_MAX, FLT_MAX, "Location", "Cursor location in 0.0-1.0 coordinates", -10.0f, 10.0f);
+ RNA_def_float_vector(ot->srna, "location", 2, NULL, -FLT_MAX, FLT_MAX, "Location", "Cursor location in normalised (0.0-1.0) coordinates", -10.0f, 10.0f);
}
/********************** set tile operator **********************/
diff --git a/source/blender/editors/uvedit/uvedit_unwrap_ops.c b/source/blender/editors/uvedit/uvedit_unwrap_ops.c
index d5666d135aa..ae4718d8f56 100644
--- a/source/blender/editors/uvedit/uvedit_unwrap_ops.c
+++ b/source/blender/editors/uvedit/uvedit_unwrap_ops.c
@@ -818,7 +818,7 @@ static void correct_uv_aspect(EditMesh *em)
static void uv_map_clip_correct_properties(wmOperatorType *ot)
{
RNA_def_boolean(ot->srna, "correct_aspect", 1, "Correct Aspect",
- "Map UV's taking image aspect ratio into account");
+ "Map UVs taking image aspect ratio into account");
RNA_def_boolean(ot->srna, "clip_to_bounds", 0, "Clip to Bounds",
"Clip UV coordinates to bounds after unwrapping");
RNA_def_boolean(ot->srna, "scale_to_bounds", 0, "Scale to Bounds",
@@ -980,11 +980,11 @@ void UV_OT_unwrap(wmOperatorType *ot)
/* properties */
RNA_def_enum(ot->srna, "method", method_items, 0, "Method",
- "Unwrapping method. Angle Based usually gives better results than Conformal, while being somewhat slower");
+ "Unwrapping method (Angle Based usually gives better results than Conformal, while being somewhat slower)");
RNA_def_boolean(ot->srna, "fill_holes", 1, "Fill Holes",
"Virtual fill holes in mesh before unwrapping, to better avoid overlaps and preserve symmetry");
RNA_def_boolean(ot->srna, "correct_aspect", 1, "Correct Aspect",
- "Map UV's taking image aspect ratio into account");
+ "Map UVs taking image aspect ratio into account");
}
/**************** Project From View operator **************/
diff --git a/source/blender/gpu/intern/gpu_material.c b/source/blender/gpu/intern/gpu_material.c
index 40186c5a187..c3cbcb61622 100644
--- a/source/blender/gpu/intern/gpu_material.c
+++ b/source/blender/gpu/intern/gpu_material.c
@@ -1091,6 +1091,9 @@ static void do_material_tex(GPUShadeInput *shi)
float ima_x, ima_y;
float hScale = 0.1f; // compatibility adjustment factor for all bumpspace types
float hScaleTex = 13.0f; // factor for scaling texspace bumps
+
+ float imag_tspace_dimension_x = 1024.0f; // only used for texture space variant
+ float aspect = 1.0f;
GPUNodeLink *surf_pos = GPU_builtin(GPU_VIEW_POSITION);
GPUNodeLink *vR1, *vR2;
@@ -1154,6 +1157,7 @@ static void do_material_tex(GPUShadeInput *shi)
if(ibuf) {
ima_x= ibuf->x;
ima_y= ibuf->y;
+ aspect = ((float) ima_y) / ima_x;
}
}
@@ -1174,10 +1178,11 @@ static void do_material_tex(GPUShadeInput *shi)
if( mtex->texflag & MTEX_BUMP_TEXTURESPACE ) {
-
+ float imag_tspace_dimension_y = aspect*imag_tspace_dimension_x;
GPU_link( mat, "mtex_bump_apply_texspace",
fDet, dBs, dBt, vR1, vR2,
- GPU_image(tex->ima, &tex->iuser), texco, GPU_uniform(&ima_x), GPU_uniform(&ima_y), vNacc,
+ GPU_image(tex->ima, &tex->iuser), texco,
+ GPU_uniform(&imag_tspace_dimension_x), GPU_uniform(&imag_tspace_dimension_y), vNacc,
&vNacc, &shi->vn );
} else
GPU_link( mat, "mtex_bump_apply",
diff --git a/source/blender/imbuf/intern/anim_movie.c b/source/blender/imbuf/intern/anim_movie.c
index c4fe1523e90..3c3cecc0e96 100644
--- a/source/blender/imbuf/intern/anim_movie.c
+++ b/source/blender/imbuf/intern/anim_movie.c
@@ -114,109 +114,6 @@
#endif
#endif
-/****/
-
-#ifdef __sgi
-
-#include <dmedia/moviefile.h>
-
-static void movie_printerror(char * str) {
- const char * errstr = mvGetErrorStr(mvGetErrno());
-
- if (str) {
- if (errstr) printf("%s: %s\n", str, errstr);
- else printf("%s: returned error\n", str);
- } else printf("%s\n", errstr);
-}
-
-static int startmovie(struct anim * anim) {
- if (anim == 0) return(-1);
-
- if ( mvOpenFile (anim->name, O_BINARY|O_RDONLY, &anim->movie ) != DM_SUCCESS ) {
- printf("Can't open movie: %s\n", anim->name);
- return(-1);
- }
- if ( mvFindTrackByMedium (anim->movie, DM_IMAGE, &anim->track) != DM_SUCCESS ) {
- printf("No image track in movie: %s\n", anim->name);
- mvClose(anim->movie);
- return(-1);
- }
-
- anim->duration = mvGetTrackLength (anim->track);
- anim->params = mvGetParams( anim->track );
-
- anim->x = dmParamsGetInt( anim->params, DM_IMAGE_WIDTH);
- anim->y = dmParamsGetInt( anim->params, DM_IMAGE_HEIGHT);
- anim->interlacing = dmParamsGetEnum (anim->params, DM_IMAGE_INTERLACING);
- anim->orientation = dmParamsGetEnum (anim->params, DM_IMAGE_ORIENTATION);
- anim->framesize = dmImageFrameSize(anim->params);
-
- anim->curposition = 0;
- anim->preseek = 0;
-
- /*printf("x:%d y:%d size:%d interl:%d dur:%d\n", anim->x, anim->y, anim->framesize, anim->interlacing, anim->duration);*/
- return (0);
-}
-
-static ImBuf * movie_fetchibuf(struct anim * anim, int position) {
- ImBuf * ibuf;
-/* extern rectcpy(); */
- int size;
- unsigned int *rect1, *rect2;
-
- if (anim == 0) return (0);
-
- ibuf = IMB_allocImBuf(anim->x, anim->y, 24, IB_rect);
-
- if ( mvReadFrames(anim->track, position, 1, ibuf->x * ibuf->y *
- sizeof(int), ibuf->rect ) != DM_SUCCESS ) {
- movie_printerror("mvReadFrames");
- IMB_freeImBuf(ibuf);
- return(0);
- }
-
-/*
- if (anim->interlacing == DM_IMAGE_INTERLACED_EVEN) {
- rect1 = ibuf->rect + (ibuf->x * ibuf->y) - 1;
- rect2 = rect1 - ibuf->x;
-
- for (size = ibuf->x * (ibuf->y - 1); size > 0; size--){
- *rect1-- = *rect2--;
- }
- }
-*/
-
- if (anim->interlacing == DM_IMAGE_INTERLACED_EVEN)
- {
- rect1 = ibuf->rect;
- rect2 = rect1 + ibuf->x;
-
- for (size = ibuf->x * (ibuf->y - 1); size > 0; size--){
- *rect1++ = *rect2++;
- }
- }
- /*if (anim->orientation == DM_TOP_TO_BOTTOM) IMB_flipy(ibuf);*/
-
-
- return(ibuf);
-}
-
-static void free_anim_movie(struct anim * anim) {
- if (anim == NULL) return;
-
- if (anim->movie) {
- mvClose(anim->movie);
- anim->movie = NULL;
- }
- anim->duration = 0;
-}
-
-int ismovie(char *name) {
- return (mvIsMovieFile(name) == DM_TRUE);
-}
-
-#else
-
int ismovie(const char *UNUSED(name)) {
return 0;
}
@@ -226,7 +123,6 @@ static int startmovie(struct anim *UNUSED(anim)) { return 1; }
static ImBuf * movie_fetchibuf(struct anim *UNUSED(anim), int UNUSED(position)) { return NULL; }
static void free_anim_movie(struct anim *UNUSED(anim)) { ; }
-#endif
#if defined(_WIN32)
# define PATHSEPERATOR '\\'
diff --git a/source/blender/imbuf/intern/jpeg.c b/source/blender/imbuf/intern/jpeg.c
index 0759d97e69f..b87b46ca464 100644
--- a/source/blender/imbuf/intern/jpeg.c
+++ b/source/blender/imbuf/intern/jpeg.c
@@ -255,12 +255,12 @@ static void memory_source(j_decompress_ptr cinfo, unsigned char *buffer, size_t
static boolean
handle_app1 (j_decompress_ptr cinfo)
{
- INT32 length, i;
+ INT32 length; /* initialized by the macro */
+ INT32 i;
char neogeo[128];
INPUT_VARS(cinfo);
-
- length = 0;
+
INPUT_2BYTES(cinfo, length, return FALSE);
length -= 2;
diff --git a/source/blender/makesrna/RNA_define.h b/source/blender/makesrna/RNA_define.h
index ac2a89161d9..e003b7198b8 100644
--- a/source/blender/makesrna/RNA_define.h
+++ b/source/blender/makesrna/RNA_define.h
@@ -86,6 +86,7 @@ PropertyRNA *RNA_def_string(StructOrFunctionRNA *cont, const char *identifier, c
PropertyRNA *RNA_def_string_file_path(StructOrFunctionRNA *cont, const char *identifier, const char *default_value, int maxlen, const char *ui_name, const char *ui_description);
PropertyRNA *RNA_def_string_dir_path(StructOrFunctionRNA *cont, const char *identifier, const char *default_value, int maxlen, const char *ui_name, const char *ui_description);
PropertyRNA *RNA_def_string_file_name(StructOrFunctionRNA *cont, const char *identifier, const char *default_value, int maxlen, const char *ui_name, const char *ui_description);
+PropertyRNA *RNA_def_string_translate(StructOrFunctionRNA *cont, const char *identifier, const char *default_value, int maxlen, const char *ui_name, const char *ui_description);
PropertyRNA *RNA_def_enum(StructOrFunctionRNA *cont, const char *identifier, const EnumPropertyItem *items, int default_value, const char *ui_name, const char *ui_description);
PropertyRNA *RNA_def_enum_flag(StructOrFunctionRNA *cont, const char *identifier, const EnumPropertyItem *items, int default_value, const char *ui_name, const char *ui_description);
diff --git a/source/blender/makesrna/RNA_types.h b/source/blender/makesrna/RNA_types.h
index 4a18518dde9..8e8a2133b89 100644
--- a/source/blender/makesrna/RNA_types.h
+++ b/source/blender/makesrna/RNA_types.h
@@ -110,6 +110,7 @@ typedef enum PropertySubType {
PROP_FILEPATH = 1,
PROP_DIRPATH = 2,
PROP_FILENAME = 3,
+ PROP_TRANSLATE = 4, /* a string which should be translated */
/* numbers */
PROP_UNSIGNED = 13,
diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c
index 9e3b4d79079..4216b6a5ff0 100644
--- a/source/blender/makesrna/intern/makesrna.c
+++ b/source/blender/makesrna/intern/makesrna.c
@@ -1815,6 +1815,7 @@ static const char *rna_property_subtypename(PropertySubType type)
case PROP_FILEPATH: return "PROP_FILEPATH";
case PROP_FILENAME: return "PROP_FILENAME";
case PROP_DIRPATH: return "PROP_DIRPATH";
+ case PROP_TRANSLATE: return "PROP_TRANSLATE";
case PROP_UNSIGNED: return "PROP_UNSIGNED";
case PROP_PERCENTAGE: return "PROP_PERCENTAGE";
case PROP_FACTOR: return "PROP_FACTOR";
diff --git a/source/blender/makesrna/intern/rna_ID.c b/source/blender/makesrna/intern/rna_ID.c
index d4742375989..951988864d2 100644
--- a/source/blender/makesrna/intern/rna_ID.c
+++ b/source/blender/makesrna/intern/rna_ID.c
@@ -463,13 +463,13 @@ static void rna_def_ID(BlenderRNA *brna)
prop= RNA_def_property(srna, "use_fake_user", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", LIB_FAKEUSER);
- RNA_def_property_ui_text(prop, "Fake User", "Saves this datablock even if it has no users");
+ RNA_def_property_ui_text(prop, "Fake User", "Save this datablock even if it has no users");
RNA_def_property_boolean_funcs(prop, NULL, "rna_ID_fake_user_set");
prop= RNA_def_property(srna, "tag", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", LIB_DOIT);
RNA_def_property_flag(prop, PROP_LIB_EXCEPTION);
- RNA_def_property_ui_text(prop, "Tag", "Tools can use this to tag data, (initial state is undefined)");
+ RNA_def_property_ui_text(prop, "Tag", "Tools can use this to tag data (initial state is undefined)");
prop= RNA_def_property(srna, "library", PROP_POINTER, PROP_NONE);
RNA_def_property_pointer_sdna(prop, NULL, "lib");
@@ -483,8 +483,8 @@ static void rna_def_ID(BlenderRNA *brna)
RNA_def_function_return(func, parm);
func= RNA_def_function(srna, "user_clear", "rna_ID_user_clear");
- RNA_def_function_ui_description(func, "Clears the user count of a datablock so its not saved, "
- "on reload the data will be removed");
+ RNA_def_function_ui_description(func, "Clear the user count of a datablock so its not saved, "
+ "on reload the data will be removed");
func= RNA_def_function(srna, "animation_data_create", "BKE_id_add_animdata");
RNA_def_function_ui_description(func, "Create animation data to this ID, note that not all ID types support this");
@@ -496,7 +496,7 @@ static void rna_def_ID(BlenderRNA *brna)
func= RNA_def_function(srna, "update_tag", "rna_ID_update_tag");
RNA_def_function_flag(func, FUNC_USE_REPORTS);
- RNA_def_function_ui_description(func, "Tag the id to update its display data");
+ RNA_def_function_ui_description(func, "Tag the ID to update its display data");
RNA_def_enum_flag(func, "refresh", update_flag_items, 0, "", "Type of updates to perform");
}
diff --git a/source/blender/makesrna/intern/rna_action.c b/source/blender/makesrna/intern/rna_action.c
index 433db55b1e3..2700fa713fb 100644
--- a/source/blender/makesrna/intern/rna_action.c
+++ b/source/blender/makesrna/intern/rna_action.c
@@ -98,13 +98,13 @@ static FCurve *rna_Action_fcurve_new(bAction *act, ReportList *reports, const ch
if(group && group[0]=='\0') group= NULL;
if(data_path[0] == '\0') {
- BKE_report(reports, RPT_ERROR, "FCurve data path empty, invalid argument");
+ BKE_report(reports, RPT_ERROR, "F-Curve data path empty, invalid argument");
return NULL;
}
/* annoying, check if this exists */
if(verify_fcurve(act, group, data_path, index, 0)) {
- BKE_reportf(reports, RPT_ERROR, "FCurve '%s[%d]' already exists in action '%s'", data_path, index, act->id.name+2);
+ BKE_reportf(reports, RPT_ERROR, "F-Curve '%s[%d]' already exists in action '%s'", data_path, index, act->id.name+2);
return NULL;
}
return verify_fcurve(act, group, data_path, index, 1);
@@ -114,7 +114,7 @@ static void rna_Action_fcurve_remove(bAction *act, ReportList *reports, FCurve *
{
if (fcu->grp) {
if (BLI_findindex(&act->groups, fcu->grp) == -1) {
- BKE_reportf(reports, RPT_ERROR, "FCurve's ActionGroup '%s' not found in action '%s'", fcu->grp->name, act->id.name+2);
+ BKE_reportf(reports, RPT_ERROR, "F-Curve's ActionGroup '%s' not found in action '%s'", fcu->grp->name, act->id.name+2);
return;
}
@@ -123,7 +123,7 @@ static void rna_Action_fcurve_remove(bAction *act, ReportList *reports, FCurve *
}
else {
if (BLI_findindex(&act->curves, fcu) == -1) {
- BKE_reportf(reports, RPT_ERROR, "FCurve not found in action '%s'", act->id.name+2);
+ BKE_reportf(reports, RPT_ERROR, "F-Curve not found in action '%s'", act->id.name+2);
return;
}
@@ -309,20 +309,20 @@ static void rna_def_dopesheet(BlenderRNA *brna)
/* NLA Specific Settings */
prop= RNA_def_property(srna, "show_missing_nla", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_negative_sdna(prop, NULL, "filterflag", ADS_FILTER_NLA_NOACT);
- RNA_def_property_ui_text(prop, "Include Missing NLA", "Include Animation Data blocks with no NLA data. (NLA Editor only)");
+ RNA_def_property_ui_text(prop, "Include Missing NLA", "Include Animation Data blocks with no NLA data (NLA Editor only)");
RNA_def_property_ui_icon(prop, ICON_ACTION, 0);
RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
/* Summary Settings (DopeSheet editors only) */
prop= RNA_def_property(srna, "show_summary", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "filterflag", ADS_FILTER_SUMMARY);
- RNA_def_property_ui_text(prop, "Display Summary", "Display an additional 'summary' line. (DopeSheet Editors only)");
+ RNA_def_property_ui_text(prop, "Display Summary", "Display an additional 'summary' line (DopeSheet Editors only)");
RNA_def_property_ui_icon(prop, ICON_BORDERMOVE, 0);
RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
prop= RNA_def_property(srna, "show_expanded_summary", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", ADS_FLAG_SUMMARY_COLLAPSED);
- RNA_def_property_ui_text(prop, "Collapse Summary", "Collapse summary when shown, so all other channels get hidden. (DopeSheet Editors Only)");
+ RNA_def_property_ui_text(prop, "Collapse Summary", "Collapse summary when shown, so all other channels get hidden (DopeSheet Editors Only)");
RNA_def_property_update(prop, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
@@ -520,24 +520,24 @@ static void rna_def_action_fcurves(BlenderRNA *brna, PropertyRNA *cprop)
RNA_def_property_srna(cprop, "ActionFCurves");
srna= RNA_def_struct(brna, "ActionFCurves", NULL);
RNA_def_struct_sdna(srna, "bAction");
- RNA_def_struct_ui_text(srna, "Action FCurves", "Collection of action fcurves");
+ RNA_def_struct_ui_text(srna, "Action F-Curves", "Collection of action F-Curves");
func= RNA_def_function(srna, "new", "rna_Action_fcurve_new");
- RNA_def_function_ui_description(func, "Add a keyframe to the curve");
+ RNA_def_function_ui_description(func, "Add a keyframe to the F-Curve");
RNA_def_function_flag(func, FUNC_USE_REPORTS);
- parm= RNA_def_string(func, "data_path", "", 0, "Data Path", "FCurve data path to use");
+ parm= RNA_def_string(func, "data_path", "", 0, "Data Path", "F-Curve data path to use");
RNA_def_property_flag(parm, PROP_REQUIRED);
RNA_def_int(func, "index", 0, 0, INT_MAX, "Index", "Array index", 0, INT_MAX);
- RNA_def_string(func, "action_group", "", 0, "Action Group", "Acton group to add this fcurve into");
+ RNA_def_string(func, "action_group", "", 0, "Action Group", "Acton group to add this F-Curve into");
- parm= RNA_def_pointer(func, "fcurve", "FCurve", "", "Newly created fcurve");
+ parm= RNA_def_pointer(func, "fcurve", "FCurve", "", "Newly created F-Curve");
RNA_def_function_return(func, parm);
func= RNA_def_function(srna, "remove", "rna_Action_fcurve_remove");
RNA_def_function_ui_description(func, "Remove action group");
RNA_def_function_flag(func, FUNC_USE_REPORTS);
- parm= RNA_def_pointer(func, "fcurve", "FCurve", "", "FCurve to remove");
+ parm= RNA_def_pointer(func, "fcurve", "FCurve", "", "F-Curve to remove");
RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
}
@@ -611,7 +611,7 @@ static void rna_def_action(BlenderRNA *brna)
rna_def_action_pose_markers(brna, prop);
/* properties */
- prop= RNA_def_float_vector(srna, "frame_range" , 2 , NULL , 0, 0, "Frame Range" , "The final frame range of all fcurves within this action" , 0 , 0);
+ prop= RNA_def_float_vector(srna, "frame_range" , 2 , NULL , 0, 0, "Frame Range" , "The final frame range of all F-Curves within this action" , 0 , 0);
RNA_def_property_float_funcs(prop, "rna_Action_frame_range_get" , NULL, NULL);
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
@@ -619,7 +619,7 @@ static void rna_def_action(BlenderRNA *brna)
prop= RNA_def_property(srna, "id_root", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "idroot");
RNA_def_property_enum_items(prop, id_type_items);
- RNA_def_property_ui_text(prop, "ID Root Type", "Type of ID-block that action can be used on. DO NOT CHANGE UNLESS YOU KNOW WHAT YOU'RE DOING");
+ RNA_def_property_ui_text(prop, "ID Root Type", "Type of ID-block that action can be used on - DO NOT CHANGE UNLESS YOU KNOW WHAT YOU'RE DOING");
/* API calls */
RNA_api_action(srna);
diff --git a/source/blender/makesrna/intern/rna_actuator.c b/source/blender/makesrna/intern/rna_actuator.c
index 43cf1fae931..d828139a6d5 100644
--- a/source/blender/makesrna/intern/rna_actuator.c
+++ b/source/blender/makesrna/intern/rna_actuator.c
@@ -861,7 +861,7 @@ static void rna_def_camera_actuator(BlenderRNA *brna)
{0, NULL, 0, NULL, NULL}};
srna= RNA_def_struct(brna, "CameraActuator", "Actuator");
- RNA_def_struct_ui_text(srna, "Camera Actuator", "Actuator to...");
+ RNA_def_struct_ui_text(srna, "Camera Actuator", "");
RNA_def_struct_sdna_from(srna, "bCameraActuator", "data");
prop= RNA_def_property(srna, "object", PROP_POINTER, PROP_NONE);
@@ -1387,7 +1387,7 @@ static void rna_def_scene_actuator(BlenderRNA *brna)
{0, NULL, 0, NULL, NULL}};
srna= RNA_def_struct(brna, "SceneActuator", "Actuator");
- RNA_def_struct_ui_text(srna, "Scene Actuator", "Actuator to...");
+ RNA_def_struct_ui_text(srna, "Scene Actuator", "");
RNA_def_struct_sdna_from(srna, "bSceneActuator", "data");
prop= RNA_def_property(srna, "mode", PROP_ENUM, PROP_NONE);
@@ -1445,7 +1445,7 @@ static void rna_def_random_actuator(BlenderRNA *brna)
{0, NULL, 0, NULL, NULL}};
srna= RNA_def_struct(brna, "RandomActuator", "Actuator");
- RNA_def_struct_ui_text(srna, "Random Actuator", "Actuator to...");
+ RNA_def_struct_ui_text(srna, "Random Actuator", "");
RNA_def_struct_sdna_from(srna, "bRandomActuator", "data");
prop= RNA_def_property(srna, "seed", PROP_INT, PROP_NONE);
@@ -1562,7 +1562,7 @@ static void rna_def_message_actuator(BlenderRNA *brna)
{0, NULL, 0, NULL, NULL}};
srna= RNA_def_struct(brna, "MessageActuator", "Actuator");
- RNA_def_struct_ui_text(srna, "Message Actuator", "Actuator to...");
+ RNA_def_struct_ui_text(srna, "Message Actuator", "");
RNA_def_struct_sdna_from(srna, "bMessageActuator", "data");
prop= RNA_def_property(srna, "to_property", PROP_STRING, PROP_NONE);
@@ -1877,7 +1877,7 @@ static void rna_def_armature_actuator(BlenderRNA *brna)
{0, NULL, 0, NULL, NULL}};
srna= RNA_def_struct(brna, "ArmatureActuator", "Actuator");
- RNA_def_struct_ui_text(srna, "Armature Actuator", "Actuator to...");
+ RNA_def_struct_ui_text(srna, "Armature Actuator", "");
RNA_def_struct_sdna_from(srna, "bArmatureActuator", "data");
prop= RNA_def_property(srna, "mode", PROP_ENUM, PROP_NONE);
diff --git a/source/blender/makesrna/intern/rna_animation.c b/source/blender/makesrna/intern/rna_animation.c
index 702529fde53..0a47c98aebb 100644
--- a/source/blender/makesrna/intern/rna_animation.c
+++ b/source/blender/makesrna/intern/rna_animation.c
@@ -489,7 +489,7 @@ static void rna_def_keyingset_info(BlenderRNA *brna)
RNA_def_property_flag(prop, PROP_REGISTER|PROP_NEVER_CLAMP);
/* Name */
- prop= RNA_def_property(srna, "bl_label", PROP_STRING, PROP_NONE);
+ prop= RNA_def_property(srna, "bl_label", PROP_STRING, PROP_TRANSLATE);
RNA_def_property_string_sdna(prop, NULL, "name");
RNA_def_property_ui_text(prop, "Name", "");
RNA_def_struct_name_property(srna, prop);
diff --git a/source/blender/makesrna/intern/rna_define.c b/source/blender/makesrna/intern/rna_define.c
index 758ddc9ac6a..63b3aed4a3b 100644
--- a/source/blender/makesrna/intern/rna_define.c
+++ b/source/blender/makesrna/intern/rna_define.c
@@ -58,6 +58,21 @@ BlenderDefRNA DefRNA = {NULL, {NULL, NULL}, {NULL, NULL}, NULL, 0, 0, 0, 1};
#define MAX2(x,y) ((x)>(y)? (x): (y))
#endif
+/* pedantic check for '.', do this since its a hassle for translators */
+#ifndef NDEBUG
+# define DESCR_CHECK(description, id1, id2) \
+ if(description && (description)[0]) { \
+ int i = strlen(description); \
+ if((description)[i - 1] == '.') { \
+ fprintf(stderr, "%s: '%s' '%s' description ends with a '.' !\n", \
+ __func__, id1 ? id1 : "", id2 ? id2 : ""); \
+ } \
+ } \
+
+#else
+# define DESCR_CHECK(description, id1, id2)
+#endif
+
void rna_addtail(ListBase *listbase, void *vlink)
{
Link *link= vlink;
@@ -847,6 +862,8 @@ void RNA_def_struct_identifier(StructRNA *srna, const char *identifier)
void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description)
{
+ DESCR_CHECK(description, srna->identifier, NULL);
+
srna->name= name;
srna->description= description;
}
@@ -1109,6 +1126,8 @@ void RNA_def_property_multi_array(PropertyRNA *prop, int dimension, const int le
void RNA_def_property_ui_text(PropertyRNA *prop, const char *name, const char *description)
{
+ DESCR_CHECK(description, prop->identifier, NULL);
+
prop->name= name;
prop->description= description;
}
@@ -2240,6 +2259,20 @@ PropertyRNA *RNA_def_string_file_name(StructOrFunctionRNA *cont_, const char *id
return prop;
}
+PropertyRNA *RNA_def_string_translate(StructOrFunctionRNA *cont_, const char *identifier, const char *default_value, int maxlen,
+ const char *ui_name, const char *ui_description)
+{
+ ContainerRNA *cont= cont_;
+ PropertyRNA *prop;
+
+ prop= RNA_def_property(cont, identifier, PROP_STRING, PROP_TRANSLATE);
+ if(maxlen != 0) RNA_def_property_string_maxlength(prop, maxlen);
+ if(default_value) RNA_def_property_string_default(prop, default_value);
+ RNA_def_property_ui_text(prop, ui_name, ui_description);
+
+ return prop;
+}
+
PropertyRNA *RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, int default_value,
const char *ui_name, const char *ui_description)
{
diff --git a/source/blender/makesrna/intern/rna_material.c b/source/blender/makesrna/intern/rna_material.c
index 673e768e71e..6ed2147ce1b 100644
--- a/source/blender/makesrna/intern/rna_material.c
+++ b/source/blender/makesrna/intern/rna_material.c
@@ -377,10 +377,10 @@ static void rna_def_material_mtex(BlenderRNA *brna)
PropertyRNA *prop;
static EnumPropertyItem prop_mapping_items[] = {
- {MTEX_FLAT, "FLAT", 0, "Flat", "Maps X and Y coordinates directly"},
- {MTEX_CUBE, "CUBE", 0, "Cube", "Maps using the normal vector"},
- {MTEX_TUBE, "TUBE", 0, "Tube", "Maps with Z as central axis"},
- {MTEX_SPHERE, "SPHERE", 0, "Sphere", "Maps with Z as central axis"},
+ {MTEX_FLAT, "FLAT", 0, "Flat", "Map X and Y coordinates directly"},
+ {MTEX_CUBE, "CUBE", 0, "Cube", "Map using the normal vector"},
+ {MTEX_TUBE, "TUBE", 0, "Tube", "Map with Z as central axis"},
+ {MTEX_SPHERE, "SPHERE", 0, "Sphere", "Map with Z as central axis"},
{0, NULL, 0, NULL, NULL}};
static EnumPropertyItem prop_x_mapping_items[] = {
@@ -456,7 +456,7 @@ static void rna_def_material_mtex(BlenderRNA *brna)
prop= RNA_def_property(srna, "use_from_original", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "texflag", MTEX_OB_DUPLI_ORIG);
RNA_def_property_ui_text(prop, "From Original",
- "Dupli's derive their object coordinates from the original objects transformation");
+ "Dupli's derive their object coordinates from the original object's transformation");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "use_map_color_diffuse", PROP_BOOLEAN, PROP_NONE);
@@ -555,7 +555,7 @@ static void rna_def_material_mtex(BlenderRNA *brna)
prop= RNA_def_property(srna, "normal_map_space", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "normapspace");
RNA_def_property_enum_items(prop, prop_normal_map_space_items);
- RNA_def_property_ui_text(prop, "Normal Map Space", "Sets space of normal map image");
+ RNA_def_property_ui_text(prop, "Normal Map Space", "Set space of normal map image");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "normal_factor", PROP_FLOAT, PROP_NONE);
@@ -871,7 +871,7 @@ static void rna_def_material_colors(StructRNA *srna)
prop= RNA_def_property(srna, "specular_ramp_blend", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "rampblend_spec");
RNA_def_property_enum_items(prop, ramp_blend_items);
- RNA_def_property_ui_text(prop, "Diffuse Ramp Blend", "Blending method of the ramp and the specular color");
+ RNA_def_property_ui_text(prop, "Specular Ramp Blend", "Blending method of the ramp and the specular color");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "diffuse_ramp_input", PROP_ENUM, PROP_NONE);
@@ -981,7 +981,7 @@ static void rna_def_material_raymirror(BlenderRNA *brna)
prop= RNA_def_property(srna, "reflect_factor", PROP_FLOAT, PROP_FACTOR);
RNA_def_property_float_sdna(prop, NULL, "ray_mirror");
RNA_def_property_range(prop, 0.0f, 1.0f);
- RNA_def_property_ui_text(prop, "Reflectivity", "Sets the amount mirror reflection for raytrace");
+ RNA_def_property_ui_text(prop, "Reflectivity", "Amount of mirror reflection for raytrace");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "fresnel", PROP_FLOAT, PROP_NONE);
@@ -1060,7 +1060,7 @@ static void rna_def_material_raytra(BlenderRNA *brna)
prop= RNA_def_property(srna, "ior", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "ang");
RNA_def_property_range(prop, 0.25f, 4.0f);
- RNA_def_property_ui_text(prop, "IOR", "Sets angular index of refraction for raytraced refraction");
+ RNA_def_property_ui_text(prop, "IOR", "Angular index of refraction for raytraced refraction");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "fresnel", PROP_FLOAT, PROP_NONE);
@@ -1233,7 +1233,7 @@ static void rna_def_material_volume(BlenderRNA *brna)
RNA_def_property_ui_range(prop, 0.0f, 10.0f, 1 ,3);
RNA_def_property_ui_text(prop, "Scattering",
"Amount of light that gets scattered out by the volume - "
- "the more out-scattering, the shallower the light will penetrate ");
+ "the more out-scattering, the shallower the light will penetrate");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "transmission_color", PROP_FLOAT, PROP_COLOR);
@@ -1292,118 +1292,118 @@ static void rna_def_material_halo(BlenderRNA *brna)
prop= RNA_def_property(srna, "size", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "hasize");
RNA_def_property_range(prop, 0.0f, 100.0f);
- RNA_def_property_ui_text(prop, "Size", "Sets the dimension of the halo");
+ RNA_def_property_ui_text(prop, "Size", "Dimension of the halo");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "hardness", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "har");
RNA_def_property_range(prop, 0, 127);
- RNA_def_property_ui_text(prop, "Hardness", "Sets the hardness of the halo");
+ RNA_def_property_ui_text(prop, "Hardness", "Hardness of the halo");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "add", PROP_FLOAT, PROP_FACTOR);
RNA_def_property_float_sdna(prop, NULL, "add");
RNA_def_property_range(prop, 0.0f, 1.0f);
- RNA_def_property_ui_text(prop, "Add", "Sets the strength of the add effect");
+ RNA_def_property_ui_text(prop, "Add", "Strength of the add effect");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "ring_count", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "ringc");
RNA_def_property_range(prop, 0, 24);
- RNA_def_property_ui_text(prop, "Rings", "Sets the number of rings rendered over the halo");
+ RNA_def_property_ui_text(prop, "Rings", "Number of rings rendered over the halo");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "line_count", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "linec");
RNA_def_property_range(prop, 0, 250);
- RNA_def_property_ui_text(prop, "Line Number", "Sets the number of star shaped lines rendered over the halo");
+ RNA_def_property_ui_text(prop, "Line Number", "Number of star shaped lines rendered over the halo");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "star_tip_count", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "starc");
RNA_def_property_range(prop, 3, 50);
- RNA_def_property_ui_text(prop, "Star Tips", "Sets the number of points on the star shaped halo");
+ RNA_def_property_ui_text(prop, "Star Tips", "Number of points on the star shaped halo");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "seed", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "seed1");
RNA_def_property_range(prop, 0, 255);
- RNA_def_property_ui_text(prop, "Seed", "Randomizes ring dimension and line location");
+ RNA_def_property_ui_text(prop, "Seed", "Randomize ring dimension and line location");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "use_flare_mode", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "mode", MA_HALO_FLARE); /* use bitflags */
- RNA_def_property_ui_text(prop, "Flare", "Renders halo as a lens flare");
+ RNA_def_property_ui_text(prop, "Flare", "Render halo as a lens flare");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "flare_size", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "flaresize");
RNA_def_property_range(prop, 0.1f, 25.0f);
- RNA_def_property_ui_text(prop, "Flare Size", "Sets the factor by which the flare is larger than the halo");
+ RNA_def_property_ui_text(prop, "Flare Size", "Factor by which the flare is larger than the halo");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "flare_subflare_size", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "subsize");
RNA_def_property_range(prop, 0.1f, 25.0f);
- RNA_def_property_ui_text(prop, "Flare Subsize", "Sets the dimension of the sub-flares, dots and circles");
+ RNA_def_property_ui_text(prop, "Flare Subsize", "Dimension of the sub-flares, dots and circles");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "flare_boost", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "flareboost");
RNA_def_property_range(prop, 0.1f, 10.0f);
- RNA_def_property_ui_text(prop, "Flare Boost", "Gives the flare extra strength");
+ RNA_def_property_ui_text(prop, "Flare Boost", "Give the flare extra strength");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "flare_seed", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "seed2");
RNA_def_property_range(prop, 0, 255);
- RNA_def_property_ui_text(prop, "Flare Seed", "Specifies an offset in the flare seed table");
+ RNA_def_property_ui_text(prop, "Flare Seed", "Offset in the flare seed table");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "flare_subflare_count", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "flarec");
RNA_def_property_range(prop, 1, 32);
- RNA_def_property_ui_text(prop, "Flares Sub", "Sets the number of sub-flares");
+ RNA_def_property_ui_text(prop, "Flares Sub", "Number of sub-flares");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "use_ring", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "mode", MA_HALO_RINGS);
- RNA_def_property_ui_text(prop, "Rings", "Renders rings over halo");
+ RNA_def_property_ui_text(prop, "Rings", "Render rings over halo");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "use_lines", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "mode", MA_HALO_LINES);
- RNA_def_property_ui_text(prop, "Lines", "Renders star shaped lines over halo");
+ RNA_def_property_ui_text(prop, "Lines", "Render star shaped lines over halo");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "use_star", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "mode", MA_STAR);
- RNA_def_property_ui_text(prop, "Star", "Renders halo as a star");
+ RNA_def_property_ui_text(prop, "Star", "Render halo as a star");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "use_texture", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "mode", MA_HALOTEX);
- RNA_def_property_ui_text(prop, "Texture", "Gives halo a texture");
+ RNA_def_property_ui_text(prop, "Texture", "Give halo a texture");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "use_vertex_normal", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "mode", MA_HALOPUNO);
- RNA_def_property_ui_text(prop, "Vertex Normal", "Uses the vertex normal to specify the dimension of the halo");
+ RNA_def_property_ui_text(prop, "Vertex Normal", "Use the vertex normal to specify the dimension of the halo");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "use_extreme_alpha", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "mode", MA_HALO_XALPHA);
- RNA_def_property_ui_text(prop, "Extreme Alpha", "Uses extreme alpha");
+ RNA_def_property_ui_text(prop, "Extreme Alpha", "Use extreme alpha");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "use_shaded", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "mode", MA_HALO_SHADE);
- RNA_def_property_ui_text(prop, "Shaded", "Lets halo receive light and shadows from external objects");
+ RNA_def_property_ui_text(prop, "Shaded", "Let halo receive light and shadows from external objects");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "use_soft", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "mode", MA_HALO_SOFT);
- RNA_def_property_ui_text(prop, "Soft", "Softens the edges of halos at intersections with other geometry");
+ RNA_def_property_ui_text(prop, "Soft", "Soften the edges of halos at intersections with other geometry");
RNA_def_property_update(prop, 0, "rna_Material_update");
}
@@ -1457,7 +1457,7 @@ static void rna_def_material_sss(BlenderRNA *brna)
prop= RNA_def_property(srna, "texture_factor", PROP_FLOAT, PROP_FACTOR);
RNA_def_property_float_sdna(prop, NULL, "sss_texfac");
RNA_def_property_ui_range(prop, 0, 1, 10, 3);
- RNA_def_property_ui_text(prop, "Texture Factor", "Texture scatting blend factor");
+ RNA_def_property_ui_text(prop, "Texture Factor", "Texture scattering blend factor");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "front", PROP_FLOAT, PROP_NONE);
@@ -1594,7 +1594,7 @@ static void rna_def_material_strand(BlenderRNA *brna)
prop= RNA_def_property(srna, "shape", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "strand_ease");
RNA_def_property_range(prop, -0.9, 0.9);
- RNA_def_property_ui_text(prop, "Shape", "Positive values make strands rounder, negative makes strands spiky");
+ RNA_def_property_ui_text(prop, "Shape", "Positive values make strands rounder, negative ones make strands spiky");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "width_fade", PROP_FLOAT, PROP_NONE);
@@ -1659,7 +1659,7 @@ void RNA_def_material(BlenderRNA *brna)
static EnumPropertyItem prop_type_items[] = {
{MA_TYPE_SURFACE, "SURFACE", 0, "Surface", "Render object as a surface"},
- {MA_TYPE_WIRE, "WIRE", 0, "Wire", "Render the edges of faces as wires (not supported in ray tracing)"},
+ {MA_TYPE_WIRE, "WIRE", 0, "Wire", "Render the edges of faces as wires (not supported in raytracing)"},
{MA_TYPE_VOLUME, "VOLUME", 0, "Volume", "Render object as a volume"},
{MA_TYPE_HALO, "HALO", 0, "Halo", "Render object as halo particles"},
{0, NULL, 0, NULL, NULL}};
@@ -1688,7 +1688,7 @@ void RNA_def_material(BlenderRNA *brna)
srna= RNA_def_struct(brna, "Material", "ID");
RNA_def_struct_ui_text(srna, "Material",
- "Material datablock to defined the appearance of geometric objects for rendering");
+ "Material datablock to define the appearance of geometric objects for rendering");
RNA_def_struct_ui_icon(srna, ICON_MATERIAL_DATA);
prop= RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE);
@@ -1785,17 +1785,17 @@ void RNA_def_material(BlenderRNA *brna)
prop= RNA_def_property(srna, "use_raytrace", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "mode", MA_TRACEBLE);
RNA_def_property_ui_text(prop, "Traceable",
- "Include this material and geometry that uses it in ray tracing calculations");
+ "Include this material and geometry that uses it in raytracing calculations");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "use_shadows", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "mode", MA_SHADOW);
- RNA_def_property_ui_text(prop, "Shadows", "Allows this material to receive shadows");
+ RNA_def_property_ui_text(prop, "Shadows", "Allow this material to receive shadows");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "use_shadeless", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "mode", MA_SHLESS);
- RNA_def_property_ui_text(prop, "Shadeless", "Makes this material insensitive to light or shadow");
+ RNA_def_property_ui_text(prop, "Shadeless", "Make this material insensitive to light or shadow");
RNA_def_property_update(prop, 0, "rna_Material_draw_update");
prop= RNA_def_property(srna, "use_vertex_color_light", PROP_BOOLEAN, PROP_NONE);
@@ -1806,30 +1806,30 @@ void RNA_def_material(BlenderRNA *brna)
prop= RNA_def_property(srna, "use_vertex_color_paint", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "mode", MA_VERTEXCOLP);
RNA_def_property_ui_text(prop, "Vertex Color Paint",
- "Replaces object base color with vertex colors (multiplies with "
+ "Replace object base color with vertex colors (multiply with "
"'texture face' face assigned textures)");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "invert_z", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "mode", MA_ZINV);
- RNA_def_property_ui_text(prop, "Invert Z Depth", "Renders material's faces with an inverted Z buffer (scanline only)");
+ RNA_def_property_ui_text(prop, "Invert Z Depth", "Render material's faces with an inverted Z buffer (scanline only)");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "offset_z", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "zoffs");
- RNA_def_property_ui_text(prop, "Z Offset", "Gives faces an artificial offset in the Z buffer for Z transparency");
+ RNA_def_property_ui_text(prop, "Z Offset", "Give faces an artificial offset in the Z buffer for Z transparency");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "use_sky", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "mode", MA_ENV);
RNA_def_property_ui_text(prop, "Sky",
- "Renders this material with zero alpha, with sky background in place (scanline only)");
+ "Render this material with zero alpha, with sky background in place (scanline only)");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "use_only_shadow", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "mode", MA_ONLYSHADOW);
RNA_def_property_ui_text(prop, "Only Shadow",
- "Renders shadows as the material's alpha value, making materials "
+ "Render shadows as the material's alpha value, making the material "
"transparent except for shadowed areas");
RNA_def_property_update(prop, 0, "rna_Material_update");
@@ -1842,19 +1842,19 @@ void RNA_def_material(BlenderRNA *brna)
prop= RNA_def_property(srna, "use_face_texture", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "mode", MA_FACETEXTURE);
RNA_def_property_ui_text(prop, "Face Textures",
- "Replaces the object's base color with color from face assigned image textures");
+ "Replace the object's base color with color from face assigned image textures");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "use_face_texture_alpha", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "mode", MA_FACETEXTURE_ALPHA);
RNA_def_property_ui_text(prop, "Face Textures Alpha",
- "Replaces the object's base alpha value with alpha from face assigned image textures");
+ "Replace the object's base alpha value with alpha from face assigned image textures");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "use_cast_shadows_only", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "mode", MA_ONLYCAST);
RNA_def_property_ui_text(prop, "Cast Shadows Only",
- "Makes objects with this material appear invisible, only casting shadows (not rendered)");
+ "Make objects with this material appear invisible (not rendered), only casting shadows");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "use_mist", PROP_BOOLEAN, PROP_NONE);
@@ -1871,7 +1871,7 @@ void RNA_def_material(BlenderRNA *brna)
prop= RNA_def_property(srna, "use_ray_shadow_bias", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "mode", MA_RAYBIAS);
RNA_def_property_ui_text(prop, "Ray Shadow Bias",
- "Prevents raytraced shadow errors on surfaces with smooth shaded normals (terminator problem)");
+ "Prevent raytraced shadow errors on surfaces with smooth shaded normals (terminator problem)");
RNA_def_property_update(prop, 0, "rna_Material_update");
prop= RNA_def_property(srna, "use_full_oversampling", PROP_BOOLEAN, PROP_NONE);
diff --git a/source/blender/makesrna/intern/rna_mesh.c b/source/blender/makesrna/intern/rna_mesh.c
index 1bbdc7cc853..67bb7bffcfb 100644
--- a/source/blender/makesrna/intern/rna_mesh.c
+++ b/source/blender/makesrna/intern/rna_mesh.c
@@ -1226,7 +1226,8 @@ static void rna_def_mvert(BlenderRNA *brna)
RNA_def_property_update(prop, 0, "rna_Mesh_update_data");
prop= RNA_def_property(srna, "groups", PROP_COLLECTION, PROP_NONE);
- RNA_def_property_collection_funcs(prop, "rna_MeshVertex_groups_begin", "rna_iterator_array_next", "rna_iterator_array_end", "rna_iterator_array_get", 0, 0, 0);
+ RNA_def_property_collection_funcs(prop, "rna_MeshVertex_groups_begin", "rna_iterator_array_next",
+ "rna_iterator_array_end", "rna_iterator_array_get", 0, 0, 0);
RNA_def_property_struct_type(prop, "VertexGroupElement");
RNA_def_property_ui_text(prop, "Groups", "Weights for the vertex groups this vertex is member of");
@@ -1392,7 +1393,8 @@ static void rna_def_mtface(BlenderRNA *brna)
prop= RNA_def_property(srna, "active_render", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "active_rnd", 0);
- RNA_def_property_boolean_funcs(prop, "rna_MeshTextureFaceLayer_active_render_get", "rna_MeshTextureFaceLayer_active_render_set");
+ RNA_def_property_boolean_funcs(prop, "rna_MeshTextureFaceLayer_active_render_get",
+ "rna_MeshTextureFaceLayer_active_render_set");
RNA_def_property_ui_text(prop, "Active Render", "Sets the layer as active for rendering");
RNA_def_property_update(prop, 0, "rna_Mesh_update_data");
@@ -1405,7 +1407,9 @@ static void rna_def_mtface(BlenderRNA *brna)
prop= RNA_def_property(srna, "data", PROP_COLLECTION, PROP_NONE);
RNA_def_property_struct_type(prop, "MeshTextureFace");
RNA_def_property_ui_text(prop, "Data", "");
- RNA_def_property_collection_funcs(prop, "rna_MeshTextureFaceLayer_data_begin", "rna_iterator_array_next", "rna_iterator_array_end", "rna_iterator_array_get", "rna_MeshTextureFaceLayer_data_length", 0, 0);
+ RNA_def_property_collection_funcs(prop, "rna_MeshTextureFaceLayer_data_begin", "rna_iterator_array_next",
+ "rna_iterator_array_end", "rna_iterator_array_get",
+ "rna_MeshTextureFaceLayer_data_length", 0, 0);
srna= RNA_def_struct(brna, "MeshTextureFace", NULL);
RNA_def_struct_sdna(srna, "MTFace");
@@ -1480,7 +1484,8 @@ static void rna_def_mtface(BlenderRNA *brna)
prop= RNA_def_property(srna, "use_alpha_sort", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "mode", TF_ALPHASORT);
- RNA_def_property_ui_text(prop, "Alpha Sort", "Enable sorting of faces for correct alpha drawing (slow, use Clip Alpha instead when possible)");
+ RNA_def_property_ui_text(prop, "Alpha Sort",
+ "Enable sorting of faces for correct alpha drawing (slow, use Clip Alpha instead when possible)");
RNA_def_property_update(prop, 0, "rna_Mesh_update_data");
prop= RNA_def_property(srna, "blend_type", PROP_ENUM, PROP_NONE);
@@ -1589,7 +1594,9 @@ static void rna_def_mcol(BlenderRNA *brna)
prop= RNA_def_property(srna, "data", PROP_COLLECTION, PROP_NONE);
RNA_def_property_struct_type(prop, "MeshColor");
RNA_def_property_ui_text(prop, "Data", "");
- RNA_def_property_collection_funcs(prop, "rna_MeshColorLayer_data_begin", "rna_iterator_array_next", "rna_iterator_array_end", "rna_iterator_array_get", "rna_MeshColorLayer_data_length", 0, 0);
+ RNA_def_property_collection_funcs(prop, "rna_MeshColorLayer_data_begin", "rna_iterator_array_next",
+ "rna_iterator_array_end", "rna_iterator_array_get",
+ "rna_MeshColorLayer_data_length", 0, 0);
srna= RNA_def_struct(brna, "MeshColor", NULL);
RNA_def_struct_sdna(srna, "MCol");
@@ -1644,7 +1651,9 @@ static void rna_def_mproperties(BlenderRNA *brna)
prop= RNA_def_property(srna, "data", PROP_COLLECTION, PROP_NONE);
RNA_def_property_struct_type(prop, "MeshFloatProperty");
RNA_def_property_ui_text(prop, "Data", "");
- RNA_def_property_collection_funcs(prop, "rna_MeshFloatPropertyLayer_data_begin", "rna_iterator_array_next", "rna_iterator_array_end", "rna_iterator_array_get", "rna_MeshFloatPropertyLayer_data_length", 0, 0);
+ RNA_def_property_collection_funcs(prop, "rna_MeshFloatPropertyLayer_data_begin", "rna_iterator_array_next",
+ "rna_iterator_array_end", "rna_iterator_array_get",
+ "rna_MeshFloatPropertyLayer_data_length", 0, 0);
srna= RNA_def_struct(brna, "MeshFloatProperty", NULL);
RNA_def_struct_sdna(srna, "MFloatProperty");
@@ -1670,7 +1679,9 @@ static void rna_def_mproperties(BlenderRNA *brna)
prop= RNA_def_property(srna, "data", PROP_COLLECTION, PROP_NONE);
RNA_def_property_struct_type(prop, "MeshIntProperty");
RNA_def_property_ui_text(prop, "Data", "");
- RNA_def_property_collection_funcs(prop, "rna_MeshIntPropertyLayer_data_begin", "rna_iterator_array_next", "rna_iterator_array_end", "rna_iterator_array_get", "rna_MeshIntPropertyLayer_data_length", 0, 0);
+ RNA_def_property_collection_funcs(prop, "rna_MeshIntPropertyLayer_data_begin", "rna_iterator_array_next",
+ "rna_iterator_array_end", "rna_iterator_array_get",
+ "rna_MeshIntPropertyLayer_data_length", 0, 0);
srna= RNA_def_struct(brna, "MeshIntProperty", NULL);
RNA_def_struct_sdna(srna, "MIntProperty");
@@ -1696,7 +1707,9 @@ static void rna_def_mproperties(BlenderRNA *brna)
prop= RNA_def_property(srna, "data", PROP_COLLECTION, PROP_NONE);
RNA_def_property_struct_type(prop, "MeshStringProperty");
RNA_def_property_ui_text(prop, "Data", "");
- RNA_def_property_collection_funcs(prop, "rna_MeshStringPropertyLayer_data_begin", "rna_iterator_array_next", "rna_iterator_array_end", "rna_iterator_array_get", "rna_MeshStringPropertyLayer_data_length", 0, 0);
+ RNA_def_property_collection_funcs(prop, "rna_MeshStringPropertyLayer_data_begin", "rna_iterator_array_next",
+ "rna_iterator_array_end", "rna_iterator_array_get",
+ "rna_MeshStringPropertyLayer_data_length", 0, 0);
srna= RNA_def_struct(brna, "MeshStringProperty", NULL);
RNA_def_struct_sdna(srna, "MStringProperty");
@@ -1853,7 +1866,8 @@ static void rna_def_uv_textures(BlenderRNA *brna, PropertyRNA *cprop)
RNA_def_property_update(prop, 0, "rna_Mesh_update_data");
prop= RNA_def_property(srna, "active_index", PROP_INT, PROP_UNSIGNED);
- RNA_def_property_int_funcs(prop, "rna_Mesh_active_uv_texture_index_get", "rna_Mesh_active_uv_texture_index_set", "rna_Mesh_active_uv_texture_index_range");
+ RNA_def_property_int_funcs(prop, "rna_Mesh_active_uv_texture_index_get",
+ "rna_Mesh_active_uv_texture_index_set", "rna_Mesh_active_uv_texture_index_range");
RNA_def_property_ui_text(prop, "Active UV Texture Index", "Active UV texture index");
RNA_def_property_update(prop, 0, "rna_Mesh_update_data");
}
@@ -1911,7 +1925,8 @@ static void rna_def_mesh(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Clone UV Texture", "UV texture to be used as cloning source");
prop= RNA_def_property(srna, "uv_texture_clone_index", PROP_INT, PROP_UNSIGNED);
- RNA_def_property_int_funcs(prop, "rna_Mesh_uv_texture_clone_index_get", "rna_Mesh_uv_texture_clone_index_set", "rna_Mesh_active_uv_texture_index_range");
+ RNA_def_property_int_funcs(prop, "rna_Mesh_uv_texture_clone_index_get",
+ "rna_Mesh_uv_texture_clone_index_set", "rna_Mesh_active_uv_texture_index_range");
RNA_def_property_ui_text(prop, "Clone UV Texture Index", "Clone UV texture index");
prop= RNA_def_property(srna, "uv_texture_stencil", PROP_POINTER, PROP_UNSIGNED);
@@ -1953,7 +1968,9 @@ static void rna_def_mesh(BlenderRNA *brna)
prop= RNA_def_property(srna, "use_auto_smooth", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", ME_AUTOSMOOTH);
- RNA_def_property_ui_text(prop, "Auto Smooth", "Treats all set-smoothed faces with angles less than the specified angle as 'smooth' during render");
+ RNA_def_property_ui_text(prop, "Auto Smooth",
+ "Treat all set-smoothed faces with angles less than the "
+ "specified angle as 'smooth' during render");
#if 1 /* expose as radians */
prop= RNA_def_property(srna, "auto_smooth_angle", PROP_FLOAT, PROP_ANGLE);
@@ -1964,7 +1981,8 @@ static void rna_def_mesh(BlenderRNA *brna)
RNA_def_property_int_sdna(prop, NULL, "smoothresh");
RNA_def_property_range(prop, 1, 80);
#endif
- RNA_def_property_ui_text(prop, "Auto Smooth Angle", "Defines maximum angle between face normals that 'Auto Smooth' will operate on");
+ RNA_def_property_ui_text(prop, "Auto Smooth Angle",
+ "Maximum angle between face normals that 'Auto Smooth' will operate on");
prop= RNA_def_property(srna, "show_double_sided", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", ME_TWOSIDED);
@@ -1983,7 +2001,8 @@ static void rna_def_mesh(BlenderRNA *brna)
/* texture space */
prop= RNA_def_property(srna, "use_auto_texspace", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "texflag", AUTOSPACE);
- RNA_def_property_ui_text(prop, "Auto Texture Space", "Adjusts active object's texture space automatically when transforming object");
+ RNA_def_property_ui_text(prop, "Auto Texture Space",
+ "Adjust active object's texture space automatically when transforming object");
RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Mesh_texspace_set");
prop= RNA_def_property(srna, "texspace_location", PROP_FLOAT, PROP_TRANSLATION);
@@ -2018,62 +2037,66 @@ static void rna_def_mesh(BlenderRNA *brna)
prop= RNA_def_property(srna, "show_edges", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "drawflag", ME_DRAWEDGES);
- RNA_def_property_ui_text(prop, "Draw Edges", "Displays selected edges using highlights in the 3D view and UV editor");
+ RNA_def_property_ui_text(prop, "Draw Edges", "Display selected edges using highlights in the 3D view and UV editor");
RNA_def_property_update(prop, 0, "rna_Mesh_update_draw");
prop= RNA_def_property(srna, "show_all_edges", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "drawflag", ME_ALLEDGES);
- RNA_def_property_ui_text(prop, "All Edges", "Displays all edges for wireframe in all view modes in the 3D view");
+ RNA_def_property_ui_text(prop, "All Edges", "Display all edges for wireframe in all view modes in the 3D view");
RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, NULL);
prop= RNA_def_property(srna, "show_faces", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "drawflag", ME_DRAWFACES);
- RNA_def_property_ui_text(prop, "Draw Faces", "Displays all faces as shades in the 3D view and UV editor");
+ RNA_def_property_ui_text(prop, "Draw Faces", "Display all faces as shades in the 3D view and UV editor");
RNA_def_property_update(prop, 0, "rna_Mesh_update_draw");
prop= RNA_def_property(srna, "show_normal_face", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "drawflag", ME_DRAWNORMALS);
- RNA_def_property_ui_text(prop, "Draw Normals", "Displays face normals as lines");
+ RNA_def_property_ui_text(prop, "Draw Normals", "Display face normals as lines");
RNA_def_property_update(prop, 0, "rna_Mesh_update_draw");
prop= RNA_def_property(srna, "show_normal_vertex", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "drawflag", ME_DRAW_VNORMALS);
- RNA_def_property_ui_text(prop, "Draw Vertex Normals", "Displays vertex normals as lines");
+ RNA_def_property_ui_text(prop, "Draw Vertex Normals", "Display vertex normals as lines");
RNA_def_property_update(prop, 0, "rna_Mesh_update_draw");
prop= RNA_def_property(srna, "show_edge_crease", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "drawflag", ME_DRAWCREASES);
- RNA_def_property_ui_text(prop, "Draw Creases", "Displays creases created for subsurf weighting");
+ RNA_def_property_ui_text(prop, "Draw Creases", "Display creases created for subsurf weighting");
RNA_def_property_update(prop, 0, "rna_Mesh_update_draw");
prop= RNA_def_property(srna, "show_edge_bevel_weight", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "drawflag", ME_DRAWBWEIGHTS);
- RNA_def_property_ui_text(prop, "Draw Bevel Weights", "Displays weights created for the Bevel modifier");
+ RNA_def_property_ui_text(prop, "Draw Bevel Weights", "Display weights created for the Bevel modifier");
RNA_def_property_update(prop, 0, "rna_Mesh_update_draw");
prop= RNA_def_property(srna, "show_edge_seams", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "drawflag", ME_DRAWSEAMS);
- RNA_def_property_ui_text(prop, "Draw Seams", "Displays UV unwrapping seams");
+ RNA_def_property_ui_text(prop, "Draw Seams", "Display UV unwrapping seams");
RNA_def_property_update(prop, 0, "rna_Mesh_update_draw");
prop= RNA_def_property(srna, "show_edge_sharp", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "drawflag", ME_DRAWSHARP);
- RNA_def_property_ui_text(prop, "Draw Sharp", "Displays sharp edges, used with the EdgeSplit modifier");
+ RNA_def_property_ui_text(prop, "Draw Sharp", "Display sharp edges, used with the EdgeSplit modifier");
RNA_def_property_update(prop, 0, "rna_Mesh_update_draw");
prop= RNA_def_property(srna, "show_extra_edge_length", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "drawflag", ME_DRAWEXTRA_EDGELEN);
- RNA_def_property_ui_text(prop, "Edge Length", "Displays selected edge lengths, Using global values when set in the transform panel");
+ RNA_def_property_ui_text(prop, "Edge Length",
+ "Display selected edge lengths, using global values when set in the transform panel");
RNA_def_property_update(prop, 0, "rna_Mesh_update_draw");
prop= RNA_def_property(srna, "show_extra_face_angle", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "drawflag", ME_DRAWEXTRA_FACEANG);
- RNA_def_property_ui_text(prop, "Faces Angles", "Displays the angles in the selected edges in degrees, Using global values when set in the transform panel");
+ RNA_def_property_ui_text(prop, "Faces Angles",
+ "Display the angles between the selected edges in degrees, using "
+ "global values when set in the transform panel");
RNA_def_property_update(prop, 0, "rna_Mesh_update_draw");
prop= RNA_def_property(srna, "show_extra_face_area", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "drawflag", ME_DRAWEXTRA_FACEAREA);
- RNA_def_property_ui_text(prop, "Face Area", "Displays the area of selected faces, Using global values when set in the transform panel");
+ RNA_def_property_ui_text(prop, "Face Area",
+ "Display the area of selected faces, using global values when set in the transform panel");
RNA_def_property_update(prop, 0, "rna_Mesh_update_draw");
/* editflag */
@@ -2093,7 +2116,8 @@ static void rna_def_mesh(BlenderRNA *brna)
prop= RNA_def_property(srna, "use_mirror_topology", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "editflag", ME_EDIT_MIRROR_TOPO);
- RNA_def_property_ui_text(prop, "Topology Mirror", "Use topology based mirroring. For when both sides of mesh have matching, unique topology");
+ RNA_def_property_ui_text(prop, "Topology Mirror",
+ "Use topology based mirroring (for when both sides of mesh have matching, unique topology)");
prop= RNA_def_property(srna, "use_paint_mask", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "editflag", ME_EDIT_PAINT_MASK);
diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c
index 33f5e41b2cc..00ac371f929 100644
--- a/source/blender/makesrna/intern/rna_modifier.c
+++ b/source/blender/makesrna/intern/rna_modifier.c
@@ -805,7 +805,7 @@ static void rna_def_modifier_warp(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Falloff Type", "");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
- prop= RNA_def_property(srna, "falloff_radius", PROP_FLOAT, PROP_UNSIGNED);
+ prop= RNA_def_property(srna, "falloff_radius", PROP_FLOAT, PROP_UNSIGNED | PROP_DISTANCE);
RNA_def_property_ui_text(prop, "Radius", "Radius to apply");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
@@ -2775,13 +2775,13 @@ static void rna_def_modifier_weightvgproximity(BlenderRNA *brna)
RNA_def_property_flag(prop, PROP_EDITABLE|PROP_ID_SELF_CHECK);
RNA_def_property_update(prop, 0, "rna_Modifier_dependency_update");
- prop= RNA_def_property(srna, "min_dist", PROP_FLOAT, PROP_NONE);
+ prop= RNA_def_property(srna, "min_dist", PROP_FLOAT, PROP_DISTANCE);
RNA_def_property_range(prop, 0.0, FLT_MAX);
RNA_def_property_ui_range(prop, 0.0, 1000.0, 10, 0);
RNA_def_property_ui_text(prop, "Lowest Dist", "Distance mapping to weight 0.0 (or weight 1.0 if above Highest Dist)");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
- prop= RNA_def_property(srna, "max_dist", PROP_FLOAT, PROP_NONE);
+ prop= RNA_def_property(srna, "max_dist", PROP_FLOAT, PROP_DISTANCE);
RNA_def_property_range(prop, 0.0, FLT_MAX);
RNA_def_property_ui_range(prop, 0.0, 1000.0, 10, 0);
RNA_def_property_ui_text(prop, "Highest Dist", "Distance mapping to weight 1.0 (or weight 0.0 if below Lowest Dist)");
diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c
index 720fea682ce..6c273ff9f2e 100644
--- a/source/blender/makesrna/intern/rna_object.c
+++ b/source/blender/makesrna/intern/rna_object.c
@@ -1760,9 +1760,9 @@ static void rna_def_object(BlenderRNA *brna)
static EnumPropertyItem drawtype_items[] = {
{OB_BOUNDBOX, "BOUNDS", 0, "Bounds", "Draw the bounding box of the object"},
{OB_WIRE, "WIRE", 0, "Wire", "Draw the object as a wireframe"},
- {OB_SOLID, "SOLID", 0, "Solid", "Draw the object as a solid (If solid drawing is enabled in the viewport)"},
+ {OB_SOLID, "SOLID", 0, "Solid", "Draw the object as a solid (if solid drawing is enabled in the viewport)"},
// disabled {OB_SHADED, "SHADED", 0, "Shaded", ""},
- {OB_TEXTURE, "TEXTURED", 0, "Textured", "Draw the object with textures (If textures are enabled in the viewport)"},
+ {OB_TEXTURE, "TEXTURED", 0, "Textured", "Draw the object with textures (if textures are enabled in the viewport)"},
{0, NULL, 0, NULL, NULL}};
static EnumPropertyItem boundtype_items[] = {
@@ -1785,13 +1785,13 @@ static void rna_def_object(BlenderRNA *brna)
// XXX: this RNA enum define is currently duplicated for objects, since there is some text here which is not applicable
static EnumPropertyItem prop_rotmode_items[] = {
{ROT_MODE_QUAT, "QUATERNION", 0, "Quaternion (WXYZ)", "No Gimbal Lock"},
- {ROT_MODE_XYZ, "XYZ", 0, "XYZ Euler", "XYZ Rotation Order. Prone to Gimbal Lock. (Default)"},
- {ROT_MODE_XZY, "XZY", 0, "XZY Euler", "XZY Rotation Order. Prone to Gimbal Lock"},
- {ROT_MODE_YXZ, "YXZ", 0, "YXZ Euler", "YXZ Rotation Order. Prone to Gimbal Lock"},
- {ROT_MODE_YZX, "YZX", 0, "YZX Euler", "YZX Rotation Order. Prone to Gimbal Lock"},
- {ROT_MODE_ZXY, "ZXY", 0, "ZXY Euler", "ZXY Rotation Order. Prone to Gimbal Lock"},
- {ROT_MODE_ZYX, "ZYX", 0, "ZYX Euler", "ZYX Rotation Order. Prone to Gimbal Lock"},
- {ROT_MODE_AXISANGLE, "AXIS_ANGLE", 0, "Axis Angle", "Axis Angle (W+XYZ). Defines a rotation around some axis defined by 3D-Vector"},
+ {ROT_MODE_XYZ, "XYZ", 0, "XYZ Euler", "XYZ Rotation Order - prone to Gimbal Lock (default)"},
+ {ROT_MODE_XZY, "XZY", 0, "XZY Euler", "XZY Rotation Order - prone to Gimbal Lock"},
+ {ROT_MODE_YXZ, "YXZ", 0, "YXZ Euler", "YXZ Rotation Order - prone to Gimbal Lock"},
+ {ROT_MODE_YZX, "YZX", 0, "YZX Euler", "YZX Rotation Order - prone to Gimbal Lock"},
+ {ROT_MODE_ZXY, "ZXY", 0, "ZXY Euler", "ZXY Rotation Order - prone to Gimbal Lock"},
+ {ROT_MODE_ZYX, "ZYX", 0, "ZYX Euler", "ZYX Rotation Order - prone to Gimbal Lock"},
+ {ROT_MODE_AXISANGLE, "AXIS_ANGLE", 0, "Axis Angle", "Axis Angle (W+XYZ), defines a rotation around some axis defined by 3D-Vector"},
{0, NULL, 0, NULL, NULL}};
static float default_quat[4] = {1,0,0,0}; /* default quaternion values */
@@ -1841,8 +1841,8 @@ static void rna_def_object(BlenderRNA *brna)
RNA_def_property_multi_array(prop, 2, boundbox_dimsize);
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
RNA_def_property_float_funcs(prop, "rna_Object_boundbox_get", NULL, NULL);
- RNA_def_property_ui_text(prop, "Bound Box",
- "Objects bound box in object-space coordinates, all values are -1.0 when not available");
+ RNA_def_property_ui_text(prop, "Bounding Box",
+ "Object's bounding box in object-space coordinates, all values are -1.0 when not available");
/* parent */
prop= RNA_def_property(srna, "parent", PROP_POINTER, PROP_NONE);
@@ -1861,7 +1861,7 @@ static void rna_def_object(BlenderRNA *brna)
prop= RNA_def_property(srna, "parent_vertices", PROP_INT, PROP_UNSIGNED);
RNA_def_property_int_sdna(prop, NULL, "par1");
RNA_def_property_array(prop, 3);
- RNA_def_property_ui_text(prop, "Parent Vertices", "Indices of vertices in cases of a vertex parenting relation");
+ RNA_def_property_ui_text(prop, "Parent Vertices", "Indices of vertices in case of a vertex parenting relation");
RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_internal_update");
prop= RNA_def_property(srna, "parent_bone", PROP_STRING, PROP_NONE);
@@ -2123,13 +2123,13 @@ static void rna_def_object(BlenderRNA *brna)
RNA_def_property_pointer_sdna(prop, NULL, "pd");
RNA_def_property_struct_type(prop, "FieldSettings");
RNA_def_property_pointer_funcs(prop, "rna_Object_field_get", NULL, NULL, NULL);
- RNA_def_property_ui_text(prop, "Field Settings", "Settings for using the objects as a field in physics simulation");
+ RNA_def_property_ui_text(prop, "Field Settings", "Settings for using the object as a field in physics simulation");
prop= RNA_def_property(srna, "collision", PROP_POINTER, PROP_NONE);
RNA_def_property_pointer_sdna(prop, NULL, "pd");
RNA_def_property_struct_type(prop, "CollisionSettings");
RNA_def_property_pointer_funcs(prop, "rna_Object_collision_get", NULL, NULL, NULL);
- RNA_def_property_ui_text(prop, "Collision Settings", "Settings for using the objects as a collider in physics simulation");
+ RNA_def_property_ui_text(prop, "Collision Settings", "Settings for using the object as a collider in physics simulation");
prop= RNA_def_property(srna, "soft_body", PROP_POINTER, PROP_NONE);
RNA_def_property_pointer_sdna(prop, NULL, "soft");
diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c
index 8c9f8c08a47..1003c9bfba2 100644
--- a/source/blender/makesrna/intern/rna_render.c
+++ b/source/blender/makesrna/intern/rna_render.c
@@ -286,7 +286,7 @@ static void rna_def_render_engine(BlenderRNA *brna)
RNA_def_property_string_sdna(prop, NULL, "type->idname");
RNA_def_property_flag(prop, PROP_REGISTER|PROP_NEVER_CLAMP);
- prop= RNA_def_property(srna, "bl_label", PROP_STRING, PROP_NONE);
+ prop= RNA_def_property(srna, "bl_label", PROP_STRING, PROP_TRANSLATE);
RNA_def_property_string_sdna(prop, NULL, "type->name");
RNA_def_property_flag(prop, PROP_REGISTER);
diff --git a/source/blender/makesrna/intern/rna_rna.c b/source/blender/makesrna/intern/rna_rna.c
index 7f85a2fa1d7..95c6b066510 100644
--- a/source/blender/makesrna/intern/rna_rna.c
+++ b/source/blender/makesrna/intern/rna_rna.c
@@ -53,6 +53,7 @@ EnumPropertyItem property_subtype_items[] = {
{PROP_FILEPATH, "FILEPATH", 0, "File Path", ""},
{PROP_DIRPATH, "DIRPATH", 0, "Directory Path", ""},
{PROP_FILENAME, "FILENAME", 0, "File Name", ""},
+ {PROP_TRANSLATE, "TRANSLATE", 0, "Translate", ""},
/* numbers */
{PROP_UNSIGNED, "UNSIGNED", 0, "Unsigned", ""},
diff --git a/source/blender/makesrna/intern/rna_ui.c b/source/blender/makesrna/intern/rna_ui.c
index 52c359d79dd..587e56443ff 100644
--- a/source/blender/makesrna/intern/rna_ui.c
+++ b/source/blender/makesrna/intern/rna_ui.c
@@ -661,7 +661,7 @@ static void rna_def_panel(BlenderRNA *brna)
"class name is \"OBJECT_PT_hello\", and bl_idname is not set by the "
"script, then bl_idname = \"OBJECT_PT_hello\"");
- prop= RNA_def_property(srna, "bl_label", PROP_STRING, PROP_NONE);
+ prop= RNA_def_property(srna, "bl_label", PROP_STRING, PROP_TRANSLATE);
RNA_def_property_string_sdna(prop, NULL, "type->label");
RNA_def_property_flag(prop, PROP_REGISTER);
RNA_def_property_ui_text(prop, "Label",
@@ -785,7 +785,7 @@ static void rna_def_menu(BlenderRNA *brna)
"class name is \"OBJECT_MT_hello\", and bl_idname is not set by the "
"script, then bl_idname = \"OBJECT_MT_hello\"");
- prop= RNA_def_property(srna, "bl_label", PROP_STRING, PROP_NONE);
+ prop= RNA_def_property(srna, "bl_label", PROP_STRING, PROP_TRANSLATE);
RNA_def_property_string_sdna(prop, NULL, "type->label");
RNA_def_property_flag(prop, PROP_REGISTER);
RNA_def_property_ui_text(prop, "Label", "The menu label");
diff --git a/source/blender/makesrna/intern/rna_ui_api.c b/source/blender/makesrna/intern/rna_ui_api.c
index 84568d914af..85ad6b231aa 100644
--- a/source/blender/makesrna/intern/rna_ui_api.c
+++ b/source/blender/makesrna/intern/rna_ui_api.c
@@ -84,7 +84,7 @@ static void api_ui_item_common(FunctionRNA *func)
{
PropertyRNA *prop;
- RNA_def_string(func, "text", "", 0, "", "Override automatic text of the item");
+ RNA_def_string_translate(func, "text", "", 0, "", "Override automatic text of the item");
prop= RNA_def_property(func, "icon", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_items(prop, icon_items);
@@ -309,7 +309,7 @@ void RNA_api_ui_layout(StructRNA *srna)
parm= RNA_def_string(func, "type_property", "", 0, "",
"Identifier of property in data giving the type of the ID-blocks to use");
RNA_def_property_flag(parm, PROP_REQUIRED);
- RNA_def_string(func, "text", "", 0, "", "Custom label to display in UI");
+ RNA_def_string_translate(func, "text", "", 0, "", "Custom label to display in UI");
func= RNA_def_function(srna, "template_path_builder", "uiTemplatePathBuilder");
parm= RNA_def_pointer(func, "data", "AnyType", "", "Data from which to take property");
@@ -318,7 +318,7 @@ void RNA_api_ui_layout(StructRNA *srna)
RNA_def_property_flag(parm, PROP_REQUIRED);
parm= RNA_def_pointer(func, "root", "ID", "", "ID-block from which path is evaluated from");
RNA_def_property_flag(parm, PROP_REQUIRED|PROP_RNAPTR);
- RNA_def_string(func, "text", "", 0, "", "Custom label to display in UI");
+ RNA_def_string_translate(func, "text", "", 0, "", "Custom label to display in UI");
func= RNA_def_function(srna, "template_modifier", "uiTemplateModifier");
RNA_def_function_flag(func, FUNC_USE_CONTEXT);
diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c
index b9a53acd6f4..44d645f970f 100644
--- a/source/blender/makesrna/intern/rna_userdef.c
+++ b/source/blender/makesrna/intern/rna_userdef.c
@@ -65,6 +65,8 @@
#include "MEM_guardedalloc.h"
#include "MEM_CacheLimiterC-Api.h"
+#include "UI_interface.h"
+
static void rna_userdef_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *UNUSED(ptr))
{
WM_main_add_notifier(NC_WINDOW, NULL);
@@ -79,7 +81,9 @@ static void rna_userdef_dpi_update(Main *bmain, Scene *scene, PointerRNA *ptr)
static void rna_userdef_language_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *UNUSED(ptr))
{
+ BLF_cache_clear();
BLF_lang_set(NULL);
+ UI_reinit_font();
}
static void rna_userdef_show_manipulator_update(Main *bmain, Scene *scene, PointerRNA *ptr)
diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c
index 606355c4fb6..c6805206051 100644
--- a/source/blender/makesrna/intern/rna_wm.c
+++ b/source/blender/makesrna/intern/rna_wm.c
@@ -1188,14 +1188,14 @@ static void rna_def_operator(BlenderRNA *brna)
RNA_def_property_flag(prop, PROP_REGISTER|PROP_NEVER_CLAMP);
RNA_def_struct_name_property(srna, prop);
- prop= RNA_def_property(srna, "bl_label", PROP_STRING, PROP_NONE);
+ prop= RNA_def_property(srna, "bl_label", PROP_STRING, PROP_TRANSLATE);
RNA_def_property_string_sdna(prop, NULL, "type->name");
RNA_def_property_string_maxlength(prop, 1024); /* else it uses the pointer size! */
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_Operator_bl_label_set");
// RNA_def_property_clear_flag(prop, PROP_EDITABLE);
RNA_def_property_flag(prop, PROP_REGISTER);
- prop= RNA_def_property(srna, "bl_description", PROP_STRING, PROP_NONE);
+ prop= RNA_def_property(srna, "bl_description", PROP_STRING, PROP_TRANSLATE);
RNA_def_property_string_sdna(prop, NULL, "type->description");
RNA_def_property_string_maxlength(prop, 1024); /* else it uses the pointer size! */
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_Operator_bl_description_set");
@@ -1249,14 +1249,14 @@ static void rna_def_macro_operator(BlenderRNA *brna)
RNA_def_property_flag(prop, PROP_REGISTER|PROP_NEVER_CLAMP);
RNA_def_struct_name_property(srna, prop);
- prop= RNA_def_property(srna, "bl_label", PROP_STRING, PROP_NONE);
+ prop= RNA_def_property(srna, "bl_label", PROP_STRING, PROP_TRANSLATE);
RNA_def_property_string_sdna(prop, NULL, "type->name");
RNA_def_property_string_maxlength(prop, 1024); /* else it uses the pointer size! */
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_Operator_bl_label_set");
// RNA_def_property_clear_flag(prop, PROP_EDITABLE);
RNA_def_property_flag(prop, PROP_REGISTER);
- prop= RNA_def_property(srna, "bl_description", PROP_STRING, PROP_NONE);
+ prop= RNA_def_property(srna, "bl_description", PROP_STRING, PROP_TRANSLATE);
RNA_def_property_string_sdna(prop, NULL, "type->description");
RNA_def_property_string_maxlength(prop, 1024); /* else it uses the pointer size! */
RNA_def_property_string_funcs(prop, NULL, NULL, "rna_Operator_bl_description_set");
diff --git a/source/blender/modifiers/intern/MOD_navmesh.c b/source/blender/modifiers/intern/MOD_navmesh.c
index cf4e01ad516..c259239a003 100644
--- a/source/blender/modifiers/intern/MOD_navmesh.c
+++ b/source/blender/modifiers/intern/MOD_navmesh.c
@@ -25,6 +25,12 @@
* ***** END GPL LICENSE BLOCK *****
*
*/
+
+/** \file blender/modifiers/intern/MOD_navmesh.c
+ * \ingroup modifiers
+ */
+
+
#include <math.h>
#include "DNA_mesh_types.h"
@@ -133,7 +139,7 @@ static void drawNavMeshColored(DerivedMesh *dm)
glEnable(GL_LIGHTING);
}
-static void navDM_drawFacesTex(DerivedMesh *dm, int (*setDrawOptions)(MTFace *tface, MCol *mcol, int matnr))
+static void navDM_drawFacesTex(DerivedMesh *dm, int (*setDrawOptions)(MTFace *tface, int has_mcol, int matnr))
{
(void) setDrawOptions;
diff --git a/source/blender/modifiers/intern/MOD_solidify.c b/source/blender/modifiers/intern/MOD_solidify.c
index afe6da8b38a..757da28e4b5 100644
--- a/source/blender/modifiers/intern/MOD_solidify.c
+++ b/source/blender/modifiers/intern/MOD_solidify.c
@@ -524,7 +524,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
}
if(smd->flag & MOD_SOLIDIFY_RIM) {
-
+ int *origindex;
/* bugger, need to re-calculate the normals for the new edge faces.
* This could be done in many ways, but probably the quickest way is to calculate the average normals for side faces only.
@@ -551,18 +551,22 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
{0, 3, 3, 0}};
/* add faces & edges */
+ origindex= result->getEdgeDataArray(result, CD_ORIGINDEX);
ed= medge + (numEdges * 2);
for(i=0; i<newEdges; i++, ed++) {
ed->v1= new_vert_arr[i];
ed->v2= new_vert_arr[i] + numVerts;
ed->flag |= ME_EDGEDRAW;
+ origindex[numEdges * 2 + i]= ORIGINDEX_NONE;
+
if(crease_rim)
ed->crease= crease_rim;
}
/* faces */
mf= mface + (numFaces * 2);
+ origindex= result->getFaceDataArray(result, CD_ORIGINDEX);
for(i=0; i<newFaces; i++, mf++) {
int eidx= new_edge_arr[i];
int fidx= edge_users[eidx];
@@ -623,6 +627,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
add_v3_v3(edge_vert_nos[ed->v1], nor);
add_v3_v3(edge_vert_nos[ed->v2], nor);
#endif
+ origindex[numFaces * 2 + i]= ORIGINDEX_NONE;
}
#ifdef SOLIDIFY_SIDE_NORMALS
diff --git a/source/blender/modifiers/intern/MOD_warp.c b/source/blender/modifiers/intern/MOD_warp.c
index 723e77cc6bb..36d3dc88b56 100644
--- a/source/blender/modifiers/intern/MOD_warp.c
+++ b/source/blender/modifiers/intern/MOD_warp.c
@@ -23,6 +23,10 @@
*
*/
+/** \file blender/modifiers/intern/MOD_warp.c
+ * \ingroup modifiers
+ */
+
#include <string.h>
#include "MEM_guardedalloc.h"
diff --git a/source/blender/modifiers/intern/MOD_weightvg_util.c b/source/blender/modifiers/intern/MOD_weightvg_util.c
index 128e888ca90..2c94c4d1505 100644
--- a/source/blender/modifiers/intern/MOD_weightvg_util.c
+++ b/source/blender/modifiers/intern/MOD_weightvg_util.c
@@ -26,11 +26,8 @@
*
*/
-/*
- * XXX I'd like to make modified weights visible in WeightPaint mode,
- * but couldn't figure a way to do this...
- * Maybe this will need changes in mesh_calc_modifiers (DerivedMesh.c)?
- * Or the WeightPaint mode code itself?
+/** \file blender/modifiers/intern/MOD_weightvg_util.c
+ * \ingroup modifiers
*/
#include "BLI_math.h"
diff --git a/source/blender/modifiers/intern/MOD_weightvg_util.h b/source/blender/modifiers/intern/MOD_weightvg_util.h
index a327bdf969b..ed558e412c5 100644
--- a/source/blender/modifiers/intern/MOD_weightvg_util.h
+++ b/source/blender/modifiers/intern/MOD_weightvg_util.h
@@ -26,7 +26,7 @@
*
*/
-/** \file blender/modifiers/intern/MOD_util.h
+/** \file blender/modifiers/intern/MOD_weightvg_util.h
* \ingroup modifiers
*/
diff --git a/source/blender/modifiers/intern/MOD_weightvgedit.c b/source/blender/modifiers/intern/MOD_weightvgedit.c
index 233ad8baf0b..42d628cad09 100644
--- a/source/blender/modifiers/intern/MOD_weightvgedit.c
+++ b/source/blender/modifiers/intern/MOD_weightvgedit.c
@@ -26,11 +26,8 @@
*
*/
-/*
- * XXX I'd like to make modified weights visible in WeightPaint mode,
- * but couldn't figure a way to do this...
- * Maybe this will need changes in mesh_calc_modifiers (DerivedMesh.c)?
- * Or the WeightPaint mode code itself?
+/** \file blender/modifiers/intern/MOD_weightvgedit.c
+ * \ingroup modifiers
*/
#include "BLI_utildefines.h"
diff --git a/source/blender/modifiers/intern/MOD_weightvgmix.c b/source/blender/modifiers/intern/MOD_weightvgmix.c
index 283e812e11c..e3499829371 100644
--- a/source/blender/modifiers/intern/MOD_weightvgmix.c
+++ b/source/blender/modifiers/intern/MOD_weightvgmix.c
@@ -26,11 +26,8 @@
*
*/
-/*
- * XXX I'd like to make modified weights visible in WeightPaint mode,
- * but couldn't figure a way to do this...
- * Maybe this will need changes in mesh_calc_modifiers (DerivedMesh.c)?
- * Or the WeightPaint mode code itself?
+/** \file blender/modifiers/intern/MOD_weightvgmix.c
+ * \ingroup modifiers
*/
#include "BLI_utildefines.h"
diff --git a/source/blender/modifiers/intern/MOD_weightvgproximity.c b/source/blender/modifiers/intern/MOD_weightvgproximity.c
index 76be25a2b10..109d16f229f 100644
--- a/source/blender/modifiers/intern/MOD_weightvgproximity.c
+++ b/source/blender/modifiers/intern/MOD_weightvgproximity.c
@@ -26,11 +26,8 @@
*
*/
-/*
- * XXX I'd like to make modified weights visible in WeightPaint mode,
- * but couldn't figure a way to do this...
- * Maybe this will need changes in mesh_calc_modifiers (DerivedMesh.c)?
- * Or the WeightPaint mode code itself?
+/** \file blender/modifiers/intern/MOD_weightvgproximity.c
+ * \ingroup modifiers
*/
#include "BLI_editVert.h"
diff --git a/source/blender/nodes/composite/nodes/node_composite_lummaMatte.c b/source/blender/nodes/composite/nodes/node_composite_lummaMatte.c
index cac2a386801..f7028fbeafd 100644
--- a/source/blender/nodes/composite/nodes/node_composite_lummaMatte.c
+++ b/source/blender/nodes/composite/nodes/node_composite_lummaMatte.c
@@ -52,8 +52,6 @@ static void do_luma_matte(bNode *node, float *out, float *in)
NodeChroma *c=(NodeChroma *)node->storage;
float alpha;
- alpha=0.0;
-
/* test range*/
if(in[0]>c->t1) {
alpha=1.0;
diff --git a/source/blender/nodes/intern/node_util.h b/source/blender/nodes/intern/node_util.h
index 8d38d57f577..885c48599f8 100644
--- a/source/blender/nodes/intern/node_util.h
+++ b/source/blender/nodes/intern/node_util.h
@@ -66,8 +66,6 @@ const char *node_filter_label(struct bNode *node);
// this is needed for inlining behaviour
#if defined _WIN32
# define DO_INLINE __inline
-#elif defined (__sgi)
-# define DO_INLINE
#elif defined (__sun) || defined (__sun__)
# define DO_INLINE
#else
diff --git a/source/blender/python/SConscript b/source/blender/python/SConscript
index e73abdeefd0..8ca7eac40f1 100644
--- a/source/blender/python/SConscript
+++ b/source/blender/python/SConscript
@@ -18,9 +18,6 @@ defs = []
if is_debug:
defs.append('_DEBUG')
-if env['WITH_BF_INTERNATIONAL']:
- defs.append('INTERNATIONAL')
-
sources = env.Glob('generic/*.c')
env.BlenderLib( libname = 'bf_python_ext', sources = Split(sources), includes = Split(incs), defines = defs, libtype = ['core','player'], priority = [363,165]) # ketsji is 360
@@ -44,5 +41,8 @@ if env['WITH_BF_PYTHON_SAFETY']:
if env['BF_BUILDINFO']:
defs.append('BUILD_DATE')
+if env['WITH_BF_INTERNATIONAL']:
+ defs.append('INTERNATIONAL')
+
sources = env.Glob('intern/*.c')
env.BlenderLib( libname = 'bf_python', sources = Split(sources), includes = Split(incs), defines = defs, libtype = ['core'], priority = [361])
diff --git a/source/blender/python/generic/CMakeLists.txt b/source/blender/python/generic/CMakeLists.txt
index 0a49036c15d..847a0d19a7f 100644
--- a/source/blender/python/generic/CMakeLists.txt
+++ b/source/blender/python/generic/CMakeLists.txt
@@ -48,8 +48,4 @@ set(SRC
py_capi_utils.h
)
-if(WITH_INTERNATIONAL)
- add_definitions(-DINTERNATIONAL)
-endif()
-
blender_add_lib(bf_python_ext "${SRC}" "${INC}" "${INC_SYS}")
diff --git a/source/blender/python/generic/blf_py_api.c b/source/blender/python/generic/blf_py_api.c
index 87e4a301eff..b16efdf5a3d 100644
--- a/source/blender/python/generic/blf_py_api.c
+++ b/source/blender/python/generic/blf_py_api.c
@@ -31,15 +31,9 @@
#include "blf_py_api.h"
#include "../../blenfont/BLF_api.h"
-#include "../../blenfont/BLF_translation.h"
#include "BLI_utildefines.h"
-#ifdef INTERNATIONAL
-#include "DNA_userdef_types.h" /* is it bad level? */
-#endif
-
-
PyDoc_STRVAR(py_blf_position_doc,
".. function:: position(fontid, x, y, z)\n"
"\n"
@@ -371,33 +365,24 @@ static PyObject *py_blf_load(PyObject *UNUSED(self), PyObject *args)
return PyLong_FromLong(BLF_load(filename));
}
-PyDoc_STRVAR(py_blf_gettext_doc,
-".. function:: gettext(msgid)\n"
+PyDoc_STRVAR(py_blf_unload_doc,
+".. function:: unload(filename)\n"
"\n"
-" Get a msg in local language.\n"
+" Unload an existing font.\n"
"\n"
-" :arg msgid: the source string.\n"
-" :type msgid: string\n"
-" :return: the localized string.\n"
-" :rtype: string\n"
+" :arg filename: the filename of the font.\n"
+" :type filename: string\n"
);
-static PyObject *py_blf_gettext(PyObject *UNUSED(self), PyObject *value)
+static PyObject *py_blf_unload(PyObject *UNUSED(self), PyObject *args)
{
-#ifdef INTERNATIONAL
- if ((U.transopts & USER_DOTRANSLATE) && (U.transopts & USER_TR_IFACE)) {
- const char *msgid= _PyUnicode_AsString(value);
- if(msgid == NULL) {
- PyErr_SetString(PyExc_TypeError, "blf.gettext expects a single string argument");
- return NULL;
- }
-
- return PyUnicode_FromString(BLF_gettext(msgid));
- }
- else
-#endif /* INTERNATIONAL */
- {
- return Py_INCREF(value), value;
- }
+ char* filename;
+
+ if (!PyArg_ParseTuple(args, "s:blf.unload", &filename))
+ return NULL;
+
+ BLF_unload(filename);
+
+ Py_RETURN_NONE;
}
/*----------------------------MODULE INIT-------------------------*/
@@ -415,7 +400,7 @@ static PyMethodDef BLF_methods[] = {
{"shadow_offset", (PyCFunction) py_blf_shadow_offset, METH_VARARGS, py_blf_shadow_offset_doc},
{"size", (PyCFunction) py_blf_size, METH_VARARGS, py_blf_size_doc},
{"load", (PyCFunction) py_blf_load, METH_VARARGS, py_blf_load_doc},
- {"gettext", (PyCFunction) py_blf_gettext, METH_O, py_blf_gettext_doc},
+ {"unload", (PyCFunction) py_blf_unload, METH_VARARGS, py_blf_unload_doc},
{NULL, NULL, 0, NULL}
};
diff --git a/source/blender/python/intern/CMakeLists.txt b/source/blender/python/intern/CMakeLists.txt
index 3bf22d26af4..70129a25df6 100644
--- a/source/blender/python/intern/CMakeLists.txt
+++ b/source/blender/python/intern/CMakeLists.txt
@@ -96,4 +96,8 @@ if(WITH_AUDASPACE)
add_definitions(-DWITH_AUDASPACE)
endif()
+if(WITH_INTERNATIONAL)
+ add_definitions(-DINTERNATIONAL)
+endif()
+
blender_add_lib(bf_python "${SRC}" "${INC}" "${INC_SYS}")
diff --git a/source/blender/python/intern/bpy_props.c b/source/blender/python/intern/bpy_props.c
index 5da142aeea7..a3d5bc99ad8 100644
--- a/source/blender/python/intern/bpy_props.c
+++ b/source/blender/python/intern/bpy_props.c
@@ -72,6 +72,7 @@ static EnumPropertyItem property_subtype_string_items[]= {
{PROP_FILEPATH, "FILE_PATH", 0, "File Path", ""},
{PROP_DIRPATH, "DIR_PATH", 0, "Directory Path", ""},
{PROP_FILENAME, "FILENAME", 0, "Filename", ""},
+ {PROP_TRANSLATE, "TRANSLATE", 0, "Translate", ""},
{PROP_NONE, "NONE", 0, "None", ""},
{0, NULL, 0, NULL, NULL}};
diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c
index a63cee4e505..013eac7fd58 100644
--- a/source/blender/python/intern/bpy_rna.c
+++ b/source/blender/python/intern/bpy_rna.c
@@ -73,6 +73,10 @@
#include "../generic/IDProp.h" /* for IDprop lookups */
#include "../generic/py_capi_utils.h"
+#ifdef INTERNATIONAL
+#include "UI_interface.h" /* bad level call into editors */
+#endif
+
#define USE_PEDANTIC_WRITE
#define USE_MATHUTILS
#define USE_STRING_COERCE
@@ -1519,6 +1523,12 @@ static int pyrna_py_to_prop(PointerRNA *ptr, PropertyRNA *prop, void *data, PyOb
}
else {
param= _PyUnicode_AsString(value);
+#ifdef INTERNATIONAL
+ if(subtype == PROP_TRANSLATE) {
+ param= UI_translate_do_iface(param);
+ }
+#endif // INTERNATIONAL
+
}
#else // USE_STRING_COERCE
param= _PyUnicode_AsString(value);
diff --git a/source/blender/render/intern/include/rendercore.h b/source/blender/render/intern/include/rendercore.h
index f9486b5d5c0..7f804c9311d 100644
--- a/source/blender/render/intern/include/rendercore.h
+++ b/source/blender/render/intern/include/rendercore.h
@@ -76,12 +76,12 @@ typedef struct PixStrMain
void calc_view_vector(float *view, float x, float y);
-float mistfactor(float zcor, float *co); /* dist and height, return alpha */
+float mistfactor(float zcor, const float co[3]); /* dist and height, return alpha */
-void renderspothalo(struct ShadeInput *shi, float *col, float alpha);
+void renderspothalo(struct ShadeInput *shi, float col[4], float alpha);
void add_halo_flare(Render *re);
-void calc_renderco_zbuf(float co[3], float *view, int z);
+void calc_renderco_zbuf(float co[3], const float view[3], int z);
void calc_renderco_ortho(float co[3], float x, float y, int z);
int count_mask(unsigned short mask);
@@ -103,9 +103,9 @@ extern void freeraytree(Render *re);
extern void makeraytree(Render *re);
struct RayObject* makeraytree_object(Render *re, ObjectInstanceRen *obi);
-extern void ray_shadow(ShadeInput *, LampRen *, float *);
-extern void ray_trace(ShadeInput *, ShadeResult *);
-extern void ray_ao(ShadeInput *, float *, float *);
+extern void ray_shadow(ShadeInput *shi, LampRen *lar, float shadfac[4]);
+extern void ray_trace(ShadeInput *shi, ShadeResult *);
+extern void ray_ao(ShadeInput *shi, float ao[3], float env[3]);
extern void init_jitter_plane(LampRen *lar);
extern void init_ao_sphere(struct World *wrld);
extern void init_render_qmcsampler(Render *re);
diff --git a/source/blender/render/intern/include/shading.h b/source/blender/render/intern/include/shading.h
index 91507ef3f98..df5578dad7a 100644
--- a/source/blender/render/intern/include/shading.h
+++ b/source/blender/render/intern/include/shading.h
@@ -96,8 +96,8 @@ void ambient_occlusion(struct ShadeInput *shi);
void environment_lighting_apply(struct ShadeInput *shi, struct ShadeResult *shr);
ListBase *get_lights(struct ShadeInput *shi);
-float lamp_get_visibility(struct LampRen *lar, const float co[3], float *lv, float *dist);
-void lamp_get_shadow(struct LampRen *lar, ShadeInput *shi, float inp, float *shadfac, int do_real);
+float lamp_get_visibility(struct LampRen *lar, const float co[3], float lv[3], float *dist);
+void lamp_get_shadow(struct LampRen *lar, ShadeInput *shi, float inp, float shadfac[4], int do_real);
float fresnel_fac(float *view, float *vn, float fresnel, float fac);
diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c
index a15662f86f4..27c825ebdeb 100644
--- a/source/blender/render/intern/source/convertblender.c
+++ b/source/blender/render/intern/source/convertblender.c
@@ -5304,11 +5304,13 @@ static void calculate_speedvector(const float vectors[2], int step, float winsq,
static float *calculate_strandsurface_speedvectors(Render *re, ObjectInstanceRen *obi, StrandSurface *mesh)
{
- float winsq= (float)re->winx*(float)re->winy, winroot= sqrt(winsq), (*winspeed)[4]; /* int's can wrap on large images */
- float ho[4], prevho[4], nextho[4], winmat[4][4], vec[2];
- int a;
-
if(mesh->co && mesh->prevco && mesh->nextco) {
+ float winsq= (float)re->winx*(float)re->winy; /* int's can wrap on large images */
+ float winroot= sqrt(winsq);
+ float (*winspeed)[4];
+ float ho[4], prevho[4], nextho[4], winmat[4][4], vec[2];
+ int a;
+
if(obi->flag & R_TRANSFORMED)
mul_m4_m4m4(winmat, obi->mat, re->winmat);
else
diff --git a/source/blender/render/intern/source/envmap.c b/source/blender/render/intern/source/envmap.c
index e2b3b23b9c9..25895b81dd7 100644
--- a/source/blender/render/intern/source/envmap.c
+++ b/source/blender/render/intern/source/envmap.c
@@ -689,9 +689,9 @@ int envmaptex(Tex *tex, float *texvec, float *dxt, float *dyt, int osatex, TexRe
env->ima= tex->ima;
if(env->ima && env->ima->ok) {
if(env->cube[1]==NULL) {
- ImBuf *ibuf= BKE_image_get_ibuf(env->ima, NULL);
- if(ibuf)
- envmap_split_ima(env, ibuf);
+ ImBuf *ibuf_ima= BKE_image_get_ibuf(env->ima, NULL);
+ if(ibuf_ima)
+ envmap_split_ima(env, ibuf_ima);
else
env->ok= 0;
}
diff --git a/source/blender/render/intern/source/pixelshading.c b/source/blender/render/intern/source/pixelshading.c
index 5c5162d268b..93038984115 100644
--- a/source/blender/render/intern/source/pixelshading.c
+++ b/source/blender/render/intern/source/pixelshading.c
@@ -226,8 +226,7 @@ static void render_lighting_halo(HaloRen *har, float col_r[3])
}
/* shadow */
- if(i> -0.41f) { /* heuristic valua! */
- shadfac= 1.0;
+ if(i> -0.41f) { /* heuristic valua! */
if(lar->shb) {
shadfac = testshadowbuf(&R, lar->shb, rco, dco, dco, inp, 0.0f);
if(shadfac==0.0f) continue;
diff --git a/source/blender/render/intern/source/rayshade.c b/source/blender/render/intern/source/rayshade.c
index e82e969d502..8fa90a51442 100644
--- a/source/blender/render/intern/source/rayshade.c
+++ b/source/blender/render/intern/source/rayshade.c
@@ -334,7 +334,6 @@ static void makeraytree_single(Render *re)
for(obi=re->instancetable.first; obi; obi=obi->next)
if(is_raytraceable(re, obi))
{
- int v;
ObjectRen *obr = obi->obr;
obs++;
@@ -344,6 +343,7 @@ static void makeraytree_single(Render *re)
}
else
{
+ int v;
for(v=0;v<obr->totvlak;v++)
{
VlakRen *vlr = obr->vlaknodes[v>>8].vlak + (v&255);
@@ -539,7 +539,7 @@ void shade_ray(Isect *is, ShadeInput *shi, ShadeResult *shr)
VlakRen *vlr= (VlakRen*)is->hit.face;
/* set up view vector */
- VECCOPY(shi->view, is->dir);
+ copy_v3_v3(shi->view, is->dir);
/* render co */
shi->co[0]= is->start[0]+is->dist*(shi->view[0]);
@@ -594,16 +594,16 @@ void shade_ray(Isect *is, ShadeInput *shi, ShadeResult *shr)
}
/* raytrace likes to separate the spec color */
- VECSUB(shr->diff, shr->combined, shr->spec);
+ sub_v3_v3v3(shr->diff, shr->combined, shr->spec);
}
}
-static int refraction(float *refract, float *n, float *view, float index)
+static int refraction(float refract[3], const float n[3], const float view[3], float index)
{
float dot, fac;
- VECCOPY(refract, view);
+ copy_v3_v3(refract, view);
dot= view[0]*n[0] + view[1]*n[1] + view[2]*n[2];
@@ -626,26 +626,26 @@ static int refraction(float *refract, float *n, float *view, float index)
return 1;
}
+static void reflection_simple(float ref[3], float n[3], const float view[3])
+{
+ const float f1= -2.0f * dot_v3v3(n, view);
+ madd_v3_v3v3fl(ref, view, n, f1);
+}
+
/* orn = original face normal */
-static void reflection(float *ref, float *n, float *view, float *orn)
+static void reflection(float ref[3], float n[3], const float view[3], const float orn[3])
{
float f1;
-
- f1= -2.0f*(n[0]*view[0]+ n[1]*view[1]+ n[2]*view[2]);
-
- ref[0]= (view[0]+f1*n[0]);
- ref[1]= (view[1]+f1*n[1]);
- ref[2]= (view[2]+f1*n[2]);
- if(orn) {
- /* test phong normals, then we should prevent vector going to the back */
- f1= ref[0]*orn[0]+ ref[1]*orn[1]+ ref[2]*orn[2];
- if(f1>0.0f) {
- f1+= .01f;
- ref[0]-= f1*orn[0];
- ref[1]-= f1*orn[1];
- ref[2]-= f1*orn[2];
- }
+ reflection_simple(ref, n, view);
+
+ /* test phong normals, then we should prevent vector going to the back */
+ f1= dot_v3v3(ref, orn);
+ if(f1>0.0f) {
+ f1+= 0.01f;
+ ref[0]-= f1*orn[0];
+ ref[1]-= f1*orn[1];
+ ref[2]-= f1*orn[2];
}
}
@@ -672,8 +672,7 @@ static void color_combine(float *result, float fac1, float fac2, float *col1, fl
static float shade_by_transmission(Isect *is, ShadeInput *shi, ShadeResult *shr)
{
- float dx, dy, dz, d, p;
-
+ float d;
if (0 == (shi->mat->mode & MA_TRANSP))
return -1;
@@ -681,10 +680,12 @@ static float shade_by_transmission(Isect *is, ShadeInput *shi, ShadeResult *shr)
d= 1.0f;
}
else {
+ float p;
+
/* shi.co[] calculated by shade_ray() */
- dx= shi->co[0] - is->start[0];
- dy= shi->co[1] - is->start[1];
- dz= shi->co[2] - is->start[2];
+ const float dx= shi->co[0] - is->start[0];
+ const float dy= shi->co[1] - is->start[1];
+ const float dz= shi->co[2] - is->start[2];
d= sqrt(dx*dx+dy*dy+dz*dz);
if (d > shi->mat->tx_limit)
d= shi->mat->tx_limit;
@@ -701,13 +702,13 @@ static float shade_by_transmission(Isect *is, ShadeInput *shi, ShadeResult *shr)
return d;
}
-static void ray_fadeout_endcolor(float *col, ShadeInput *origshi, ShadeInput *shi, ShadeResult *shr, Isect *isec, float *vec)
+static void ray_fadeout_endcolor(float col[3], ShadeInput *origshi, ShadeInput *shi, ShadeResult *shr, Isect *isec, const float vec[3])
{
/* un-intersected rays get either rendered material color or sky color */
if (origshi->mat->fadeto_mir == MA_RAYMIR_FADETOMAT) {
- VECCOPY(col, shr->combined);
+ copy_v3_v3(col, shr->combined);
} else if (origshi->mat->fadeto_mir == MA_RAYMIR_FADETOSKY) {
- VECCOPY(shi->view, vec);
+ copy_v3_v3(shi->view, vec);
normalize_v3(shi->view);
shadeSkyView(col, isec->start, shi->view, NULL, shi->thread);
@@ -715,7 +716,7 @@ static void ray_fadeout_endcolor(float *col, ShadeInput *origshi, ShadeInput *sh
}
}
-static void ray_fadeout(Isect *is, ShadeInput *shi, float *col, float *blendcol, float dist_mir)
+static void ray_fadeout(Isect *is, ShadeInput *shi, float col[3], const float blendcol[3], float dist_mir)
{
/* if fading out, linear blend against fade color */
float blendfac;
@@ -729,14 +730,14 @@ static void ray_fadeout(Isect *is, ShadeInput *shi, float *col, float *blendcol,
/* the main recursive tracer itself
* note: 'col' must be initialized */
-static void traceray(ShadeInput *origshi, ShadeResult *origshr, short depth, float *start, float *dir, float *col, ObjectInstanceRen *obi, VlakRen *vlr, int traflag)
+static void traceray(ShadeInput *origshi, ShadeResult *origshr, short depth, const float start[3], const float dir[3], float col[4], ObjectInstanceRen *obi, VlakRen *vlr, int traflag)
{
ShadeInput shi= {0};
Isect isec;
float dist_mir = origshi->mat->dist_mir;
- VECCOPY(isec.start, start);
- VECCOPY(isec.dir, dir );
+ copy_v3_v3(isec.start, start);
+ copy_v3_v3(isec.dir, dir );
isec.dist = dist_mir > 0 ? dist_mir : RE_RAYTRACE_MAXDIST;
isec.mode= RE_RAY_MIRROR;
isec.check = RE_CHECK_VLR_RENDER;
@@ -752,8 +753,8 @@ static void traceray(ShadeInput *origshi, ShadeResult *origshr, short depth, flo
float d= 1.0f;
/* for as long we don't have proper dx/dy transform for rays we copy over original */
- VECCOPY(shi.dxco, origshi->dxco);
- VECCOPY(shi.dyco, origshi->dyco);
+ copy_v3_v3(shi.dxco, origshi->dxco);
+ copy_v3_v3(shi.dyco, origshi->dyco);
shi.mask= origshi->mask;
shi.osatex= origshi->osatex;
@@ -845,7 +846,7 @@ static void traceray(ShadeInput *origshi, ShadeResult *origshr, short depth, flo
float mircol[4];
float ref[3];
- reflection(ref, shi.vn, shi.view, NULL);
+ reflection_simple(ref, shi.vn, shi.view);
traceray(origshi, origshr, depth-1, shi.co, ref, mircol, shi.obi, shi.vlr, 0);
f1= 1.0f-f;
@@ -896,7 +897,7 @@ static void traceray(ShadeInput *origshi, ShadeResult *origshr, short depth, flo
/* calc distributed planar energy */
-static void DP_energy(float *table, float *vec, int tot, float xsize, float ysize)
+static void DP_energy(float *table, float vec[2], int tot, float xsize, float ysize)
{
int x, y, a;
float *fp, force[3], result[3];
@@ -950,7 +951,7 @@ static void jitter_plane_offset(float *jitter1, float *jitter2, int tot, float s
void init_jitter_plane(LampRen *lar)
{
float *fp;
- int x, iter=12, tot= lar->ray_totsamp;
+ int x, tot= lar->ray_totsamp;
/* test if already initialized */
if(lar->jitter) return;
@@ -962,7 +963,8 @@ void init_jitter_plane(LampRen *lar)
/* if 1 sample, we leave table to be zero's */
if(tot>1) {
-
+ int iter=12;
+
/* set per-lamp fixed seed */
BLI_srandom(tot);
@@ -1125,7 +1127,7 @@ static void QMC_getSample(double *s, QMCSampler *qsa, int thread, int num)
}
/* phong weighted disc using 'blur' for exponent, centred on 0,0 */
-static void QMC_samplePhong(float *vec, QMCSampler *qsa, int thread, int num, float blur)
+static void QMC_samplePhong(float vec[3], QMCSampler *qsa, int thread, int num, float blur)
{
double s[2];
float phi, pz, sqr;
@@ -1142,7 +1144,7 @@ static void QMC_samplePhong(float *vec, QMCSampler *qsa, int thread, int num, fl
}
/* rect of edge lengths sizex, sizey, centred on 0.0,0.0 i.e. ranging from -sizex/2 to +sizey/2 */
-static void QMC_sampleRect(float *vec, QMCSampler *qsa, int thread, int num, float sizex, float sizey)
+static void QMC_sampleRect(float vec[3], QMCSampler *qsa, int thread, int num, float sizex, float sizey)
{
double s[2];
@@ -1154,7 +1156,7 @@ static void QMC_sampleRect(float *vec, QMCSampler *qsa, int thread, int num, flo
}
/* disc of radius 'radius', centred on 0,0 */
-static void QMC_sampleDisc(float *vec, QMCSampler *qsa, int thread, int num, float radius)
+static void QMC_sampleDisc(float vec[3], QMCSampler *qsa, int thread, int num, float radius)
{
double s[2];
float phi, sqr;
@@ -1170,7 +1172,7 @@ static void QMC_sampleDisc(float *vec, QMCSampler *qsa, int thread, int num, flo
}
/* uniform hemisphere sampling */
-static void QMC_sampleHemi(float *vec, QMCSampler *qsa, int thread, int num)
+static void QMC_sampleHemi(float vec[3], QMCSampler *qsa, int thread, int num)
{
double s[2];
float phi, sqr;
@@ -1187,7 +1189,7 @@ static void QMC_sampleHemi(float *vec, QMCSampler *qsa, int thread, int num)
#if 0 /* currently not used */
/* cosine weighted hemisphere sampling */
-static void QMC_sampleHemiCosine(float *vec, QMCSampler *qsa, int thread, int num)
+static void QMC_sampleHemiCosine(float vec[3], QMCSampler *qsa, int thread, int num)
{
double s[2];
float phi, sqr;
@@ -1238,10 +1240,9 @@ static void release_thread_qmcsampler(Render *UNUSED(re), int UNUSED(thread), QM
void free_render_qmcsampler(Render *re)
{
- QMCSampler *qsa, *next;
- int a;
-
if(re->qmcsamplers) {
+ QMCSampler *qsa, *next;
+ int a;
for(a=0; a<BLENDER_MAX_THREADS; a++) {
for(qsa=re->qmcsamplers[a].first; qsa; qsa=next) {
next= qsa->next;
@@ -1256,7 +1257,7 @@ void free_render_qmcsampler(Render *re)
}
}
-static int adaptive_sample_variance(int samples, float *col, float *colsq, float thresh)
+static int adaptive_sample_variance(int samples, const float col[3], const float colsq[3], float thresh)
{
float var[3], mean[3];
@@ -1306,7 +1307,7 @@ static float get_avg_speed(ShadeInput *shi)
/* ***************** main calls ************** */
-static void trace_refract(float *col, ShadeInput *shi, ShadeResult *shr)
+static void trace_refract(float col[4], ShadeInput *shi, ShadeResult *shr)
{
QMCSampler *qsa=NULL;
int samp_type;
@@ -1345,7 +1346,7 @@ static void trace_refract(float *col, ShadeInput *shi, ShadeResult *shr)
if((shi->vlr->flag & R_SMOOTH))
reflection(v_refract, shi->vn, shi->view, shi->facenor);
else
- reflection(v_refract, shi->vn, shi->view, NULL);
+ reflection_simple(v_refract, shi->vn, shi->view);
/* can't blur total external reflection */
max_samples = 1;
@@ -1366,7 +1367,7 @@ static void trace_refract(float *col, ShadeInput *shi, ShadeResult *shr)
normalize_v3(v_refract_new);
} else {
/* no blurriness, use the original normal */
- VECCOPY(v_refract_new, v_refract);
+ copy_v3_v3(v_refract_new, v_refract);
}
sampcol[0]= sampcol[1]= sampcol[2]= sampcol[3]= 0.0f;
@@ -1406,7 +1407,7 @@ static void trace_refract(float *col, ShadeInput *shi, ShadeResult *shr)
release_thread_qmcsampler(&R, shi->thread, qsa);
}
-static void trace_reflect(float *col, ShadeInput *shi, ShadeResult *shr, float fresnelfac)
+static void trace_reflect(float col[3], ShadeInput *shi, ShadeResult *shr, float fresnelfac)
{
QMCSampler *qsa=NULL;
int samp_type;
@@ -1445,7 +1446,7 @@ static void trace_reflect(float *col, ShadeInput *shi, ShadeResult *shr, float f
* if tangent shading enabled */
if (shi->mat->mode & (MA_TANGENT_V)) {
cross_v3_v3v3(orthx, shi->vn, shi->tang); // bitangent
- VECCOPY(orthy, shi->tang);
+ copy_v3_v3(orthy, shi->tang);
mul_v3_fl(orthx, samp3d[0]);
mul_v3_fl(orthy, samp3d[1]*aniso);
} else {
@@ -1460,13 +1461,13 @@ static void trace_reflect(float *col, ShadeInput *shi, ShadeResult *shr, float f
normalize_v3(v_nor_new);
} else {
/* no blurriness, use the original normal */
- VECCOPY(v_nor_new, shi->vn);
+ copy_v3_v3(v_nor_new, shi->vn);
}
if((shi->vlr->flag & R_SMOOTH))
reflection(v_reflect, v_nor_new, shi->view, shi->facenor);
else
- reflection(v_reflect, v_nor_new, shi->view, NULL);
+ reflection_simple(v_reflect, v_nor_new, shi->view);
sampcol[0]= sampcol[1]= sampcol[2]= sampcol[3]= 0.0f;
@@ -1517,7 +1518,7 @@ static void trace_reflect(float *col, ShadeInput *shi, ShadeResult *shr, float f
/* extern call from render loop */
void ray_trace(ShadeInput *shi, ShadeResult *shr)
{
- float i, f, f1, fr, fg, fb;
+ float f1, fr, fg, fb;
float mircol[4], tracol[4];
float diff[3];
int do_tra, do_mir;
@@ -1527,12 +1528,12 @@ void ray_trace(ShadeInput *shi, ShadeResult *shr)
/* raytrace mirror amd refract like to separate the spec color */
if(shi->combinedflag & SCE_PASS_SPEC)
- VECSUB(diff, shr->combined, shr->spec) /* no ; */
+ sub_v3_v3v3(diff, shr->combined, shr->spec);
else
- VECCOPY(diff, shr->combined);
+ copy_v3_v3(diff, shr->combined);
if(do_tra) {
- float olddiff[3];
+ float olddiff[3], f;
trace_refract(tracol, shi, shr);
@@ -1542,24 +1543,23 @@ void ray_trace(ShadeInput *shi, ShadeResult *shr)
fb= 1.0f+ shi->mat->filter*(shi->b-1.0f);
/* for refract pass */
- VECCOPY(olddiff, diff);
+ copy_v3_v3(olddiff, diff);
diff[0]= f*diff[0] + f1*fr*tracol[0];
diff[1]= f*diff[1] + f1*fg*tracol[1];
diff[2]= f*diff[2] + f1*fb*tracol[2];
if(shi->passflag & SCE_PASS_REFRACT)
- VECSUB(shr->refr, diff, olddiff);
+ sub_v3_v3v3(shr->refr, diff, olddiff);
if(!(shi->combinedflag & SCE_PASS_REFRACT))
- VECSUB(diff, diff, shr->refr);
+ sub_v3_v3v3(diff, diff, shr->refr);
shr->alpha= MIN2(1.0f, tracol[3]);
}
if(do_mir) {
-
- i= shi->ray_mirror*fresnel_fac(shi->view, shi->vn, shi->mat->fresnel_mir_i, shi->mat->fresnel_mir);
+ const float i= shi->ray_mirror*fresnel_fac(shi->view, shi->vn, shi->mat->fresnel_mir_i, shi->mat->fresnel_mir);
if(i!=0.0f) {
trace_reflect(mircol, shi, shr, i);
@@ -1597,12 +1597,12 @@ void ray_trace(ShadeInput *shi, ShadeResult *shr)
if(shi->combinedflag & SCE_PASS_SPEC)
VECADD(shr->combined, diff, shr->spec) /* no ; */
else
- VECCOPY(shr->combined, diff);
+ copy_v3_v3(shr->combined, diff);
}
/* color 'shadfac' passes through 'col' with alpha and filter */
/* filter is only applied on alpha defined transparent part */
-static void addAlphaLight(float *shadfac, float *col, float alpha, float filter)
+static void addAlphaLight(float shadfac[4], const float col[3], float alpha, float filter)
{
float fr, fg, fb;
@@ -1621,19 +1621,20 @@ static void ray_trace_shadow_tra(Isect *is, ShadeInput *origshi, int depth, int
{
/* ray to lamp, find first face that intersects, check alpha properties,
if it has col[3]>0.0f continue. so exit when alpha is full */
- ShadeInput shi;
- ShadeResult shr;
- float initial_dist = is->dist;
-
+ const float initial_dist = is->dist;
+
if(RE_rayobject_raycast(R.raytree, is)) {
- float d= 1.0f;
- /* we got a face */
-
- /* Warning, This is not that nice, and possibly a bit slow for every ray,
- however some variables were not initialized properly in, unless using shade_input_initialize(...), we need to do a memset */
- memset(&shi, 0, sizeof(ShadeInput));
+ /* Warning regarding initializing to zero's, This is not that nice,
+ * and possibly a bit slow for every ray, however some variables were
+ * not initialized properly in, unless using
+ * shade_input_initialize(...), we need to zero them. */
+ ShadeInput shi= {NULL};
/* end warning! - Campbell */
-
+
+ ShadeResult shr;
+
+ /* we got a face */
+
shi.depth= origshi->depth + 1; /* only used to indicate tracing */
shi.mask= origshi->mask;
shi.thread= origshi->thread;
@@ -1647,9 +1648,9 @@ static void ray_trace_shadow_tra(Isect *is, ShadeInput *origshi, int depth, int
shade_ray(is, &shi, &shr);
if (shi.mat->material_type == MA_TYPE_SURFACE) {
- if (traflag & RAY_TRA)
- d= shade_by_transmission(is, &shi, &shr);
-
+ const float d= (traflag & RAY_TRA) ?
+ shade_by_transmission(is, &shi, &shr) :
+ 1.0f;
/* mix colors based on shadfac (rgb + amount of light factor) */
addAlphaLight(col, shr.diff, shr.alpha, d*shi.mat->filter);
} else if (shi.mat->material_type == MA_TYPE_VOLUME) {
@@ -1665,7 +1666,7 @@ static void ray_trace_shadow_tra(Isect *is, ShadeInput *origshi, int depth, int
if(depth>0 && col[3]>0.0f) {
/* adapt isect struct */
- VECCOPY(is->start, shi.co);
+ copy_v3_v3(is->start, shi.co);
is->dist = initial_dist-is->dist;
is->orig.ob = shi.obi;
is->orig.face = shi.vlr;
@@ -1702,7 +1703,7 @@ static int UNUSED_FUNCTION(ray_trace_shadow_rad)(ShadeInput *ship, ShadeResult *
isec.orig.face = ship->vlr;
isec.hint = 0;
- VECCOPY(isec.start, ship->co);
+ copy_v3_v3(isec.start, ship->co);
RE_RC_INIT(isec, shi);
@@ -1710,14 +1711,14 @@ static int UNUSED_FUNCTION(ray_trace_shadow_rad)(ShadeInput *ship, ShadeResult *
counter+=3;
counter %= 768;
- VECCOPY(vec, hashvectf+counter);
+ copy_v3_v3(vec, hashvectf+counter);
if(ship->vn[0]*vec[0]+ship->vn[1]*vec[1]+ship->vn[2]*vec[2]>0.0f) {
vec[0]-= vec[0];
vec[1]-= vec[1];
vec[2]-= vec[2];
}
- VECCOPY(isec.dir, vec );
+ copy_v3_v3(isec.dir, vec );
isec.dist = RE_RAYTRACE_MAXDIST;
if(RE_rayobject_raycast(R.raytree, &isec)) {
@@ -1751,7 +1752,7 @@ static int UNUSED_FUNCTION(ray_trace_shadow_rad)(ShadeInput *ship, ShadeResult *
}
/* aolight: function to create random unit sphere vectors for total random sampling */
-static void RandomSpherical(float *v)
+static void RandomSpherical(float v[3])
{
float r;
v[2] = 2.f*BLI_frand()-1.f;
@@ -1765,7 +1766,7 @@ static void RandomSpherical(float *v)
}
/* calc distributed spherical energy */
-static void DS_energy(float *sphere, int tot, float *vec)
+static void DS_energy(float *sphere, int tot, float vec[3])
{
float *fp, fac, force[3], res[3];
int a;
@@ -1863,13 +1864,15 @@ static float *sphere_sampler(int type, int resol, int thread, int xs, int ys, in
}
else {
float *sphere;
- float cosfi, sinfi, cost, sint;
- float ang, *vec1;
- int a;
+ float *vec1;
// returns table if xs and ys were equal to last call, and not resetting
sphere= (reset)? NULL: threadsafe_table_sphere(1, thread, xs, ys, tot);
if(sphere==NULL) {
+ float cosfi, sinfi, cost, sint;
+ float ang;
+ int a;
+
sphere= threadsafe_table_sphere(0, thread, xs, ys, tot);
// random rotation
@@ -1890,7 +1893,7 @@ static float *sphere_sampler(int type, int resol, int thread, int xs, int ys, in
}
}
-static void ray_ao_qmc(ShadeInput *shi, float *ao, float *env)
+static void ray_ao_qmc(ShadeInput *shi, float ao[3], float env[3])
{
Isect isec;
RayHint point_hint;
@@ -1924,7 +1927,7 @@ static void ray_ao_qmc(ShadeInput *shi, float *ao, float *env)
isec.mode= (R.wrld.aomode & WO_AODIST)?RE_RAY_SHADOW_TRA:RE_RAY_SHADOW;
isec.lay= -1;
- VECCOPY(isec.start, shi->co);
+ copy_v3_v3(isec.start, shi->co);
RE_rayobject_hint_bb( R.raytree, &point_hint, isec.start, isec.start );
isec.hint = &point_hint;
@@ -1943,10 +1946,10 @@ static void ray_ao_qmc(ShadeInput *shi, float *ao, float *env)
}
if(shi->vlr->flag & R_SMOOTH) {
- VECCOPY(nrm, shi->vn);
+ copy_v3_v3(nrm, shi->vn);
}
else {
- VECCOPY(nrm, shi->facenor);
+ copy_v3_v3(nrm, shi->facenor);
}
ortho_basis_v3v3_v3( up, side,nrm);
@@ -1990,7 +1993,7 @@ static void ray_ao_qmc(ShadeInput *shi, float *ao, float *env)
}
else if(envcolor!=WO_AOPLAIN) {
float skycol[4];
- float skyfac, view[3];
+ float view[3];
view[0]= -dir[0];
view[1]= -dir[1];
@@ -1998,7 +2001,7 @@ static void ray_ao_qmc(ShadeInput *shi, float *ao, float *env)
normalize_v3(view);
if(envcolor==WO_AOSKYCOL) {
- skyfac= 0.5f*(1.0f+view[0]*R.grvec[0]+ view[1]*R.grvec[1]+ view[2]*R.grvec[2]);
+ const float skyfac= 0.5f*(1.0f+view[0]*R.grvec[0]+ view[1]*R.grvec[1]+ view[2]*R.grvec[2]);
env[0]+= (1.0f-skyfac)*R.wrld.horr + skyfac*R.wrld.zenr;
env[1]+= (1.0f-skyfac)*R.wrld.horg + skyfac*R.wrld.zeng;
env[2]+= (1.0f-skyfac)*R.wrld.horb + skyfac*R.wrld.zenb;
@@ -2039,7 +2042,7 @@ static void ray_ao_qmc(ShadeInput *shi, float *ao, float *env)
}
/* extern call from shade_lamp_loop, ambient occlusion calculus */
-static void ray_ao_spheresamp(ShadeInput *shi, float *ao, float *env)
+static void ray_ao_spheresamp(ShadeInput *shi, float ao[3], float env[3])
{
Isect isec;
RayHint point_hint;
@@ -2063,7 +2066,7 @@ static void ray_ao_spheresamp(ShadeInput *shi, float *ao, float *env)
isec.mode= (R.wrld.aomode & WO_AODIST)?RE_RAY_SHADOW_TRA:RE_RAY_SHADOW;
isec.lay= -1;
- VECCOPY(isec.start, shi->co);
+ copy_v3_v3(isec.start, shi->co);
RE_rayobject_hint_bb( R.raytree, &point_hint, isec.start, isec.start );
isec.hint = &point_hint;
@@ -2128,7 +2131,7 @@ static void ray_ao_spheresamp(ShadeInput *shi, float *ao, float *env)
}
else if(envcolor!=WO_AOPLAIN) {
float skycol[4];
- float fac, view[3];
+ float view[3];
view[0]= -vec[0];
view[1]= -vec[1];
@@ -2136,7 +2139,7 @@ static void ray_ao_spheresamp(ShadeInput *shi, float *ao, float *env)
normalize_v3(view);
if(envcolor==WO_AOSKYCOL) {
- fac= 0.5f*(1.0f+view[0]*R.grvec[0]+ view[1]*R.grvec[1]+ view[2]*R.grvec[2]);
+ const float fac= 0.5f*(1.0f+view[0]*R.grvec[0]+ view[1]*R.grvec[1]+ view[2]*R.grvec[2]);
env[0]+= (1.0f-fac)*R.wrld.horr + fac*R.wrld.zenr;
env[1]+= (1.0f-fac)*R.wrld.horg + fac*R.wrld.zeng;
env[2]+= (1.0f-fac)*R.wrld.horb + fac*R.wrld.zenb;
@@ -2167,7 +2170,7 @@ static void ray_ao_spheresamp(ShadeInput *shi, float *ao, float *env)
copy_v3_v3(env, ao);
}
-void ray_ao(ShadeInput *shi, float *ao, float *env)
+void ray_ao(ShadeInput *shi, float ao[3], float env[3])
{
/* Unfortunately, the unusual way that the sphere sampler calculates roughly twice as many
* samples as are actually traced, and skips them based on bias and OSA settings makes it very difficult
@@ -2214,12 +2217,12 @@ static void ray_shadow_jittered_coords(ShadeInput *shi, int max, float jitco[RE_
*totjitco= tot;
}
else {
- VECCOPY(jitco[0], shi->co);
+ copy_v3_v3(jitco[0], shi->co);
*totjitco= 1;
}
}
-static void ray_shadow_qmc(ShadeInput *shi, LampRen *lar, float *lampco, float *shadfac, Isect *isec)
+static void ray_shadow_qmc(ShadeInput *shi, LampRen *lar, const float lampco[3], float shadfac[4], Isect *isec)
{
QMCSampler *qsa=NULL;
int samples=0;
@@ -2276,7 +2279,7 @@ static void ray_shadow_qmc(ShadeInput *shi, LampRen *lar, float *lampco, float *
isec->hint = &bb_hint;
isec->check = RE_CHECK_VLR_RENDER;
isec->skip = RE_SKIP_VLR_NEIGHBOUR;
- VECCOPY(vec, lampco);
+ copy_v3_v3(vec, lampco);
while (samples < max_samples) {
@@ -2294,9 +2297,7 @@ static void ray_shadow_qmc(ShadeInput *shi, LampRen *lar, float *lampco, float *
float ru[3], rv[3], v[3], s[3];
/* calc tangent plane vectors */
- v[0] = co[0] - lampco[0];
- v[1] = co[1] - lampco[1];
- v[2] = co[2] - lampco[2];
+ sub_v3_v3v3(v, co, lampco);
normalize_v3(v);
ortho_basis_v3v3_v3( ru, rv,v);
@@ -2308,7 +2309,7 @@ static void ray_shadow_qmc(ShadeInput *shi, LampRen *lar, float *lampco, float *
s[1] = samp3d[0]*ru[1] + samp3d[1]*rv[1];
s[2] = samp3d[0]*ru[2] + samp3d[1]*rv[2];
- VECCOPY(samp3d, s);
+ copy_v3_v3(samp3d, s);
}
else {
/* sampling, returns quasi-random vector in [sizex,sizey]^2 plane */
@@ -2321,7 +2322,7 @@ static void ray_shadow_qmc(ShadeInput *shi, LampRen *lar, float *lampco, float *
end[1] = vec[1]+samp3d[1];
end[2] = vec[2]+samp3d[2];
} else {
- VECCOPY(end, vec);
+ copy_v3_v3(end, vec);
}
if(shi->strand) {
@@ -2329,7 +2330,7 @@ static void ray_shadow_qmc(ShadeInput *shi, LampRen *lar, float *lampco, float *
float jitbias= 0.5f*(len_v3(shi->dxco) + len_v3(shi->dyco));
float v[3];
- VECSUB(v, co, end);
+ sub_v3_v3v3(v, co, end);
normalize_v3(v);
co[0] -= jitbias*v[0];
@@ -2337,7 +2338,7 @@ static void ray_shadow_qmc(ShadeInput *shi, LampRen *lar, float *lampco, float *
co[2] -= jitbias*v[2];
}
- VECCOPY(isec->start, co);
+ copy_v3_v3(isec->start, co);
isec->dir[0] = end[0]-isec->start[0];
isec->dir[1] = end[1]-isec->start[1];
isec->dir[2] = end[2]-isec->start[2];
@@ -2393,7 +2394,7 @@ static void ray_shadow_qmc(ShadeInput *shi, LampRen *lar, float *lampco, float *
release_thread_qmcsampler(&R, shi->thread, qsa);
}
-static void ray_shadow_jitter(ShadeInput *shi, LampRen *lar, float *lampco, float *shadfac, Isect *isec)
+static void ray_shadow_jitter(ShadeInput *shi, LampRen *lar, const float lampco[3], float shadfac[4], Isect *isec)
{
/* area soft shadow */
float *jitlamp;
@@ -2416,7 +2417,7 @@ static void ray_shadow_jitter(ShadeInput *shi, LampRen *lar, float *lampco, floa
if(a==4) mask |= (mask>>4)|(mask>>8);
else if(a==9) mask |= (mask>>9);
- VECCOPY(isec->start, shi->co);
+ copy_v3_v3(isec->start, shi->co);
isec->orig.ob = shi->obi;
isec->orig.face = shi->vlr;
RE_rayobject_hint_bb( R.raytree, &point_hint, isec->start, isec->start );
@@ -2477,7 +2478,7 @@ static void ray_shadow_jitter(ShadeInput *shi, LampRen *lar, float *lampco, floa
}
}
/* extern call from shade_lamp_loop */
-void ray_shadow(ShadeInput *shi, LampRen *lar, float *shadfac)
+void ray_shadow(ShadeInput *shi, LampRen *lar, float shadfac[4])
{
Isect isec;
float lampco[3];
@@ -2520,7 +2521,7 @@ void ray_shadow(ShadeInput *shi, LampRen *lar, float *shadfac)
lampco[2]= shi->co[2] - R.maxdist*lar->vec[2];
}
else {
- VECCOPY(lampco, lar->co);
+ copy_v3_v3(lampco, lar->co);
}
if (ELEM(lar->ray_samp_method, LA_SAMP_HALTON, LA_SAMP_HAMMERSLEY)) {
@@ -2536,8 +2537,8 @@ void ray_shadow(ShadeInput *shi, LampRen *lar, float *shadfac)
shadfac[3]= 1.0f; // 1.0=full light
/* set up isec.dir */
- VECCOPY(isec.start, shi->co);
- VECSUB(isec.dir, lampco, isec.start);
+ copy_v3_v3(isec.start, shi->co);
+ sub_v3_v3v3(isec.dir, lampco, isec.start);
isec.dist = normalize_v3(isec.dir);
if(isec.mode==RE_RAY_SHADOW_TRA) {
@@ -2545,7 +2546,7 @@ void ray_shadow(ShadeInput *shi, LampRen *lar, float *shadfac)
float col[4] = {1.0f, 1.0f, 1.0f, 1.0f};
ray_trace_shadow_tra(&isec, shi, DEPTH_SHADOW_TRA, 0, col);
- QUATCOPY(shadfac, col);
+ copy_v4_v4(shadfac, col);
}
else if(RE_rayobject_raycast(R.raytree, &isec))
shadfac[3]= 0.0f;
@@ -2584,15 +2585,15 @@ static void ray_translucent(ShadeInput *shi, LampRen *lar, float *distfac, float
lampco[2]= shi->co[2] - RE_RAYTRACE_MAXDIST*lar->vec[2];
}
else {
- VECCOPY(lampco, lar->co);
+ copy_v3_v3(lampco, lar->co);
}
isec.orig.ob = shi->obi;
isec.orig.face = shi->vlr;
/* set up isec.dir */
- VECCOPY(isec.start, shi->co);
- VECCOPY(isec.end, lampco);
+ copy_v3_v3(isec.start, shi->co);
+ copy_v3_v3(isec.end, lampco);
if(RE_rayobject_raycast(R.raytree, &isec)) {
/* we got a face */
diff --git a/source/blender/render/intern/source/render_texture.c b/source/blender/render/intern/source/render_texture.c
index 641fec90cf3..8d953ccc73d 100644
--- a/source/blender/render/intern/source/render_texture.c
+++ b/source/blender/render/intern/source/render_texture.c
@@ -747,7 +747,7 @@ static int plugintex(Tex *tex, float *texvec, float *dxt, float *dyt, int osatex
{
PluginTex *pit;
int rgbnor=0;
- float result[ 8 ];
+ float result[8]= {0.0f};
texres->tin= 0.0;
@@ -1906,6 +1906,8 @@ static int ntap_bump_compute(NTapBump *ntap_bump, ShadeInput *shi, MTex *mtex, T
const int fromrgb = ((tex->type == TEX_IMAGE) || ((tex->flag & TEX_COLORBAND)!=0));
float Hscale = Tnor*mtex->norfac;
int dimx=512, dimy=512;
+ const int imag_tspace_dimension_x = 1024; // only used for texture space variant
+ float aspect = 1.0f;
// 2 channels for 2D texture and 3 for 3D textures.
const int nr_channels = (mtex->texco == TEXCO_UV)? 2 : 3;
@@ -1938,6 +1940,7 @@ static int ntap_bump_compute(NTapBump *ntap_bump, ShadeInput *shi, MTex *mtex, T
if (ibuf) {
dimx = ibuf->x;
dimy = ibuf->y;
+ aspect = ((float) dimy) / dimx;
}
}
@@ -2111,12 +2114,13 @@ static int ntap_bump_compute(NTapBump *ntap_bump, ShadeInput *shi, MTex *mtex, T
if(tex->ima) {
// crazy hack solution that gives results similar to normal mapping - part 2
float vec[2];
+ const float imag_tspace_dimension_y = aspect*imag_tspace_dimension_x;
- vec[0] = dimx*dxt[0];
- vec[1] = dimy*dxt[1];
+ vec[0] = imag_tspace_dimension_x*dxt[0];
+ vec[1] = imag_tspace_dimension_y*dxt[1];
dHdx *= 1.0f/len_v2(vec);
- vec[0] = dimx*dyt[0];
- vec[1] = dimy*dyt[1];
+ vec[0] = imag_tspace_dimension_x*dyt[0];
+ vec[1] = imag_tspace_dimension_y*dyt[1];
dHdy *= 1.0f/len_v2(vec);
}
}
diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c
index bc5e7f23e21..fd824cee8a4 100644
--- a/source/blender/render/intern/source/rendercore.c
+++ b/source/blender/render/intern/source/rendercore.c
@@ -142,7 +142,7 @@ void calc_renderco_ortho(float co[3], float x, float y, int z)
co[2]= R.winmat[3][2]/( R.winmat[2][3]*zco - R.winmat[2][2] );
}
-void calc_renderco_zbuf(float co[3], float *view, int z)
+void calc_renderco_zbuf(float co[3], const float view[3], int z)
{
float fac, zco;
diff --git a/source/blender/render/intern/source/shadeinput.c b/source/blender/render/intern/source/shadeinput.c
index be90471b219..d9f7e9c31de 100644
--- a/source/blender/render/intern/source/shadeinput.c
+++ b/source/blender/render/intern/source/shadeinput.c
@@ -1358,20 +1358,18 @@ void shade_sample_initialize(ShadeSample *ssamp, RenderPart *pa, RenderLayer *rl
/* Do AO or (future) GI */
void shade_samples_do_AO(ShadeSample *ssamp)
{
- ShadeInput *shi;
- int sample;
-
if(!(R.r.mode & R_SHADOW))
return;
if(!(R.r.mode & R_RAYTRACE) && !(R.wrld.ao_gather_method == WO_AOGATHER_APPROX))
return;
if(R.wrld.mode & (WO_AMB_OCC|WO_ENV_LIGHT|WO_INDIRECT_LIGHT)) {
- shi= &ssamp->shi[0];
+ ShadeInput *shi= &ssamp->shi[0];
+ int sample;
if(((shi->passflag & SCE_PASS_COMBINED) && (shi->combinedflag & (SCE_PASS_AO|SCE_PASS_ENVIRONMENT|SCE_PASS_INDIRECT)))
|| (shi->passflag & (SCE_PASS_AO|SCE_PASS_ENVIRONMENT|SCE_PASS_INDIRECT)))
- for(sample=0, shi= ssamp->shi; sample<ssamp->tot; shi++, sample++)
+ for(sample=0; sample<ssamp->tot; shi++, sample++)
if(!(shi->mode & MA_SHLESS))
ambient_occlusion(shi); /* stores in shi->ao[] */
}
diff --git a/source/blender/render/intern/source/shadeoutput.c b/source/blender/render/intern/source/shadeoutput.c
index e189b3cf638..fc48b53252d 100644
--- a/source/blender/render/intern/source/shadeoutput.c
+++ b/source/blender/render/intern/source/shadeoutput.c
@@ -119,7 +119,7 @@ static void fogcolor(float *colf, float *rco, float *view)
#endif
/* zcor is distance, co the 3d coordinate in eye space, return alpha */
-float mistfactor(float zcor, float *co)
+float mistfactor(float zcor, float const co[3])
{
float fac, hi;
@@ -162,8 +162,7 @@ static void spothalo(struct LampRen *lar, ShadeInput *shi, float *intens)
double t0, t1 = 0.0f, t2= 0.0f, t3;
float p1[3], p2[3], ladist, maxz = 0.0f, maxy = 0.0f, haint;
int snijp, doclip=1, use_yco=0;
- int ok1=0, ok2=0;
-
+
*intens= 0.0f;
haint= lar->haint;
@@ -243,6 +242,8 @@ static void spothalo(struct LampRen *lar, ShadeInput *shi, float *intens)
}
}
if(snijp==2) {
+ int ok1=0, ok2=0;
+
/* sort */
if(t1>t2) {
a= t1; t1= t2; t2= a;
@@ -345,7 +346,7 @@ static void spothalo(struct LampRen *lar, ShadeInput *shi, float *intens)
}
}
-void renderspothalo(ShadeInput *shi, float *col, float alpha)
+void renderspothalo(ShadeInput *shi, float col[4], float alpha)
{
ListBase *lights;
GroupObject *go;
@@ -726,7 +727,7 @@ static float Toon_Diff( float *n, float *l, float *UNUSED(v), float size, float
/* in latter case, only last multiplication uses 'nl' */
static float OrenNayar_Diff(float nl, float *n, float *l, float *v, float rough )
{
- float i/*, nh*/, nv, vh, realnl, h[3];
+ float i/*, nh*/, nv /*, vh */, realnl, h[3];
float a, b, t, A, B;
float Lit_A, View_A, Lit_B[3], View_B[3];
@@ -745,8 +746,8 @@ static float OrenNayar_Diff(float nl, float *n, float *l, float *v, float rough
if(realnl<=0.0f) return 0.0f;
if(nl<0.0f) return 0.0f; /* value from area light */
- vh= v[0]*h[0]+v[1]*h[1]+v[2]*h[2]; /* Dot product between view vector and halfway vector */
- if(vh<=0.0f) vh= 0.0f;
+ /* vh= v[0]*h[0]+v[1]*h[1]+v[2]*h[2]; */ /* Dot product between view vector and halfway vector */
+ /* if(vh<=0.0f) vh= 0.0f; */
Lit_A = saacos(realnl);
View_A = saacos( nv );
@@ -891,12 +892,11 @@ void shade_color(ShadeInput *shi, ShadeResult *shr)
static void ramp_diffuse_result(float *diff, ShadeInput *shi)
{
Material *ma= shi->mat;
- float col[4], fac=0;
+ float col[4];
if(ma->ramp_col) {
if(ma->rampin_col==MA_RAMP_IN_RESULT) {
-
- fac= 0.3f*diff[0] + 0.58f*diff[1] + 0.12f*diff[2];
+ float fac= 0.3f*diff[0] + 0.58f*diff[1] + 0.12f*diff[2];
do_colorband(ma->ramp_col, fac, col);
/* blending method */
@@ -911,8 +911,7 @@ static void ramp_diffuse_result(float *diff, ShadeInput *shi)
static void add_to_diffuse(float *diff, ShadeInput *shi, float is, float r, float g, float b)
{
Material *ma= shi->mat;
- float col[4], colt[3], fac=0;
-
+
if(ma->ramp_col && (ma->mode & MA_RAMP_COL)) {
/* MA_RAMP_IN_RESULT is exceptional */
@@ -923,6 +922,9 @@ static void add_to_diffuse(float *diff, ShadeInput *shi, float is, float r, floa
diff[2] += b * shi->b;
}
else {
+ float colt[3], col[4];
+ float fac;
+
/* input */
switch(ma->rampin_col) {
case MA_RAMP_IN_ENERGY:
@@ -934,6 +936,9 @@ static void add_to_diffuse(float *diff, ShadeInput *shi, float is, float r, floa
case MA_RAMP_IN_NOR:
fac= shi->view[0]*shi->vn[0] + shi->view[1]*shi->vn[1] + shi->view[2]*shi->vn[2];
break;
+ default:
+ fac= 0.0f;
+ break;
}
do_colorband(ma->ramp_col, fac, col);
@@ -962,11 +967,11 @@ static void add_to_diffuse(float *diff, ShadeInput *shi, float is, float r, floa
static void ramp_spec_result(float *specr, float *specg, float *specb, ShadeInput *shi)
{
Material *ma= shi->mat;
- float col[4];
- float fac;
-
+
if(ma->ramp_spec && (ma->rampin_spec==MA_RAMP_IN_RESULT)) {
- fac= 0.3f*(*specr) + 0.58f*(*specg) + 0.12f*(*specb);
+ float col[4];
+ float fac= 0.3f*(*specr) + 0.58f*(*specg) + 0.12f*(*specb);
+
do_colorband(ma->ramp_spec, fac, col);
/* blending method */
@@ -978,19 +983,19 @@ static void ramp_spec_result(float *specr, float *specg, float *specb, ShadeInpu
}
/* is = dot product shade, t = spec energy */
-static void do_specular_ramp(ShadeInput *shi, float is, float t, float *spec)
+static void do_specular_ramp(ShadeInput *shi, float is, float t, float spec[3])
{
Material *ma= shi->mat;
- float col[4];
- float fac=0.0f;
-
+
spec[0]= shi->specr;
spec[1]= shi->specg;
spec[2]= shi->specb;
/* MA_RAMP_IN_RESULT is exception */
if(ma->ramp_spec && (ma->rampin_spec!=MA_RAMP_IN_RESULT)) {
-
+ float fac;
+ float col[4];
+
/* input */
switch(ma->rampin_spec) {
case MA_RAMP_IN_ENERGY:
@@ -1002,6 +1007,9 @@ static void do_specular_ramp(ShadeInput *shi, float is, float t, float *spec)
case MA_RAMP_IN_NOR:
fac= shi->view[0]*shi->vn[0] + shi->view[1]*shi->vn[1] + shi->view[2]*shi->vn[2];
break;
+ default:
+ fac= 0.0f;
+ break;
}
do_colorband(ma->ramp_spec, fac, col);
@@ -1086,7 +1094,7 @@ static void indirect_lighting_apply(ShadeInput *shi, ShadeResult *shr)
}
/* result written in shadfac */
-void lamp_get_shadow(LampRen *lar, ShadeInput *shi, float inp, float *shadfac, int do_real)
+void lamp_get_shadow(LampRen *lar, ShadeInput *shi, float inp, float shadfac[4], int do_real)
{
LampShadowSubSample *lss= &(lar->shadsamp[shi->thread].s[shi->sample]);
@@ -1115,7 +1123,7 @@ void lamp_get_shadow(LampRen *lar, ShadeInput *shi, float inp, float *shadfac, i
}
/* lampdistance and spot angle, writes in lv and dist */
-float lamp_get_visibility(LampRen *lar, float *co, float *lv, float *dist)
+float lamp_get_visibility(LampRen *lar, const float co[3], float lv[3], float *dist)
{
if(lar->type==LA_SUN || lar->type==LA_HEMI) {
*dist= 1.0f;
@@ -1621,7 +1629,7 @@ static void shade_lamp_loop_only_shadow(ShadeInput *shi, ShadeResult *shr)
}
/* let's map negative light as if it mirrors positive light, otherwise negative values disappear */
-static void wrld_exposure_correct(float *diff)
+static void wrld_exposure_correct(float diff[3])
{
diff[0]= R.wrld.linfac*(1.0f-exp( diff[0]*R.wrld.logfac) );
diff --git a/source/blender/render/intern/source/strand.c b/source/blender/render/intern/source/strand.c
index 840e5444ff0..15226493977 100644
--- a/source/blender/render/intern/source/strand.c
+++ b/source/blender/render/intern/source/strand.c
@@ -92,7 +92,7 @@ void strand_eval_point(StrandSegment *sseg, StrandPoint *spoint)
Material *ma;
StrandBuffer *strandbuf;
float *simplify;
- float p[4][3], data[4], cross[3], crosslen, w, dx, dy, t;
+ float p[4][3], data[4], cross[3], w, dx, dy, t;
int type;
strandbuf= sseg->buffer;
@@ -164,7 +164,7 @@ void strand_eval_point(StrandSegment *sseg, StrandPoint *spoint)
if(w > 0.0f) {
if(strandbuf->flag & R_STRAND_B_UNITS) {
- crosslen= len_v3(cross);
+ const float crosslen= len_v3(cross);
w= 2.0f*crosslen*strandbuf->minwidth/w;
if(spoint->width < w) {
diff --git a/source/blender/render/intern/source/voxeldata.c b/source/blender/render/intern/source/voxeldata.c
index b63ece80119..464cbf72326 100644
--- a/source/blender/render/intern/source/voxeldata.c
+++ b/source/blender/render/intern/source/voxeldata.c
@@ -389,7 +389,7 @@ int voxeldatatex(struct Tex *tex, const float texvec[3], struct TexResult *texre
VoxelData *vd = tex->vd;
float co[3], offset[3] = {0.5, 0.5, 0.5};
- if ((!vd) || (vd->dataset==NULL)) {
+ if (vd->dataset==NULL) {
texres->tin = 0.0f;
return 0;
}
diff --git a/source/blender/render/intern/source/zbuf.c b/source/blender/render/intern/source/zbuf.c
index f36994e0969..62a54a51102 100644
--- a/source/blender/render/intern/source/zbuf.c
+++ b/source/blender/render/intern/source/zbuf.c
@@ -1747,13 +1747,14 @@ static void zbuf_project_cache_clear(ZbufProjectCache *cache, int size)
static int zbuf_shadow_project(ZbufProjectCache *cache, int index, float winmat[][4], float *co, float *ho)
{
- int clipflag, cindex= index & 255;
+ int cindex= index & 255;
if(cache[cindex].index == index) {
QUATCOPY(ho, cache[cindex].ho);
return cache[cindex].clip;
}
else {
+ int clipflag;
projectvert(co, winmat, ho);
clipflag= testclip(ho);
@@ -1775,14 +1776,16 @@ static void zbuffer_part_bounds(int winx, int winy, RenderPart *pa, float *bound
static int zbuf_part_project(ZbufProjectCache *cache, int index, float winmat[][4], float *bounds, float *co, float *ho)
{
- float vec[3], wco;
- int clipflag= 0, cindex= index & 255;
+ float vec[3];
+ int cindex= index & 255;
if(cache[cindex].index == index) {
QUATCOPY(ho, cache[cindex].ho);
return cache[cindex].clip;
}
else {
+ float wco;
+ int clipflag= 0;
VECCOPY(vec, co)
projectvert(co, winmat, ho);
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index 75fec6ed705..dad43b4fe69 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -1917,7 +1917,7 @@ void wm_event_do_handlers(bContext *C)
/* store last event for this window */
/* mousemove and timer events don't overwrite last type */
- if (event->type != MOUSEMOVE && !ISTIMER(event->type)) {
+ if (!ELEM(event->type, MOUSEMOVE, INBETWEEN_MOUSEMOVE) && !ISTIMER(event->type)) {
if (wm_action_not_handled(action)) {
if (win->eventstate->prevtype == event->type) {
/* set click time on first click (press -> release) */
diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c
index 320dc2ecdda..68cd95c1b99 100644
--- a/source/blender/windowmanager/intern/wm_operators.c
+++ b/source/blender/windowmanager/intern/wm_operators.c
@@ -1962,7 +1962,7 @@ static void WM_OT_save_as_mainfile(wmOperatorType *ot)
WM_operator_properties_filesel(ot, FOLDERFILE|BLENDERFILE, FILE_BLENDER, FILE_SAVE, WM_FILESEL_FILEPATH);
RNA_def_boolean(ot->srna, "compress", 0, "Compress", "Write compressed .blend file");
RNA_def_boolean(ot->srna, "relative_remap", 1, "Remap Relative", "Remap relative paths when saving in a different directory");
- RNA_def_boolean(ot->srna, "copy", 0, "Save Copy", "Save a copy of the actual working state but does not make saved file active.");
+ RNA_def_boolean(ot->srna, "copy", 0, "Save Copy", "Save a copy of the actual working state but does not make saved file active");
}
/* *************** save file directly ******** */
@@ -3279,12 +3279,12 @@ static void WM_OT_radial_control(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO|OPTYPE_BLOCKING;
/* all paths relative to the context */
- RNA_def_string(ot->srna, "data_path", "", 0, "Data Path", "Path of property to be set by the radial control.");
- RNA_def_string(ot->srna, "rotation_path", "", 0, "Rotation Path", "Path of property used to rotate the texture display.");
- RNA_def_string(ot->srna, "color_path", "", 0, "Color Path", "Path of property used to set the color of the control.");
- RNA_def_string(ot->srna, "fill_color_path", "", 0, "Fill Color Path", "Path of property used to set the fill color of the control.");
- RNA_def_string(ot->srna, "zoom_path", "", 0, "Zoom Path", "Path of property used to set the zoom level for the control.");
- RNA_def_string(ot->srna, "image_id", "", 0, "Image ID", "Path of ID that is used to generate an image for the control.");
+ RNA_def_string(ot->srna, "data_path", "", 0, "Data Path", "Path of property to be set by the radial control");
+ RNA_def_string(ot->srna, "rotation_path", "", 0, "Rotation Path", "Path of property used to rotate the texture display");
+ RNA_def_string(ot->srna, "color_path", "", 0, "Color Path", "Path of property used to set the color of the control");
+ RNA_def_string(ot->srna, "fill_color_path", "", 0, "Fill Color Path", "Path of property used to set the fill color of the control");
+ RNA_def_string(ot->srna, "zoom_path", "", 0, "Zoom Path", "Path of property used to set the zoom level for the control");
+ RNA_def_string(ot->srna, "image_id", "", 0, "Image ID", "Path of ID that is used to generate an image for the control");
}
/* ************************** timer for testing ***************** */
diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c
index d9ca275c819..405960d0795 100644
--- a/source/blender/windowmanager/intern/wm_window.c
+++ b/source/blender/windowmanager/intern/wm_window.c
@@ -111,14 +111,12 @@ static void wm_window_check_position(rcti *rect)
#endif
if(rect->xmin < 0) {
- d= rect->xmin;
- rect->xmax -= d;
- rect->xmin -= d;
+ rect->xmax -= rect->xmin;
+ rect->xmin = 0;
}
if(rect->ymin < 0) {
- d= rect->ymin;
- rect->ymax -= d;
- rect->ymin -= d;
+ rect->ymax -= rect->ymin;
+ rect->ymin = 0;
}
if(rect->xmax > width) {
d= rect->xmax - width;
diff --git a/source/blenderplayer/bad_level_call_stubs/stubs.c b/source/blenderplayer/bad_level_call_stubs/stubs.c
index a2e59adf94b..2944a3cef69 100644
--- a/source/blenderplayer/bad_level_call_stubs/stubs.c
+++ b/source/blenderplayer/bad_level_call_stubs/stubs.c
@@ -343,6 +343,7 @@ void uiItemS(struct uiLayout *layout){}
void uiItemFullR(struct uiLayout *layout, struct PointerRNA *ptr, struct PropertyRNA *prop, int index, int value, int flag, char *name, int icon){}
void uiLayoutSetContextPointer(struct uiLayout *layout, char *name, struct PointerRNA *ptr){}
char *uiLayoutIntrospect(struct uiLayout *layout){return (char *)NULL;}
+void UI_reinit_font() {}
/* rna template */
void uiTemplateAnyID(struct uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, char *propname, char *text){}
diff --git a/source/creator/creator.c b/source/creator/creator.c
index 91ac2464209..42e70c34b8b 100644
--- a/source/creator/creator.c
+++ b/source/creator/creator.c
@@ -46,12 +46,6 @@
#include <stddef.h>
#include <string.h>
-/* for setuid / getuid */
-#ifdef __sgi
-#include <sys/types.h>
-#include <unistd.h>
-#endif
-
/* This little block needed for linking to Blender... */
#include "MEM_guardedalloc.h"
@@ -158,7 +152,7 @@ char btempdir[FILE_MAX];
static void setCallbacks(void);
/* set breakpoints here when running in debug mode, useful to catch floating point errors */
-#if defined(__sgi) || defined(__linux__) || defined(_WIN32) || defined(OSX_SSE_FPE)
+#if defined(__linux__) || defined(_WIN32) || defined(OSX_SSE_FPE)
static void fpe_handler(int UNUSED(sig))
{
// printf("SIGFPE trapped\n");
@@ -367,7 +361,7 @@ static int debug_mode(int UNUSED(argc), const char **UNUSED(argv), void *data)
static int set_fpe(int UNUSED(argc), const char **UNUSED(argv), void *UNUSED(data))
{
-#if defined(__sgi) || defined(__linux__) || defined(_WIN32) || defined(OSX_SSE_FPE)
+#if defined(__linux__) || defined(_WIN32) || defined(OSX_SSE_FPE)
/* zealous but makes float issues a heck of a lot easier to find!
* set breakpoints on fpe_handler */
signal(SIGFPE, fpe_handler);
@@ -1195,10 +1189,6 @@ int main(int argc, const char **argv)
BLI_argsParse(ba, 1, NULL, NULL);
-#ifdef __sgi
- setuid(getuid()); /* end superuser */
-#endif
-
#if defined(WITH_PYTHON_MODULE) || defined(WITH_HEADLESS)
G.background= 1; /* python module mode ALWAYS runs in background mode (for now) */
#else
diff --git a/source/gameengine/Converter/BL_ShapeActionActuator.cpp b/source/gameengine/Converter/BL_ShapeActionActuator.cpp
index ac377cdb7ca..c81ff107a98 100644
--- a/source/gameengine/Converter/BL_ShapeActionActuator.cpp
+++ b/source/gameengine/Converter/BL_ShapeActionActuator.cpp
@@ -32,11 +32,7 @@
*/
-#if defined (__sgi)
-#include <math.h>
-#else
#include <cmath>
-#endif
#include "SCA_LogicManager.h"
#include "BL_ShapeActionActuator.h"
diff --git a/source/gameengine/Ketsji/KX_IpoActuator.cpp b/source/gameengine/Ketsji/KX_IpoActuator.cpp
index aed6c666404..cc5a8ecc727 100644
--- a/source/gameengine/Ketsji/KX_IpoActuator.cpp
+++ b/source/gameengine/Ketsji/KX_IpoActuator.cpp
@@ -33,12 +33,7 @@
* \ingroup ketsji
*/
-
-#if defined (__sgi)
-#include <math.h>
-#else
#include <cmath>
-#endif
#include "KX_IpoActuator.h"
#include "KX_GameObject.h"
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
index d9039a2a68d..d99a23c28b5 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
@@ -829,7 +829,7 @@ static int CheckTexfaceDM(void *mcol, int index)
}
*/
-static int CheckTexDM(MTFace *tface, MCol *mcol, int matnr)
+static int CheckTexDM(MTFace *tface, int has_mcol, int matnr)
{
// index is the original face index, retrieve the polygon
@@ -844,7 +844,7 @@ static int CheckTexDM(MTFace *tface, MCol *mcol, int matnr)
// don't use mcol
return 2;
}
- if (!mcol) {
+ if (!has_mcol) {
// we have to set the color from the material
unsigned char rgba[4];
current_polymat->GetMaterialRGBAColor(rgba);