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:
authorTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2010-05-06 02:57:58 +0400
committerTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2010-05-06 02:57:58 +0400
commit8a20433f0fef5ab2d881d010cd5bd19fe484e555 (patch)
treecd9e8f67eb2d4d16d1b62244025db41cd342e805 /release
parenta1d0913afe228aa55c47eea2d3ffd617df67fcc0 (diff)
parent09e6190b490213851711ea7356e76142f527a523 (diff)
Merged changes in the trunk up to revision 28600.
Diffstat (limited to 'release')
-rw-r--r--release/datafiles/blenderbuttonsbin207204 -> 209681 bytes
-rw-r--r--release/scripts/modules/rigify/arm_biped.py4
-rw-r--r--release/scripts/modules/rigify/eye_balls.py6
-rw-r--r--release/scripts/modules/rigify/eye_lid.py37
-rw-r--r--release/scripts/modules/rigify/finger_curl.py2
-rw-r--r--release/scripts/modules/rigify/leg_biped.py6
-rw-r--r--release/scripts/modules/rigify/leg_quadruped.py12
-rw-r--r--release/scripts/modules/rigify/mouth.py22
-rw-r--r--release/scripts/modules/rigify/neck.py6
-rw-r--r--release/scripts/modules/rigify/neck_flex.py8
-rw-r--r--release/scripts/modules/rigify/palm_curl.py2
-rw-r--r--release/scripts/modules/rigify/shape_key_control.py2
-rw-r--r--release/scripts/modules/rigify/shape_key_distance.py2
-rw-r--r--release/scripts/modules/rigify/shape_key_rotdiff.py2
-rw-r--r--release/scripts/modules/rigify/spine_pivot_flex.py12
-rw-r--r--release/scripts/modules/rigify/tail_control.py4
-rw-r--r--release/scripts/modules/rigify/tongue.py8
-rw-r--r--release/scripts/modules/rigify_utils.py8
-rw-r--r--release/scripts/modules/rna_info.py68
-rw-r--r--release/scripts/op/console_python.py17
-rw-r--r--release/scripts/op/image.py2
-rw-r--r--release/scripts/op/sequencer.py25
-rw-r--r--release/scripts/op/vertexpaint_dirt.py4
-rw-r--r--release/scripts/ui/properties_data_mesh.py5
-rw-r--r--release/scripts/ui/properties_object.py10
-rw-r--r--release/scripts/ui/properties_particle.py2
-rw-r--r--release/scripts/ui/properties_physics_common.py24
-rw-r--r--release/scripts/ui/properties_render.py1
-rw-r--r--release/scripts/ui/properties_texture.py12
-rw-r--r--release/scripts/ui/space_image.py2
-rw-r--r--release/scripts/ui/space_info.py2
-rw-r--r--release/scripts/ui/space_outliner.py4
-rw-r--r--release/scripts/ui/space_sequencer.py7
-rw-r--r--release/scripts/ui/space_time.py4
-rw-r--r--release/scripts/ui/space_userpref_keymap.py11
-rw-r--r--release/scripts/ui/space_view3d.py4
36 files changed, 203 insertions, 144 deletions
diff --git a/release/datafiles/blenderbuttons b/release/datafiles/blenderbuttons
index d53a7b8ec51..a38525c7f46 100644
--- a/release/datafiles/blenderbuttons
+++ b/release/datafiles/blenderbuttons
Binary files differ
diff --git a/release/scripts/modules/rigify/arm_biped.py b/release/scripts/modules/rigify/arm_biped.py
index b75b26b5f2f..7a99eb5d80a 100644
--- a/release/scripts/modules/rigify/arm_biped.py
+++ b/release/scripts/modules/rigify/arm_biped.py
@@ -192,7 +192,7 @@ def fk(obj, definitions, base_names, options):
# shoulder is used as a hinge
fk_chain.rename("shoulder", "MCH-%s_hinge" % base_names[mt.arm])
- fk_chain.shoulder_e.translate(Vector(0.0, fk_chain.shoulder_e.length / 2, 0.0))
+ fk_chain.shoulder_e.translate(Vector((0.0, fk_chain.shoulder_e.length / 2, 0.0)))
# upper arm constrains to this.
ex.socket_e = copy_bone_simple(arm, mt.arm, "MCH-%s_socket" % base_names[mt.arm])
@@ -240,7 +240,7 @@ def fk(obj, definitions, base_names, options):
con.name = "hinge"
con.target = obj
con.subtarget = mt.shoulder
- driver_fcurve = con.driver_add("influence", 0)
+ driver_fcurve = con.driver_add("influence")
driver = driver_fcurve.driver
diff --git a/release/scripts/modules/rigify/eye_balls.py b/release/scripts/modules/rigify/eye_balls.py
index 20bb08f39a8..48f0448dfb3 100644
--- a/release/scripts/modules/rigify/eye_balls.py
+++ b/release/scripts/modules/rigify/eye_balls.py
@@ -57,7 +57,7 @@ def addget_shape_key_driver(obj, name="Key"):
if driver_s.data_path == driver_path:
fcurve = driver_s
if fcurve == None:
- fcurve = obj.data.shape_keys.keys[name].driver_add("value", 0)
+ fcurve = obj.data.shape_keys.keys[name].driver_add("value")
fcurve.driver.type = 'AVERAGE'
new = True
@@ -217,7 +217,7 @@ def control(obj, definitions, base_names, options):
eyes += ["ORG-"+name]
# Get the average position of the eyes
- center = Vector(0,0,0)
+ center = Vector((0, 0, 0))
for eye in eyes:
center += eb[eye].head
if len(eyes) != 0:
@@ -295,7 +295,7 @@ def control(obj, definitions, base_names, options):
con.target = obj
con.subtarget = head
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
driver.type = 'AVERAGE'
mod = fcurve.modifiers[0]
diff --git a/release/scripts/modules/rigify/eye_lid.py b/release/scripts/modules/rigify/eye_lid.py
index 30492e4e138..bb9749011c2 100644
--- a/release/scripts/modules/rigify/eye_lid.py
+++ b/release/scripts/modules/rigify/eye_lid.py
@@ -299,14 +299,15 @@ def control(obj, definitions, base_names, options):
lid8 = copy_bone_simple(obj.data, definitions[9], base_names[definitions[9]]).name
size = eb[lid1].length
- eb[lid1].tail = eb[lid1].head + Vector(0,size,0)
- eb[lid2].tail = eb[lid2].head + Vector(0,size,0)
- eb[lid3].tail = eb[lid3].head + Vector(0,size,0)
- eb[lid4].tail = eb[lid4].head + Vector(0,size,0)
- eb[lid5].tail = eb[lid5].head + Vector(0,size,0)
- eb[lid6].tail = eb[lid6].head + Vector(0,size,0)
- eb[lid7].tail = eb[lid7].head + Vector(0,size,0)
- eb[lid8].tail = eb[lid8].head + Vector(0,size,0)
+ size_y = Vector(0.0, size, 0.0)
+ eb[lid1].tail = eb[lid1].head + size_y
+ eb[lid2].tail = eb[lid2].head + size_y
+ eb[lid3].tail = eb[lid3].head + size_y
+ eb[lid4].tail = eb[lid4].head + size_y
+ eb[lid5].tail = eb[lid5].head + size_y
+ eb[lid6].tail = eb[lid6].head + size_y
+ eb[lid7].tail = eb[lid7].head + size_y
+ eb[lid8].tail = eb[lid8].head + size_y
eb[lid1].roll = 0
eb[lid2].roll = 0
@@ -438,7 +439,7 @@ def control(obj, definitions, base_names, options):
con.minimum = -distance*2
con.maximum = distance
con.target_space = 'LOCAL'
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
driver.type = 'AVERAGE'
var = driver.variables.new()
@@ -457,7 +458,7 @@ def control(obj, definitions, base_names, options):
con.minimum = -distance*2
con.maximum = distance
con.target_space = 'LOCAL'
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
driver.type = 'AVERAGE'
var = driver.variables.new()
@@ -475,7 +476,7 @@ def control(obj, definitions, base_names, options):
con.minimum = -distance*2
con.maximum = distance
con.target_space = 'LOCAL'
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
driver.type = 'AVERAGE'
var = driver.variables.new()
@@ -493,7 +494,7 @@ def control(obj, definitions, base_names, options):
con.minimum = -distance*2
con.maximum = distance
con.target_space = 'LOCAL'
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
driver.type = 'AVERAGE'
var = driver.variables.new()
@@ -511,7 +512,7 @@ def control(obj, definitions, base_names, options):
con.minimum = -distance*2
con.maximum = distance
con.target_space = 'LOCAL'
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
driver.type = 'AVERAGE'
var = driver.variables.new()
@@ -530,7 +531,7 @@ def control(obj, definitions, base_names, options):
con.minimum = -distance
con.maximum = distance*2
con.target_space = 'LOCAL'
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
driver.type = 'AVERAGE'
var = driver.variables.new()
@@ -548,7 +549,7 @@ def control(obj, definitions, base_names, options):
con.minimum = -distance
con.maximum = distance*2
con.target_space = 'LOCAL'
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
driver.type = 'AVERAGE'
var = driver.variables.new()
@@ -566,7 +567,7 @@ def control(obj, definitions, base_names, options):
con.minimum = -distance
con.maximum = distance*2
con.target_space = 'LOCAL'
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
driver.type = 'AVERAGE'
var = driver.variables.new()
@@ -584,7 +585,7 @@ def control(obj, definitions, base_names, options):
con.minimum = -distance
con.maximum = distance*2
con.target_space = 'LOCAL'
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
driver.type = 'AVERAGE'
var = driver.variables.new()
@@ -602,7 +603,7 @@ def control(obj, definitions, base_names, options):
con.minimum = -distance
con.maximum = distance*2
con.target_space = 'LOCAL'
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
driver.type = 'AVERAGE'
var = driver.variables.new()
diff --git a/release/scripts/modules/rigify/finger_curl.py b/release/scripts/modules/rigify/finger_curl.py
index 27ed437b5ac..63f1816012b 100644
--- a/release/scripts/modules/rigify/finger_curl.py
+++ b/release/scripts/modules/rigify/finger_curl.py
@@ -291,7 +291,7 @@ def main(obj, bone_definition, base_names, options):
hinge_driver_path = pb[control].path_from_id() + '["hinge"]'
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
var = driver.variables.new()
driver.type = 'AVERAGE'
diff --git a/release/scripts/modules/rigify/leg_biped.py b/release/scripts/modules/rigify/leg_biped.py
index 2ea217847d7..53028986873 100644
--- a/release/scripts/modules/rigify/leg_biped.py
+++ b/release/scripts/modules/rigify/leg_biped.py
@@ -201,7 +201,7 @@ def ik(obj, bone_definition, base_names, options):
ik.knee_target_e.local_location = False
# roll the bone to point up... could also point in the same direction as ik.foot_roll
- # ik.foot_roll_02_e.matrix * Vector(0.0, 0.0, 1.0) # ACK!, no rest matrix in editmode
+ # ik.foot_roll_02_e.matrix * Vector((0.0, 0.0, 1.0)) # ACK!, no rest matrix in editmode
ik.foot_roll_01_e.align_roll((0.0, 0.0, -1.0))
bpy.ops.object.mode_set(mode='OBJECT')
@@ -298,7 +298,7 @@ def fk(obj, bone_definition, base_names, options):
ex.thigh_socket_e = copy_bone_simple(arm, mt_chain.thigh, "MCH-%s_socket" % base_names[mt_chain.thigh], parent=True)
ex.thigh_socket = ex.thigh_socket_e.name
- ex.thigh_socket_e.tail = ex.thigh_socket_e.head + Vector(0.0, 0.0, ex.thigh_socket_e.length / 4.0)
+ ex.thigh_socket_e.tail = ex.thigh_socket_e.head + Vector((0.0, 0.0, ex.thigh_socket_e.length / 4.0))
ex.thigh_hinge_e = copy_bone_simple(arm, mt.hips, "MCH-%s_hinge" % base_names[mt_chain.thigh], parent=False)
ex.thigh_hinge = ex.thigh_hinge_e.name
@@ -351,7 +351,7 @@ def fk(obj, bone_definition, base_names, options):
# add driver
hinge_driver_path = fk_chain.thigh_p.path_from_id() + '["hinge"]'
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
var = driver.variables.new()
driver.type = 'AVERAGE'
diff --git a/release/scripts/modules/rigify/leg_quadruped.py b/release/scripts/modules/rigify/leg_quadruped.py
index 3ee9065af61..688387bbd53 100644
--- a/release/scripts/modules/rigify/leg_quadruped.py
+++ b/release/scripts/modules/rigify/leg_quadruped.py
@@ -160,7 +160,7 @@ def ik(obj, bone_definition, base_names, options):
ik.foot_roll_e.parent = ik_chain.foot_e
ik.foot_roll_e.head -= mt_chain.toe_e.vector.normalize() * mt_chain.foot_e.length
ik.foot_roll_e.tail = ik.foot_roll_e.head - (mt_chain.foot_e.vector.normalize() * mt_chain.toe_e.length)
- ik.foot_roll_e.align_roll(mt_chain.foot_e.matrix.rotation_part() * Vector(0.0, 0.0, -1.0))
+ ik.foot_roll_e.align_roll(mt_chain.foot_e.matrix.rotation_part() * Vector((0.0, 0.0, -1.0)))
# MCH-foot
ik.foot_roll_01_e = copy_bone_simple(arm, mt_chain.foot, "MCH-" + base_names[mt_chain.foot])
@@ -213,7 +213,7 @@ def ik(obj, bone_definition, base_names, options):
con = mt_chain.thigh_p.constraints.new('COPY_TRANSFORMS')
con.target = obj
con.subtarget = ik_chain.thigh
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
var = driver.variables.new()
driver.type = 'AVERAGE'
@@ -225,7 +225,7 @@ def ik(obj, bone_definition, base_names, options):
con = mt_chain.shin_p.constraints.new('COPY_TRANSFORMS')
con.target = obj
con.subtarget = ik_chain.shin
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
var = driver.variables.new()
driver.type = 'AVERAGE'
@@ -237,7 +237,7 @@ def ik(obj, bone_definition, base_names, options):
con = mt_chain.foot_p.constraints.new('COPY_TRANSFORMS')
con.target = obj
con.subtarget = ik.foot_roll_02
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
var = driver.variables.new()
driver.type = 'AVERAGE'
@@ -249,7 +249,7 @@ def ik(obj, bone_definition, base_names, options):
con = mt_chain.toe_p.constraints.new('COPY_TRANSFORMS')
con.target = obj
con.subtarget = ik_chain.toe
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
var = driver.variables.new()
driver.type = 'AVERAGE'
@@ -371,7 +371,7 @@ def fk(obj, bone_definition, base_names, options):
hinge_driver_path = pb[fk_chain.thigh].path_from_id() + '["hinge"]'
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
var = driver.variables.new()
driver.type = 'AVERAGE'
diff --git a/release/scripts/modules/rigify/mouth.py b/release/scripts/modules/rigify/mouth.py
index 9d36c60eede..d516a48ec95 100644
--- a/release/scripts/modules/rigify/mouth.py
+++ b/release/scripts/modules/rigify/mouth.py
@@ -77,7 +77,7 @@ def addget_shape_key_driver(obj, name="Key"):
if driver_s.data_path == driver_path:
fcurve = driver_s
if fcurve == None:
- fcurve = obj.data.shape_keys.keys[name].driver_add("value", 0)
+ fcurve = obj.data.shape_keys.keys[name].driver_add("value")
fcurve.driver.type = 'AVERAGE'
new = True
@@ -173,7 +173,7 @@ def deform(obj, definitions, base_names, options):
jopen1 = copy_bone_simple(obj.data, jaw, "MCH-"+base_names[jaw]+".track1", parent=True).name
eb[jopen1].connected = False
eb[jopen1].head = eb[jaw].tail
- eb[jopen1].tail = eb[jopen1].head + Vector(0, 0, eb[jaw].length/4)
+ eb[jopen1].tail = eb[jopen1].head + Vector((0, 0, eb[jaw].length/4))
jopen2 = copy_bone_simple(obj.data, jopen1, "MCH-"+base_names[jaw]+".track2").name
eb[jopen2].parent = eb[jaw]
@@ -427,7 +427,7 @@ def control(obj, definitions, base_names, options):
# Jaw open tracker
jopent = copy_bone_simple(obj.data, jaw_e.name, "MCH-"+base_names[jaw_e.name]+".track", parent=True).name
eb[jopent].connected = False
- eb[jopent].tail = jaw_e.tail + Vector(0,0,jaw_e.length)
+ eb[jopent].tail = jaw_e.tail + Vector((0.0, 0.0, jaw_e.length))
eb[jopent].head = jaw_e.tail
bpy.ops.object.mode_set(mode='OBJECT')
@@ -548,7 +548,7 @@ def control(obj, definitions, base_names, options):
con.minimum = 0.0
con.maximum = 1.0
con.target_space = 'LOCAL'
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
driver.type = 'AVERAGE'
var = driver.variables.new()
@@ -566,7 +566,7 @@ def control(obj, definitions, base_names, options):
con.minimum = 0.0
con.maximum = 1.0
con.target_space = 'LOCAL'
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
driver.type = 'AVERAGE'
var = driver.variables.new()
@@ -584,7 +584,7 @@ def control(obj, definitions, base_names, options):
con.minimum = 0.0
con.maximum = 1.0
con.target_space = 'LOCAL'
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
driver.type = 'AVERAGE'
var = driver.variables.new()
@@ -602,7 +602,7 @@ def control(obj, definitions, base_names, options):
con.minimum = 0.0
con.maximum = 1.0
con.target_space = 'LOCAL'
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
driver.type = 'AVERAGE'
var = driver.variables.new()
@@ -620,7 +620,7 @@ def control(obj, definitions, base_names, options):
con.minimum = 0.0
con.maximum = 1.0
con.target_space = 'LOCAL'
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
driver.type = 'AVERAGE'
var = driver.variables.new()
@@ -638,7 +638,7 @@ def control(obj, definitions, base_names, options):
con.minimum = 0.0
con.maximum = 1.0
con.target_space = 'LOCAL'
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
driver.type = 'AVERAGE'
var = driver.variables.new()
@@ -656,7 +656,7 @@ def control(obj, definitions, base_names, options):
con.minimum = 0.0
con.maximum = 1.0
con.target_space = 'LOCAL'
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
driver.type = 'AVERAGE'
var = driver.variables.new()
@@ -674,7 +674,7 @@ def control(obj, definitions, base_names, options):
con.minimum = 0.0
con.maximum = 1.0
con.target_space = 'LOCAL'
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
driver.type = 'AVERAGE'
var = driver.variables.new()
diff --git a/release/scripts/modules/rigify/neck.py b/release/scripts/modules/rigify/neck.py
index 7d220663256..0d2ab25bcc9 100644
--- a/release/scripts/modules/rigify/neck.py
+++ b/release/scripts/modules/rigify/neck.py
@@ -222,7 +222,7 @@ def main(obj, bone_definition, base_names, options):
hinge_driver_path = pb[neck_ctrl].path_from_id() + '["hinge"]'
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
var = driver.variables.new()
driver.type = 'AVERAGE'
@@ -256,7 +256,7 @@ def main(obj, bone_definition, base_names, options):
hinge_driver_path = pb[head_ctrl].path_from_id() + '["hinge"]'
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
var = driver.variables.new()
driver.type = 'AVERAGE'
@@ -301,7 +301,7 @@ def main(obj, bone_definition, base_names, options):
if i < (len(neck_head)-1):
inf = (i+1) / len(neck_head)
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
var = driver.variables.new()
var.name = "ext"
diff --git a/release/scripts/modules/rigify/neck_flex.py b/release/scripts/modules/rigify/neck_flex.py
index 514d443a1f9..08f963434d1 100644
--- a/release/scripts/modules/rigify/neck_flex.py
+++ b/release/scripts/modules/rigify/neck_flex.py
@@ -176,7 +176,7 @@ def main(obj, bone_definition, base_names, options):
ex.neck_socket_e.connected = False
ex.neck_socket_e.parent = mt.body_e
ex.neck_socket_e.head = mt.head_e.head
- ex.neck_socket_e.tail = mt.head_e.head - Vector(0.0, neck_chain_segment_length / 2.0, 0.0)
+ ex.neck_socket_e.tail = mt.head_e.head - Vector((0.0, neck_chain_segment_length / 2.0, 0.0))
ex.neck_socket_e.roll = 0.0
@@ -239,7 +239,7 @@ def main(obj, bone_definition, base_names, options):
# add driver
hinge_driver_path = ex.head_ctrl_p.path_from_id() + '["hinge"]'
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
var = driver.variables.new()
driver.type = 'AVERAGE'
@@ -259,7 +259,7 @@ def main(obj, bone_definition, base_names, options):
target_names = [("b%.2d" % (i + 1)) for i in range(len(neck_chain))]
ex.head_ctrl_p["bend_tot"] = 0.0
- fcurve = ex.head_ctrl_p.driver_add('["bend_tot"]', 0)
+ fcurve = ex.head_ctrl_p.driver_add('["bend_tot"]')
driver = fcurve.driver
driver.type = 'SUM'
fcurve.modifiers.remove(0) # grr dont need a modifier
@@ -296,7 +296,7 @@ def main(obj, bone_definition, base_names, options):
con.owner_space = 'LOCAL'
con.target_space = 'LOCAL'
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
driver.type = 'SCRIPTED'
driver.expression = "bend/bend_tot"
diff --git a/release/scripts/modules/rigify/palm_curl.py b/release/scripts/modules/rigify/palm_curl.py
index ed656cf2243..2bdd28a348a 100644
--- a/release/scripts/modules/rigify/palm_curl.py
+++ b/release/scripts/modules/rigify/palm_curl.py
@@ -254,7 +254,7 @@ def main(obj, bone_definition, base_names, options):
child_pbone_02 = obj.pose.bones[children[1]].bone
rel_vec = child_pbone_01.head - child_pbone_02.head
- x_vec = child_pbone_01.matrix.rotation_part() * Vector(1.0, 0.0, 0.0)
+ x_vec = child_pbone_01.matrix.rotation_part() * Vector((1.0, 0.0, 0.0))
return degrees(rel_vec.angle(x_vec)) > 90.0
diff --git a/release/scripts/modules/rigify/shape_key_control.py b/release/scripts/modules/rigify/shape_key_control.py
index fd0e900a7b5..ac3987ca7e1 100644
--- a/release/scripts/modules/rigify/shape_key_control.py
+++ b/release/scripts/modules/rigify/shape_key_control.py
@@ -57,7 +57,7 @@ def addget_shape_key_driver(obj, name="Key"):
if driver_s.data_path == driver_path:
fcurve = driver_s
if fcurve == None:
- fcurve = obj.data.shape_keys.keys[name].driver_add("value", 0)
+ fcurve = obj.data.shape_keys.keys[name].driver_add("value")
fcurve.driver.type = 'AVERAGE'
new = True
diff --git a/release/scripts/modules/rigify/shape_key_distance.py b/release/scripts/modules/rigify/shape_key_distance.py
index 68501ac829b..06dd3d67d4b 100644
--- a/release/scripts/modules/rigify/shape_key_distance.py
+++ b/release/scripts/modules/rigify/shape_key_distance.py
@@ -54,7 +54,7 @@ def addget_shape_key_driver(obj, name="Key"):
if driver_s.data_path == driver_path:
fcurve = driver_s
if fcurve == None:
- fcurve = obj.data.shape_keys.keys[name].driver_add("value", 0)
+ fcurve = obj.data.shape_keys.keys[name].driver_add("value")
fcurve.driver.type = 'AVERAGE'
return fcurve
diff --git a/release/scripts/modules/rigify/shape_key_rotdiff.py b/release/scripts/modules/rigify/shape_key_rotdiff.py
index 2c30d95e666..7049bcf74bb 100644
--- a/release/scripts/modules/rigify/shape_key_rotdiff.py
+++ b/release/scripts/modules/rigify/shape_key_rotdiff.py
@@ -54,7 +54,7 @@ def addget_shape_key_driver(obj, name="Key"):
if driver_s.data_path == driver_path:
fcurve = driver_s
if fcurve == None:
- fcurve = obj.data.shape_keys.keys[name].driver_add("value", 0)
+ fcurve = obj.data.shape_keys.keys[name].driver_add("value")
fcurve.driver.type = 'AVERAGE'
return fcurve
diff --git a/release/scripts/modules/rigify/spine_pivot_flex.py b/release/scripts/modules/rigify/spine_pivot_flex.py
index 025074490cb..d3bab72d9a1 100644
--- a/release/scripts/modules/rigify/spine_pivot_flex.py
+++ b/release/scripts/modules/rigify/spine_pivot_flex.py
@@ -177,11 +177,11 @@ def main(obj, bone_definition, base_names, options):
# copy the pelvis, offset to make MCH-spine_rotate and MCH-ribcage_hinge
ex.ribcage_hinge_e = copy_bone_simple(arm, mt.pelvis, "MCH-%s_hinge" % base_names[mt.ribcage])
ex.ribcage_hinge = ex.ribcage_hinge_e.name
- ex.ribcage_hinge_e.translate(Vector(0.0, spine_chain_segment_length / 4.0, 0.0))
+ ex.ribcage_hinge_e.translate(Vector((0.0, spine_chain_segment_length / 4.0, 0.0)))
ex.spine_rotate_e = copy_bone_simple(arm, mt.ribcage, "MCH-%s_rotate" % spine_chain_basename)
ex.spine_rotate = ex.spine_rotate_e.name
- ex.spine_rotate_e.translate(Vector(0.0, spine_chain_segment_length / 2.0, 0.0))
+ ex.spine_rotate_e.translate(Vector((0.0, spine_chain_segment_length / 2.0, 0.0)))
ex.spine_rotate_e.connected = False
ex.spine_rotate_e.parent = ex.pelvis_copy_e
@@ -294,7 +294,7 @@ def main(obj, bone_definition, base_names, options):
con.subtarget = ex.pelvis_copy
# add driver
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
var = driver.variables.new()
driver.type = 'AVERAGE'
@@ -350,7 +350,7 @@ def main(obj, bone_definition, base_names, options):
rib_driver_path = ex.ribcage_copy_p.path_from_id()
ex.ribcage_copy_p["bend_tot"] = 0.0
- fcurve = ex.ribcage_copy_p.driver_add('["bend_tot"]', 0)
+ fcurve = ex.ribcage_copy_p.driver_add('["bend_tot"]')
driver = fcurve.driver
driver.type = 'SUM'
fcurve.modifiers.remove(0) # grr dont need a modifier
@@ -385,7 +385,7 @@ def main(obj, bone_definition, base_names, options):
del spine_p
# add driver
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
driver.type = 'SCRIPTED'
driver.expression = "bend/bend_tot"
@@ -440,7 +440,7 @@ def main(obj, bone_definition, base_names, options):
if i == spine_chain_len:
con.head_tail = 1.0
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
var = driver.variables.new()
driver.type = 'AVERAGE'
diff --git a/release/scripts/modules/rigify/tail_control.py b/release/scripts/modules/rigify/tail_control.py
index 76eaf6dd4d9..47da9778913 100644
--- a/release/scripts/modules/rigify/tail_control.py
+++ b/release/scripts/modules/rigify/tail_control.py
@@ -135,7 +135,7 @@ def main(obj, bone_definitions, base_names, options):
# Add drivers
bone_path = pb[bones[0]].path_from_id()
- driver_fcurve = con_f.driver_add("influence", 0)
+ driver_fcurve = con_f.driver_add("influence")
driver = driver_fcurve.driver
driver.type = 'AVERAGE'
var = driver.variables.new()
@@ -148,7 +148,7 @@ def main(obj, bone_definitions, base_names, options):
mod.coefficients[0] = 1.0
mod.coefficients[1] = -1.0
- driver_fcurve = con_h.driver_add("influence", 0)
+ driver_fcurve = con_h.driver_add("influence")
driver = driver_fcurve.driver
driver.type = 'AVERAGE'
var = driver.variables.new()
diff --git a/release/scripts/modules/rigify/tongue.py b/release/scripts/modules/rigify/tongue.py
index 43a8c2125ce..b6dfe756b71 100644
--- a/release/scripts/modules/rigify/tongue.py
+++ b/release/scripts/modules/rigify/tongue.py
@@ -179,7 +179,7 @@ def main(obj, bone_definition, base_names, options):
ex.neck_socket_e.connected = False
ex.neck_socket_e.parent = mt.body_e
ex.neck_socket_e.head = mt.head_e.head
- ex.neck_socket_e.tail = mt.head_e.head - Vector(0.0, neck_chain_segment_length / 2.0, 0.0)
+ ex.neck_socket_e.tail = mt.head_e.head - Vector((0.0, neck_chain_segment_length / 2.0, 0.0))
ex.neck_socket_e.roll = 0.0
@@ -243,7 +243,7 @@ def main(obj, bone_definition, base_names, options):
# add driver
hinge_driver_path = ex.head_ctrl_p.path_to_id() + '["hinge"]'
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
var = driver.variables.new()
driver.type = 'AVERAGE'
@@ -263,7 +263,7 @@ def main(obj, bone_definition, base_names, options):
target_names = [("b%.2d" % (i + 1)) for i in range(len(neck_chain))]
ex.head_ctrl_p["bend_tot"] = 0.0
- fcurve = ex.head_ctrl_p.driver_add('["bend_tot"]', 0)
+ fcurve = ex.head_ctrl_p.driver_add('["bend_tot"]')
driver = fcurve.driver
driver.type = 'SUM'
fcurve.modifiers.remove(0) # grr dont need a modifier
@@ -308,7 +308,7 @@ def main(obj, bone_definition, base_names, options):
con.owner_space = 'LOCAL'
con.target_space = 'LOCAL'
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
driver.type = 'SCRIPTED'
driver.expression = "bend/bend_tot"
diff --git a/release/scripts/modules/rigify_utils.py b/release/scripts/modules/rigify_utils.py
index 1d5768e7f22..25ab6bebf48 100644
--- a/release/scripts/modules/rigify_utils.py
+++ b/release/scripts/modules/rigify_utils.py
@@ -154,7 +154,7 @@ def blend_bone_list(obj, apply_bones, from_bones, to_bones, target_bone=None, ta
con.target = obj
con.subtarget = to_bone_name
- fcurve = con.driver_add("influence", 0)
+ fcurve = con.driver_add("influence")
driver = fcurve.driver
driver.type = 'AVERAGE'
fcurve.modifiers.remove(0) # grr dont need a modifier
@@ -204,12 +204,12 @@ def add_pole_target_bone(obj, base_bone_name, name, mode='CROSS'):
offset.length = distance
elif mode == 'ZAVERAGE':
# between both bones Z axis
- z_axis_a = base_ebone.matrix.copy().rotation_part() * Vector(0.0, 0.0, -1.0)
- z_axis_b = parent_ebone.matrix.copy().rotation_part() * Vector(0.0, 0.0, -1.0)
+ z_axis_a = base_ebone.matrix.copy().rotation_part() * Vector((0.0, 0.0, -1.0))
+ z_axis_b = parent_ebone.matrix.copy().rotation_part() * Vector((0.0, 0.0, -1.0))
offset = (z_axis_a + z_axis_b).normalize() * distance
else:
# preset axis
- offset = Vector(0, 0, 0)
+ offset = Vector((0.0, 0.0, 0.0))
if mode[0] == "+":
val = distance
else:
diff --git a/release/scripts/modules/rna_info.py b/release/scripts/modules/rna_info.py
index d0a9de329c1..80c61e0a6d9 100644
--- a/release/scripts/modules/rna_info.py
+++ b/release/scripts/modules/rna_info.py
@@ -200,41 +200,41 @@ class InfoPropertyRNA:
if self.type == "enum":
self.enum_items[:] = rna_prop.items.keys()
-
+
+
if self.array_length:
self.default = tuple(getattr(rna_prop, "default_array", ()))
+ else:
+ self.default = getattr(rna_prop, "default", None)
+ self.default_str = "" # fallback
+
+
+ if self.type == "pointer":
+ # pointer has no default, just set as None
+ self.default = None
+ self.default_str = "None"
+ elif self.type == "string":
+ self.default_str = "\"%s\"" % self.default
+ elif self.type == "enum":
+ self.default_str = "'%s'" % self.default
+ elif self.array_length:
self.default_str = ''
# special case for floats
if len(self.default) > 0:
- if type(self.default[0]) is float:
+ if self.type == "float":
self.default_str = "(%s)" % ", ".join([float_as_string(f) for f in self.default])
if not self.default_str:
self.default_str = str(self.default)
else:
- self.default = getattr(rna_prop, "default", "")
- if type(self.default) is float:
+ if self.type == "float":
self.default_str = float_as_string(self.default)
else:
self.default_str = str(self.default)
self.srna = GetInfoStructRNA(rna_prop.srna) # valid for pointer/collections
- def get_default_string(self):
- # pointer has no default, just set as None
- if self.type == "pointer":
- return "None"
- elif self.type == "string":
- return '"' + self.default_str + '"'
- elif self.type == "enum":
- if self.default_str:
- return "'" + self.default_str + "'"
- else:
- return ""
-
- return self.default_str
-
def get_arg_default(self, force=True):
- default = self.get_default_string()
+ default = self.default_str
if default and (force or self.is_required == False):
return "%s=%s" % (self.identifier, default)
return self.identifier
@@ -245,11 +245,18 @@ class InfoPropertyRNA:
type_str += self.type
if self.array_length:
type_str += " array of %d items" % (self.array_length)
-
+
if self.type in ("float", "int"):
type_str += " in [%s, %s]" % (range_str(self.min), range_str(self.max))
elif self.type == "enum":
type_str += " in [%s]" % ', '.join([("'%s'" % s) for s in self.enum_items])
+
+ if not (as_arg or as_ret):
+ # write default property, ignore function args for this
+ if self.type != "pointer":
+ if self.default_str:
+ type_str += ", default %s" % self.default_str
+
else:
if self.type == "collection":
if self.collection_type:
@@ -261,17 +268,22 @@ class InfoPropertyRNA:
type_str += collection_str + (class_fmt % self.fixed_type.identifier)
+ # setup qualifiers for this value.
+ type_info = []
if as_ret:
pass
elif as_arg:
if not self.is_required:
- type_str += ", (optional)"
+ type_info.append("optional")
else: # readonly is only useful for selfs, not args
if self.is_readonly:
- type_str += ", (readonly)"
+ type_info.append("readonly")
if self.is_never_none:
- type_str += ", (never None)"
+ type_info.append("never None")
+
+ if type_info:
+ type_str += (", (%s)" % ", ".join(type_info))
return type_str
@@ -568,6 +580,16 @@ def BuildRNAInfo():
for prop in func.return_values:
prop.build()
+ if 1:
+ for rna_info in InfoStructRNA.global_lookup.values():
+ for prop in rna_info.properties:
+ # ERROR CHECK
+ default = prop.default
+ if type(default) in (float, int):
+ if default < prop.min or default > prop.max:
+ print("\t %s.%s, %s not in [%s - %s]" % (rna_info.identifier, prop.identifier, default, prop.min, prop.max))
+
+
# now for operators
op_mods = dir(bpy.ops)
diff --git a/release/scripts/op/console_python.py b/release/scripts/op/console_python.py
index 99654505c17..87abe0b6f47 100644
--- a/release/scripts/op/console_python.py
+++ b/release/scripts/op/console_python.py
@@ -40,9 +40,9 @@ def get_console(console_id):
'''
from code import InteractiveConsole
- try:
- consoles = get_console.consoles
- except:
+ consoles = getattr(get_console, "consoles", None)
+
+ if consoles is None:
consoles = get_console.consoles = {}
# clear all dead consoles, use text names as IDs
@@ -53,16 +53,17 @@ def get_console(console_id):
del consoles[id]
'''
- try:
- console, stdout, stderr = consoles[console_id]
-
+ console_data = consoles.get(console_id)
+
+ if console_data:
+ console, stdout, stderr = console_data
+
# XXX, bug in python 3.1.2 ?
# seems there is no way to clear StringIO objects for writing, have to make new ones each time.
import io
stdout = io.StringIO()
stderr = io.StringIO()
-
- except:
+ else:
namespace = {'__builtins__': __builtins__, 'bpy': bpy}
console = InteractiveConsole(namespace)
diff --git a/release/scripts/op/image.py b/release/scripts/op/image.py
index 45ccda1396b..9907362502e 100644
--- a/release/scripts/op/image.py
+++ b/release/scripts/op/image.py
@@ -28,7 +28,7 @@ class EditExternally(bpy.types.Operator):
bl_label = "Image Edit Externally"
bl_options = {'REGISTER'}
- path = StringProperty(name="File Path", description="Path to an image file", maxlen= 1024, default= "")
+ path = StringProperty(name="File Path", description="Path to an image file", maxlen=1024, default="")
def _editor_guess(self, context):
import platform
diff --git a/release/scripts/op/sequencer.py b/release/scripts/op/sequencer.py
index c72fa45655e..a542337345c 100644
--- a/release/scripts/op/sequencer.py
+++ b/release/scripts/op/sequencer.py
@@ -98,19 +98,41 @@ class SequencerCutMulticam(bpy.types.Operator):
cfra = context.scene.frame_current
bpy.ops.sequencer.cut(frame=cfra,type='HARD',side='RIGHT')
- for s in context.scene.sequence_editor.sequences:
+ for s in context.scene.sequence_editor.sequences_all:
if s.selected and s.type == 'MULTICAM' and s.frame_final_start <= cfra and cfra < s.frame_final_end:
context.scene.sequence_editor.active_strip = s
context.scene.sequence_editor.active_strip.multicam_source = camera
return {'FINISHED'}
+class SequencerDeinterlaceSelectedMovies(bpy.types.Operator):
+ '''Deinterlace all selected movie sources.'''
+
+ bl_idname = "sequencer.deinterlace_selected_movies"
+ bl_label = "Deinterlace Movies"
+ bl_options = {'REGISTER', 'UNDO'}
+
+ def poll(self, context):
+ if context.scene and context.scene.sequence_editor:
+ return True
+ else:
+ return False
+
+ def execute(self, context):
+ for s in context.scene.sequence_editor.sequences_all:
+ if s.selected and s.type == 'MOVIE':
+ s.de_interlace = True
+
+ return {'FINISHED'}
+
+
def register():
register = bpy.types.register
register(SequencerCrossfadeSounds)
register(SequencerCutMulticam)
+ register(SequencerDeinterlaceSelectedMovies)
def unregister():
@@ -118,6 +140,7 @@ def unregister():
unregister(SequencerCrossfadeSounds)
unregister(SequencerCutMulticam)
+ unregister(SequencerDeinterlaceSelectedMovies)
if __name__ == "__main__":
register()
diff --git a/release/scripts/op/vertexpaint_dirt.py b/release/scripts/op/vertexpaint_dirt.py
index c7b7ee71964..c1521866a56 100644
--- a/release/scripts/op/vertexpaint_dirt.py
+++ b/release/scripts/op/vertexpaint_dirt.py
@@ -69,10 +69,10 @@ def applyVertexDirt(me, blur_iterations, blur_strength, clamp_dirt, clamp_clean,
# normalize the vector by dividing by the number of connected verts
tot_con = len(con[i])
-
+
if tot_con == 0:
continue
-
+
vec /= tot_con
# angle is the acos of the dot product between vert and connected verts normals
diff --git a/release/scripts/ui/properties_data_mesh.py b/release/scripts/ui/properties_data_mesh.py
index a33b4f22368..5321c76679c 100644
--- a/release/scripts/ui/properties_data_mesh.py
+++ b/release/scripts/ui/properties_data_mesh.py
@@ -155,6 +155,9 @@ class DATA_PT_vertex_groups(DataButtonsPanel):
col.operator("object.vertex_group_add", icon='ZOOMIN', text="")
col.operator("object.vertex_group_remove", icon='ZOOMOUT', text="")
col.menu("MESH_MT_vertex_group_specials", icon='DOWNARROW_HLT', text="")
+ if group:
+ col.operator("object.vertex_group_move", icon='TRIA_UP', text="").direction = 'UP'
+ col.operator("object.vertex_group_move", icon='TRIA_DOWN', text="").direction = 'DOWN'
if group:
row = layout.row()
@@ -303,7 +306,7 @@ class DATA_PT_texface(DataButtonsPanel):
ob = context.active_object
rd = context.scene.render
- return (context.mode =='EDIT_MESH') and (rd.engine == 'BLENDER_GAME') and ob and ob.type == 'MESH'
+ return (context.mode == 'EDIT_MESH') and (rd.engine == 'BLENDER_GAME') and ob and ob.type == 'MESH'
def draw(self, context):
layout = self.layout
diff --git a/release/scripts/ui/properties_object.py b/release/scripts/ui/properties_object.py
index 7169d936904..043a0d2434b 100644
--- a/release/scripts/ui/properties_object.py
+++ b/release/scripts/ui/properties_object.py
@@ -155,13 +155,11 @@ class OBJECT_PT_groups(ObjectButtonsPanel):
ob = context.object
wide_ui = context.region.width > narrowui
- if wide_ui:
- split = layout.split()
- split.operator_menu_enum("object.group_add", "group")
- split.label()
- else:
- layout.operator_menu_enum("object.group_add", "group")
+ split = layout.split(percentage=0.8, align=True)
+ split.operator("object.group_link", text="Link to Group")
+ split.operator("object.group_add", text="", icon='ZOOMIN')
+ # XXX, this is bad practice, yes, I wrote it :( - campbell
index = 0
value = str(tuple(context.scene.cursor_location))
for group in bpy.data.groups:
diff --git a/release/scripts/ui/properties_particle.py b/release/scripts/ui/properties_particle.py
index 84b756e6257..6ec396bf7a1 100644
--- a/release/scripts/ui/properties_particle.py
+++ b/release/scripts/ui/properties_particle.py
@@ -389,7 +389,7 @@ class PARTICLE_PT_physics(ParticleButtonsPanel):
row.prop(part, "physics_type", expand=True)
else:
row.prop(part, "physics_type", text="")
-
+
if part.physics_type != 'NO':
row = layout.row()
col = row.column(align=True)
diff --git a/release/scripts/ui/properties_physics_common.py b/release/scripts/ui/properties_physics_common.py
index 025a16894a9..20073c68989 100644
--- a/release/scripts/ui/properties_physics_common.py
+++ b/release/scripts/ui/properties_physics_common.py
@@ -20,6 +20,7 @@
narrowui = 180
+import bpy
def point_cache_ui(self, context, cache, enabled, particles, smoke):
layout = self.layout
@@ -48,12 +49,11 @@ def point_cache_ui(self, context, cache, enabled, particles, smoke):
layout.label(text=cache.info)
else:
layout.prop(cache, "name", text="File Name")
-
+
split = layout.split()
col = split.column(align=True)
-
+
if not particles:
-
col.enabled = enabled
col.prop(cache, "frame_start")
col.prop(cache, "frame_end")
@@ -67,22 +67,24 @@ def point_cache_ui(self, context, cache, enabled, particles, smoke):
sub = col.column()
sub.enabled = enabled
sub.prop(cache, "quick_cache")
- col.prop(cache, "disk_cache")
+
+ sub = col.column()
+ sub.enabled = bpy.data.file_is_saved
+ sub.prop(cache, "disk_cache")
col.label(text=cache.info)
-
layout.separator()
-
+
split = layout.split()
-
+
col = split.column()
-
+
if cache.baked == True:
col.operator("ptcache.free_bake", text="Free Bake")
else:
col.operator("ptcache.bake", text="Bake").bake = True
-
+
sub = col.row()
sub.enabled = (cache.frames_skipped or cache.outdated) and enabled
sub.operator("ptcache.bake", text="Calculate To Frame").bake = False
@@ -90,8 +92,8 @@ def point_cache_ui(self, context, cache, enabled, particles, smoke):
sub = col.column()
sub.enabled = enabled
sub.operator("ptcache.bake_from_cache", text="Current Cache to Bake")
-
-
+
+
if wide_ui:
col = split.column()
col.operator("ptcache.bake_all", text="Bake All Dynamics").bake = True
diff --git a/release/scripts/ui/properties_render.py b/release/scripts/ui/properties_render.py
index abed887610f..f1c8ba0ac62 100644
--- a/release/scripts/ui/properties_render.py
+++ b/release/scripts/ui/properties_render.py
@@ -106,7 +106,6 @@ class RENDER_PT_layers(RenderButtonsPanel):
col.label(text="Mask Layers:")
col.prop(rl, "zmask_layers", text="")
-
layout.separator()
layout.label(text="Include:")
diff --git a/release/scripts/ui/properties_texture.py b/release/scripts/ui/properties_texture.py
index d537b5c29c2..07a097cfd3a 100644
--- a/release/scripts/ui/properties_texture.py
+++ b/release/scripts/ui/properties_texture.py
@@ -47,6 +47,7 @@ class TEXTURE_MT_envmap_specials(bpy.types.Menu):
from properties_material import active_node_mat
+
def context_tex_datablock(context):
idblock = context.material
if idblock:
@@ -71,7 +72,8 @@ class TextureButtonsPanel(bpy.types.Panel):
def poll(self, context):
tex = context.texture
- if not tex or tex == None: return False
+ if not tex:
+ return False
engine = context.scene.render.engine
return (tex.type != 'NONE' or tex.use_nodes) and (engine in self.COMPAT_ENGINES)
@@ -102,7 +104,7 @@ class TEXTURE_PT_context_texture(TextureButtonsPanel):
engine = context.scene.render.engine
if not hasattr(context, "texture_slot"):
return False
- return ((context.material or context.world or context.lamp or context.brush or context.texture)
+ return ((context.material or context.world or context.lamp or context.brush or context.texture)
and (engine in self.COMPAT_ENGINES))
def draw(self, context):
@@ -212,7 +214,7 @@ class TextureSlotPanel(TextureButtonsPanel):
def poll(self, context):
if not hasattr(context, "texture_slot"):
return False
-
+
engine = context.scene.render.engine
return TextureButtonsPanel.poll(self, context) and (engine in self.COMPAT_ENGINES)
@@ -228,7 +230,7 @@ class TEXTURE_PT_mapping(TextureSlotPanel):
if not getattr(context, "texture_slot", None):
return False
-
+
engine = context.scene.render.engine
return (engine in self.COMPAT_ENGINES)
@@ -277,7 +279,7 @@ class TEXTURE_PT_mapping(TextureSlotPanel):
row = layout.row()
row.active = tex.map_mode in ('FIXED', 'TILED')
row.prop(tex, "angle")
-
+
row = layout.row()
row.active = tex.map_mode in ('TILED', '3D')
row.column().prop(tex, "size")
diff --git a/release/scripts/ui/space_image.py b/release/scripts/ui/space_image.py
index 7f595207f53..dd07f7b66f8 100644
--- a/release/scripts/ui/space_image.py
+++ b/release/scripts/ui/space_image.py
@@ -471,7 +471,7 @@ class IMAGE_PT_scope_sample(bpy.types.Panel):
def poll(self, context):
sima = context.space_data
- return sima
+ return sima
def draw(self, context):
layout = self.layout
diff --git a/release/scripts/ui/space_info.py b/release/scripts/ui/space_info.py
index 12734f0a931..0cd92bb91fd 100644
--- a/release/scripts/ui/space_info.py
+++ b/release/scripts/ui/space_info.py
@@ -85,7 +85,7 @@ class INFO_MT_file(bpy.types.Menu):
layout.operator_context = 'INVOKE_AREA'
layout.operator("wm.open_mainfile", text="Open...", icon='FILE_FOLDER')
layout.menu("INFO_MT_file_open_recent")
- layout.operator("wm.recover_last_session")
+ layout.operator("wm.recover_last_session", icon='RECOVER_LAST')
layout.operator("wm.recover_auto_save", text="Recover Auto Save...")
layout.separator()
diff --git a/release/scripts/ui/space_outliner.py b/release/scripts/ui/space_outliner.py
index a0f8f41f58a..ec3c430feaa 100644
--- a/release/scripts/ui/space_outliner.py
+++ b/release/scripts/ui/space_outliner.py
@@ -85,6 +85,7 @@ class OUTLINER_MT_view(bpy.types.Menu):
layout.operator("screen.area_dupli")
layout.operator("screen.screen_full_area")
+
class OUTLINER_MT_search(bpy.types.Menu):
bl_label = "Search"
@@ -98,6 +99,7 @@ class OUTLINER_MT_search(bpy.types.Menu):
col.prop(space, "match_case_sensitive")
col.prop(space, "match_complete")
+
class OUTLINER_MT_edit_datablocks(bpy.types.Menu):
bl_label = "Edit"
@@ -118,7 +120,7 @@ class OUTLINER_MT_edit_datablocks(bpy.types.Menu):
classes = [
OUTLINER_HT_header,
OUTLINER_MT_view,
- OUTLINER_MT_search,
+ OUTLINER_MT_search,
OUTLINER_MT_edit_datablocks]
diff --git a/release/scripts/ui/space_sequencer.py b/release/scripts/ui/space_sequencer.py
index d928f40250e..ca31e134e59 100644
--- a/release/scripts/ui/space_sequencer.py
+++ b/release/scripts/ui/space_sequencer.py
@@ -236,6 +236,7 @@ class SEQUENCER_MT_strip(bpy.types.Menu):
layout.operator("sequencer.cut", text="Cut (hard) at frame").type = 'HARD'
layout.operator("sequencer.cut", text="Cut (soft) at frame").type = 'SOFT'
layout.operator("sequencer.images_separate")
+ layout.operator("sequencer.deinterlace_selected_movies")
layout.separator()
layout.operator("sequencer.duplicate")
@@ -446,7 +447,7 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel):
elif strip.type == 'TRANSFORM':
self.draw_panel_transform(strip)
-
+
elif strip.type == "MULTICAM":
layout.prop(strip, "multicam_source")
@@ -518,7 +519,7 @@ class SEQUENCER_PT_input(SequencerButtonsPanel):
'CROSS', 'GAMMA_CROSS', 'MULTIPLY', 'OVER_DROP',
'PLUGIN',
'WIPE', 'GLOW', 'TRANSFORM', 'COLOR',
- 'MULTICAM','SPEED')
+ 'MULTICAM', 'SPEED')
def draw_filename(self, context):
pass
@@ -611,6 +612,7 @@ class SEQUENCER_PT_input_image(SEQUENCER_PT_input):
col = split.column()
col.prop(elem, "filename", text="") # strip.elements[0] could be a fallback
+
class SEQUENCER_PT_input_secondary(SEQUENCER_PT_input):
bl_label = "Strip Input"
@@ -627,6 +629,7 @@ class SEQUENCER_PT_input_secondary(SEQUENCER_PT_input):
def draw_filename(self, context):
pass
+
class SEQUENCER_PT_sound(SequencerButtonsPanel):
bl_label = "Sound"
diff --git a/release/scripts/ui/space_time.py b/release/scripts/ui/space_time.py
index 7417b9659b2..00bdcf785fa 100644
--- a/release/scripts/ui/space_time.py
+++ b/release/scripts/ui/space_time.py
@@ -39,7 +39,7 @@ class TIME_HT_header(bpy.types.Header):
sub.menu("TIME_MT_frame")
sub.menu("TIME_MT_playback")
- layout.prop(scene, "use_preview_range", text="PR")
+ layout.prop(scene, "use_preview_range", text="", toggle=True)
row = layout.row(align=True)
if not scene.use_preview_range:
@@ -67,7 +67,7 @@ class TIME_HT_header(bpy.types.Header):
row.operator("screen.frame_jump", text="", icon='FF').end = True
row = layout.row(align=True)
- row.prop(tools, "use_auto_keying", text="", toggle=True, icon='REC')
+ row.prop(tools, "use_auto_keying", text="", toggle=True)
if screen.animation_playing and tools.use_auto_keying:
subsub = row.row()
subsub.prop(tools, "record_with_nla", toggle=True)
diff --git a/release/scripts/ui/space_userpref_keymap.py b/release/scripts/ui/space_userpref_keymap.py
index 4f440729e9d..961b138ab7e 100644
--- a/release/scripts/ui/space_userpref_keymap.py
+++ b/release/scripts/ui/space_userpref_keymap.py
@@ -92,7 +92,7 @@ KM_HIERARCHY = [
]),
('Property Editor', 'PROPERTIES', 'WINDOW', []), # align context menu
-
+
('Script', 'SCRIPTS_WINDOW', 'WINDOW', []),
('Text', 'TEXT_EDITOR', 'WINDOW', []),
('Console', 'CONSOLE', 'WINDOW', []),
@@ -107,19 +107,22 @@ KM_HIERARCHY = [
('View3D Zoom Modal', 'EMPTY', 'WINDOW', []),
]
+
def _km_exists_in(km, export_keymaps):
for km2, kc in export_keymaps:
if km2.name == km.name:
return True
return False
-# kc1 takes priority over kc2
+
def _merge_keymaps(kc1, kc2):
+ """ note: kc1 takes priority over kc2
+ """
merged_keymaps = [(km, kc1) for km in kc1.keymaps]
if kc1 != kc2:
merged_keymaps.extend([(km, kc2) for km in kc2.keymaps if not _km_exists_in(km, merged_keymaps)])
-
- return merged_keymaps
+
+ return merged_keymaps
class InputKeyMapPanel(bpy.types.Panel):
diff --git a/release/scripts/ui/space_view3d.py b/release/scripts/ui/space_view3d.py
index 16e4141e2ff..7b78d6c4299 100644
--- a/release/scripts/ui/space_view3d.py
+++ b/release/scripts/ui/space_view3d.py
@@ -993,8 +993,8 @@ class VIEW3D_MT_particle_specials(bpy.types.Menu):
layout.separator()
if particle_edit.selection_mode == 'POINT':
layout.operator("particle.subdivide")
- layout.operator("particle.select_first")
- layout.operator("particle.select_last")
+ layout.operator("particle.select_roots")
+ layout.operator("particle.select_tips")
layout.operator("particle.remove_doubles")