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:
Diffstat (limited to 'release/scripts')
m---------release/scripts/addons0
m---------release/scripts/addons_contrib0
-rw-r--r--release/scripts/freestyle/style_modules/parameter_editor.py9
-rw-r--r--release/scripts/modules/addon_utils.py4
-rw-r--r--release/scripts/modules/animsys_refactor.py668
-rw-r--r--release/scripts/modules/bl_i18n_utils/bl_extract_messages.py4
-rwxr-xr-xrelease/scripts/modules/bl_i18n_utils/merge_po.py2
-rw-r--r--release/scripts/modules/bl_i18n_utils/settings.py12
-rw-r--r--release/scripts/modules/bl_i18n_utils/utils.py13
-rwxr-xr-xrelease/scripts/modules/bl_i18n_utils/utils_rtl.py2
-rwxr-xr-xrelease/scripts/modules/blend_render_info.py2
-rw-r--r--release/scripts/modules/bpy/path.py2
-rw-r--r--release/scripts/modules/bpy/utils.py2
-rw-r--r--release/scripts/modules/bpy_extras/keyconfig_utils.py107
-rw-r--r--release/scripts/modules/bpy_extras/object_utils.py4
-rw-r--r--release/scripts/modules/rna_info.py1
-rw-r--r--release/scripts/modules/sys_info.py15
-rw-r--r--release/scripts/presets/keyconfig/3dsmax.py6
-rw-r--r--release/scripts/presets/keyconfig/maya.py12
-rw-r--r--release/scripts/startup/bl_operators/anim.py12
-rw-r--r--release/scripts/startup/bl_operators/node.py2
-rw-r--r--release/scripts/startup/bl_operators/presets.py28
-rw-r--r--release/scripts/startup/bl_operators/screen_play_rendered_anim.py10
-rw-r--r--release/scripts/startup/bl_operators/view3d.py46
-rw-r--r--release/scripts/startup/bl_operators/wm.py8
-rw-r--r--release/scripts/startup/bl_ui/properties_data_armature.py6
-rw-r--r--release/scripts/startup/bl_ui/properties_data_curve.py4
-rw-r--r--release/scripts/startup/bl_ui/properties_data_mesh.py16
-rw-r--r--release/scripts/startup/bl_ui/properties_data_modifier.py9
-rw-r--r--release/scripts/startup/bl_ui/properties_freestyle.py2
-rw-r--r--release/scripts/startup/bl_ui/properties_mask_common.py2
-rw-r--r--release/scripts/startup/bl_ui/properties_material.py2
-rw-r--r--release/scripts/startup/bl_ui/properties_object.py2
-rw-r--r--release/scripts/startup/bl_ui/properties_particle.py62
-rw-r--r--release/scripts/startup/bl_ui/properties_physics_common.py2
-rw-r--r--release/scripts/startup/bl_ui/properties_physics_dynamicpaint.py2
-rw-r--r--release/scripts/startup/bl_ui/properties_render.py18
-rw-r--r--release/scripts/startup/bl_ui/properties_render_layer.py4
-rw-r--r--release/scripts/startup/bl_ui/properties_scene.py6
-rw-r--r--release/scripts/startup/bl_ui/properties_world.py28
-rw-r--r--release/scripts/startup/bl_ui/space_clip.py14
-rw-r--r--release/scripts/startup/bl_ui/space_graph.py5
-rw-r--r--release/scripts/startup/bl_ui/space_image.py3
-rw-r--r--release/scripts/startup/bl_ui/space_info.py163
-rw-r--r--release/scripts/startup/bl_ui/space_node.py6
-rw-r--r--release/scripts/startup/bl_ui/space_sequencer.py4
-rw-r--r--release/scripts/startup/bl_ui/space_text.py2
-rw-r--r--release/scripts/startup/bl_ui/space_time.py9
-rw-r--r--release/scripts/startup/bl_ui/space_userpref.py12
-rw-r--r--release/scripts/startup/bl_ui/space_view3d.py186
-rw-r--r--release/scripts/startup/bl_ui/space_view3d_toolbar.py10
-rw-r--r--release/scripts/startup/nodeitems_builtins.py2
-rw-r--r--release/scripts/templates_py/addon_add_object.py1
-rw-r--r--release/scripts/templates_py/custom_nodes.py5
-rw-r--r--release/scripts/templates_py/operator_mesh_uv.py (renamed from release/scripts/templates_py/operator_uv.py)0
-rw-r--r--release/scripts/templates_py/operator_modal_timer.py11
56 files changed, 488 insertions, 1081 deletions
diff --git a/release/scripts/addons b/release/scripts/addons
new file mode 160000
+Subproject 4d8cb6c294727ff10afeb548759f629b0c2169d
diff --git a/release/scripts/addons_contrib b/release/scripts/addons_contrib
new file mode 160000
+Subproject 4fe6a9e046f9578a0dadb1186269ac5e406a8c1
diff --git a/release/scripts/freestyle/style_modules/parameter_editor.py b/release/scripts/freestyle/style_modules/parameter_editor.py
index dd6206fff99..83bd8dbda5e 100644
--- a/release/scripts/freestyle/style_modules/parameter_editor.py
+++ b/release/scripts/freestyle/style_modules/parameter_editor.py
@@ -32,7 +32,7 @@ from freestyle import BackboneStretcherShader, BezierCurveShader, BinaryPredicat
FalseBP1D, FalseUP1D, GuidingLinesShader, Interface0DIterator, Nature, Noise, Normal2DF0D, Operators, \
PolygonalizationShader, QuantitativeInvisibilityF1D, QuantitativeInvisibilityUP1D, SamplingShader, \
SpatialNoiseShader, StrokeAttribute, StrokeShader, TipRemoverShader, TrueBP1D, TrueUP1D, UnaryPredicate0D, \
- UnaryPredicate1D, VertexOrientation2DF0D, WithinImageBoundaryUP1D, ContextFunctions
+ UnaryPredicate1D, VertexOrientation2DF0D, WithinImageBoundaryUP1D, ContextFunctions, TVertex
from Functions0D import CurveMaterialF0D
from PredicatesU1D import pyNatureUP1D
from logical_operators import AndUP1D, NotUP1D, OrUP1D
@@ -1085,6 +1085,8 @@ def iter_three_segments(stroke):
it3.increment()
it4.increment()
+def is_tvertex(svertex):
+ return type(svertex.viewvertex) is TVertex
class StrokeCleaner(StrokeShader):
def shade(self, stroke):
@@ -1092,7 +1094,10 @@ class StrokeCleaner(StrokeShader):
seg1 = sv2.point - sv1.point
seg2 = sv3.point - sv2.point
seg3 = sv4.point - sv3.point
- if seg1.dot(seg2) < 0.0 and seg2.dot(seg3) < 0.0:
+ if not ((is_tvertex(sv2.first_svertex) and is_tvertex(sv2.second_svertex)) or
+ (is_tvertex(sv3.first_svertex) and is_tvertex(sv3.second_svertex))):
+ continue
+ if seg1.dot(seg2) < 0.0 and seg2.dot(seg3) < 0.0 and seg2.length < 0.01:
#print(sv2.first_svertex.viewvertex)
#print(sv2.second_svertex.viewvertex)
#print(sv3.first_svertex.viewvertex)
diff --git a/release/scripts/modules/addon_utils.py b/release/scripts/modules/addon_utils.py
index 2ac7d4c85aa..e76bcc02751 100644
--- a/release/scripts/modules/addon_utils.py
+++ b/release/scripts/modules/addon_utils.py
@@ -35,6 +35,7 @@ error_duplicates = False
error_encoding = False
addons_fake_modules = {}
+
def paths():
# RELEASE SCRIPTS: official scripts distributed in Blender releases
addon_paths = _bpy.utils.script_paths("addons")
@@ -128,7 +129,7 @@ def modules_refresh(module_cache=addons_fake_modules):
mod.__file__ = mod_path
mod.__time__ = os.path.getmtime(mod_path)
except:
- print("AST error in module %s" % mod_name)
+ print("AST error parsing bl_info for %s" % mod_name)
import traceback
traceback.print_exc()
raise
@@ -408,7 +409,6 @@ def module_bl_info(mod, info_basis={"name": "",
"location": "",
"description": "",
"wiki_url": "",
- "tracker_url": "",
"support": 'COMMUNITY',
"category": "",
"warning": "",
diff --git a/release/scripts/modules/animsys_refactor.py b/release/scripts/modules/animsys_refactor.py
index fd6087b38e6..9730a05c2d2 100644
--- a/release/scripts/modules/animsys_refactor.py
+++ b/release/scripts/modules/animsys_refactor.py
@@ -22,7 +22,7 @@
This module has utility functions for renaming
rna values in fcurves and drivers.
-The main function to use is: update_data_paths(...)
+Currently unused, but might become useful later again.
"""
IS_TESTING = False
@@ -216,672 +216,6 @@ 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"),
- ("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/bl_i18n_utils/bl_extract_messages.py b/release/scripts/modules/bl_i18n_utils/bl_extract_messages.py
index e9ed9a8de5b..429fea60d7a 100644
--- a/release/scripts/modules/bl_i18n_utils/bl_extract_messages.py
+++ b/release/scripts/modules/bl_i18n_utils/bl_extract_messages.py
@@ -791,10 +791,10 @@ def dump_src_messages(msgs, reports, settings):
##### Main functions! #####
def dump_messages(do_messages, do_checks, settings):
bl_ver = "Blender " + bpy.app.version_string
- bl_rev = bpy.app.build_revision
+ bl_hash = bpy.app.build_hash or b'0000000000000000000000000000000000000000'
bl_date = datetime.datetime.strptime(bpy.app.build_date.decode() + "T" + bpy.app.build_time.decode(),
"%Y-%m-%dT%H:%M:%S")
- pot = utils.I18nMessages.gen_empty_messages(settings.PARSER_TEMPLATE_ID, bl_ver, bl_rev, bl_date, bl_date.year,
+ pot = utils.I18nMessages.gen_empty_messages(settings.PARSER_TEMPLATE_ID, bl_ver, bl_hash, bl_date, bl_date.year,
settings=settings)
msgs = pot.msgs
diff --git a/release/scripts/modules/bl_i18n_utils/merge_po.py b/release/scripts/modules/bl_i18n_utils/merge_po.py
index 610be0f15bd..d7dade22ffd 100755
--- a/release/scripts/modules/bl_i18n_utils/merge_po.py
+++ b/release/scripts/modules/bl_i18n_utils/merge_po.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
# ***** BEGIN GPL LICENSE BLOCK *****
#
diff --git a/release/scripts/modules/bl_i18n_utils/settings.py b/release/scripts/modules/bl_i18n_utils/settings.py
index e40b067f552..300cd7ae955 100644
--- a/release/scripts/modules/bl_i18n_utils/settings.py
+++ b/release/scripts/modules/bl_i18n_utils/settings.py
@@ -146,7 +146,7 @@ PO_MSGSTR = "msgstr "
PO_HEADER_KEY = (DEFAULT_CONTEXT, "")
PO_HEADER_MSGSTR = (
- "Project-Id-Version: {blender_ver} (r{blender_rev})\\n\n"
+ "Project-Id-Version: {blender_ver} ({blender_hash})\\n\n"
"Report-Msgid-Bugs-To: \\n\n"
"POT-Creation-Date: {time}\\n\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\n"
@@ -257,6 +257,16 @@ PYGETTEXT_KEYWORDS = (() +
for it in ("BLF_I18N_MSGID_MULTI_CTXT",))
)
+# Check printf mismatches between msgid and msgstr.
+CHECK_PRINTF_FORMAT = (
+ r"(?!<%)(?:%%)*%" # Begining, with handling for crazy things like '%%%%%s'
+ r"[-+#0]?" # Flags (note: do not add the ' ' (space) flag here, generates too much false positives!)
+ r"(?:\*|[0-9]+)?" # Width
+ r"(?:\.(?:\*|[0-9]+))?" # Precision
+ r"(?:[hljztL]|hh|ll)?" # Length
+ r"[tldiuoxXfFeEgGaAcspn]" # Specifiers (note we have Blender-specific %t and %l ones too)
+)
+
# Should po parser warn when finding a first letter not capitalized?
WARN_MSGID_NOT_CAPITALIZED = True
diff --git a/release/scripts/modules/bl_i18n_utils/utils.py b/release/scripts/modules/bl_i18n_utils/utils.py
index 1b6d65d89d0..53146fd0287 100644
--- a/release/scripts/modules/bl_i18n_utils/utils.py
+++ b/release/scripts/modules/bl_i18n_utils/utils.py
@@ -408,10 +408,10 @@ class I18nMessages:
return getattr(collections, 'OrderedDict', dict)()
@classmethod
- def gen_empty_messages(cls, uid, blender_ver, blender_rev, time, year, default_copyright=True, settings=settings):
+ def gen_empty_messages(cls, uid, blender_ver, blender_hash, time, year, default_copyright=True, settings=settings):
"""Generate an empty I18nMessages object (only header is present!)."""
fmt = settings.PO_HEADER_MSGSTR
- msgstr = fmt.format(blender_ver=str(blender_ver), blender_rev=int(blender_rev), time=str(time), uid=str(uid))
+ msgstr = fmt.format(blender_ver=str(blender_ver), blender_hash=blender_hash, time=str(time), uid=str(uid))
comment = ""
if default_copyright:
comment = settings.PO_HEADER_COMMENT_COPYRIGHT.format(year=str(year))
@@ -446,10 +446,10 @@ class I18nMessages:
"""
ret = []
default_context = self.settings.DEFAULT_CONTEXT
- _format = re.compile("%[.0-9]*[tslfd]").findall
+ _format = re.compile(self.settings.CHECK_PRINTF_FORMAT).findall
done_keys = set()
- tmp = {}
rem = set()
+ tmp = {}
for key, msg in self.msgs.items():
msgctxt, msgid, msgstr = msg.msgctxt, msg.msgid, msg.msgstr
real_key = (msgctxt or default_context, msgid)
@@ -462,9 +462,10 @@ class I18nMessages:
elif fix:
tmp[real_key] = msg
done_keys.add(key)
- if '%' in msgid and msgstr and len(_format(msgid)) != len(_format(msgstr)):
+ if '%' in msgid and msgstr and _format(msgid) != _format(msgstr):
if not msg.is_fuzzy:
- ret.append("Error! msg's format entities are not matched in msgid and msgstr ({})".format(real_key))
+ ret.append("Error! msg's format entities are not matched in msgid and msgstr ({} / \"{}\")"
+ "".format(real_key, msgstr))
if fix:
msg.msgstr = ""
for k in rem:
diff --git a/release/scripts/modules/bl_i18n_utils/utils_rtl.py b/release/scripts/modules/bl_i18n_utils/utils_rtl.py
index 0544f93a262..f08d7efdb8e 100755
--- a/release/scripts/modules/bl_i18n_utils/utils_rtl.py
+++ b/release/scripts/modules/bl_i18n_utils/utils_rtl.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
# ***** BEGIN GPL LICENSE BLOCK *****
#
diff --git a/release/scripts/modules/blend_render_info.py b/release/scripts/modules/blend_render_info.py
index d08b9e09dda..a62eaeea143 100755
--- a/release/scripts/modules/blend_render_info.py
+++ b/release/scripts/modules/blend_render_info.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python
# ##### BEGIN GPL LICENSE BLOCK #####
#
diff --git a/release/scripts/modules/bpy/path.py b/release/scripts/modules/bpy/path.py
index da1a52e560d..ccc9df93b0d 100644
--- a/release/scripts/modules/bpy/path.py
+++ b/release/scripts/modules/bpy/path.py
@@ -321,7 +321,7 @@ def reduce_dirs(dirs):
"""
dirs = list({_os.path.normpath(_os.path.abspath(d)) for d in dirs})
dirs.sort(key=lambda d: len(d))
- for i in range(len(dirs) -1, -1, -1):
+ for i in range(len(dirs) - 1, -1, -1):
for j in range(i):
print(i, j)
if len(dirs[i]) == len(dirs[j]):
diff --git a/release/scripts/modules/bpy/utils.py b/release/scripts/modules/bpy/utils.py
index ab35d774719..608cd920865 100644
--- a/release/scripts/modules/bpy/utils.py
+++ b/release/scripts/modules/bpy/utils.py
@@ -677,7 +677,7 @@ def make_rna_paths(struct_name, prop_name, enum_name):
if prop_name:
src = src_rna = ".".join((struct_name, prop_name))
if enum_name:
- src = src_enum = "{}:'{}'".format(src_rna, enum_name)
+ src = src_enum = "%s:'%s'" % (src_rna, enum_name)
else:
src = src_rna = struct_name
return src, src_rna, src_enum
diff --git a/release/scripts/modules/bpy_extras/keyconfig_utils.py b/release/scripts/modules/bpy_extras/keyconfig_utils.py
index 1baab5654c6..4b673b2e0de 100644
--- a/release/scripts/modules/bpy_extras/keyconfig_utils.py
+++ b/release/scripts/modules/bpy_extras/keyconfig_utils.py
@@ -151,7 +151,7 @@ def keyconfig_merge(kc1, kc2):
return merged_keymaps
-def _export_properties(prefix, properties, lines=None):
+def _export_properties(prefix, properties, kmi_id, lines=None):
from bpy.types import OperatorProperties
if lines is None:
@@ -171,20 +171,58 @@ def _export_properties(prefix, properties, lines=None):
if pname != "rna_type":
value = getattr(properties, pname)
if isinstance(value, OperatorProperties):
- _export_properties(prefix + "." + pname, value, lines)
+ _export_properties(prefix + "." + pname, value, kmi_id, lines)
elif properties.is_property_set(pname):
value = string_value(value)
if value != "":
- lines.append("%s.%s = %s\n" % (prefix, pname, value))
+ lines.append("set_kmi_prop(%s, '%s', %s, '%s')\n" % (prefix, pname, value, kmi_id))
return lines
+def _kmistr(kmi, is_modal):
+ if is_modal:
+ kmi_id = kmi.propvalue
+ kmi_newfunc = 'new_modal'
+ else:
+ kmi_id = kmi.idname
+ kmi_newfunc = 'new'
+ s = ["kmi = km.keymap_items.%s(\'%s\', \'%s\', \'%s\'" % (kmi_newfunc, kmi_id, 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, kmi_id, s)
+
+ return "".join(s)
+
+
def keyconfig_export(wm, kc, filepath):
f = open(filepath, "w")
f.write("import bpy\n")
f.write("import os\n\n")
+ f.write("def set_kmi_prop(kmiprops, prop, value, kmiid):\n"
+ " if hasattr(kmiprops, prop):\n"
+ " setattr(kmiprops, prop, value)\n"
+ " else:\n"
+ " print(\"Warning: property '%s' not found in keymap item '%s'\" % (prop, kmiid))\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
@@ -216,30 +254,7 @@ def keyconfig_export(wm, kc, filepath):
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(_kmistr(kmi, km.is_modal))
f.write("\n")
f.close()
@@ -250,50 +265,22 @@ def keyconfig_test(kc):
def testEntry(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()
+ is_modal = km.is_modal
if src:
for item in km.keymap_items:
if src.compare(item):
print("===========")
print(parent.name)
- print(kmistr(src))
+ print(_kmistr(src, is_modal).strip())
print(km.name)
- print(kmistr(item))
+ print(_kmistr(item, is_modal).strip())
result = True
for child in children:
@@ -312,8 +299,8 @@ def keyconfig_test(kc):
if src.compare(item):
print("===========")
print(km.name)
- print(kmistr(src))
- print(kmistr(item))
+ print(_kmistr(src, is_modal).strip())
+ print(_kmistr(item, is_modal).strip())
result = True
for child in children:
diff --git a/release/scripts/modules/bpy_extras/object_utils.py b/release/scripts/modules/bpy_extras/object_utils.py
index 7ce5aff581a..a14f0128444 100644
--- a/release/scripts/modules/bpy_extras/object_utils.py
+++ b/release/scripts/modules/bpy_extras/object_utils.py
@@ -201,6 +201,10 @@ class AddObjectHelper:
subtype='EULER',
)
+ @classmethod
+ def poll(self, context):
+ return context.scene.library is None
+
def object_add_grid_scale(context):
"""
diff --git a/release/scripts/modules/rna_info.py b/release/scripts/modules/rna_info.py
index 60b11884e30..3643ad89ea6 100644
--- a/release/scripts/modules/rna_info.py
+++ b/release/scripts/modules/rna_info.py
@@ -98,6 +98,7 @@ class InfoStructRNA:
)
global_lookup = {}
+
def __init__(self, rna_type):
self.bl_rna = rna_type
diff --git a/release/scripts/modules/sys_info.py b/release/scripts/modules/sys_info.py
index ea75bfde809..83f2647c5b2 100644
--- a/release/scripts/modules/sys_info.py
+++ b/release/scripts/modules/sys_info.py
@@ -67,7 +67,20 @@ def write_sysinfo(op):
# build info
output.write("\nBlender:\n")
output.write(lilies)
- output.write("version %s, revision %r. %r\n" % (bpy.app.version_string, bpy.app.build_revision, bpy.app.build_type))
+ if bpy.app.build_branch and bpy.app.build_branch != "Unknown":
+ output.write("version %s, branch %r, commit date %r %r, hash %r, %r\n" %
+ (bpy.app.version_string,
+ bpy.app.build_branch,
+ bpy.app.build_commit_date,
+ bpy.app.build_commit_time,
+ bpy.app.build_hash,
+ bpy.app.build_type))
+ else:
+ output.write("version %s, revision %r. %r\n" %
+ (bpy.app.version_string,
+ bpy.app.build_change,
+ bpy.app.build_type))
+
output.write("build date: %r, %r\n" % (bpy.app.build_date, bpy.app.build_time))
output.write("platform: %r\n" % (bpy.app.build_platform))
output.write("binary path: %r\n" % (bpy.app.binary_path))
diff --git a/release/scripts/presets/keyconfig/3dsmax.py b/release/scripts/presets/keyconfig/3dsmax.py
index 42a928cf80f..f484ecd44b5 100644
--- a/release/scripts/presets/keyconfig/3dsmax.py
+++ b/release/scripts/presets/keyconfig/3dsmax.py
@@ -255,7 +255,8 @@ kmi.properties.direction = 'CHILD'
kmi.properties.extend = True
kmi = km.keymap_items.new('pose.select_linked', 'L', 'PRESS', alt=True)
kmi = km.keymap_items.new('pose.select_grouped', 'G', 'PRESS', shift=True)
-kmi = km.keymap_items.new('pose.select_flip_active', 'F', 'PRESS', shift=True)
+kmi = km.keymap_items.new('pose.select_mirror', 'F', 'PRESS', shift=True)
+kmi.properties.only_active = True
kmi = km.keymap_items.new('pose.constraint_add_with_targets', 'C', 'PRESS', shift=True, ctrl=True)
kmi = km.keymap_items.new('pose.constraints_clear', 'C', 'PRESS', ctrl=True, alt=True)
kmi = km.keymap_items.new('pose.ik_add', 'I', 'PRESS', shift=True)
@@ -686,7 +687,7 @@ kmi = km.keymap_items.new('transform.translate', 'W', 'PRESS', shift=True)
kmi = km.keymap_items.new('transform.translate', 'EVT_TWEAK_S', 'ANY')
kmi = km.keymap_items.new('transform.rotate', 'E', 'PRESS', shift=True)
kmi = km.keymap_items.new('transform.resize', 'R', 'PRESS', shift=True)
-kmi = km.keymap_items.new('transform.warp', 'Q', 'PRESS', shift=True)
+kmi = km.keymap_items.new('transform.bend', 'Q', 'PRESS', shift=True)
kmi = km.keymap_items.new('transform.tosphere', 'S', 'PRESS', shift=True, alt=True)
kmi = km.keymap_items.new('transform.shear', 'S', 'PRESS', shift=True, ctrl=True, alt=True)
kmi = km.keymap_items.new('transform.select_orientation', 'SPACE', 'PRESS', alt=True)
@@ -1062,7 +1063,6 @@ kmi = km.keymap_items.new('node.hide_toggle', 'H', 'PRESS')
kmi = km.keymap_items.new('node.mute_toggle', 'M', 'PRESS')
kmi = km.keymap_items.new('node.preview_toggle', 'H', 'PRESS', shift=True)
kmi = km.keymap_items.new('node.hide_socket_toggle', 'H', 'PRESS', ctrl=True)
-kmi = km.keymap_items.new('node.show_cyclic_dependencies', 'C', 'PRESS')
kmi = km.keymap_items.new('node.view_all', 'HOME', 'PRESS')
kmi = km.keymap_items.new('node.view_selected', 'NUMPAD_PERIOD', 'PRESS')
kmi = km.keymap_items.new('node.select_border', 'B', 'PRESS')
diff --git a/release/scripts/presets/keyconfig/maya.py b/release/scripts/presets/keyconfig/maya.py
index 21fd757c4e5..1b8648731aa 100644
--- a/release/scripts/presets/keyconfig/maya.py
+++ b/release/scripts/presets/keyconfig/maya.py
@@ -315,7 +315,8 @@ kmi.properties.direction = 'CHILD'
kmi.properties.extend = True
kmi = km.keymap_items.new('pose.select_linked', 'L', 'PRESS')
kmi = km.keymap_items.new('pose.select_grouped', 'G', 'PRESS', shift=True)
-kmi = km.keymap_items.new('pose.select_flip_active', 'F', 'PRESS', shift=True)
+kmi = km.keymap_items.new('pose.select_mirror', 'F', 'PRESS', shift=True)
+kmi.properties.only_active = True
kmi = km.keymap_items.new('pose.constraint_add_with_targets', 'C', 'PRESS', shift=True, ctrl=True)
kmi = km.keymap_items.new('pose.constraints_clear', 'C', 'PRESS', ctrl=True, alt=True)
kmi = km.keymap_items.new('pose.ik_add', 'I', 'PRESS', shift=True)
@@ -697,8 +698,10 @@ km = kc.keymaps.new('Knife Tool Modal Map', space_type='EMPTY', region_type='WIN
kmi = km.keymap_items.new_modal('CANCEL', 'ESC', 'ANY', any=True)
kmi = km.keymap_items.new_modal('PANNING', 'LEFTMOUSE', 'ANY', alt=True)
+kmi = km.keymap_items.new_modal('PANNING', 'MIDDLEMOUSE', 'ANY', alt=True)
+kmi = km.keymap_items.new_modal('PANNING', 'RIGHTMOUSE', 'ANY', alt=True)
kmi = km.keymap_items.new_modal('ADD_CUT', 'LEFTMOUSE', 'PRESS', any=True)
-kmi = km.keymap_items.new_modal('CANCEL', 'RIGHTMOUSE', 'ANY', any=True)
+kmi = km.keymap_items.new_modal('CANCEL', 'RIGHTMOUSE', 'ANY')
kmi = km.keymap_items.new_modal('CONFIRM', 'RET', 'PRESS', any=True)
kmi = km.keymap_items.new_modal('CONFIRM', 'NUMPAD_ENTER', 'PRESS', any=True)
kmi = km.keymap_items.new_modal('CONFIRM', 'SPACE', 'PRESS', any=True)
@@ -1474,7 +1477,6 @@ kmi = km.keymap_items.new('node.hide_toggle', 'H', 'PRESS', ctrl=True)
kmi = km.keymap_items.new('node.mute_toggle', 'M', 'PRESS')
kmi = km.keymap_items.new('node.preview_toggle', 'H', 'PRESS', shift=True)
kmi = km.keymap_items.new('node.hide_socket_toggle', 'H', 'PRESS', shift=True, ctrl=True)
-kmi = km.keymap_items.new('node.show_cyclic_dependencies', 'C', 'PRESS')
kmi = km.keymap_items.new('node.view_all', 'A', 'PRESS')
kmi = km.keymap_items.new('node.delete', 'BACK_SPACE', 'PRESS')
kmi = km.keymap_items.new('node.delete', 'DEL', 'PRESS')
@@ -1587,8 +1589,11 @@ kmi = km.keymap_items.new('action.view_all', 'A', 'PRESS')
kmi = km.keymap_items.new('action.view_selected', 'F', 'PRESS')
kmi = km.keymap_items.new('anim.channels_editable_toggle', 'TAB', 'PRESS')
kmi = km.keymap_items.new('transform.transform', 'W', 'PRESS')
+kmi.properties.mode = 'TIME_TRANSLATE'
kmi = km.keymap_items.new('transform.transform', 'EVT_TWEAK_M', 'ANY')
+kmi.properties.mode = 'TIME_TRANSLATE'
kmi = km.keymap_items.new('transform.transform', 'S', 'PRESS')
+kmi.properties.mode = 'TIME_SCALE'
kmi = km.keymap_items.new('transform.transform', 'T', 'PRESS', shift=True)
kmi = km.keymap_items.new('marker.add', 'M', 'PRESS')
kmi = km.keymap_items.new('marker.rename', 'M', 'PRESS', ctrl=True)
@@ -1662,6 +1667,7 @@ kmi = km.keymap_items.new('nla.fmodifier_add', 'M', 'PRESS', shift=True, ctrl=Tr
kmi = km.keymap_items.new('transform.transform', 'W', 'PRESS')
kmi = km.keymap_items.new('transform.transform', 'EVT_TWEAK_M', 'ANY')
kmi = km.keymap_items.new('transform.transform', 'R', 'PRESS')
+kmi.properties.mode = 'TIME_SCALE'
kmi = km.keymap_items.new('marker.add', 'M', 'PRESS')
kmi = km.keymap_items.new('marker.rename', 'M', 'PRESS', ctrl=True)
kmi = km.keymap_items.new('nla.select_all_toggle', 'LEFTMOUSE', 'DOUBLE_CLICK')
diff --git a/release/scripts/startup/bl_operators/anim.py b/release/scripts/startup/bl_operators/anim.py
index 6193611504e..41f39b90464 100644
--- a/release/scripts/startup/bl_operators/anim.py
+++ b/release/scripts/startup/bl_operators/anim.py
@@ -281,15 +281,3 @@ class ClearUselessActions(Operator):
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/node.py b/release/scripts/startup/bl_operators/node.py
index 77978c71ed9..0814d0144ab 100644
--- a/release/scripts/startup/bl_operators/node.py
+++ b/release/scripts/startup/bl_operators/node.py
@@ -222,7 +222,7 @@ class NODE_OT_add_search(NodeAddOperator, Operator):
self.create_node(context, item.nodetype)
if self.use_transform:
- bpy.ops.transform.translate('INVOKE_DEFAULT')
+ bpy.ops.transform.translate('INVOKE_DEFAULT', remove_on_cancel=True)
return {'FINISHED'}
else:
diff --git a/release/scripts/startup/bl_operators/presets.py b/release/scripts/startup/bl_operators/presets.py
index 05dfd882180..ae6ec3946f1 100644
--- a/release/scripts/startup/bl_operators/presets.py
+++ b/release/scripts/startup/bl_operators/presets.py
@@ -221,7 +221,7 @@ class ExecutePreset(Operator):
class AddPresetRender(AddPresetBase, Operator):
- """Add a Render Preset"""
+ """Add or remove a Render Preset"""
bl_idname = "render.preset_add"
bl_label = "Add Render Preset"
preset_menu = "RENDER_MT_presets"
@@ -247,7 +247,7 @@ class AddPresetRender(AddPresetBase, Operator):
class AddPresetCamera(AddPresetBase, Operator):
- """Add a Camera Preset"""
+ """Add or remove a Camera Preset"""
bl_idname = "camera.preset_add"
bl_label = "Add Camera Preset"
preset_menu = "CAMERA_MT_presets"
@@ -266,7 +266,7 @@ class AddPresetCamera(AddPresetBase, Operator):
class AddPresetSSS(AddPresetBase, Operator):
- """Add a Subsurface Scattering Preset"""
+ """Add or remove a Subsurface Scattering Preset"""
bl_idname = "material.sss_preset_add"
bl_label = "Add SSS Preset"
preset_menu = "MATERIAL_MT_sss_presets"
@@ -294,7 +294,7 @@ class AddPresetSSS(AddPresetBase, Operator):
class AddPresetCloth(AddPresetBase, Operator):
- """Add a Cloth Preset"""
+ """Add or remove a Cloth Preset"""
bl_idname = "cloth.preset_add"
bl_label = "Add Cloth Preset"
preset_menu = "CLOTH_MT_presets"
@@ -316,7 +316,7 @@ class AddPresetCloth(AddPresetBase, Operator):
class AddPresetFluid(AddPresetBase, Operator):
- """Add a Fluid Preset"""
+ """Add or remove a Fluid Preset"""
bl_idname = "fluid.preset_add"
bl_label = "Add Fluid Preset"
preset_menu = "FLUID_MT_presets"
@@ -334,7 +334,7 @@ class AddPresetFluid(AddPresetBase, Operator):
class AddPresetSunSky(AddPresetBase, Operator):
- """Add a Sky & Atmosphere Preset"""
+ """Add or remove a Sky & Atmosphere Preset"""
bl_idname = "lamp.sunsky_preset_add"
bl_label = "Add Sunsky Preset"
preset_menu = "LAMP_MT_sunsky_presets"
@@ -363,7 +363,7 @@ class AddPresetSunSky(AddPresetBase, Operator):
class AddPresetInteraction(AddPresetBase, Operator):
- """Add an Application Interaction Preset"""
+ """Add or remove an Application Interaction Preset"""
bl_idname = "wm.interaction_preset_add"
bl_label = "Add Interaction Preset"
preset_menu = "USERPREF_MT_interaction_presets"
@@ -389,7 +389,7 @@ class AddPresetInteraction(AddPresetBase, Operator):
class AddPresetTrackingCamera(AddPresetBase, Operator):
- """Add a Tracking Camera Intrinsics Preset"""
+ """Add or remove a Tracking Camera Intrinsics Preset"""
bl_idname = "clip.camera_preset_add"
bl_label = "Add Camera Preset"
preset_menu = "CLIP_MT_camera_presets"
@@ -412,7 +412,7 @@ class AddPresetTrackingCamera(AddPresetBase, Operator):
class AddPresetTrackingTrackColor(AddPresetBase, Operator):
- """Add a Clip Track Color Preset"""
+ """Add or remove a Clip Track Color Preset"""
bl_idname = "clip.track_color_preset_add"
bl_label = "Add Track Color Preset"
preset_menu = "CLIP_MT_track_color_presets"
@@ -430,7 +430,7 @@ class AddPresetTrackingTrackColor(AddPresetBase, Operator):
class AddPresetTrackingSettings(AddPresetBase, Operator):
- """Add a motion tracking settings preset"""
+ """Add or remove a motion tracking settings preset"""
bl_idname = "clip.tracking_settings_preset_add"
bl_label = "Add Tracking Settings Preset"
preset_menu = "CLIP_MT_tracking_settings_presets"
@@ -459,7 +459,7 @@ class AddPresetTrackingSettings(AddPresetBase, Operator):
class AddPresetNodeColor(AddPresetBase, Operator):
- """Add a Node Color Preset"""
+ """Add or remove a Node Color Preset"""
bl_idname = "node.node_color_preset_add"
bl_label = "Add Node Color Preset"
preset_menu = "NODE_MT_node_color_presets"
@@ -477,7 +477,7 @@ class AddPresetNodeColor(AddPresetBase, Operator):
class AddPresetInterfaceTheme(AddPresetBase, Operator):
- """Add a theme preset"""
+ """Add or remove a theme preset"""
bl_idname = "wm.interface_theme_preset_add"
bl_label = "Add Theme Preset"
preset_menu = "USERPREF_MT_interface_theme_presets"
@@ -485,7 +485,7 @@ class AddPresetInterfaceTheme(AddPresetBase, Operator):
class AddPresetKeyconfig(AddPresetBase, Operator):
- """Add a Key-config Preset"""
+ """Add or remove a Key-config Preset"""
bl_idname = "wm.keyconfig_preset_add"
bl_label = "Add Keyconfig Preset"
preset_menu = "USERPREF_MT_keyconfigs"
@@ -508,7 +508,7 @@ class AddPresetKeyconfig(AddPresetBase, Operator):
class AddPresetOperator(AddPresetBase, Operator):
- """Add an Operator Preset"""
+ """Add or remove an Operator Preset"""
bl_idname = "wm.operator_preset_add"
bl_label = "Operator Preset"
preset_menu = "WM_MT_operator_presets"
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 6d1f35fe937..04c28500089 100644
--- a/release/scripts/startup/bl_operators/screen_play_rendered_anim.py
+++ b/release/scripts/startup/bl_operators/screen_play_rendered_anim.py
@@ -115,11 +115,17 @@ class PlayRenderedAnim(Operator):
cmd = [player_path]
# extra options, fps controls etc.
+ if scene.use_preview_range:
+ frame_start = scene.frame_preview_start
+ frame_end = scene.frame_preview_end
+ else:
+ frame_start = scene.frame_start
+ frame_end = scene.frame_end
if preset in {'BLENDER24', 'INTERNAL'}:
opts = ["-a",
"-f", str(rd.fps), str(rd.fps_base),
- "-s", str(scene.frame_start),
- "-e", str(scene.frame_end),
+ "-s", str(frame_start),
+ "-e", str(frame_end),
"-j", str(scene.frame_step),
file]
cmd.extend(opts)
diff --git a/release/scripts/startup/bl_operators/view3d.py b/release/scripts/startup/bl_operators/view3d.py
index e0b5526e220..2ec095d2e7b 100644
--- a/release/scripts/startup/bl_operators/view3d.py
+++ b/release/scripts/startup/bl_operators/view3d.py
@@ -29,6 +29,11 @@ class VIEW3D_OT_edit_mesh_extrude_individual_move(Operator):
bl_label = "Extrude Individual and Move"
bl_idname = "view3d.edit_mesh_extrude_individual_move"
+ @classmethod
+ def poll(cls, context):
+ obj = context.active_object
+ return obj.mode == 'EDIT'
+
def execute(self, context):
mesh = context.object.data
select_mode = context.tool_settings.mesh_select_mode
@@ -62,7 +67,13 @@ class VIEW3D_OT_edit_mesh_extrude_move(Operator):
bl_label = "Extrude and Move on Normals"
bl_idname = "view3d.edit_mesh_extrude_move_normal"
- def execute(self, context):
+ @classmethod
+ def poll(cls, context):
+ obj = context.active_object
+ return obj.mode == 'EDIT'
+
+ @staticmethod
+ def extrude_region(context, use_vert_normals):
mesh = context.object.data
totface = mesh.total_face_sel
@@ -70,10 +81,15 @@ class VIEW3D_OT_edit_mesh_extrude_move(Operator):
#~ 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)})
+ if use_vert_normals:
+ bpy.ops.mesh.extrude_region_shrink_fatten('INVOKE_REGION_WIN',
+ TRANSFORM_OT_shrink_fatten={})
+ else:
+ 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={
@@ -88,6 +104,26 @@ class VIEW3D_OT_edit_mesh_extrude_move(Operator):
# and cause this one not to be freed. [#24671]
return {'FINISHED'}
+ def execute(self, context):
+ return VIEW3D_OT_edit_mesh_extrude_move.extrude_region(context, False)
+
+ def invoke(self, context, event):
+ return self.execute(context)
+
+
+class VIEW3D_OT_edit_mesh_extrude_shrink_fatten(Operator):
+ "Extrude and move along individual normals"
+ bl_label = "Extrude and Move on Individual Normals"
+ bl_idname = "view3d.edit_mesh_extrude_move_shrink_fatten"
+
+ @classmethod
+ def poll(cls, context):
+ obj = context.active_object
+ return obj.mode == 'EDIT'
+
+ def execute(self, context):
+ return VIEW3D_OT_edit_mesh_extrude_move.extrude_region(context, True)
+
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 5a249159d86..4b954e81ee1 100644
--- a/release/scripts/startup/bl_operators/wm.py
+++ b/release/scripts/startup/bl_operators/wm.py
@@ -1298,10 +1298,10 @@ class WM_OT_blenderplayer_start(Operator):
# handle some UI options as command line arguments
args.extend([
- "-g", "show_framerate=%d" % gs.show_framerate_profile,
- "-g", "show_profile=%d" % gs.show_framerate_profile,
- "-g", "show_properties=%d" % gs.show_debug_properties,
- "-g", "ignore_deprecation_warnings=%d" % (not gs.use_deprecation_warnings),
+ "-g", "show_framerate", "=", "%d" % gs.show_framerate_profile,
+ "-g", "show_profile", "=", "%d" % gs.show_framerate_profile,
+ "-g", "show_properties", "=", "%d" % gs.show_debug_properties,
+ "-g", "ignore_deprecation_warnings", "=", "%d" % (not gs.use_deprecation_warnings),
])
# finish the call with the path to the blend file
diff --git a/release/scripts/startup/bl_ui/properties_data_armature.py b/release/scripts/startup/bl_ui/properties_data_armature.py
index e01764a5496..a274453a472 100644
--- a/release/scripts/startup/bl_ui/properties_data_armature.py
+++ b/release/scripts/startup/bl_ui/properties_data_armature.py
@@ -121,9 +121,9 @@ class DATA_PT_bone_groups(ArmatureButtonsPanel, Panel):
row = layout.row()
- rows = 2
+ rows = 1
if group:
- rows = 5
+ rows = 4
row.template_list("UI_UL_list", "bone_groups", pose, "bone_groups", pose.bone_groups, "active_index", rows=rows)
col = row.column(align=True)
@@ -184,7 +184,7 @@ class DATA_PT_pose_library(ArmatureButtonsPanel, Panel):
# list of poses in pose library
row = layout.row()
row.template_list("UI_UL_list", "pose_markers", poselib, "pose_markers",
- poselib.pose_markers, "active_index", rows=5)
+ poselib.pose_markers, "active_index", rows=3)
# column of operators for active pose
# - goes beside list
diff --git a/release/scripts/startup/bl_ui/properties_data_curve.py b/release/scripts/startup/bl_ui/properties_data_curve.py
index 117a662cd07..2171ce67fd3 100644
--- a/release/scripts/startup/bl_ui/properties_data_curve.py
+++ b/release/scripts/startup/bl_ui/properties_data_curve.py
@@ -307,6 +307,10 @@ class DATA_PT_font(CurveButtonsPanel, Panel):
#layout.prop(text, "font")
+ row = layout.split(percentage=0.25)
+ row.label(text="Body Text:")
+ row.prop(text, "body", text="")
+
split = layout.split()
col = split.column()
diff --git a/release/scripts/startup/bl_ui/properties_data_mesh.py b/release/scripts/startup/bl_ui/properties_data_mesh.py
index a703222ecd0..f59d479c509 100644
--- a/release/scripts/startup/bl_ui/properties_data_mesh.py
+++ b/release/scripts/startup/bl_ui/properties_data_mesh.py
@@ -191,9 +191,9 @@ class DATA_PT_vertex_groups(MeshButtonsPanel, Panel):
ob = context.object
group = ob.vertex_groups.active
- rows = 2
+ rows = 1
if group:
- rows = 5
+ rows = 4
row = layout.row()
row.template_list("MESH_UL_vgroups", "", ob, "vertex_groups", ob.vertex_groups, "active_index", rows=rows)
@@ -250,9 +250,9 @@ class DATA_PT_shape_keys(MeshButtonsPanel, Panel):
row = layout.row()
- rows = 2
+ rows = 1
if kb:
- rows = 5
+ rows = 4
row.template_list("MESH_UL_shape_keys", "", key, "key_blocks", ob, "active_shape_key_index", rows=rows)
col = row.column()
@@ -329,17 +329,17 @@ class DATA_PT_uv_texture(MeshButtonsPanel, Panel):
layout = self.layout
me = context.mesh
+ lay = me.uv_textures.active
row = layout.row()
col = row.column()
- col.template_list("MESH_UL_uvmaps_vcols", "uvmaps", me, "uv_textures", me.uv_textures, "active_index", rows=2)
+ col.template_list("MESH_UL_uvmaps_vcols", "uvmaps", me, "uv_textures", me.uv_textures, "active_index", rows=1)
col = row.column(align=True)
col.operator("mesh.uv_texture_add", icon='ZOOMIN', text="")
col.operator("mesh.uv_texture_remove", icon='ZOOMOUT', text="")
- lay = me.uv_textures.active
if lay:
layout.prop(lay, "name")
@@ -352,17 +352,17 @@ class DATA_PT_vertex_colors(MeshButtonsPanel, Panel):
layout = self.layout
me = context.mesh
+ lay = me.vertex_colors.active
row = layout.row()
col = row.column()
- col.template_list("MESH_UL_uvmaps_vcols", "vcols", me, "vertex_colors", me.vertex_colors, "active_index", rows=2)
+ col.template_list("MESH_UL_uvmaps_vcols", "vcols", me, "vertex_colors", me.vertex_colors, "active_index", rows=1)
col = row.column(align=True)
col.operator("mesh.vertex_color_add", icon='ZOOMIN', text="")
col.operator("mesh.vertex_color_remove", icon='ZOOMOUT', text="")
- lay = me.vertex_colors.active
if lay:
layout.prop(lay, "name")
diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py
index 9bfc14f1f28..288330084b9 100644
--- a/release/scripts/startup/bl_ui/properties_data_modifier.py
+++ b/release/scripts/startup/bl_ui/properties_data_modifier.py
@@ -1099,7 +1099,14 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
col.prop(md, "use_z_symmetry")
def TRIANGULATE(self, layout, ob, md):
- layout.prop(md, "use_beauty")
+ row = layout.row()
+
+ col = row.column()
+ col.label(text="Quad Method:")
+ col.prop(md, "quad_method", text="")
+ col = row.column()
+ col.label(text="Ngon Method:")
+ col.prop(md, "ngon_method", text="")
def UV_WARP(self, layout, ob, md):
split = layout.split()
diff --git a/release/scripts/startup/bl_ui/properties_freestyle.py b/release/scripts/startup/bl_ui/properties_freestyle.py
index a96441a26e5..a57567ae79e 100644
--- a/release/scripts/startup/bl_ui/properties_freestyle.py
+++ b/release/scripts/startup/bl_ui/properties_freestyle.py
@@ -193,7 +193,7 @@ class RENDERLAYER_PT_freestyle_lineset(RenderLayerFreestyleEditorButtonsPanel, P
layout.active = rl.use_freestyle
row = layout.row()
- rows = 5 if lineset else 2
+ rows = 4 if lineset else 1
row.template_list("RENDERLAYER_UL_linesets", "", freestyle, "linesets", freestyle.linesets, "active_index", rows=rows)
sub = row.column(align=True)
diff --git a/release/scripts/startup/bl_ui/properties_mask_common.py b/release/scripts/startup/bl_ui/properties_mask_common.py
index 45f3471ad35..203e5078ee4 100644
--- a/release/scripts/startup/bl_ui/properties_mask_common.py
+++ b/release/scripts/startup/bl_ui/properties_mask_common.py
@@ -82,7 +82,7 @@ class MASK_PT_layers:
mask = sc.mask
active_layer = mask.layers.active
- rows = 5 if active_layer else 2
+ rows = 4 if active_layer else 1
row = layout.row()
row.template_list("MASK_UL_layers", "", mask, "layers",
diff --git a/release/scripts/startup/bl_ui/properties_material.py b/release/scripts/startup/bl_ui/properties_material.py
index bb0b137da0a..344074c5893 100644
--- a/release/scripts/startup/bl_ui/properties_material.py
+++ b/release/scripts/startup/bl_ui/properties_material.py
@@ -124,7 +124,7 @@ class MATERIAL_PT_context_material(MaterialButtonsPanel, Panel):
if ob:
row = layout.row()
- row.template_list("MATERIAL_UL_matslots", "", ob, "material_slots", ob, "active_material_index", rows=2)
+ row.template_list("MATERIAL_UL_matslots", "", ob, "material_slots", ob, "active_material_index", rows=1)
col = row.column(align=True)
col.operator("object.material_slot_add", icon='ZOOMIN', text="")
diff --git a/release/scripts/startup/bl_ui/properties_object.py b/release/scripts/startup/bl_ui/properties_object.py
index 6b317c49487..cbebdafbf2e 100644
--- a/release/scripts/startup/bl_ui/properties_object.py
+++ b/release/scripts/startup/bl_ui/properties_object.py
@@ -236,7 +236,7 @@ class OBJECT_PT_display(ObjectButtonsPanel, Panel):
col = split.column()
if obj_type not in {'CAMERA', 'EMPTY'}:
- col.label(text="Maximum draw type:")
+ col.label(text="Maximum Draw Type:")
col.prop(obj, "draw_type", text="")
col = split.column()
diff --git a/release/scripts/startup/bl_ui/properties_particle.py b/release/scripts/startup/bl_ui/properties_particle.py
index 0d526514b5c..f8a37e2768f 100644
--- a/release/scripts/startup/bl_ui/properties_particle.py
+++ b/release/scripts/startup/bl_ui/properties_particle.py
@@ -98,7 +98,7 @@ class PARTICLE_PT_context_particles(ParticleButtonsPanel, Panel):
row = layout.row()
row.template_list("UI_UL_list", "particle_systems", ob, "particle_systems",
- ob.particle_systems, "active_index", rows=2)
+ ob.particle_systems, "active_index", rows=1)
col = row.column(align=True)
col.operator("object.particle_system_add", icon='ZOOMIN', text="")
@@ -211,12 +211,12 @@ class PARTICLE_PT_emission(ParticleButtonsPanel, Panel):
row.active = part.distribution != 'GRID'
row.prop(part, "count")
- if part.type == 'HAIR' and not part.use_advanced_hair:
+ if part.type == 'HAIR':
row.prop(part, "hair_length")
-
- row = layout.row()
- row.prop(part, "use_modifier_stack")
- return
+ if not part.use_advanced_hair:
+ row = layout.row()
+ row.prop(part, "use_modifier_stack")
+ return
if part.type != 'HAIR':
split = layout.split()
@@ -642,7 +642,7 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, Panel):
layout.label(text="Fluid interaction:")
row = layout.row()
- row.template_list("UI_UL_list", "particle_targets", psys, "targets", psys, "active_particle_target_index")
+ row.template_list("UI_UL_list", "particle_targets", psys, "targets", psys, "active_particle_target_index", rows=4)
col = row.column()
sub = col.row()
@@ -730,7 +730,7 @@ class PARTICLE_PT_boidbrain(ParticleButtonsPanel, Panel):
row.label(text="")
row = layout.row()
- row.template_list("UI_UL_list", "particle_boids_rules", state, "rules", state, "active_boid_rule_index")
+ row.template_list("UI_UL_list", "particle_boids_rules", state, "rules", state, "active_boid_rule_index", rows=4)
col = row.column()
sub = col.row()
@@ -1214,28 +1214,34 @@ class PARTICLE_PT_vertexgroups(ParticleButtonsPanel, Panel):
ob = context.object
psys = context.particle_system
- split = layout.split(percentage=0.85)
+ col = layout.column()
+ row = col.row(align=True)
+ row.prop_search(psys, "vertex_group_density", ob, "vertex_groups", text="Density")
+ row.prop(psys, "invert_vertex_group_density", text="", toggle=True, icon='ARROW_LEFTRIGHT')
- col = split.column()
- col.label(text="Vertex Group:")
- col.prop_search(psys, "vertex_group_density", ob, "vertex_groups", text="Density")
- col.prop_search(psys, "vertex_group_length", ob, "vertex_groups", text="Length")
- col.prop_search(psys, "vertex_group_clump", ob, "vertex_groups", text="Clump")
- col.prop_search(psys, "vertex_group_kink", ob, "vertex_groups", text="Kink")
- col.prop_search(psys, "vertex_group_roughness_1", ob, "vertex_groups", text="Roughness 1")
- col.prop_search(psys, "vertex_group_roughness_2", ob, "vertex_groups", text="Roughness 2")
- col.prop_search(psys, "vertex_group_roughness_end", ob, "vertex_groups", text="Roughness End")
+ row = col.row(align=True)
+ row.prop_search(psys, "vertex_group_length", ob, "vertex_groups", text="Length")
+ row.prop(psys, "invert_vertex_group_length", text="", toggle=True, icon='ARROW_LEFTRIGHT')
- col = split.column()
- col.label(text="Negate:")
- col.alignment = 'RIGHT'
- col.prop(psys, "invert_vertex_group_density", text="")
- col.prop(psys, "invert_vertex_group_length", text="")
- col.prop(psys, "invert_vertex_group_clump", text="")
- col.prop(psys, "invert_vertex_group_kink", text="")
- col.prop(psys, "invert_vertex_group_roughness_1", text="")
- col.prop(psys, "invert_vertex_group_roughness_2", text="")
- col.prop(psys, "invert_vertex_group_roughness_end", text="")
+ row = col.row(align=True)
+ row.prop_search(psys, "vertex_group_clump", ob, "vertex_groups", text="Clump")
+ row.prop(psys, "invert_vertex_group_clump", text="", toggle=True, icon='ARROW_LEFTRIGHT')
+
+ row = col.row(align=True)
+ row.prop_search(psys, "vertex_group_kink", ob, "vertex_groups", text="Kink")
+ row.prop(psys, "invert_vertex_group_kink", text="", toggle=True, icon='ARROW_LEFTRIGHT')
+
+ row = col.row(align=True)
+ row.prop_search(psys, "vertex_group_roughness_1", ob, "vertex_groups", text="Roughness 1")
+ row.prop(psys, "invert_vertex_group_roughness_1", text="", toggle=True, icon='ARROW_LEFTRIGHT')
+
+ row = col.row(align=True)
+ row.prop_search(psys, "vertex_group_roughness_2", ob, "vertex_groups", text="Roughness 2")
+ row.prop(psys, "invert_vertex_group_roughness_2", text="", toggle=True, icon='ARROW_LEFTRIGHT')
+
+ row = col.row(align=True)
+ row.prop_search(psys, "vertex_group_roughness_end", ob, "vertex_groups", text="Roughness End")
+ row.prop(psys, "invert_vertex_group_roughness_end", text="", toggle=True, icon='ARROW_LEFTRIGHT')
# Commented out vertex groups don't work and are still waiting for better implementation
# row = layout.row()
diff --git a/release/scripts/startup/bl_ui/properties_physics_common.py b/release/scripts/startup/bl_ui/properties_physics_common.py
index 22c71c233c2..4b4c331d2d8 100644
--- a/release/scripts/startup/bl_ui/properties_physics_common.py
+++ b/release/scripts/startup/bl_ui/properties_physics_common.py
@@ -107,7 +107,7 @@ def point_cache_ui(self, context, cache, enabled, cachetype):
if not cachetype == 'RIGID_BODY':
row = layout.row()
row.template_list("UI_UL_list", "point_caches", cache, "point_caches",
- cache.point_caches, "active_index", rows=2)
+ cache.point_caches, "active_index", rows=1)
col = row.column(align=True)
col.operator("ptcache.add", icon='ZOOMIN', text="")
col.operator("ptcache.remove", icon='ZOOMOUT', text="")
diff --git a/release/scripts/startup/bl_ui/properties_physics_dynamicpaint.py b/release/scripts/startup/bl_ui/properties_physics_dynamicpaint.py
index 75c4caa57bd..f0c7a532414 100644
--- a/release/scripts/startup/bl_ui/properties_physics_dynamicpaint.py
+++ b/release/scripts/startup/bl_ui/properties_physics_dynamicpaint.py
@@ -80,7 +80,7 @@ class PHYSICS_PT_dynamic_paint(PhysicButtonsPanel, Panel):
row = layout.row()
row.template_list("PHYSICS_UL_dynapaint_surfaces", "", canvas, "canvas_surfaces",
- canvas.canvas_surfaces, "active_index", rows=2)
+ canvas.canvas_surfaces, "active_index", rows=1)
col = row.column(align=True)
col.operator("dpaint.surface_slot_add", icon='ZOOMIN', text="")
diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py
index 288f95ca4b0..5e54287ac33 100644
--- a/release/scripts/startup/bl_ui/properties_render.py
+++ b/release/scripts/startup/bl_ui/properties_render.py
@@ -67,9 +67,11 @@ class RENDER_PT_render(RenderButtonsPanel, Panel):
row = layout.row(align=True)
row.operator("render.render", text="Render", icon='RENDER_STILL')
row.operator("render.render", text="Animation", icon='RENDER_ANIMATION').animation = True
- row.operator("render.play_rendered_anim", text="Play", icon='PLAY')
+ row.operator("sound.mixdown", text="Audio", icon='PLAY_AUDIO')
- layout.prop(rd, "display_mode", text="Display")
+ split = layout.split(1 / 3)
+ split.operator("render.play_rendered_anim", text="Play", icon='PLAY')
+ split.prop(rd, "display_mode", text="Display")
class RENDER_PT_dimensions(RenderButtonsPanel, Panel):
@@ -317,13 +319,6 @@ class RENDER_PT_post_processing(RenderButtonsPanel, Panel):
sub.row().prop(rd, "field_order", expand=True)
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_color", text="")
-
class RENDER_PT_stamp(RenderButtonsPanel, Panel):
bl_label = "Stamp"
@@ -395,10 +390,7 @@ class RENDER_PT_output(RenderButtonsPanel, Panel):
layout.template_image_settings(image_settings, color_management=False)
- if file_format == 'QUICKTIME_CARBON':
- layout.operator("scene.render_data_set_quicktime_codec")
-
- elif file_format == 'QUICKTIME_QTKIT':
+ if file_format == 'QUICKTIME':
quicktime = rd.quicktime
split = layout.split()
diff --git a/release/scripts/startup/bl_ui/properties_render_layer.py b/release/scripts/startup/bl_ui/properties_render_layer.py
index 2514cca8c0f..dcc4508f086 100644
--- a/release/scripts/startup/bl_ui/properties_render_layer.py
+++ b/release/scripts/startup/bl_ui/properties_render_layer.py
@@ -57,7 +57,8 @@ class RENDERLAYER_PT_layers(RenderLayerButtonsPanel, Panel):
rd = scene.render
row = layout.row()
- row.template_list("RENDERLAYER_UL_renderlayers", "", rd, "layers", rd.layers, "active_index", rows=2)
+ col = row.column()
+ col.template_list("RENDERLAYER_UL_renderlayers", "", rd, "layers", rd.layers, "active_index", rows=1)
col = row.column(align=True)
col.operator("scene.render_layer_add", icon='ZOOMIN', text="")
@@ -112,7 +113,6 @@ class RENDERLAYER_PT_layer_options(RenderLayerButtonsPanel, Panel):
col = split.column()
col.prop(rl, "use_sky")
- col.prop(rl, "use_edge_enhance")
col.prop(rl, "use_strand")
if bpy.app.build_options.freestyle:
row = col.row()
diff --git a/release/scripts/startup/bl_ui/properties_scene.py b/release/scripts/startup/bl_ui/properties_scene.py
index a04283de8bf..91a5abd0ad0 100644
--- a/release/scripts/startup/bl_ui/properties_scene.py
+++ b/release/scripts/startup/bl_ui/properties_scene.py
@@ -94,7 +94,7 @@ class SCENE_PT_keying_sets(SceneButtonsPanel, Panel):
row = layout.row()
col = row.column()
- col.template_list("UI_UL_list", "keying_sets", scene, "keying_sets", scene.keying_sets, "active_index", rows=2)
+ col.template_list("UI_UL_list", "keying_sets", scene, "keying_sets", scene.keying_sets, "active_index", rows=1)
col = row.column(align=True)
col.operator("anim.keying_set_add", icon='ZOOMIN', text="")
@@ -138,7 +138,7 @@ class SCENE_PT_keying_set_paths(SceneButtonsPanel, Panel):
row = layout.row()
col = row.column()
- col.template_list("SCENE_UL_keying_set_paths", "", ks, "paths", ks.paths, "active_index", rows=2)
+ col.template_list("SCENE_UL_keying_set_paths", "", ks, "paths", ks.paths, "active_index", rows=1)
col = row.column(align=True)
col.operator("anim.keying_set_path_add", icon='ZOOMIN', text="")
@@ -227,8 +227,6 @@ class SCENE_PT_audio(SceneButtonsPanel, Panel):
col.prop(ffmpeg, "audio_channels", text="")
col.prop(ffmpeg, "audio_mixrate", text="Rate")
- layout.operator("sound.mixdown")
-
class SCENE_PT_physics(SceneButtonsPanel, Panel):
bl_label = "Gravity"
diff --git a/release/scripts/startup/bl_ui/properties_world.py b/release/scripts/startup/bl_ui/properties_world.py
index 0b8d8a45a08..0b6ce41eb5d 100644
--- a/release/scripts/startup/bl_ui/properties_world.py
+++ b/release/scripts/startup/bl_ui/properties_world.py
@@ -244,34 +244,6 @@ class WORLD_PT_mist(WorldButtonsPanel, Panel):
layout.prop(world.mist_settings, "falloff")
-class WORLD_PT_stars(WorldButtonsPanel, Panel):
- bl_label = "Stars"
- bl_options = {'DEFAULT_CLOSED'}
- COMPAT_ENGINES = {'BLENDER_RENDER'}
-
- def draw_header(self, context):
- world = context.world
-
- self.layout.prop(world.star_settings, "use_stars", text="")
-
- def draw(self, context):
- layout = self.layout
-
- world = context.world
-
- layout.active = world.star_settings.use_stars
-
- split = layout.split()
-
- col = split.column()
- col.prop(world.star_settings, "size")
- 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")
-
-
class WORLD_PT_custom_props(WorldButtonsPanel, PropertyPanel, Panel):
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
_context_path = "world"
diff --git a/release/scripts/startup/bl_ui/space_clip.py b/release/scripts/startup/bl_ui/space_clip.py
index 540b707cf93..3db8697a457 100644
--- a/release/scripts/startup/bl_ui/space_clip.py
+++ b/release/scripts/startup/bl_ui/space_clip.py
@@ -352,14 +352,6 @@ class CLIP_PT_tools_solve(CLIP_PT_tracking_panel, Panel):
col.label(text="Refine:")
col.prop(settings, "refine_intrinsics", text="")
- col = layout.column(align=True)
- col.active = not settings.use_tripod_solver
- col.prop(settings, "use_fallback_reconstruction",
- text="Allow Fallback")
- sub = col.column(align=True)
- sub.active = settings.use_fallback_reconstruction
- sub.prop(settings, "reconstruction_success_threshold")
-
class CLIP_PT_tools_cleanup(CLIP_PT_tracking_panel, Panel):
bl_space_type = 'CLIP_EDITOR'
@@ -507,7 +499,7 @@ class CLIP_PT_objects(CLIP_PT_clip_view_panel, Panel):
row = layout.row()
row.template_list("CLIP_UL_tracking_objects", "", tracking, "objects",
- tracking, "active_object_index", rows=3)
+ tracking, "active_object_index", rows=1)
sub = row.column(align=True)
@@ -577,6 +569,8 @@ class CLIP_PT_track(CLIP_PT_tracking_panel, Panel):
if act_track.use_custom_color:
row.prop(act_track, "color", text="")
+ layout.prop(act_track, "weight")
+
if act_track.has_bundle:
label_text = "Average Error: %.4f" % (act_track.average_error)
layout.label(text=label_text)
@@ -783,7 +777,7 @@ class CLIP_PT_stabilization(CLIP_PT_reconstruction_panel, Panel):
row = layout.row()
row.template_list("UI_UL_list", "stabilization_tracks", stab, "tracks",
- stab, "active_track_index", rows=3)
+ stab, "active_track_index", rows=2)
sub = row.column(align=True)
diff --git a/release/scripts/startup/bl_ui/space_graph.py b/release/scripts/startup/bl_ui/space_graph.py
index 2d0b1c93d13..61e2f10a057 100644
--- a/release/scripts/startup/bl_ui/space_graph.py
+++ b/release/scripts/startup/bl_ui/space_graph.py
@@ -46,6 +46,11 @@ class GRAPH_HT_header(Header):
dopesheet_filter(layout, context)
+ layout.prop(st, "use_normalization", text="Normalize")
+ row = layout.row()
+ row.active = st.use_normalization
+ row.prop(st, "use_auto_normalization", text="Auto")
+
layout.prop(st, "auto_snap", text="")
layout.prop(st, "pivot_point", text="", icon_only=True)
diff --git a/release/scripts/startup/bl_ui/space_image.py b/release/scripts/startup/bl_ui/space_image.py
index 17ed7b44cf1..397b74116c2 100644
--- a/release/scripts/startup/bl_ui/space_image.py
+++ b/release/scripts/startup/bl_ui/space_image.py
@@ -106,7 +106,6 @@ class IMAGE_MT_select(Menu):
layout.operator("uv.select_all").action = 'TOGGLE'
layout.operator("uv.select_all", text="Inverse").action = 'INVERT'
- layout.operator("uv.select_split")
layout.separator()
@@ -728,7 +727,7 @@ class IMAGE_PT_tools_brush_overlay(BrushButtonsPanel, Panel):
tex_slot_mask = brush.mask_texture_slot
col = layout.column()
-
+
col.label(text="Curve:")
row = col.row(align=True)
diff --git a/release/scripts/startup/bl_ui/space_info.py b/release/scripts/startup/bl_ui/space_info.py
index 5a570d18312..a7a648e3c44 100644
--- a/release/scripts/startup/bl_ui/space_info.py
+++ b/release/scripts/startup/bl_ui/space_info.py
@@ -37,7 +37,6 @@ class INFO_HT_header(Header):
if context.area.show_menus:
sub = row.row(align=True)
sub.menu("INFO_MT_file")
- sub.menu("INFO_MT_add")
if rd.use_game_engine:
sub.menu("INFO_MT_game")
else:
@@ -79,35 +78,6 @@ class INFO_HT_header(Header):
row.operator("wm.splash", text="", icon='BLENDER', emboss=False)
row.label(text=scene.statistics(), translate=False)
- # XXX: BEFORE RELEASE, MOVE FILE MENU OUT OF INFO!!!
- """
- 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 = layout.row()
- row.enabled = sinfo.show_report_operator
- row.operator("info.report_replay")
-
- row.menu("INFO_MT_report")
- """
-
-
-class INFO_MT_report(Menu):
- bl_label = "Report"
-
- def draw(self, context):
- layout = self.layout
-
- layout.operator("console.select_all_toggle")
- layout.operator("console.select_border")
- layout.operator("console.report_delete")
- layout.operator("console.report_copy")
-
class INFO_MT_file(Menu):
bl_label = "File"
@@ -199,132 +169,6 @@ class INFO_MT_file_external_data(Menu):
layout.operator("file.find_missing_files")
-class INFO_MT_mesh_add(Menu):
- bl_idname = "INFO_MT_mesh_add"
- bl_label = "Mesh"
-
- def draw(self, context):
- 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.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", icon='MESH_TORUS', text="Torus")
-
-
-class INFO_MT_curve_add(Menu):
- bl_idname = "INFO_MT_curve_add"
- bl_label = "Curve"
-
- def draw(self, context):
- 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")
-
-
-class INFO_MT_surface_add(Menu):
- bl_idname = "INFO_MT_surface_add"
- bl_label = "Surface"
-
- def draw(self, context):
- 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")
-
-
-class INFO_MT_edit_curve_add(Menu):
- bl_idname = "INFO_MT_edit_curve_add"
- bl_label = "Add"
-
- def draw(self, context):
- is_surf = context.active_object.type == 'SURFACE'
-
- layout = self.layout
- layout.operator_context = 'EXEC_REGION_WIN'
-
- if is_surf:
- INFO_MT_surface_add.draw(self, context)
- else:
- INFO_MT_curve_add.draw(self, context)
-
-
-class INFO_MT_armature_add(Menu):
- bl_idname = "INFO_MT_armature_add"
- bl_label = "Armature"
-
- def draw(self, context):
- layout = self.layout
-
- layout.operator_context = 'EXEC_REGION_WIN'
- layout.operator("object.armature_add", text="Single Bone", icon='BONE_DATA')
-
-
-class INFO_MT_add(Menu):
- bl_label = "Add"
-
- def draw(self, context):
- layout = self.layout
-
- # note, don't use 'EXEC_SCREEN' or operators wont get the 'v3d' context.
-
- # Note: was EXEC_AREA, but this context does not have the 'rv3d', which prevents
- # "align_view" to work on first call (see [#32719]).
- layout.operator_context = 'EXEC_REGION_WIN'
-
- #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.menu("INFO_MT_curve_add", icon='OUTLINER_OB_CURVE')
- #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_context = 'INVOKE_REGION_WIN'
- layout.operator_menu_enum("object.metaball_add", "type", text="Metaball", icon='OUTLINER_OB_META')
- layout.operator_context = 'EXEC_REGION_WIN'
- 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_menu_enum("object.empty_add", "type", text="Empty", icon='OUTLINER_OB_EMPTY')
- layout.separator()
-
- 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_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.separator()
-
- if len(bpy.data.groups) > 10:
- layout.operator_context = 'INVOKE_REGION_WIN'
- 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')
-
-
class INFO_MT_game(Menu):
bl_label = "Game"
@@ -394,22 +238,21 @@ 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:2.6/Manual"
- layout.operator("wm.url_open", text="Release Log", icon='URL').url = "http://www.blender.org/development/release-logs/blender-269"
+ layout.operator("wm.url_open", text="Release Log", icon='URL').url = "http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.70"
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="Developer Community", icon='URL').url = "http://www.blender.org/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://developer.blender.org/maniphest/task/create/?project=2&type=Bug"
layout.separator()
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()
- 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()
diff --git a/release/scripts/startup/bl_ui/space_node.py b/release/scripts/startup/bl_ui/space_node.py
index 1721eacd8ac..46234b638eb 100644
--- a/release/scripts/startup/bl_ui/space_node.py
+++ b/release/scripts/startup/bl_ui/space_node.py
@@ -105,7 +105,7 @@ class NODE_HT_header(Header):
row = layout.row(align=True)
row.prop(toolsettings, "use_snap", text="")
row.prop(toolsettings, "snap_node_element", text="", icon_only=True)
- if toolsettings.snap_node_element != 'INCREMENT':
+ if toolsettings.snap_node_element != 'GRID':
row.prop(toolsettings, "snap_target", text="")
row = layout.row(align=True)
@@ -169,6 +169,7 @@ class NODE_MT_select(Menu):
layout = self.layout
layout.operator("node.select_border")
+ layout.operator("node.select_circle")
layout.separator()
layout.operator("node.select_all").action = 'TOGGLE'
@@ -233,7 +234,6 @@ class NODE_MT_node(Menu):
layout.separator()
- layout.operator("node.show_cyclic_dependencies")
layout.operator("node.read_renderlayers")
layout.operator("node.read_fullsamplelayers")
@@ -364,7 +364,7 @@ class NODE_PT_backdrop(Panel):
col.prop(snode, "backdrop_x", text="X")
col.prop(snode, "backdrop_y", text="Y")
col.operator("node.backimage_move", text="Move")
-
+
layout.operator("node.backimage_fit", text="Fit")
diff --git a/release/scripts/startup/bl_ui/space_sequencer.py b/release/scripts/startup/bl_ui/space_sequencer.py
index ea88d35b4e9..6f28bcb2225 100644
--- a/release/scripts/startup/bl_ui/space_sequencer.py
+++ b/release/scripts/startup/bl_ui/space_sequencer.py
@@ -416,6 +416,10 @@ class SEQUENCER_PT_edit(SequencerButtonsPanel, Panel):
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="")
+ else:
+ row = layout.row(align=True)
+ row.prop(strip, "mute", toggle=True, icon='RESTRICT_VIEW_ON' if strip.mute else 'RESTRICT_VIEW_OFF')
+ row.prop(strip, "lock", toggle=True, icon='LOCKED' if strip.lock else 'UNLOCKED')
col = layout.column()
sub = col.column()
diff --git a/release/scripts/startup/bl_ui/space_text.py b/release/scripts/startup/bl_ui/space_text.py
index 41ded2fe768..32cb1009492 100644
--- a/release/scripts/startup/bl_ui/space_text.py
+++ b/release/scripts/startup/bl_ui/space_text.py
@@ -49,7 +49,7 @@ class TEXT_HT_header(Header):
sub.alert = True
sub.operator("text.resolve_conflict", text="", icon='HELP')
- row.template_ID(st, "text", new="text.new", unlink="text.unlink")
+ row.template_ID(st, "text", new="text.new", unlink="text.unlink", open="text.open")
row = layout.row(align=True)
row.prop(st, "show_line_numbers", text="")
diff --git a/release/scripts/startup/bl_ui/space_time.py b/release/scripts/startup/bl_ui/space_time.py
index de8be9dff99..4cb67181fdb 100644
--- a/release/scripts/startup/bl_ui/space_time.py
+++ b/release/scripts/startup/bl_ui/space_time.py
@@ -40,7 +40,9 @@ class TIME_HT_header(Header):
row.menu("TIME_MT_frame")
row.menu("TIME_MT_playback")
- layout.prop(scene, "use_preview_range", text="", toggle=True)
+ row = layout.row(align=True)
+ row.prop(scene, "use_preview_range", text="", toggle=True)
+ row.prop(scene, "lock_frame_selection_to_range", text="", toggle=True)
row = layout.row(align=True)
if not scene.use_preview_range:
@@ -227,6 +229,11 @@ def marker_menu_generic(layout):
layout.operator("marker.rename", text="Rename Marker")
layout.operator("marker.move", text="Grab/Move Marker")
+ layout.separator()
+
+ layout.operator("screen.marker_jump", text="Jump to Next Marker").next = True
+ layout.operator("screen.marker_jump", text="Jump to Previous Marker").next = False
+
if __name__ == "__main__": # only for live edit.
bpy.utils.register_module(__name__)
diff --git a/release/scripts/startup/bl_ui/space_userpref.py b/release/scripts/startup/bl_ui/space_userpref.py
index 1e9c9e7ff7e..e21656c3259 100644
--- a/release/scripts/startup/bl_ui/space_userpref.py
+++ b/release/scripts/startup/bl_ui/space_userpref.py
@@ -268,12 +268,16 @@ class USERPREF_PT_edit(Panel):
col = row.column()
col.label(text="Grease Pencil:")
+ col.prop(edit, "grease_pencil_eraser_radius", text="Eraser Radius")
+ col.separator()
col.prop(edit, "grease_pencil_manhattan_distance", text="Manhattan Distance")
col.prop(edit, "grease_pencil_euclidean_distance", text="Euclidean Distance")
- col.prop(edit, "grease_pencil_eraser_radius", text="Eraser Radius")
+ col.separator()
col.prop(edit, "use_grease_pencil_smooth_stroke", text="Smooth Stroke")
col.prop(edit, "use_grease_pencil_simplify_stroke", text="Simplify Stroke")
col.separator()
+ col.prop(edit, "grease_pencil_default_color", text="Default Color")
+ col.separator()
col.separator()
col.separator()
col.label(text="Playback:")
@@ -1251,15 +1255,15 @@ class USERPREF_PT_addons(Panel):
split.label(text=' ' + info["warning"], icon='ERROR')
user_addon = USERPREF_PT_addons.is_user_addon(mod, user_addon_paths)
- tot_row = bool(info["wiki_url"]) + bool(info["tracker_url"]) + bool(user_addon)
+ tot_row = bool(info["wiki_url"]) + bool(user_addon)
if tot_row:
split = colsub.row().split(percentage=0.15)
split.label(text="Internet:")
if info["wiki_url"]:
split.operator("wm.url_open", text="Documentation", icon='HELP').url = info["wiki_url"]
- if info["tracker_url"]:
- split.operator("wm.url_open", text="Report a Bug", icon='URL').url = info["tracker_url"]
+ tracker_url = "http://developer.blender.org/maniphest/task/create/?project=3&type=Bug"
+ split.operator("wm.url_open", text="Report a Bug", icon='URL').url = tracker_url
if user_addon:
split.operator("wm.addon_remove", text="Remove", icon='CANCEL').module = mod.__name__
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index 056859af3b4..81da0c3edde 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -54,6 +54,17 @@ class VIEW3D_HT_header(Header):
elif mode_string not in {'EDIT_TEXT', 'SCULPT'}:
sub.menu("VIEW3D_MT_select_%s" % mode_string.lower())
+ if mode_string == 'OBJECT':
+ sub.menu("INFO_MT_add", text="Add")
+ elif mode_string == 'EDIT_MESH':
+ sub.menu("INFO_MT_mesh_add", text="Add")
+ elif mode_string == 'EDIT_CURVE':
+ sub.menu("INFO_MT_curve_add", text="Add")
+ elif mode_string == 'EDIT_SURFACE':
+ sub.menu("INFO_MT_surface_add", text="Add")
+ elif mode_string == 'EDIT_METABALL':
+ sub.menu("INFO_MT_metaball_add", text="Add")
+
if edit_object:
sub.menu("VIEW3D_MT_edit_%s" % edit_object.type.lower())
elif obj:
@@ -132,6 +143,7 @@ class VIEW3D_HT_header(Header):
# ********** Menu **********
+
# ********** Utilities **********
@@ -167,8 +179,9 @@ class VIEW3D_MT_transform_base(Menu):
layout.operator("transform.tosphere", text="To Sphere")
layout.operator("transform.shear", text="Shear")
- layout.operator("transform.warp", text="Warp")
+ layout.operator("transform.bend", text="Bend")
layout.operator("transform.push_pull", text="Push/Pull")
+ layout.operator("object.vertex_warp", text="Warp")
# Generic transform menu - geometry types
@@ -528,7 +541,7 @@ class VIEW3D_MT_select_pose(Menu):
layout.operator("pose.select_all").action = 'TOGGLE'
layout.operator("pose.select_all", text="Inverse").action = 'INVERT'
- layout.operator("pose.select_flip_active", text="Flip Active")
+ layout.operator("pose.select_mirror", text="Flip Active")
layout.operator("pose.select_constraint_target", text="Constraint Target")
layout.operator("pose.select_linked", text="Linked")
@@ -716,6 +729,10 @@ class VIEW3D_MT_select_edit_metaball(Menu):
layout.operator("mball.select_random_metaelems")
+ layout.separator()
+
+ layout.operator_menu_enum("mball.select_similar", "type", text="Similar")
+
class VIEW3D_MT_select_edit_lattice(Menu):
bl_label = "Select"
@@ -750,6 +767,7 @@ class VIEW3D_MT_select_edit_armature(Menu):
layout.operator("armature.select_all").action = 'TOGGLE'
layout.operator("armature.select_all", text="Inverse").action = 'INVERT'
+ layout.operator("armature.select_mirror", text="Mirror").extend = False
layout.separator()
@@ -812,6 +830,145 @@ class VIEW3D_MT_select_paint_mask_vertex(Menu):
layout.operator("paint.vert_select_ungrouped", text="Ungrouped Verts")
+# ********** Add menu **********
+
+# XXX: INFO_MT_ names used to keep backwards compatibility (Addons etc that hook into the menu)
+
+
+class INFO_MT_mesh_add(Menu):
+ bl_idname = "INFO_MT_mesh_add"
+ bl_label = "Mesh"
+
+ def draw(self, context):
+ 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.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", icon='MESH_TORUS', text="Torus")
+
+
+class INFO_MT_curve_add(Menu):
+ bl_idname = "INFO_MT_curve_add"
+ bl_label = "Curve"
+
+ def draw(self, context):
+ 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")
+
+
+class INFO_MT_surface_add(Menu):
+ bl_idname = "INFO_MT_surface_add"
+ bl_label = "Surface"
+
+ def draw(self, context):
+ 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")
+
+
+class INFO_MT_metaball_add(Menu):
+ bl_idname = "INFO_MT_metaball_add"
+ bl_label = "Metaball"
+
+ def draw(self, context):
+ layout = self.layout
+
+ layout.operator_context = 'INVOKE_REGION_WIN'
+ layout.operator_enum("object.metaball_add", "type")
+
+
+class INFO_MT_edit_curve_add(Menu):
+ bl_idname = "INFO_MT_edit_curve_add"
+ bl_label = "Add"
+
+ def draw(self, context):
+ is_surf = context.active_object.type == 'SURFACE'
+
+ layout = self.layout
+ layout.operator_context = 'EXEC_REGION_WIN'
+
+ if is_surf:
+ INFO_MT_surface_add.draw(self, context)
+ else:
+ INFO_MT_curve_add.draw(self, context)
+
+
+class INFO_MT_armature_add(Menu):
+ bl_idname = "INFO_MT_armature_add"
+ bl_label = "Armature"
+
+ def draw(self, context):
+ layout = self.layout
+
+ layout.operator_context = 'EXEC_REGION_WIN'
+ layout.operator("object.armature_add", text="Single Bone", icon='BONE_DATA')
+
+
+class INFO_MT_add(Menu):
+ bl_label = "Add"
+
+ def draw(self, context):
+ layout = self.layout
+
+ # note, don't use 'EXEC_SCREEN' or operators wont get the 'v3d' context.
+
+ # Note: was EXEC_AREA, but this context does not have the 'rv3d', which prevents
+ # "align_view" to work on first call (see [#32719]).
+ layout.operator_context = 'EXEC_REGION_WIN'
+
+ #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.menu("INFO_MT_curve_add", icon='OUTLINER_OB_CURVE')
+ #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.menu("INFO_MT_metaball_add", text="Metaball", icon='OUTLINER_OB_META')
+ 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_menu_enum("object.empty_add", "type", text="Empty", icon='OUTLINER_OB_EMPTY')
+ layout.separator()
+
+ 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_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.separator()
+
+ if len(bpy.data.groups) > 10:
+ layout.operator_context = 'INVOKE_REGION_WIN'
+ 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')
+
# ********** Object menu **********
@@ -1364,6 +1521,7 @@ class VIEW3D_MT_paint_weight(Menu):
layout.operator("object.vertex_group_mirror", text="Mirror")
layout.operator("object.vertex_group_invert", text="Invert")
layout.operator("object.vertex_group_clean", text="Clean")
+ layout.operator("object.vertex_group_quantize", text="Quantize")
layout.operator("object.vertex_group_levels", text="Levels")
layout.operator("object.vertex_group_blend", text="Blend")
layout.operator("object.vertex_group_transfer_weight", text="Transfer Weights")
@@ -1442,6 +1600,9 @@ class VIEW3D_MT_hide_mask(Menu):
props.mode = 'VALUE'
props.value = 0
+ props = layout.operator("view3d.select_border", text="Box Mask")
+ props = layout.operator("paint.mask_lasso_gesture", text="Lasso Mask")
+
# ********** Particle menu **********
@@ -1909,10 +2070,16 @@ 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"),
+ 'REGION_VERT_NORMAL': lambda layout:
+ layout.operator("view3d.edit_mesh_extrude_move_shrink_fatten", text="Region (Vertex Normals)"),
}
@staticmethod
@@ -1922,7 +2089,7 @@ class VIEW3D_MT_edit_mesh_extrude(Menu):
menu = []
if mesh.total_face_sel:
- menu += ['REGION', 'FACE']
+ menu += ['REGION', 'REGION_VERT_NORMAL', 'FACE']
if mesh.total_edge_sel and (select_mode[0] or select_mode[1]):
menu += ['EDGE']
if mesh.total_vert_sel and select_mode[0]:
@@ -2379,6 +2546,7 @@ class VIEW3D_MT_edit_armature(Menu):
layout.operator("armature.merge")
layout.operator("armature.fill")
layout.operator("armature.delete")
+ layout.operator("armature.split")
layout.operator("armature.separate")
layout.separator()
@@ -2634,10 +2802,14 @@ class VIEW3D_PT_view3d_shading(Panel):
if not scene.render.use_shading_nodes:
col.prop(gs, "material_mode", text="")
col.prop(view, "show_textured_solid")
+
if view.viewport_shade == 'SOLID':
col.prop(view, "use_matcap")
if view.use_matcap:
col.template_icon_view(view, "matcap_icon")
+ elif view.viewport_shade == 'TEXTURED':
+ col.prop(view, "show_textured_shadeless")
+
col.prop(view, "show_backface_culling")
if obj and obj.mode == 'EDIT' and view.viewport_shade not in {'BOUNDBOX', 'WIREFRAME'}:
col.prop(view, "show_occlude_wire")
diff --git a/release/scripts/startup/bl_ui/space_view3d_toolbar.py b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
index 0bb31f51c1b..cd3c238fe86 100644
--- a/release/scripts/startup/bl_ui/space_view3d_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
@@ -135,6 +135,7 @@ class VIEW3D_PT_tools_rigidbody(View3DPanel, Panel):
col.operator("rigidbody.shape_change", text="Change Shape")
col.operator("rigidbody.mass_calculate", text="Calculate Mass")
col.operator("rigidbody.object_settings_copy", text="Copy from Active")
+ col.operator("object.visual_transform_apply", text="Apply Transformation")
col.operator("rigidbody.bake_to_keyframes", text="Bake To Keyframes")
col.label(text="Constraints:")
col.operator("rigidbody.connect", text="Connect")
@@ -739,6 +740,7 @@ class VIEW3D_PT_tools_brush(Panel, View3DPaintPanel):
col.prop(brush, "vertex_tool", text="Blend")
+
class VIEW3D_PT_tools_brush_overlay(Panel, View3DPaintPanel):
bl_label = "Overlay"
bl_options = {'DEFAULT_CLOSED'}
@@ -752,8 +754,7 @@ class VIEW3D_PT_tools_brush_overlay(Panel, View3DPaintPanel):
context.vertex_paint_object or
context.weight_paint_object or
context.image_paint_object))
-
-
+
def draw(self, context):
layout = self.layout
@@ -763,7 +764,7 @@ class VIEW3D_PT_tools_brush_overlay(Panel, View3DPaintPanel):
tex_slot_mask = brush.mask_texture_slot
col = layout.column()
-
+
col.label(text="Curve:")
row = col.row(align=True)
@@ -777,7 +778,7 @@ class VIEW3D_PT_tools_brush_overlay(Panel, View3DPaintPanel):
sub.prop(brush, "use_cursor_overlay_override", toggle=True, text="", icon='BRUSH_DATA')
col.active = brush.brush_capabilities.has_overlay
-
+
if context.image_paint_object or context.sculpt_object or context.vertex_paint_object:
col.label(text="Texture:")
row = col.row(align=True)
@@ -1114,6 +1115,7 @@ class VIEW3D_PT_tools_weightpaint(View3DPanel, Panel):
col.operator("object.vertex_group_mirror", text="Mirror")
col.operator("object.vertex_group_invert", text="Invert")
col.operator("object.vertex_group_clean", text="Clean")
+ col.operator("object.vertex_group_quantize", text="Quantize")
col.operator("object.vertex_group_levels", text="Levels")
col.operator("object.vertex_group_blend", text="Blend")
col.operator("object.vertex_group_transfer_weight", text="Transfer Weights")
diff --git a/release/scripts/startup/nodeitems_builtins.py b/release/scripts/startup/nodeitems_builtins.py
index 71ff547f6da..fdda753372f 100644
--- a/release/scripts/startup/nodeitems_builtins.py
+++ b/release/scripts/startup/nodeitems_builtins.py
@@ -141,6 +141,8 @@ shader_node_categories = [
NodeItem("ShaderNodeSqueeze"),
NodeItem("ShaderNodeSeparateRGB"),
NodeItem("ShaderNodeCombineRGB"),
+ NodeItem("ShaderNodeSeparateHSV"),
+ NodeItem("ShaderNodeCombineHSV"),
]),
ShaderOldNodeCategory("SH_GROUP", "Group", items=node_group_items),
ShaderOldNodeCategory("SH_LAYOUT", "Layout", items=[
diff --git a/release/scripts/templates_py/addon_add_object.py b/release/scripts/templates_py/addon_add_object.py
index 66da6a969c7..f0d8bede6d5 100644
--- a/release/scripts/templates_py/addon_add_object.py
+++ b/release/scripts/templates_py/addon_add_object.py
@@ -7,7 +7,6 @@ bl_info = {
"description": "Adds a new Mesh Object",
"warning": "",
"wiki_url": "",
- "tracker_url": "",
"category": "Add Mesh"}
diff --git a/release/scripts/templates_py/custom_nodes.py b/release/scripts/templates_py/custom_nodes.py
index 975ae1881f2..bf89c0debad 100644
--- a/release/scripts/templates_py/custom_nodes.py
+++ b/release/scripts/templates_py/custom_nodes.py
@@ -109,6 +109,11 @@ class MyCustomNode(Node, MyCustomTreeNode):
# myStringProperty button will only be visible in the sidebar
layout.prop(self, "myStringProperty")
+ # Optional: custom label
+ # Explicit user label overrides this, but here we can define a label dynamically
+ def draw_label(self):
+ return "I am a custom node"
+
### Node Categories ###
# Node categories are a python system for automatically
diff --git a/release/scripts/templates_py/operator_uv.py b/release/scripts/templates_py/operator_mesh_uv.py
index 96e624bc30d..96e624bc30d 100644
--- a/release/scripts/templates_py/operator_uv.py
+++ b/release/scripts/templates_py/operator_mesh_uv.py
diff --git a/release/scripts/templates_py/operator_modal_timer.py b/release/scripts/templates_py/operator_modal_timer.py
index 3088d59fbcf..4d36860b9e3 100644
--- a/release/scripts/templates_py/operator_modal_timer.py
+++ b/release/scripts/templates_py/operator_modal_timer.py
@@ -9,7 +9,7 @@ class ModalTimerOperator(bpy.types.Operator):
_timer = None
def modal(self, context, event):
- if event.type == 'ESC':
+ if event.type in {'RIGHTMOUSE', 'ESC'}:
return self.cancel(context)
if event.type == 'TIMER':
@@ -21,13 +21,14 @@ class ModalTimerOperator(bpy.types.Operator):
return {'PASS_THROUGH'}
def execute(self, context):
- self._timer = context.window_manager.event_timer_add(0.1, context.window)
- context.window_manager.modal_handler_add(self)
+ wm = context.window_manager
+ self._timer = wm.event_timer_add(0.1, context.window)
+ wm.modal_handler_add(self)
return {'RUNNING_MODAL'}
def cancel(self, context):
- context.window_manager.event_timer_remove(self._timer)
- return {'CANCELLED'}
+ wm = context.window_manager
+ wm.event_timer_remove(self._timer)
def register():