diff options
author | Lukas Tönne <lukas.toenne@gmail.com> | 2021-07-24 17:32:28 +0300 |
---|---|---|
committer | Lukas Tönne <lukas.toenne@gmail.com> | 2021-07-24 17:32:28 +0300 |
commit | 9bff211ac9e38de090ac2cddd2bbe9636443af6f (patch) | |
tree | cfea5324a6b776729b5520ea007bfb9200e30eec /release/scripts/startup | |
parent | 23209dc8f9aedf90ddf4cc53d7170d38ddaeb5d7 (diff) | |
parent | 05c7d935e77025b87c5593dcbae38de42ed5a3ce (diff) |
Merge branch 'master' into node-group-single-socket-nodes
Diffstat (limited to 'release/scripts/startup')
9 files changed, 55 insertions, 43 deletions
diff --git a/release/scripts/startup/bl_operators/assets.py b/release/scripts/startup/bl_operators/assets.py index d2655784afd..c782cd0646e 100644 --- a/release/scripts/startup/bl_operators/assets.py +++ b/release/scripts/startup/bl_operators/assets.py @@ -18,7 +18,6 @@ # <pep8 compliant> from __future__ import annotations -from pathlib import Path import bpy from bpy.types import Operator diff --git a/release/scripts/startup/bl_operators/geometry_nodes.py b/release/scripts/startup/bl_operators/geometry_nodes.py index 71ef89a066b..ec2887a1a74 100644 --- a/release/scripts/startup/bl_operators/geometry_nodes.py +++ b/release/scripts/startup/bl_operators/geometry_nodes.py @@ -81,7 +81,10 @@ class NewGeometryNodeTreeAssign(Operator): return geometry_modifier_poll(context) def execute(self, context): - modifier = context.object.modifiers.active + if context.area.type == 'PROPERTIES': + modifier = context.modifier + else: + modifier = context.object.modifiers.active if not modifier: return {'CANCELLED'} diff --git a/release/scripts/startup/bl_operators/rigidbody.py b/release/scripts/startup/bl_operators/rigidbody.py index bc80500c888..7f5edac4dfb 100644 --- a/release/scripts/startup/bl_operators/rigidbody.py +++ b/release/scripts/startup/bl_operators/rigidbody.py @@ -60,17 +60,22 @@ class CopyRigidbodySettings(Operator): def execute(self, context): obj_act = context.object - view_layer = context.view_layer - # deselect all but mesh objects + # Deselect all non mesh objects and objects that + # already have a rigid body attached. + rb_objects = [] for o in context.selected_objects: - if o.type != 'MESH': + if o.type != 'MESH' or o.rigid_body is not None: o.select_set(False) - elif o.rigid_body is None: - # Add rigidbody to object! - view_layer.objects.active = o - bpy.ops.rigidbody.object_add() - view_layer.objects.active = obj_act + if o.rigid_body is not None: + rb_objects.append(o) + + bpy.ops.rigidbody.objects_add() + + # Ensure that the rigid body objects + # we've de-selected are selected again. + for o in rb_objects: + o.select_set(True) objects = context.selected_objects if objects: diff --git a/release/scripts/startup/bl_operators/sequencer.py b/release/scripts/startup/bl_operators/sequencer.py index 48a02a4c5c6..8f678896e61 100644 --- a/release/scripts/startup/bl_operators/sequencer.py +++ b/release/scripts/startup/bl_operators/sequencer.py @@ -108,14 +108,13 @@ class SequencerSplitMulticam(Operator): if s.multicam_source == camera or camera >= s.channel: return {'FINISHED'} - if not s.select: - s.select = True - cfra = context.scene.frame_current - bpy.ops.sequencer.split(frame=cfra, type='SOFT', side='RIGHT') - for s in context.scene.sequence_editor.sequences_all: - if s.select and s.type == 'MULTICAM' and s.frame_final_start <= cfra and cfra < s.frame_final_end: - context.scene.sequence_editor.active_strip = s + right_strip = s.split(frame=cfra, split_method='SOFT') + + if right_strip: + s.select = False + right_strip.select = True + context.scene.sequence_editor.active_strip = right_strip context.scene.sequence_editor.active_strip.multicam_source = camera return {'FINISHED'} diff --git a/release/scripts/startup/bl_ui/properties_collection.py b/release/scripts/startup/bl_ui/properties_collection.py index b51d7157c06..3f7c0735eec 100644 --- a/release/scripts/startup/bl_ui/properties_collection.py +++ b/release/scripts/startup/bl_ui/properties_collection.py @@ -86,12 +86,15 @@ class COLLECTION_PT_lineart_collection(CollectionButtonsPanel, Panel): row = layout.row() row.prop(collection, "lineart_usage") - layout.prop(collection, "lineart_use_intersection_mask") + layout.prop(collection, "lineart_use_intersection_mask", text="Collection Mask") - row = layout.row(align=True, heading="Masks") - row.active = collection.lineart_use_intersection_mask + col = layout.column(align=True) + col.active = collection.lineart_use_intersection_mask + row = col.row(align=True, heading="Masks") for i in range(8): - row.prop(collection, "lineart_intersection_mask", index=i, text=str(i), toggle=True) + row.prop(collection, "lineart_intersection_mask", index=i, text=" ", toggle=True) + if i == 3: + row = col.row(align=True) classes = ( diff --git a/release/scripts/startup/bl_ui/properties_data_mesh.py b/release/scripts/startup/bl_ui/properties_data_mesh.py index 7f4328bb25a..d9ad094ac4f 100644 --- a/release/scripts/startup/bl_ui/properties_data_mesh.py +++ b/release/scripts/startup/bl_ui/properties_data_mesh.py @@ -646,7 +646,7 @@ class DATA_PT_mesh_attributes(MeshButtonsPanel, Panel): if len(colliding_names) == 0: return - layout.label(text="Name Collisions: {}".format(", ".join(colliding_names)), icon='INFO') + layout.label(text="Name collisions: {}".format(", ".join(colliding_names)), icon='ERROR') classes = ( diff --git a/release/scripts/startup/bl_ui/properties_material.py b/release/scripts/startup/bl_ui/properties_material.py index b217e33de12..1c7f3639f0a 100644 --- a/release/scripts/startup/bl_ui/properties_material.py +++ b/release/scripts/startup/bl_ui/properties_material.py @@ -291,18 +291,18 @@ class MATERIAL_PT_lineart(MaterialButtonsPanel, Panel): mat = context.material lineart = mat.lineart - layout.prop(lineart, "use_material_mask") + layout.prop(lineart, "use_material_mask", text="Material Mask") - row = layout.row(align=True, heading="Masks") - row.active = lineart.use_material_mask + col = layout.column(align=True) + col.active = lineart.use_material_mask + row = col.row(align=True, heading="Masks") for i in range(8): - row.prop(lineart, "use_material_mask_bits", text=str(i), index=i, toggle=True) + row.prop(lineart, "use_material_mask_bits", text=" ", index=i, toggle=True) + if i == 3: + row = col.row(align=True) row = layout.row(align=True, heading="Custom Occlusion") - row.prop(lineart, "use_mat_occlusion", text="") - sub = row.row(align=False) - sub.active = lineart.use_mat_occlusion - sub.prop(lineart, "mat_occlusion", slider=True, text="Levels") + row.prop(lineart, "mat_occlusion", text="Levels") classes = ( diff --git a/release/scripts/startup/bl_ui/space_sequencer.py b/release/scripts/startup/bl_ui/space_sequencer.py index 55714e0b0a5..47b04f9cdbc 100644 --- a/release/scripts/startup/bl_ui/space_sequencer.py +++ b/release/scripts/startup/bl_ui/space_sequencer.py @@ -1156,14 +1156,19 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel, Panel): flow.prop(strip, "use_only_boost") elif strip_type == 'SPEED': - layout.prop(strip, "use_default_fade", text="Stretch to Input Strip Length") - if not strip.use_default_fade: - layout.prop(strip, "use_as_speed") - if strip.use_as_speed: - layout.prop(strip, "speed_factor") - else: - layout.prop(strip, "speed_factor", text="Frame Number") - layout.prop(strip, "use_scale_to_length") + col = layout.column(align=True) + col.prop(strip, "speed_control", text="Speed Control") + if strip.speed_control == "MULTIPLY": + col.prop(strip, "speed_factor", text=" ") + elif strip.speed_control == "LENGTH": + col.prop(strip, "speed_length", text=" ") + elif strip.speed_control == "FRAME_NUMBER": + col.prop(strip, "speed_frame_number", text=" ") + + row = layout.row(align=True) + row.enabled = strip.speed_control != "STRETCH" + row = layout.row(align=True, heading="Interpolation") + row.prop(strip, "use_frame_interpolate", text="") elif strip_type == 'TRANSFORM': col = layout.column() @@ -1233,11 +1238,7 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel, Panel): layout.prop(strip, "wrap_width", text="Wrap Width") col = layout.column(align=True) - if strip_type == 'SPEED': - col.prop(strip, "multiply_speed") - col.prop(strip, "use_frame_interpolate") - - elif strip_type in {'CROSS', 'GAMMA_CROSS', 'WIPE', 'ALPHA_OVER', 'ALPHA_UNDER', 'OVER_DROP'}: + if strip_type in {'CROSS', 'GAMMA_CROSS', 'WIPE', 'ALPHA_OVER', 'ALPHA_UNDER', 'OVER_DROP'}: col.prop(strip, "use_default_fade", text="Default Fade") if not strip.use_default_fade: col.prop(strip, "effect_fader", text="Effect Fader") diff --git a/release/scripts/startup/nodeitems_builtins.py b/release/scripts/startup/nodeitems_builtins.py index 2b0ac6046bc..f130a79ede0 100644 --- a/release/scripts/startup/nodeitems_builtins.py +++ b/release/scripts/startup/nodeitems_builtins.py @@ -544,8 +544,10 @@ geometry_node_categories = [ NodeItem("GeometryNodeMeshToCurve"), NodeItem("GeometryNodeCurveToPoints"), NodeItem("GeometryNodeCurveEndpoints"), + NodeItem("GeometryNodeCurveTrim"), NodeItem("GeometryNodeCurveLength"), NodeItem("GeometryNodeCurveReverse"), + NodeItem("GeometryNodeCurveSetHandles"), ]), GeometryNodeCategory("GEO_PRIMITIVES_CURVE", "Curve Primitives", items=[ NodeItem("GeometryNodeCurvePrimitiveLine"), |