Merge branch 'blender-v4.1-release'

This commit is contained in:
Bastien Montagne
2024-03-05 11:59:59 +01:00

View File

@@ -10,6 +10,7 @@
#include <cstddef>
#include <cstdlib>
#include <cstring>
#include <optional>
#include <sstream>
#include <fmt/format.h>
@@ -2099,12 +2100,13 @@ int RNA_property_ui_icon(const PropertyRNA *prop)
static bool rna_property_editable_do(const PointerRNA *ptr,
PropertyRNA *prop_orig,
std::optional<PropertyRNA *> prop_ensured,
const int index,
const char **r_info)
{
ID *id = ptr->owner_id;
PropertyRNA *prop = rna_ensure_property(prop_orig);
PropertyRNA *prop = prop_ensured ? *prop_ensured : rna_ensure_property(prop_orig);
const char *info = "";
const int flag = (prop->itemeditable != nullptr && index >= 0) ?
@@ -2165,12 +2167,12 @@ static bool rna_property_editable_do(const PointerRNA *ptr,
bool RNA_property_editable(const PointerRNA *ptr, PropertyRNA *prop)
{
return rna_property_editable_do(ptr, prop, -1, nullptr);
return rna_property_editable_do(ptr, prop, std::nullopt, -1, nullptr);
}
bool RNA_property_editable_info(const PointerRNA *ptr, PropertyRNA *prop, const char **r_info)
{
return rna_property_editable_do(ptr, prop, -1, r_info);
return rna_property_editable_do(ptr, prop, std::nullopt, -1, r_info);
}
bool RNA_property_editable_flag(const PointerRNA *ptr, PropertyRNA *prop)
@@ -2187,10 +2189,10 @@ bool RNA_property_editable_index(const PointerRNA *ptr, PropertyRNA *prop, const
{
BLI_assert(index >= 0);
return rna_property_editable_do(ptr, prop, index, nullptr);
return rna_property_editable_do(ptr, prop, std::nullopt, index, nullptr);
}
bool RNA_property_animateable(const PointerRNA *ptr, PropertyRNA *prop)
bool RNA_property_animateable(const PointerRNA *ptr, PropertyRNA *prop_orig)
{
/* check that base ID-block can support animation data */
if (!id_can_have_animdata(ptr->owner_id)) {
@@ -2207,13 +2209,13 @@ bool RNA_property_animateable(const PointerRNA *ptr, PropertyRNA *prop)
}
}
prop = rna_ensure_property(prop);
PropertyRNA *prop_ensured = rna_ensure_property(prop_orig);
if (!(prop->flag & PROP_ANIMATABLE)) {
if (!(prop_ensured->flag & PROP_ANIMATABLE)) {
return false;
}
return RNA_property_editable(const_cast<PointerRNA *>(ptr), prop);
return rna_property_editable_do(ptr, prop_orig, prop_ensured, -1, nullptr);
}
bool RNA_property_drivable(const PointerRNA *ptr, PropertyRNA *prop)