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/startup/bl_ui')
-rw-r--r--release/scripts/startup/bl_ui/properties_animviz.py4
-rw-r--r--release/scripts/startup/bl_ui/properties_constraint.py4
-rw-r--r--release/scripts/startup/bl_ui/properties_data_armature.py14
-rw-r--r--release/scripts/startup/bl_ui/properties_data_camera.py2
-rw-r--r--release/scripts/startup/bl_ui/properties_data_curve.py4
-rw-r--r--release/scripts/startup/bl_ui/properties_data_lamp.py4
-rw-r--r--release/scripts/startup/bl_ui/properties_data_metaball.py2
-rw-r--r--release/scripts/startup/bl_ui/properties_data_modifier.py2
-rw-r--r--release/scripts/startup/bl_ui/properties_game.py4
-rw-r--r--release/scripts/startup/bl_ui/properties_grease_pencil_common.py8
-rw-r--r--release/scripts/startup/bl_ui/properties_material.py7
-rw-r--r--release/scripts/startup/bl_ui/properties_object.py2
-rw-r--r--release/scripts/startup/bl_ui/properties_particle.py12
-rw-r--r--release/scripts/startup/bl_ui/properties_physics_dynamicpaint.py4
-rw-r--r--release/scripts/startup/bl_ui/properties_physics_field.py2
-rw-r--r--release/scripts/startup/bl_ui/properties_physics_smoke.py6
-rw-r--r--release/scripts/startup/bl_ui/properties_physics_softbody.py2
-rw-r--r--release/scripts/startup/bl_ui/properties_texture.py22
-rw-r--r--release/scripts/startup/bl_ui/properties_world.py2
-rw-r--r--release/scripts/startup/bl_ui/space_clip.py1
-rw-r--r--release/scripts/startup/bl_ui/space_image.py7
-rw-r--r--release/scripts/startup/bl_ui/space_node.py1
-rw-r--r--release/scripts/startup/bl_ui/space_sequencer.py180
-rw-r--r--release/scripts/startup/bl_ui/space_time.py2
-rw-r--r--release/scripts/startup/bl_ui/space_userpref.py6
-rw-r--r--release/scripts/startup/bl_ui/space_view3d.py21
-rw-r--r--release/scripts/startup/bl_ui/space_view3d_toolbar.py38
27 files changed, 200 insertions, 163 deletions
diff --git a/release/scripts/startup/bl_ui/properties_animviz.py b/release/scripts/startup/bl_ui/properties_animviz.py
index 84bae18dd6f..43c01822b58 100644
--- a/release/scripts/startup/bl_ui/properties_animviz.py
+++ b/release/scripts/startup/bl_ui/properties_animviz.py
@@ -37,7 +37,7 @@ class MotionPathButtonsPanel:
mps = avs.motion_path
# Display Range
- layout.prop(mps, "type", expand=True)
+ layout.row().prop(mps, "type", expand=True)
split = layout.split()
@@ -120,7 +120,7 @@ class OnionSkinButtonsPanel:
arm = context.armature
- layout.prop(arm, "ghost_type", expand=True)
+ layout.row().prop(arm, "ghost_type", expand=True)
split = layout.split()
diff --git a/release/scripts/startup/bl_ui/properties_constraint.py b/release/scripts/startup/bl_ui/properties_constraint.py
index 00892d5f85b..9b61101778f 100644
--- a/release/scripts/startup/bl_ui/properties_constraint.py
+++ b/release/scripts/startup/bl_ui/properties_constraint.py
@@ -886,10 +886,10 @@ class ConstraintButtonsPanel:
box.template_cache_file(con, "cache_file")
cache_file = con.cache_file
-
+
layout.label(text="Constraint Properties:")
box = layout.box()
-
+
if cache_file is not None:
box.prop_search(con, "object_path", cache_file, "object_paths")
diff --git a/release/scripts/startup/bl_ui/properties_data_armature.py b/release/scripts/startup/bl_ui/properties_data_armature.py
index a2ecf984eb5..ae52ab916f1 100644
--- a/release/scripts/startup/bl_ui/properties_data_armature.py
+++ b/release/scripts/startup/bl_ui/properties_data_armature.py
@@ -57,7 +57,7 @@ class DATA_PT_skeleton(ArmatureButtonsPanel, Panel):
arm = context.armature
- layout.prop(arm, "pose_position", expand=True)
+ layout.row().prop(arm, "pose_position", expand=True)
col = layout.column()
col.label(text="Layers:")
@@ -80,7 +80,7 @@ class DATA_PT_display(ArmatureButtonsPanel, Panel):
ob = context.object
arm = context.armature
- layout.prop(arm, "draw_type", expand=True)
+ layout.row().prop(arm, "draw_type", expand=True)
split = layout.split()
@@ -178,6 +178,10 @@ class DATA_PT_pose_library(ArmatureButtonsPanel, Panel):
layout.template_ID(ob, "pose_library", new="poselib.new", unlink="poselib.unlink")
if poselib:
+ # warning about poselib being in an invalid state
+ if len(poselib.fcurves) > 0 and len(poselib.pose_markers) == 0:
+ layout.label(icon='ERROR', text="Error: Potentially corrupt library, run 'Sanitize' operator to fix")
+
# list of poses in pose library
row = layout.row()
row.template_list("UI_UL_list", "pose_markers", poselib, "pose_markers",
@@ -215,7 +219,7 @@ class DATA_PT_ghost(ArmatureButtonsPanel, Panel):
arm = context.armature
- layout.prop(arm, "ghost_type", expand=True)
+ layout.row().prop(arm, "ghost_type", expand=True)
split = layout.split()
@@ -252,11 +256,11 @@ class DATA_PT_iksolver_itasc(ArmatureButtonsPanel, Panel):
layout.prop(ob.pose, "ik_solver")
if itasc:
- layout.prop(itasc, "mode", expand=True)
+ layout.row().prop(itasc, "mode", expand=True)
simulation = (itasc.mode == 'SIMULATION')
if simulation:
layout.label(text="Reiteration:")
- layout.prop(itasc, "reiteration_method", expand=True)
+ layout.row().prop(itasc, "reiteration_method", expand=True)
row = layout.row()
row.active = not simulation or itasc.reiteration_method != 'NEVER'
diff --git a/release/scripts/startup/bl_ui/properties_data_camera.py b/release/scripts/startup/bl_ui/properties_data_camera.py
index 101062095c4..14286045704 100644
--- a/release/scripts/startup/bl_ui/properties_data_camera.py
+++ b/release/scripts/startup/bl_ui/properties_data_camera.py
@@ -79,7 +79,7 @@ class DATA_PT_lens(CameraButtonsPanel, Panel):
cam = context.camera
- layout.prop(cam, "type", expand=True)
+ layout.row().prop(cam, "type", expand=True)
split = layout.split()
diff --git a/release/scripts/startup/bl_ui/properties_data_curve.py b/release/scripts/startup/bl_ui/properties_data_curve.py
index c3c37b61457..522f488226e 100644
--- a/release/scripts/startup/bl_ui/properties_data_curve.py
+++ b/release/scripts/startup/bl_ui/properties_data_curve.py
@@ -376,10 +376,10 @@ class DATA_PT_paragraph(CurveButtonsPanelText, Panel):
text = context.curve
layout.label(text="Horizontal Alignment:")
- layout.prop(text, "align_x", expand=True)
+ layout.row().prop(text, "align_x", expand=True)
layout.label(text="Vertical Alignment:")
- layout.prop(text, "align_y", expand=True)
+ layout.row().prop(text, "align_y", expand=True)
split = layout.split()
diff --git a/release/scripts/startup/bl_ui/properties_data_lamp.py b/release/scripts/startup/bl_ui/properties_data_lamp.py
index f913ef51381..98aa31ac915 100644
--- a/release/scripts/startup/bl_ui/properties_data_lamp.py
+++ b/release/scripts/startup/bl_ui/properties_data_lamp.py
@@ -83,7 +83,7 @@ class DATA_PT_lamp(DataButtonsPanel, Panel):
lamp = context.lamp
- layout.prop(lamp, "type", expand=True)
+ layout.row().prop(lamp, "type", expand=True)
split = layout.split()
@@ -210,7 +210,7 @@ class DATA_PT_shadow(DataButtonsPanel, Panel):
lamp = context.lamp
- layout.prop(lamp, "shadow_method", expand=True)
+ layout.row().prop(lamp, "shadow_method", expand=True)
if lamp.shadow_method == 'NOSHADOW' and lamp.type == 'AREA':
split = layout.split()
diff --git a/release/scripts/startup/bl_ui/properties_data_metaball.py b/release/scripts/startup/bl_ui/properties_data_metaball.py
index a621dc7210f..dd62c4523b1 100644
--- a/release/scripts/startup/bl_ui/properties_data_metaball.py
+++ b/release/scripts/startup/bl_ui/properties_data_metaball.py
@@ -70,7 +70,7 @@ class DATA_PT_metaball(DataButtonsPanel, Panel):
col.prop(mball, "threshold", text="Threshold")
layout.label(text="Update:")
- layout.prop(mball, "update_method", expand=True)
+ layout.row().prop(mball, "update_method", expand=True)
class DATA_PT_mball_texture_space(DataButtonsPanel, Panel):
diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py
index a37d61dd0af..d72855fab6b 100644
--- a/release/scripts/startup/bl_ui/properties_data_modifier.py
+++ b/release/scripts/startup/bl_ui/properties_data_modifier.py
@@ -969,11 +969,11 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
layout.separator()
col = layout.column()
- col.active = md.target is not None
if md.is_bound:
col.operator("object.surfacedeform_bind", text="Unbind")
else:
+ col.active = md.target is not None
col.operator("object.surfacedeform_bind", text="Bind")
def UV_PROJECT(self, layout, ob, md):
diff --git a/release/scripts/startup/bl_ui/properties_game.py b/release/scripts/startup/bl_ui/properties_game.py
index 46b34373aa5..636a9707ab9 100644
--- a/release/scripts/startup/bl_ui/properties_game.py
+++ b/release/scripts/startup/bl_ui/properties_game.py
@@ -343,7 +343,7 @@ class RENDER_PT_game_stereo(RenderButtonsPanel, Panel):
stereo_mode = gs.stereo
# stereo options:
- layout.prop(gs, "stereo", expand=True)
+ layout.row().prop(gs, "stereo", expand=True)
# stereo:
if stereo_mode == 'STEREO':
@@ -392,7 +392,7 @@ class RENDER_PT_game_shading(RenderButtonsPanel, Panel):
gs = context.scene.game_settings
- layout.prop(gs, "material_mode", expand=True)
+ layout.row().prop(gs, "material_mode", expand=True)
if gs.material_mode == 'GLSL':
split = layout.split()
diff --git a/release/scripts/startup/bl_ui/properties_grease_pencil_common.py b/release/scripts/startup/bl_ui/properties_grease_pencil_common.py
index 42e8d5272b3..52835a00796 100644
--- a/release/scripts/startup/bl_ui/properties_grease_pencil_common.py
+++ b/release/scripts/startup/bl_ui/properties_grease_pencil_common.py
@@ -233,7 +233,7 @@ class GreasePencilStrokeEditPanel:
if is_3d_view:
layout.separator()
-
+
layout.separator()
col = layout.column(align=True)
@@ -884,9 +884,9 @@ class GreasePencilDataPanel:
# Owner Selector
if context.space_data.type == 'VIEW_3D':
- layout.prop(context.tool_settings, "grease_pencil_source", expand=True)
+ layout.row().prop(context.tool_settings, "grease_pencil_source", expand=True)
elif context.space_data.type == 'CLIP_EDITOR':
- layout.prop(context.space_data, "grease_pencil_source", expand=True)
+ layout.row().prop(context.space_data, "grease_pencil_source", expand=True)
# Grease Pencil data selector
layout.template_ID(gpd_owner, "grease_pencil", new="gpencil.data_add", unlink="gpencil.data_unlink")
@@ -963,7 +963,7 @@ class GreasePencilDataPanel:
row.prop(gpl, "line_change", text="Thickness Change", slider=True)
row.operator("gpencil.stroke_apply_thickness", icon='STYLUS_PRESSURE', text="")
- # Parenting
+ # Parenting
if context.space_data.type == 'VIEW_3D':
col = split.column(align=True)
col.label(text="Parent:")
diff --git a/release/scripts/startup/bl_ui/properties_material.py b/release/scripts/startup/bl_ui/properties_material.py
index 06ae1847d06..73740df37e8 100644
--- a/release/scripts/startup/bl_ui/properties_material.py
+++ b/release/scripts/startup/bl_ui/properties_material.py
@@ -124,9 +124,10 @@ class MATERIAL_PT_context_material(MaterialButtonsPanel, Panel):
ob = context.object
slot = context.material_slot
space = context.space_data
- is_sortable = (len(ob.material_slots) > 1)
if ob:
+ is_sortable = (len(ob.material_slots) > 1)
+
rows = 1
if is_sortable:
rows = 4
@@ -170,7 +171,7 @@ class MATERIAL_PT_context_material(MaterialButtonsPanel, Panel):
split.separator()
if mat:
- layout.prop(mat, "type", expand=True)
+ layout.row().prop(mat, "type", expand=True)
if mat.use_nodes:
row = layout.row()
row.label(text="", icon='NODETREE')
@@ -991,7 +992,7 @@ class MATERIAL_PT_volume_transp(VolumeButtonsPanel, Panel):
mat = context.material # don't use node material
- layout.prop(mat, "transparency_method", expand=True)
+ layout.row().prop(mat, "transparency_method", expand=True)
class MATERIAL_PT_volume_integration(VolumeButtonsPanel, Panel):
diff --git a/release/scripts/startup/bl_ui/properties_object.py b/release/scripts/startup/bl_ui/properties_object.py
index d7e18f81232..43c8300b558 100644
--- a/release/scripts/startup/bl_ui/properties_object.py
+++ b/release/scripts/startup/bl_ui/properties_object.py
@@ -294,7 +294,7 @@ class OBJECT_PT_duplication(ObjectButtonsPanel, Panel):
ob = context.object
- layout.prop(ob, "dupli_type", expand=True)
+ layout.row().prop(ob, "dupli_type", expand=True)
if ob.dupli_type == 'FRAMES':
split = layout.split()
diff --git a/release/scripts/startup/bl_ui/properties_particle.py b/release/scripts/startup/bl_ui/properties_particle.py
index 2c27c68ed9d..23e7c0a6787 100644
--- a/release/scripts/startup/bl_ui/properties_particle.py
+++ b/release/scripts/startup/bl_ui/properties_particle.py
@@ -284,7 +284,7 @@ class PARTICLE_PT_emission(ParticleButtonsPanel, Panel):
col.prop(part, "lifetime_random", slider=True)
layout.label(text="Emit From:")
- layout.prop(part, "emit_from", expand=True)
+ layout.row().prop(part, "emit_from", expand=True)
row = layout.row()
if part.emit_from == 'VERT':
@@ -297,7 +297,7 @@ class PARTICLE_PT_emission(ParticleButtonsPanel, Panel):
row.prop(part, "use_even_distribution")
if part.emit_from == 'FACE' or part.emit_from == 'VOLUME':
- layout.prop(part, "distribution", expand=True)
+ layout.row().prop(part, "distribution", expand=True)
row = layout.row()
if part.distribution == 'JIT':
@@ -312,7 +312,7 @@ class PARTICLE_PT_emission(ParticleButtonsPanel, Panel):
class PARTICLE_PT_hair_dynamics(ParticleButtonsPanel, Panel):
- bl_label = "Hair dynamics"
+ bl_label = "Hair Dynamics"
bl_options = {'DEFAULT_CLOSED'}
COMPAT_ENGINES = {'BLENDER_RENDER'}
@@ -578,7 +578,7 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, Panel):
layout.enabled = particle_panel_enabled(context, psys)
- layout.prop(part, "physics_type", expand=True)
+ layout.row().prop(part, "physics_type", expand=True)
row = layout.row()
col = row.column(align=True)
@@ -785,7 +785,7 @@ class PARTICLE_PT_physics(ParticleButtonsPanel, Panel):
sub.prop(key, "object", text="")
sub.prop(key, "system", text="System")
- layout.prop(key, "alliance", expand=True)
+ layout.row().prop(key, "alliance", expand=True)
elif part.physics_type == 'FLUID':
sub = row.row()
# doesn't work yet
@@ -933,7 +933,7 @@ class PARTICLE_PT_render(ParticleButtonsPanel, Panel):
col.prop(part, "show_unborn")
col.prop(part, "use_dead")
- layout.prop(part, "render_type", expand=True)
+ layout.row().prop(part, "render_type", expand=True)
split = layout.split()
diff --git a/release/scripts/startup/bl_ui/properties_physics_dynamicpaint.py b/release/scripts/startup/bl_ui/properties_physics_dynamicpaint.py
index c813350be08..cf1d4f38038 100644
--- a/release/scripts/startup/bl_ui/properties_physics_dynamicpaint.py
+++ b/release/scripts/startup/bl_ui/properties_physics_dynamicpaint.py
@@ -68,7 +68,7 @@ class PHYSICS_PT_dynamic_paint(PhysicButtonsPanel, Panel):
md = context.dynamic_paint
- layout.prop(md, "ui_type", expand=True)
+ layout.row().prop(md, "ui_type", expand=True)
if md.ui_type == 'CANVAS':
canvas = md.canvas_settings
@@ -363,7 +363,7 @@ class PHYSICS_PT_dp_effects(PhysicButtonsPanel, Panel):
canvas = context.dynamic_paint.canvas_settings
surface = canvas.canvas_surfaces.active
- layout.prop(surface, "effect_ui", expand=True)
+ layout.row().prop(surface, "effect_ui", expand=True)
if surface.effect_ui == 'SPREAD':
layout.prop(surface, "use_spread")
diff --git a/release/scripts/startup/bl_ui/properties_physics_field.py b/release/scripts/startup/bl_ui/properties_physics_field.py
index 2b12fcf982d..3fd47f0b8ca 100644
--- a/release/scripts/startup/bl_ui/properties_physics_field.py
+++ b/release/scripts/startup/bl_ui/properties_physics_field.py
@@ -128,7 +128,7 @@ class PHYSICS_PT_field(PhysicButtonsPanel, Panel):
if field.type not in {'NONE', 'GUIDE'}:
layout.label(text="Falloff:")
- layout.prop(field, "falloff_type", expand=True)
+ layout.row().prop(field, "falloff_type", expand=True)
basic_force_field_falloff_ui(self, context, field)
diff --git a/release/scripts/startup/bl_ui/properties_physics_smoke.py b/release/scripts/startup/bl_ui/properties_physics_smoke.py
index f2e6c1e22e3..4f0d3680834 100644
--- a/release/scripts/startup/bl_ui/properties_physics_smoke.py
+++ b/release/scripts/startup/bl_ui/properties_physics_smoke.py
@@ -52,7 +52,7 @@ class PHYSICS_PT_smoke(PhysicButtonsPanel, Panel):
md = context.smoke
ob = context.object
- layout.prop(md, "smoke_type", expand=True)
+ layout.row().prop(md, "smoke_type", expand=True)
if md.smoke_type == 'DOMAIN':
domain = md.domain_settings
@@ -322,14 +322,14 @@ class PHYSICS_PT_smoke_cache(PhysicButtonsPanel, Panel):
if cache_file_format == 'POINTCACHE':
layout.label(text="Compression:")
- layout.prop(domain, "point_cache_compress_type", expand=True)
+ layout.row().prop(domain, "point_cache_compress_type", expand=True)
elif cache_file_format == 'OPENVDB':
if not bpy.app.build_options.openvdb:
layout.label("Built without OpenVDB support")
return
layout.label(text="Compression:")
- layout.prop(domain, "openvdb_cache_compress_type", expand=True)
+ layout.row().prop(domain, "openvdb_cache_compress_type", expand=True)
row = layout.row()
row.label("Data Depth:")
row.prop(domain, "data_depth", expand=True, text="Data Depth")
diff --git a/release/scripts/startup/bl_ui/properties_physics_softbody.py b/release/scripts/startup/bl_ui/properties_physics_softbody.py
index 5960428e4ae..5ce4302891d 100644
--- a/release/scripts/startup/bl_ui/properties_physics_softbody.py
+++ b/release/scripts/startup/bl_ui/properties_physics_softbody.py
@@ -191,7 +191,7 @@ class PHYSICS_PT_softbody_collision(PhysicButtonsPanel, Panel):
layout.active = softbody.use_self_collision and softbody_panel_enabled(md)
layout.label(text="Collision Ball Size Calculation:")
- layout.prop(softbody, "collision_type", expand=True)
+ layout.row().prop(softbody, "collision_type", expand=True)
col = layout.column(align=True)
col.label(text="Ball:")
diff --git a/release/scripts/startup/bl_ui/properties_texture.py b/release/scripts/startup/bl_ui/properties_texture.py
index d05527b7ef6..880684997bf 100644
--- a/release/scripts/startup/bl_ui/properties_texture.py
+++ b/release/scripts/startup/bl_ui/properties_texture.py
@@ -165,7 +165,7 @@ class TEXTURE_PT_context_texture(TextureButtonsPanel, Panel):
pin_id = None
if not space.use_pin_id:
- layout.prop(space, "texture_context", expand=True)
+ layout.row().prop(space, "texture_context", expand=True)
pin_id = None
if space.texture_context == 'OTHER':
@@ -318,9 +318,9 @@ class TEXTURE_PT_clouds(TextureTypePanel, Panel):
tex = context.texture
- layout.prop(tex, "cloud_type", expand=True)
+ layout.row().prop(tex, "cloud_type", expand=True)
layout.label(text="Noise:")
- layout.prop(tex, "noise_type", text="Type", expand=True)
+ layout.row().prop(tex, "noise_type", text="Type", expand=True)
layout.prop(tex, "noise_basis", text="Basis")
split = layout.split()
@@ -342,8 +342,8 @@ class TEXTURE_PT_wood(TextureTypePanel, Panel):
tex = context.texture
- layout.prop(tex, "noise_basis_2", expand=True)
- layout.prop(tex, "wood_type", expand=True)
+ layout.row().prop(tex, "noise_basis_2", expand=True)
+ layout.row().prop(tex, "wood_type", expand=True)
col = layout.column()
col.active = tex.wood_type in {'RINGNOISE', 'BANDNOISE'}
@@ -371,10 +371,10 @@ class TEXTURE_PT_marble(TextureTypePanel, Panel):
tex = context.texture
- layout.prop(tex, "marble_type", expand=True)
- layout.prop(tex, "noise_basis_2", expand=True)
+ layout.row().prop(tex, "marble_type", expand=True)
+ layout.row().prop(tex, "noise_basis_2", expand=True)
layout.label(text="Noise:")
- layout.prop(tex, "noise_type", text="Type", expand=True)
+ layout.row().prop(tex, "noise_type", text="Type", expand=True)
layout.prop(tex, "noise_basis", text="Basis")
split = layout.split()
@@ -431,9 +431,9 @@ class TEXTURE_PT_stucci(TextureTypePanel, Panel):
tex = context.texture
- layout.prop(tex, "stucci_type", expand=True)
+ layout.row().prop(tex, "stucci_type", expand=True)
layout.label(text="Noise:")
- layout.prop(tex, "noise_type", text="Type", expand=True)
+ layout.row().prop(tex, "noise_type", text="Type", expand=True)
layout.prop(tex, "noise_basis", text="Basis")
row = layout.row()
@@ -808,7 +808,7 @@ class TEXTURE_PT_pointdensity(TextureButtonsPanel, Panel):
tex = context.texture
pd = tex.point_density
- layout.prop(pd, "point_source", expand=True)
+ layout.row().prop(pd, "point_source", expand=True)
split = layout.split()
diff --git a/release/scripts/startup/bl_ui/properties_world.py b/release/scripts/startup/bl_ui/properties_world.py
index 6aa39580d34..107c31567b3 100644
--- a/release/scripts/startup/bl_ui/properties_world.py
+++ b/release/scripts/startup/bl_ui/properties_world.py
@@ -175,7 +175,7 @@ class WORLD_PT_gather(WorldButtonsPanel, Panel):
layout.active = light.use_ambient_occlusion or light.use_environment_light or light.use_indirect_light
- layout.prop(light, "gather_method", expand=True)
+ layout.row().prop(light, "gather_method", expand=True)
split = layout.split()
diff --git a/release/scripts/startup/bl_ui/space_clip.py b/release/scripts/startup/bl_ui/space_clip.py
index 3f05620fcf6..43679727992 100644
--- a/release/scripts/startup/bl_ui/space_clip.py
+++ b/release/scripts/startup/bl_ui/space_clip.py
@@ -1238,7 +1238,6 @@ class CLIP_MT_view(Menu):
layout.prop(sc, "show_seconds")
layout.prop(sc, "show_locked_time")
- layout.separator()
layout.separator()
layout.operator("screen.area_dupli")
diff --git a/release/scripts/startup/bl_ui/space_image.py b/release/scripts/startup/bl_ui/space_image.py
index c748e71a0a2..f070161f3da 100644
--- a/release/scripts/startup/bl_ui/space_image.py
+++ b/release/scripts/startup/bl_ui/space_image.py
@@ -617,7 +617,6 @@ class IMAGE_PT_game_properties(Panel):
ima = sima.image
split = layout.split()
-
col = split.column()
col.prop(ima, "use_animation")
sub = col.column(align=True)
@@ -626,17 +625,21 @@ class IMAGE_PT_game_properties(Panel):
sub.prop(ima, "frame_end", text="End")
sub.prop(ima, "fps", text="Speed")
+ col = split.column()
col.prop(ima, "use_tiles")
sub = col.column(align=True)
sub.active = ima.use_tiles or ima.use_animation
sub.prop(ima, "tiles_x", text="X")
sub.prop(ima, "tiles_y", text="Y")
+ split = layout.split()
col = split.column()
col.label(text="Clamp:")
col.prop(ima, "use_clamp_x", text="X")
col.prop(ima, "use_clamp_y", text="Y")
- col.separator()
+
+ col = split.column()
+ col.label(text="Mapping:")
col.prop(ima, "mapping", expand=True)
diff --git a/release/scripts/startup/bl_ui/space_node.py b/release/scripts/startup/bl_ui/space_node.py
index b939d34e154..b37b3c5705a 100644
--- a/release/scripts/startup/bl_ui/space_node.py
+++ b/release/scripts/startup/bl_ui/space_node.py
@@ -428,7 +428,6 @@ class NODE_PT_quality(bpy.types.Panel):
col.prop(tree, "use_groupnode_buffer")
col.prop(tree, "use_two_pass")
col.prop(tree, "use_viewer_border")
- col.prop(snode, "show_highlight")
class NODE_UL_interface_sockets(bpy.types.UIList):
diff --git a/release/scripts/startup/bl_ui/space_sequencer.py b/release/scripts/startup/bl_ui/space_sequencer.py
index 01da3b48f7d..79bb10cefeb 100644
--- a/release/scripts/startup/bl_ui/space_sequencer.py
+++ b/release/scripts/startup/bl_ui/space_sequencer.py
@@ -36,26 +36,35 @@ def act_strip(context):
def draw_color_balance(layout, color_balance):
- col = layout.column()
+ box = layout.box()
+ split = box.split(percentage=0.35)
+ col = split.column(align=True)
col.label(text="Lift:")
- col.template_color_picker(color_balance, "lift", value_slider=True, cubic=True)
- row = col.row()
- row.prop(color_balance, "lift", text="")
- row.prop(color_balance, "invert_lift", text="Inverse")
-
- col = layout.column()
+ col.separator()
+ col.separator()
+ col.prop(color_balance, "lift", text="")
+ col.prop(color_balance, "invert_lift", text="Invert", icon="ARROW_LEFTRIGHT")
+ split.template_color_picker(color_balance, "lift", value_slider=True, cubic=True)
+
+ box = layout.box()
+ split = box.split(percentage=0.35)
+ col = split.column(align=True)
col.label(text="Gamma:")
- col.template_color_picker(color_balance, "gamma", value_slider=True, lock_luminosity=True, cubic=True)
- row = col.row()
- row.prop(color_balance, "gamma", text="")
- row.prop(color_balance, "invert_gamma", text="Inverse")
-
- col = layout.column()
+ col.separator()
+ col.separator()
+ col.prop(color_balance, "gamma", text="")
+ col.prop(color_balance, "invert_gamma", text="Invert", icon="ARROW_LEFTRIGHT")
+ split.template_color_picker(color_balance, "gamma", value_slider=True, lock_luminosity=True, cubic=True)
+
+ box = layout.box()
+ split = box.split(percentage=0.35)
+ col = split.column(align=True)
col.label(text="Gain:")
- col.template_color_picker(color_balance, "gain", value_slider=True, lock_luminosity=True, cubic=True)
- row = col.row()
- row.prop(color_balance, "gain", text="")
- row.prop(color_balance, "invert_gain", text="Inverse")
+ col.separator()
+ col.separator()
+ col.prop(color_balance, "gain", text="")
+ col.prop(color_balance, "invert_gain", text="Invert", icon="ARROW_LEFTRIGHT")
+ split.template_color_picker(color_balance, "gain", value_slider=True, lock_luminosity=True, cubic=True)
class SEQUENCER_HT_header(Header):
@@ -331,19 +340,19 @@ class SEQUENCER_MT_add(Menu):
layout.operator_context = 'INVOKE_DEFAULT'
layout.operator("sequencer.scene_strip_add", text="Scene...")
else:
- layout.operator_menu_enum("sequencer.scene_strip_add", "scene", text="Scene...")
+ layout.operator_menu_enum("sequencer.scene_strip_add", "scene", text="Scene")
if len(bpy.data.movieclips) > 10:
layout.operator_context = 'INVOKE_DEFAULT'
layout.operator("sequencer.movieclip_strip_add", text="Clips...")
else:
- layout.operator_menu_enum("sequencer.movieclip_strip_add", "clip", text="Clip...")
+ layout.operator_menu_enum("sequencer.movieclip_strip_add", "clip", text="Clip")
if len(bpy.data.masks) > 10:
layout.operator_context = 'INVOKE_DEFAULT'
layout.operator("sequencer.mask_strip_add", text="Masks...")
else:
- layout.operator_menu_enum("sequencer.mask_strip_add", "mask", text="Mask...")
+ layout.operator_menu_enum("sequencer.mask_strip_add", "mask", text="Mask")
layout.operator("sequencer.movie_strip_add", text="Movie")
layout.operator("sequencer.image_strip_add", text="Image")
@@ -353,7 +362,7 @@ class SEQUENCER_MT_add(Menu):
class SEQUENCER_MT_add_effect(Menu):
- bl_label = "Effect Strip..."
+ bl_label = "Effect Strip"
def draw(self, context):
layout = self.layout
@@ -500,16 +509,16 @@ class SEQUENCER_PT_edit(SequencerButtonsPanel, Panel):
frame_current = scene.frame_current
strip = act_strip(context)
- split = layout.split(percentage=0.3)
+ split = layout.split(percentage=0.25)
split.label(text="Name:")
split.prop(strip, "name", text="")
- split = layout.split(percentage=0.3)
+ split = layout.split(percentage=0.25)
split.label(text="Type:")
split.prop(strip, "type", text="")
if strip.type != 'SOUND':
- split = layout.split(percentage=0.3)
+ split = layout.split(percentage=0.25)
split.label(text="Blend:")
split.prop(strip, "blend_type", text="")
@@ -518,16 +527,22 @@ class SEQUENCER_PT_edit(SequencerButtonsPanel, Panel):
sub.active = (not strip.mute)
sub.prop(strip, "blend_alpha", text="Opacity", slider=True)
row.prop(strip, "mute", toggle=True, icon_only=True)
- row.prop(strip, "lock", toggle=True, icon_only=True)
+
else:
- row = layout.row(align=True)
- row.prop(strip, "mute", toggle=True, icon_only=True)
- row.prop(strip, "lock", toggle=True, icon_only=True)
+ row = layout.row()
+ row.prop(strip, "mute", toggle=True, icon_only=True, icon='MUTE_IPO_OFF')
- col = layout.column()
- sub = col.column()
+
+ col = layout.column(align=True)
+ row = col.row(align=True)
+
+ row_sub = row.row(align=True)
+ row_sub.enabled = not strip.lock
+ row_sub.prop(strip, "channel")
+ row.prop(strip, "lock", toggle=True, icon_only=True)
+
+ sub = col.column(align=True)
sub.enabled = not strip.lock
- sub.prop(strip, "channel")
sub.prop(strip, "frame_start")
sub.prop(strip, "frame_final_duration")
@@ -552,8 +567,6 @@ class SEQUENCER_PT_edit(SequencerButtonsPanel, Panel):
if elem and elem.orig_width > 0 and elem.orig_height > 0:
col.label(text=iface_("Original Dimension: %dx%d") % (elem.orig_width, elem.orig_height), translate=False)
- else:
- col.label(text="Original Dimension: None")
class SEQUENCER_PT_effect(SequencerButtonsPanel, Panel):
@@ -629,8 +642,9 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel, Panel):
col.prop(strip, "translation_unit")
col = layout.column(align=True)
col.label(text="Position:")
- col.prop(strip, "translate_start_x", text="X")
- col.prop(strip, "translate_start_y", text="Y")
+ row = col.row(align=True)
+ row.prop(strip, "translate_start_x", text="X")
+ row.prop(strip, "translate_start_y", text="Y")
layout.separator()
@@ -642,8 +656,9 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel, Panel):
else:
col = layout.column(align=True)
col.label(text="Scale:")
- col.prop(strip, "scale_start_x", text="X")
- col.prop(strip, "scale_start_y", text="Y")
+ row = col.row(align=True)
+ row.prop(strip, "scale_start_x", text="X")
+ row.prop(strip, "scale_start_y", text="Y")
layout.separator()
@@ -701,7 +716,9 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel, Panel):
col.prop(strip, "align_x")
col.prop(strip, "align_y")
- col.prop(strip, "location")
+ col.label("Location")
+ row = col.row(align=True)
+ row.prop(strip, "location", text="")
col.prop(strip, "wrap_width")
layout.operator("sequencer.export_subtitles")
@@ -713,8 +730,9 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel, Panel):
if not strip.use_default_fade:
col.prop(strip, "effect_fader", text="Effect fader")
elif strip.type == 'GAUSSIAN_BLUR':
- col.prop(strip, "size_x")
- col.prop(strip, "size_y")
+ row = col.row(align=True)
+ row.prop(strip, "size_x")
+ row.prop(strip, "size_y")
class SEQUENCER_PT_input(SequencerButtonsPanel, Panel):
@@ -758,45 +776,53 @@ class SEQUENCER_PT_input(SequencerButtonsPanel, Panel):
split.label(text="File:")
split.prop(elem, "filename", text="") # strip.elements[0] could be a fallback
- layout.prop(strip.colorspace_settings, "name")
- layout.prop(strip, "alpha_mode")
+ split = layout.split(percentage=0.4)
+ split.label(text="Color Space:")
+ split.prop(strip.colorspace_settings, "name", text="")
- layout.operator("sequencer.change_path").filter_image = True
+ split = layout.split(percentage=0.4)
+ split.label(text="Alpha:")
+ split.prop(strip, "alpha_mode", text="")
+
+ layout.operator("sequencer.change_path", icon="FILESEL").filter_image = True
elif seq_type == 'MOVIE':
split = layout.split(percentage=0.2)
split.label(text="Path:")
split.prop(strip, "filepath", text="")
- layout.prop(strip.colorspace_settings, "name")
+ split = layout.split(percentage=0.4)
+ split.label(text="Color Space:")
+ split.prop(strip.colorspace_settings, "name", text="")
layout.prop(strip, "mpeg_preseek")
layout.prop(strip, "stream_index")
layout.prop(strip, "use_translation", text="Image Offset")
if strip.use_translation:
- col = layout.column(align=True)
- col.prop(strip.transform, "offset_x", text="X")
- col.prop(strip.transform, "offset_y", text="Y")
+ row = layout.row(align=True)
+ row.prop(strip.transform, "offset_x", text="X")
+ row.prop(strip.transform, "offset_y", text="Y")
layout.prop(strip, "use_crop", text="Image Crop")
if strip.use_crop:
col = layout.column(align=True)
col.prop(strip.crop, "max_y")
- col.prop(strip.crop, "min_x")
+ row = col.row(align=True)
+ row.prop(strip.crop, "min_x")
+ row.prop(strip.crop, "max_x")
col.prop(strip.crop, "min_y")
- col.prop(strip.crop, "max_x")
if not isinstance(strip, bpy.types.EffectSequence):
- col = layout.column(align=True)
- col.label(text="Trim Duration (hard):")
- col.prop(strip, "animation_offset_start", text="Start")
- col.prop(strip, "animation_offset_end", text="End")
+ layout.label(text="Trim Duration (hard):")
+ row = layout.row(align=True)
+ row.prop(strip, "animation_offset_start", text="Start")
+ row.prop(strip, "animation_offset_end", text="End")
- col = layout.column(align=True)
- col.label(text="Trim Duration (soft):")
- col.prop(strip, "frame_offset_start", text="Start")
- col.prop(strip, "frame_offset_end", text="End")
+ layout.label(text="Trim Duration (soft):")
+ row = layout.row(align=True)
+ row.prop(strip, "frame_offset_start", text="Start")
+ row.prop(strip, "frame_offset_end", text="End")
if scene.render.use_multiview and seq_type in {'IMAGE', 'MOVIE'}:
layout.prop(strip, "use_multiview")
@@ -851,19 +877,22 @@ class SEQUENCER_PT_sound(SequencerButtonsPanel, Panel):
if st.waveform_draw_type == 'DEFAULT_WAVEFORMS':
layout.prop(strip, "show_waveform")
- layout.prop(strip, "volume")
- layout.prop(strip, "pitch")
- layout.prop(strip, "pan")
+ col = layout.column(align=True)
+ col.prop(strip, "volume")
+ col.prop(strip, "pitch")
+ col.prop(strip, "pan")
col = layout.column(align=True)
col.label(text="Trim Duration (hard):")
- col.prop(strip, "animation_offset_start", text="Start")
- col.prop(strip, "animation_offset_end", text="End")
+ row = layout.row(align=True)
+ row.prop(strip, "animation_offset_start", text="Start")
+ row.prop(strip, "animation_offset_end", text="End")
col = layout.column(align=True)
col.label(text="Trim Duration (soft):")
- col.prop(strip, "frame_offset_start", text="Start")
- col.prop(strip, "frame_offset_end", text="End")
+ row = layout.row(align=True)
+ row.prop(strip, "frame_offset_start", text="Start")
+ row.prop(strip, "frame_offset_end", text="End")
class SEQUENCER_PT_scene(SequencerButtonsPanel, Panel):
@@ -980,22 +1009,20 @@ class SEQUENCER_PT_filter(SequencerButtonsPanel, Panel):
col.label(text="Distortion:")
col.prop(strip, "undistort")
- split = layout.split(percentage=0.65)
-
+ split = layout.split(percentage=0.6)
col = split.column()
- col.prop(strip, "use_reverse_frames", text="Backwards")
+ col.prop(strip, "use_reverse_frames", text="Reverse")
col.prop(strip, "use_deinterlace")
col = split.column()
- col.label(text="Flip:")
- col.prop(strip, "use_flip_x", text="X")
- col.prop(strip, "use_flip_y", text="Y")
+ col.prop(strip, "use_flip_x", text="X Flip")
+ col.prop(strip, "use_flip_y", text="Y Flip")
- col = layout.column()
- col.label(text="Colors:")
+ layout.label("Color:")
+ col = layout.column(align=True)
col.prop(strip, "color_saturation", text="Saturation")
col.prop(strip, "color_multiply", text="Multiply")
- col.prop(strip, "use_float")
+ layout.prop(strip, "use_float", text="Convert to Float")
class SEQUENCER_PT_proxy(SequencerButtonsPanel, Panel):
@@ -1029,9 +1056,9 @@ class SEQUENCER_PT_proxy(SequencerButtonsPanel, Panel):
proxy = strip.proxy
flow = layout.column_flow()
- flow.prop(sequencer, "proxy_storage")
+ flow.prop(sequencer, "proxy_storage", text='Storage')
if sequencer.proxy_storage == 'PROJECT':
- flow.prop(sequencer, "proxy_dir")
+ flow.prop(sequencer, "proxy_dir", text='Directory')
else:
flow.prop(proxy, "use_proxy_custom_directory")
flow.prop(proxy, "use_proxy_custom_file")
@@ -1050,8 +1077,7 @@ class SEQUENCER_PT_proxy(SequencerButtonsPanel, Panel):
layout.prop(proxy, "use_overwrite")
col = layout.column()
- col.label(text="Build JPEG quality")
- col.prop(proxy, "quality")
+ col.prop(proxy, "quality", text="Build JPEG quality")
if strip.type == 'MOVIE':
col = layout.column()
diff --git a/release/scripts/startup/bl_ui/space_time.py b/release/scripts/startup/bl_ui/space_time.py
index b9a25cd72a0..9930992e9bb 100644
--- a/release/scripts/startup/bl_ui/space_time.py
+++ b/release/scripts/startup/bl_ui/space_time.py
@@ -250,7 +250,7 @@ def marker_menu_generic(layout):
layout.operator_context = 'INVOKE_DEFAULT'
layout.operator("marker.make_links_scene", text="Duplicate Marker to Scene...", icon='OUTLINER_OB_EMPTY')
else:
- layout.operator_menu_enum("marker.make_links_scene", "scene", text="Duplicate Marker to Scene...")
+ layout.operator_menu_enum("marker.make_links_scene", "scene", text="Duplicate Marker to Scene")
layout.operator("marker.delete", text="Delete Marker")
diff --git a/release/scripts/startup/bl_ui/space_userpref.py b/release/scripts/startup/bl_ui/space_userpref.py
index 5ed481a215a..03a40085172 100644
--- a/release/scripts/startup/bl_ui/space_userpref.py
+++ b/release/scripts/startup/bl_ui/space_userpref.py
@@ -80,7 +80,7 @@ class USERPREF_PT_tabs(Panel):
userpref = context.user_preferences
- layout.prop(userpref, "active_section", expand=True)
+ layout.row().prop(userpref, "active_section", expand=True)
class USERPREF_MT_interaction_presets(Menu):
@@ -127,7 +127,7 @@ class USERPREF_MT_app_templates(Menu):
text=bpy.path.display_name(d),
)
props.use_splash = True
- props.app_template = d;
+ props.app_template = d
if use_install:
layout.separator()
@@ -560,7 +560,7 @@ class USERPREF_PT_system(Panel):
# 3. Column
column = split.column()
- column.label(text="Solid OpenGL lights:")
+ column.label(text="Solid OpenGL Lights:")
split = column.split(percentage=0.1)
split.label()
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index 77649f95c38..964628a96a0 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -1255,14 +1255,14 @@ class INFO_MT_add(Menu):
layout.menu("INFO_MT_lamp_add", icon='OUTLINER_OB_LAMP')
layout.separator()
- layout.operator_menu_enum("object.effector_add", "type", text="Force Field", icon='OUTLINER_OB_EMPTY')
+ layout.operator_menu_enum("object.effector_add", "type", text="Force Field", icon='OUTLINER_OB_FORCE_FIELD')
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')
+ layout.operator("object.group_instance_add", text="Group Instance...", icon='OUTLINER_OB_GROUP_INSTANCE')
else:
- layout.operator_menu_enum("object.group_instance_add", "group", text="Group Instance", icon='OUTLINER_OB_EMPTY')
+ layout.operator_menu_enum("object.group_instance_add", "group", text="Group Instance", icon='OUTLINER_OB_GROUP_INSTANCE')
# ********** Object menu **********
@@ -1663,7 +1663,7 @@ class VIEW3D_MT_make_links(Menu):
layout.operator("object.make_links_scene", text="Objects to Scene...", icon='OUTLINER_OB_EMPTY')
else:
layout.operator_context = 'EXEC_REGION_WIN'
- layout.operator_menu_enum("object.make_links_scene", "scene", text="Objects to Scene...")
+ layout.operator_menu_enum("object.make_links_scene", "scene", text="Objects to Scene")
layout.operator_context = operator_context_default
layout.operator_enum("object.make_links_data", "type") # inline
@@ -1699,7 +1699,7 @@ class VIEW3D_MT_brush(Menu):
layout = self.layout
settings = UnifiedPaintPanel.paint_settings(context)
- brush = settings.brush
+ brush = getattr(settings, "brush", None)
ups = context.tool_settings.unified_paint_settings
layout.prop(ups, "use_unified_size", text="Unified Size")
@@ -1708,6 +1708,11 @@ class VIEW3D_MT_brush(Menu):
layout.prop(ups, "use_unified_color", text="Unified Color")
layout.separator()
+ # skip if no active brush
+ if not brush:
+ layout.label(text="No Brushes currently available", icon="INFO")
+ return
+
# brush paint modes
layout.menu("VIEW3D_MT_brush_paint_modes")
@@ -1720,10 +1725,6 @@ class VIEW3D_MT_brush(Menu):
elif context.vertex_paint_object or context.weight_paint_object:
layout.prop_menu_enum(brush, "vertex_tool")
- # skip if no active brush
- if not brush:
- return
-
# TODO: still missing a lot of brush options here
# sculpt options
@@ -3545,7 +3546,7 @@ class VIEW3D_PT_view3d_meshstatvis(Panel):
row = layout.row(align=True)
row.prop(statvis, "overhang_min", text="")
row.prop(statvis, "overhang_max", text="")
- layout.prop(statvis, "overhang_axis", expand=True)
+ layout.row().prop(statvis, "overhang_axis", expand=True)
elif statvis_type == 'THICKNESS':
row = layout.row(align=True)
row.prop(statvis, "thickness_min", text="")
diff --git a/release/scripts/startup/bl_ui/space_view3d_toolbar.py b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
index 8d5f0863426..480c8ad96f3 100644
--- a/release/scripts/startup/bl_ui/space_view3d_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
@@ -923,16 +923,18 @@ class VIEW3D_PT_imapaint_tools_missing(Panel, View3DPaintPanel):
col.separator()
col.label("Missing Canvas", icon='INFO')
col.label("Add or assign a canvas image below")
- col.label("Canvas Image")
- col.template_ID(toolsettings, "canvas")
+ col.label("Canvas Image:")
+ # todo this should be combinded into a single row
+ col.template_ID(toolsettings, "canvas", open="image.open")
col.operator("image.new", text="New").gen_context = 'PAINT_CANVAS'
if toolsettings.missing_stencil:
col.separator()
col.label("Missing Stencil", icon='INFO')
col.label("Add or assign a stencil image below")
- col.label("Stencil Image")
- col.template_ID(toolsettings, "stencil_image")
+ col.label("Stencil Image:")
+ # todo this should be combinded into a single row
+ col.template_ID(toolsettings, "stencil_image", open="image.open")
col.operator("image.new", text="New").gen_context = 'PAINT_STENCIL'
@@ -974,9 +976,9 @@ class VIEW3D_PT_tools_brush(Panel, View3DPaintPanel):
col.prop(brush, "steps", slider=True)
col.prop(settings, "default_key_count", slider=True)
elif tool == 'LENGTH':
- layout.prop(brush, "length_mode", expand=True)
+ layout.row().prop(brush, "length_mode", expand=True)
elif tool == 'PUFF':
- layout.prop(brush, "puff_mode", expand=True)
+ layout.row().prop(brush, "puff_mode", expand=True)
layout.prop(brush, "use_puff_volume")
# Sculpt Mode #
@@ -1207,20 +1209,20 @@ class VIEW3D_PT_slots_projectpaint(View3DPanel, Panel):
ob = context.active_object
col = layout.column()
- col.label("Painting Mode")
+ col.label("Painting Mode:")
col.prop(settings, "mode", text="")
col.separator()
if settings.mode == 'MATERIAL':
if len(ob.material_slots) > 1:
- col.label("Materials")
+ col.label("Materials:")
col.template_list("MATERIAL_UL_matslots", "layers",
ob, "material_slots",
ob, "active_material_index", rows=2)
mat = ob.active_material
if mat:
- col.label("Available Paint Slots")
+ col.label("Available Paint Slots:")
col.template_list("TEXTURE_UL_texpaintslots", "",
mat, "texture_paint_images",
mat, "paint_active_slot", rows=2)
@@ -1240,16 +1242,17 @@ class VIEW3D_PT_slots_projectpaint(View3DPanel, Panel):
col.separator()
if slot and slot.index != -1:
- col.label("UV Map")
+ col.label("UV Map:")
col.prop_search(slot, "uv_layer", ob.data, "uv_textures", text="")
elif settings.mode == 'IMAGE':
mesh = ob.data
uv_text = mesh.uv_textures.active.name if mesh.uv_textures.active else ""
- col.label("Canvas Image")
- col.template_ID(settings, "canvas")
+ col.label("Canvas Image:")
+ # todo this should be combinded into a single row
+ col.template_ID(settings, "canvas", open="image.open")
col.operator("image.new", text="New").gen_context = 'PAINT_CANVAS'
- col.label("UV Map")
+ col.label("UV Map:")
col.menu("VIEW3D_MT_tools_projectpaint_uvlayer", text=uv_text, translate=False)
col.separator()
@@ -1283,14 +1286,15 @@ class VIEW3D_PT_stencil_projectpaint(View3DPanel, Panel):
col.active = ipaint.use_stencil_layer
stencil_text = mesh.uv_texture_stencil.name if mesh.uv_texture_stencil else ""
- col.label("UV Map")
+ col.label("UV Map:")
col.menu("VIEW3D_MT_tools_projectpaint_stencil", text=stencil_text, translate=False)
- col.label("Stencil Image")
- col.template_ID(ipaint, "stencil_image")
+ col.label("Stencil Image:")
+ # todo this should be combinded into a single row
+ col.template_ID(ipaint, "stencil_image", open="image.open")
col.operator("image.new", text="New").gen_context = 'PAINT_STENCIL'
- col.label("Visualization")
+ col.label("Visualization:")
row = col.row(align=True)
row.prop(ipaint, "stencil_color", text="")
row.prop(ipaint, "invert_stencil", text="", icon='IMAGE_ALPHA')