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:
authorDalai Felinto <dalai@blender.org>2020-12-10 13:05:49 +0300
committerDalai Felinto <dalai@blender.org>2020-12-10 13:05:49 +0300
commitc5a17d5ea1ff786cb91cbcf3f12cd02f730c4143 (patch)
treef03a5935ee7dbc4c7ddabaee1c06570a26f698f9 /release/scripts/startup
parent390c4efa0c15b39e2d1971bc81464cffae56d102 (diff)
parente795ba1529a28ec276a5178fda2025e5ec071bbf (diff)
Merge remote-tracking branch 'origin/master' into geometry-nodes
Diffstat (limited to 'release/scripts/startup')
-rw-r--r--release/scripts/startup/bl_operators/anim.py13
-rw-r--r--release/scripts/startup/bl_operators/clip.py4
-rw-r--r--release/scripts/startup/bl_operators/image.py2
-rw-r--r--release/scripts/startup/bl_operators/wm.py66
-rw-r--r--release/scripts/startup/bl_ui/properties_constraint.py23
-rw-r--r--release/scripts/startup/bl_ui/properties_data_curve.py2
-rw-r--r--release/scripts/startup/bl_ui/properties_paint_common.py8
-rw-r--r--release/scripts/startup/bl_ui/properties_view_layer.py79
-rw-r--r--release/scripts/startup/bl_ui/space_dopesheet.py2
-rw-r--r--release/scripts/startup/bl_ui/space_graph.py6
-rw-r--r--release/scripts/startup/bl_ui/space_userpref.py12
-rw-r--r--release/scripts/startup/bl_ui/space_view3d.py23
-rw-r--r--release/scripts/startup/keyingsets_builtins.py2
-rw-r--r--release/scripts/startup/nodeitems_builtins.py7
14 files changed, 174 insertions, 75 deletions
diff --git a/release/scripts/startup/bl_operators/anim.py b/release/scripts/startup/bl_operators/anim.py
index ab79ebe3957..bb414b5ff89 100644
--- a/release/scripts/startup/bl_operators/anim.py
+++ b/release/scripts/startup/bl_operators/anim.py
@@ -429,9 +429,22 @@ class UpdateAnimatedTransformConstraint(Operator):
return {'FINISHED'}
+class ANIM_OT_show_group_colors_deprecated(Operator):
+ """This option moved to Preferences > Animation"""
+
+ bl_idname = "anim.show_group_colors_deprecated"
+ bl_label = "Show Group Colors"
+ bl_options = {'REGISTER'}
+
+ @classmethod
+ def poll(cls, context) -> bool:
+ return False
+
+
classes = (
ANIM_OT_keying_set_export,
NLA_OT_bake,
ClearUselessActions,
UpdateAnimatedTransformConstraint,
+ ANIM_OT_show_group_colors_deprecated,
)
diff --git a/release/scripts/startup/bl_operators/clip.py b/release/scripts/startup/bl_operators/clip.py
index a3c54a7b069..51a9695e44a 100644
--- a/release/scripts/startup/bl_operators/clip.py
+++ b/release/scripts/startup/bl_operators/clip.py
@@ -414,8 +414,8 @@ class CLIP_OT_delete_proxy(Operator):
class CLIP_OT_set_viewport_background(Operator):
- """Set current movie clip as a camera background in 3D view-port """ \
- """(works only when a 3D view-port is visible)"""
+ """Set current movie clip as a camera background in 3D Viewport """ \
+ """(works only when a 3D Viewport is visible)"""
bl_idname = "clip.set_viewport_background"
bl_label = "Set as Background"
diff --git a/release/scripts/startup/bl_operators/image.py b/release/scripts/startup/bl_operators/image.py
index 8d543daeac7..f2cd0ad7478 100644
--- a/release/scripts/startup/bl_operators/image.py
+++ b/release/scripts/startup/bl_operators/image.py
@@ -116,7 +116,7 @@ class EditExternally(Operator):
class ProjectEdit(Operator):
- """Edit a snapshot of the view-port in an external image editor"""
+ """Edit a snapshot of the 3D Viewport in an external image editor"""
bl_idname = "image.project_edit"
bl_label = "Project Edit"
bl_options = {'REGISTER'}
diff --git a/release/scripts/startup/bl_operators/wm.py b/release/scripts/startup/bl_operators/wm.py
index bd1ae2ca8e1..bd1c99fdeb3 100644
--- a/release/scripts/startup/bl_operators/wm.py
+++ b/release/scripts/startup/bl_operators/wm.py
@@ -31,6 +31,7 @@ from bpy.props import (
IntProperty,
StringProperty,
)
+from bpy.app.translations import pgettext_iface as iface_
# FIXME, we need a way to detect key repeat events.
# unfortunately checking event previous values isn't reliable.
@@ -1146,10 +1147,11 @@ rna_default = StringProperty(
maxlen=1024,
)
-rna_property = StringProperty(
+rna_custom_property = StringProperty(
name="Property Name",
description="Property name edit",
- maxlen=1024,
+ # Match `MAX_IDPROP_NAME - 1` in Blender's source.
+ maxlen=63,
)
rna_min = FloatProperty(
@@ -1195,7 +1197,7 @@ class WM_OT_properties_edit(Operator):
bl_options = {'REGISTER', 'INTERNAL'}
data_path: rna_path
- property: rna_property
+ property: rna_custom_property
value: rna_value
default: rna_default
min: rna_min
@@ -1264,6 +1266,7 @@ class WM_OT_properties_edit(Operator):
data_path = self.data_path
prop = self.property
+ prop_escape = bpy.utils.escape_identifier(prop)
prop_old = getattr(self, "_last_prop", [None])[0]
@@ -1288,7 +1291,7 @@ class WM_OT_properties_edit(Operator):
# Reassign
item[prop] = value_eval
- item.property_overridable_library_set('["%s"]' % prop, self.is_overridable_library)
+ item.property_overridable_library_set('["%s"]' % prop_escape, self.is_overridable_library)
rna_idprop_ui_prop_update(item, prop)
self._last_prop[:] = [prop]
@@ -1321,7 +1324,7 @@ class WM_OT_properties_edit(Operator):
# If we have changed the type of the property, update its potential anim curves!
if prop_type_old != prop_type_new:
- data_path = '["%s"]' % bpy.utils.escape_identifier(prop)
+ data_path = '["%s"]' % prop_escape
done = set()
def _update(fcurves):
@@ -1363,13 +1366,16 @@ class WM_OT_properties_edit(Operator):
rna_idprop_value_item_type
)
+ prop = self.property
+ prop_escape = bpy.utils.escape_identifier(prop)
+
data_path = self.data_path
if not data_path:
self.report({'ERROR'}, "Data path not set")
return {'CANCELLED'}
- self._last_prop = [self.property]
+ self._last_prop = [prop]
item = eval("context.%s" % data_path)
@@ -1378,7 +1384,7 @@ class WM_OT_properties_edit(Operator):
return {'CANCELLED'}
# retrieve overridable static
- is_overridable = item.is_property_overridable_library('["%s"]' % self.property)
+ is_overridable = item.is_property_overridable_library('["%s"]' % prop_escape)
self.is_overridable_library = bool(is_overridable)
# default default value
@@ -1389,7 +1395,7 @@ class WM_OT_properties_edit(Operator):
self.default = ""
# setup defaults
- prop_ui = rna_idprop_ui_prop_get(item, self.property, False) # don't create
+ prop_ui = rna_idprop_ui_prop_get(item, prop, False) # don't create
if prop_ui:
self.min = prop_ui.get("min", -1000000000)
self.max = prop_ui.get("max", 1000000000)
@@ -1547,7 +1553,7 @@ class WM_OT_properties_remove(Operator):
bl_options = {'UNDO', 'INTERNAL'}
data_path: rna_path
- property: rna_property
+ property: rna_custom_property
def execute(self, context):
from rna_prop_ui import (
@@ -2642,26 +2648,28 @@ class WM_MT_splash_about(Menu):
layout = self.layout
layout.operator_context = 'EXEC_DEFAULT'
- layout.label(text="Blender is free software")
- layout.label(text="Licensed under the GNU General Public License")
- layout.separator()
- layout.separator()
-
- split = layout.split()
- split.emboss = 'PULLDOWN_MENU'
- split.scale_y = 1.3
-
- col1 = split.column()
-
- col1.operator("wm.url_open_preset", text="Release Notes", icon='URL').type = 'RELEASE_NOTES'
- col1.operator("wm.url_open_preset", text="Credits", icon='URL').type = 'CREDITS'
- col1.operator("wm.url_open", text="License", icon='URL').url = "https://www.blender.org/about/license/"
-
- col2 = split.column()
-
- col2.operator("wm.url_open_preset", text="Blender Website", icon='URL').type = 'BLENDER'
- col2.operator("wm.url_open", text="Blender Store", icon='URL').url = "https://store.blender.org"
- col2.operator("wm.url_open_preset", text="Development Fund", icon='FUND').type = 'FUND'
+ split = layout.split(factor=0.65)
+
+ col = split.column(align=True)
+ col.scale_y = 0.8
+ col.label(text=bpy.app.version_string, translate=False)
+ col.separator(factor=2.5)
+ col.label(text=iface_("Date: %s %s") % (bpy.app.build_commit_date.decode('utf-8', 'replace'),
+ bpy.app.build_commit_time.decode('utf-8', 'replace')), translate=False)
+ col.label(text=iface_("Hash: %s") % bpy.app.build_hash.decode('ascii'), translate=False)
+ col.label(text=iface_("Branch: %s") % bpy.app.build_branch.decode('utf-8', 'replace'), translate=False)
+ col.separator(factor=2.0)
+ col.label(text="Blender is free software")
+ col.label(text="Licensed under the GNU General Public License")
+
+ col = split.column(align=True)
+ col.emboss = 'PULLDOWN_MENU'
+ col.operator("wm.url_open_preset", text="Release Notes", icon='URL').type = 'RELEASE_NOTES'
+ col.operator("wm.url_open_preset", text="Credits", icon='URL').type = 'CREDITS'
+ col.operator("wm.url_open", text="License", icon='URL').url = "https://www.blender.org/about/license/"
+ col.operator("wm.url_open_preset", text="Blender Website", icon='URL').type = 'BLENDER'
+ col.operator("wm.url_open", text="Blender Store", icon='URL').url = "https://store.blender.org"
+ col.operator("wm.url_open_preset", text="Development Fund", icon='FUND').type = 'FUND'
class WM_OT_drop_blend_file(Operator):
diff --git a/release/scripts/startup/bl_ui/properties_constraint.py b/release/scripts/startup/bl_ui/properties_constraint.py
index f46e9f9727f..71a7b056d07 100644
--- a/release/scripts/startup/bl_ui/properties_constraint.py
+++ b/release/scripts/startup/bl_ui/properties_constraint.py
@@ -85,14 +85,23 @@ class ConstraintButtonsPanel(Panel):
row.operator("constraint.disable_keep_transform", text="", icon='CANCEL')
@staticmethod
- def space_template(layout, con, target=True, owner=True):
+ def space_template(layout, con, target=True, owner=True, separator=True):
if target or owner:
- layout.separator()
+ if separator:
+ layout.separator()
if target:
layout.prop(con, "target_space", text="Target")
if owner:
layout.prop(con, "owner_space", text="Owner")
+ if con.target_space == 'CUSTOM' or con.owner_space == 'CUSTOM':
+ col = layout.column()
+ col.prop(con, "space_object")
+ if con.space_object and con.space_object.type == 'ARMATURE':
+ col.prop_search(con, "space_subtarget", con.space_object.data, "bones", text="Bone")
+ elif con.space_object and con.space_object.type in {'MESH', 'LATTICE'}:
+ col.prop_search(con, "space_subtarget", con.space_object, "vertex_groups", text="Vertex Group")
+
@staticmethod
def target_template(layout, con, subtargets=True):
col = layout.column()
@@ -237,7 +246,7 @@ class ConstraintButtonsPanel(Panel):
row.label(icon="BLANK1")
layout.prop(con, "use_transform_limit")
- layout.prop(con, "owner_space")
+ self.space_template(layout, con, target=False, owner=True)
self.draw_influence(layout, con)
@@ -306,7 +315,7 @@ class ConstraintButtonsPanel(Panel):
row.prop_decorator(con, "max_z")
layout.prop(con, "use_transform_limit")
- layout.prop(con, "owner_space")
+ self.space_template(layout, con, target=False, owner=True)
self.draw_influence(layout, con)
@@ -375,7 +384,7 @@ class ConstraintButtonsPanel(Panel):
row.prop_decorator(con, "max_z")
layout.prop(con, "use_transform_limit")
- layout.prop(con, "owner_space")
+ self.space_template(layout, con, target=False, owner=True)
self.draw_influence(layout, con)
@@ -483,7 +492,7 @@ class ConstraintButtonsPanel(Panel):
layout.prop(con, "volume")
- layout.prop(con, "owner_space")
+ self.space_template(layout, con, target=False, owner=True)
self.draw_influence(layout, con)
@@ -1117,7 +1126,7 @@ class ConstraintButtonsSubPanel(Panel):
col = layout.column()
col.active = not con.use_eval_time
col.prop(con, "transform_channel", text="Channel")
- col.prop(con, "target_space")
+ ConstraintButtonsPanel.space_template(col, con, target=True, owner=False, separator=False)
sub = col.column(align=True)
sub.prop(con, "min", text="Range Min")
diff --git a/release/scripts/startup/bl_ui/properties_data_curve.py b/release/scripts/startup/bl_ui/properties_data_curve.py
index 9ae7f8f8e6c..394e2270227 100644
--- a/release/scripts/startup/bl_ui/properties_data_curve.py
+++ b/release/scripts/startup/bl_ui/properties_data_curve.py
@@ -126,7 +126,7 @@ class DATA_PT_shape_curve(CurveButtonsPanel, Panel):
col = layout.column()
col.separator()
- sub = col.column()
+ sub = col.column(heading="Curve Deform", align=True)
sub.prop(curve, "use_radius")
sub.prop(curve, "use_stretch")
sub.prop(curve, "use_deform_bounds")
diff --git a/release/scripts/startup/bl_ui/properties_paint_common.py b/release/scripts/startup/bl_ui/properties_paint_common.py
index 63ccbd2ae05..1ae1826b609 100644
--- a/release/scripts/startup/bl_ui/properties_paint_common.py
+++ b/release/scripts/startup/bl_ui/properties_paint_common.py
@@ -643,6 +643,11 @@ def brush_settings(layout, context, brush, popover=False):
layout.prop(brush, "elastic_deform_volume_preservation", slider=True)
layout.separator()
+ elif sculpt_tool == 'SNAKE_HOOK':
+ layout.separator()
+ layout.prop(brush, "snake_hook_deform_type")
+ layout.separator()
+
elif sculpt_tool == 'POSE':
layout.separator()
layout.prop(brush, "deform_target")
@@ -717,6 +722,9 @@ def brush_settings(layout, context, brush, popover=False):
row.prop(brush, "use_wet_persistence_pressure", text="")
row = layout.row(align=True)
+ row.prop(brush, "wet_paint_radius_factor")
+
+ row = layout.row(align=True)
row.prop(brush, "density")
row.prop(brush, "invert_density_pressure", text="")
row.prop(brush, "use_density_pressure", text="")
diff --git a/release/scripts/startup/bl_ui/properties_view_layer.py b/release/scripts/startup/bl_ui/properties_view_layer.py
index afa00bb50c2..27df3b10853 100644
--- a/release/scripts/startup/bl_ui/properties_view_layer.py
+++ b/release/scripts/startup/bl_ui/properties_view_layer.py
@@ -17,7 +17,16 @@
# ##### END GPL LICENSE BLOCK #####
# <pep8 compliant>
-from bpy.types import Panel
+from bpy.types import Panel, UIList
+
+
+class VIEWLAYER_UL_aov(UIList):
+ def draw_item(self, context, layout, data, item, icon, active_data, active_propname):
+ row = layout.row()
+ split = row.split(factor=0.65)
+ icon = 'NONE' if item.is_valid else 'ERROR'
+ split.row().prop(item, "name", text="", icon=icon, emboss=False)
+ split.row().prop(item, "type", text="", emboss=False)
class ViewLayerButtonsPanel:
@@ -49,7 +58,7 @@ class VIEWLAYER_PT_layer(ViewLayerButtonsPanel, Panel):
col.prop(rd, "use_single_layer", text="Render Single Layer")
-class VIEWLAYER_PT_eevee_layer_passes(ViewLayerButtonsPanel, Panel):
+class VIEWLAYER_PT_layer_passes(ViewLayerButtonsPanel, Panel):
bl_label = "Passes"
COMPAT_ENGINES = {'BLENDER_EEVEE'}
@@ -59,7 +68,7 @@ class VIEWLAYER_PT_eevee_layer_passes(ViewLayerButtonsPanel, Panel):
class VIEWLAYER_PT_eevee_layer_passes_data(ViewLayerButtonsPanel, Panel):
bl_label = "Data"
- bl_parent_id = "VIEWLAYER_PT_eevee_layer_passes"
+ bl_parent_id = "VIEWLAYER_PT_layer_passes"
COMPAT_ENGINES = {'BLENDER_EEVEE'}
@@ -81,7 +90,7 @@ class VIEWLAYER_PT_eevee_layer_passes_data(ViewLayerButtonsPanel, Panel):
class VIEWLAYER_PT_eevee_layer_passes_light(ViewLayerButtonsPanel, Panel):
bl_label = "Light"
- bl_parent_id = "VIEWLAYER_PT_eevee_layer_passes"
+ bl_parent_id = "VIEWLAYER_PT_layer_passes"
COMPAT_ENGINES = {'BLENDER_EEVEE'}
def draw(self, context):
@@ -116,7 +125,7 @@ class VIEWLAYER_PT_eevee_layer_passes_light(ViewLayerButtonsPanel, Panel):
class VIEWLAYER_PT_eevee_layer_passes_effects(ViewLayerButtonsPanel, Panel):
bl_label = "Effects"
- bl_parent_id = "VIEWLAYER_PT_eevee_layer_passes"
+ bl_parent_id = "VIEWLAYER_PT_layer_passes"
COMPAT_ENGINES = {'BLENDER_EEVEE'}
def draw(self, context):
@@ -135,12 +144,70 @@ class VIEWLAYER_PT_eevee_layer_passes_effects(ViewLayerButtonsPanel, Panel):
col.active = scene_eevee.use_bloom
+class VIEWLAYER_PT_layer_passes_aov(ViewLayerButtonsPanel, Panel):
+ bl_label = "Shader AOV"
+ bl_parent_id = "VIEWLAYER_PT_layer_passes"
+ COMPAT_ENGINES = {'BLENDER_EEVEE'}
+
+ def draw(self, context):
+ layout = self.layout
+
+ layout.use_property_split = True
+ layout.use_property_decorate = False
+
+ view_layer = context.view_layer
+
+ row = layout.row()
+ col = row.column()
+ col.template_list("VIEWLAYER_UL_aov", "aovs", view_layer, "aovs", view_layer, "active_aov_index", rows=2)
+
+ col = row.column()
+ sub = col.column(align=True)
+ sub.operator("scene.view_layer_add_aov", icon='ADD', text="")
+ sub.operator("scene.view_layer_remove_aov", icon='REMOVE', text="")
+
+ aov = view_layer.active_aov
+ if aov and not aov.is_valid:
+ layout.label(text="Conflicts with another render pass with the same name", icon='ERROR')
+
+
+class ViewLayerCryptomattePanel(ViewLayerButtonsPanel, Panel):
+ bl_label = "Cryptomatte"
+
+ def draw(self, context):
+ layout = self.layout
+
+ layout.use_property_split = True
+ layout.use_property_decorate = False
+
+ view_layer = context.view_layer
+
+ col = layout.column()
+ col.prop(view_layer, "use_pass_cryptomatte_object", text="Object")
+ col.prop(view_layer, "use_pass_cryptomatte_material", text="Material")
+ col.prop(view_layer, "use_pass_cryptomatte_asset", text="Asset")
+ col = layout.column()
+ col.active = any((view_layer.use_pass_cryptomatte_object,
+ view_layer.use_pass_cryptomatte_material,
+ view_layer.use_pass_cryptomatte_asset))
+ col.prop(view_layer, "pass_cryptomatte_depth", text="Levels")
+ col.prop(view_layer, "use_pass_cryptomatte_accurate", text="Accurate Mode")
+
+
+class VIEWLAYER_PT_layer_passes_cryptomatte(ViewLayerCryptomattePanel):
+ bl_parent_id = "VIEWLAYER_PT_layer_passes"
+ COMPAT_ENGINES = {'BLENDER_EEVEE'}
+
+
classes = (
VIEWLAYER_PT_layer,
- VIEWLAYER_PT_eevee_layer_passes,
+ VIEWLAYER_PT_layer_passes,
VIEWLAYER_PT_eevee_layer_passes_data,
VIEWLAYER_PT_eevee_layer_passes_light,
VIEWLAYER_PT_eevee_layer_passes_effects,
+ VIEWLAYER_PT_layer_passes_cryptomatte,
+ VIEWLAYER_PT_layer_passes_aov,
+ VIEWLAYER_UL_aov,
)
if __name__ == "__main__": # only for live edit.
diff --git a/release/scripts/startup/bl_ui/space_dopesheet.py b/release/scripts/startup/bl_ui/space_dopesheet.py
index 676e93f4ce9..0c222e8c023 100644
--- a/release/scripts/startup/bl_ui/space_dopesheet.py
+++ b/release/scripts/startup/bl_ui/space_dopesheet.py
@@ -347,6 +347,8 @@ class DOPESHEET_MT_view(Menu):
col.active = context.space_data.mode != 'SHAPEKEY'
col.prop(st, "show_sliders")
+ if bpy.app.version < (2, 93):
+ layout.operator("anim.show_group_colors_deprecated", icon='CHECKBOX_HLT')
layout.prop(st, "show_interpolation")
layout.prop(st, "show_extremes")
layout.prop(st, "use_auto_merge_keyframes")
diff --git a/release/scripts/startup/bl_ui/space_graph.py b/release/scripts/startup/bl_ui/space_graph.py
index 3fee0ae9d47..6ece6a4c841 100644
--- a/release/scripts/startup/bl_ui/space_graph.py
+++ b/release/scripts/startup/bl_ui/space_graph.py
@@ -18,6 +18,7 @@
# <pep8 compliant>
+import bpy
from bpy.types import Header, Menu, Panel
from bl_ui.space_dopesheet import (
DopesheetFilterPopoverBase,
@@ -119,7 +120,10 @@ class GRAPH_MT_view(Menu):
layout.prop(st, "use_realtime_update")
layout.prop(st, "show_cursor")
layout.prop(st, "show_sliders")
- layout.prop(st, "show_group_colors")
+
+ if bpy.app.version < (2, 93):
+ layout.operator("anim.show_group_colors_deprecated", icon='CHECKBOX_HLT')
+
layout.prop(st, "use_auto_merge_keyframes")
if st.mode != 'DRIVERS':
diff --git a/release/scripts/startup/bl_ui/space_userpref.py b/release/scripts/startup/bl_ui/space_userpref.py
index 53c1a136dec..761e60aef30 100644
--- a/release/scripts/startup/bl_ui/space_userpref.py
+++ b/release/scripts/startup/bl_ui/space_userpref.py
@@ -207,10 +207,14 @@ class USERPREF_PT_interface_display(InterfacePanel, CenterAlignMixIn, Panel):
col.prop(view, "ui_line_width", text="Line Width")
col.prop(view, "show_splash", text="Splash Screen")
col.prop(view, "show_developer_ui")
+
+ col.separator()
- col = layout.column(heading="Tooltips")
- col.prop(view, "show_tooltips")
- col.prop(view, "show_tooltips_python")
+ col = layout.column(heading="Tooltips", align=True)
+ col.prop(view, "show_tooltips", text = "User Tooltips")
+ sub = col.column()
+ sub.active = view.show_tooltips
+ sub.prop(view, "show_tooltips_python")
class USERPREF_PT_interface_text(InterfacePanel, CenterAlignMixIn, Panel):
@@ -2187,7 +2191,7 @@ class USERPREF_PT_experimental_new_features(ExperimentalPanel, Panel):
context, (
({"property": "use_sculpt_vertex_colors"}, "T71947"),
({"property": "use_switch_object_operator"}, "T80402"),
- ({"property": "use_sculpt_tools_tilt"}, "T00000"),
+ ({"property": "use_sculpt_tools_tilt"}, "T82877"),
({"property": "use_object_add_tool"}, "T57210"),
),
)
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index 5af88e15111..10c9f25b92a 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -1828,7 +1828,13 @@ class VIEW3D_MT_paint_gpencil(Menu):
def draw(self, context):
layout = self.layout
+ layout.operator("gpencil.vertex_color_set", text="Set Vertex Colors")
layout.operator("gpencil.stroke_reset_vertex_color")
+ layout.separator()
+ layout.operator("gpencil.vertex_color_invert", text="Invert")
+ layout.operator("gpencil.vertex_color_levels", text="Levels")
+ layout.operator("gpencil.vertex_color_hsv", text="Hue Saturation Value")
+ layout.operator("gpencil.vertex_color_brightness_contrast", text="Bright/Contrast")
class VIEW3D_MT_select_gpencil(Menu):
@@ -5044,22 +5050,6 @@ class VIEW3D_MT_weight_gpencil(Menu):
layout.menu("VIEW3D_MT_gpencil_autoweights")
-class VIEW3D_MT_vertex_gpencil(Menu):
- bl_label = "Paint"
-
- def draw(self, _context):
- layout = self.layout
- layout.operator("gpencil.vertex_color_set", text="Set Vertex Colors")
- layout.separator()
- layout.operator("gpencil.vertex_color_invert", text="Invert")
- layout.operator("gpencil.vertex_color_levels", text="Levels")
- layout.operator("gpencil.vertex_color_hsv", text="Hue Saturation Value")
- layout.operator("gpencil.vertex_color_brightness_contrast", text="Bright/Contrast")
-
- layout.separator()
- layout.menu("VIEW3D_MT_join_palette")
-
-
class VIEW3D_MT_gpencil_animation(Menu):
bl_label = "Animation"
@@ -7606,7 +7596,6 @@ classes = (
VIEW3D_MT_edit_gpencil_delete,
VIEW3D_MT_edit_gpencil_showhide,
VIEW3D_MT_weight_gpencil,
- VIEW3D_MT_vertex_gpencil,
VIEW3D_MT_gpencil_animation,
VIEW3D_MT_gpencil_simplify,
VIEW3D_MT_gpencil_copy_layer,
diff --git a/release/scripts/startup/keyingsets_builtins.py b/release/scripts/startup/keyingsets_builtins.py
index 6dffeac35ce..012febc7cc7 100644
--- a/release/scripts/startup/keyingsets_builtins.py
+++ b/release/scripts/startup/keyingsets_builtins.py
@@ -520,7 +520,7 @@ class BUILTIN_KSI_WholeCharacter(KeyingSetInfo):
# for now, just add all of 'em
prop_rna = type(bone).bl_rna.properties.get(prop, None)
if prop_rna is None:
- prop_path = '["%s"]' % prop
+ prop_path = '["%s"]' % bpy.utils.escape_identifier(prop)
try:
rna_property = bone.path_resolve(prop_path, False)
except ValueError as ex:
diff --git a/release/scripts/startup/nodeitems_builtins.py b/release/scripts/startup/nodeitems_builtins.py
index b1789776728..abab50b95a2 100644
--- a/release/scripts/startup/nodeitems_builtins.py
+++ b/release/scripts/startup/nodeitems_builtins.py
@@ -165,11 +165,6 @@ def object_cycles_shader_nodes_poll(context):
cycles_shader_nodes_poll(context))
-def cycles_aov_node_poll(context):
- return (object_cycles_shader_nodes_poll(context) or
- world_shader_nodes_poll(context))
-
-
def object_eevee_shader_nodes_poll(context):
return (object_shader_nodes_poll(context) and
eevee_shader_nodes_poll(context))
@@ -210,7 +205,7 @@ shader_node_categories = [
ShaderNodeCategory("SH_NEW_OUTPUT", "Output", items=[
NodeItem("ShaderNodeOutputMaterial", poll=object_eevee_cycles_shader_nodes_poll),
NodeItem("ShaderNodeOutputLight", poll=object_cycles_shader_nodes_poll),
- NodeItem("ShaderNodeOutputAOV", poll=cycles_aov_node_poll),
+ NodeItem("ShaderNodeOutputAOV"),
NodeItem("ShaderNodeOutputWorld", poll=world_shader_nodes_poll),
NodeItem("ShaderNodeOutputLineStyle", poll=line_style_shader_nodes_poll),
NodeItem("NodeGroupOutput", poll=group_input_output_item_poll),