diff options
Diffstat (limited to 'source/blender/makesrna/intern/rna_access.c')
-rw-r--r-- | source/blender/makesrna/intern/rna_access.c | 61 |
1 files changed, 58 insertions, 3 deletions
diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index f3efbd0d53e..92ce8122597 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -282,6 +282,20 @@ static IDProperty *rna_idproperty_find(PointerRNA *ptr, const char *name) return NULL; } +static void rna_idproperty_free(PointerRNA *ptr, const char *name) +{ + IDProperty *group = RNA_struct_idprops(ptr, 0); + + if (group) { + IDProperty *idprop = IDP_GetPropertyFromGroup(group, name); + if (idprop) { + IDP_RemFromGroup(group, idprop); + IDP_FreeProperty(idprop); + MEM_freeN(idprop); + } + } +} + static int rna_ensure_property_array_length(PointerRNA *ptr, PropertyRNA *prop) { if (prop->magic == RNA_MAGIC) { @@ -477,7 +491,7 @@ static const char *rna_ensure_property_description(PropertyRNA *prop) description = ((IDProperty *)prop)->name; /* XXX - not correct */ } - return TIP_(description); + return description; } static const char *rna_ensure_property_name(PropertyRNA *prop) @@ -489,7 +503,7 @@ static const char *rna_ensure_property_name(PropertyRNA *prop) else name = ((IDProperty *)prop)->name; - return CTX_IFACE_(prop->translation_context, name); + return name; } /* Structs */ @@ -515,6 +529,11 @@ const char *RNA_struct_ui_name(StructRNA *type) return CTX_IFACE_(type->translation_context, type->name); } +const char *RNA_struct_ui_name_raw(StructRNA *type) +{ + return type->name; +} + int RNA_struct_ui_icon(StructRNA *type) { if (type) @@ -528,6 +547,11 @@ const char *RNA_struct_ui_description(StructRNA *type) return TIP_(type->description); } +const char *RNA_struct_ui_description_raw(StructRNA *type) +{ + return type->description; +} + const char *RNA_struct_translation_context(StructRNA *type) { return type->translation_context ? type->translation_context : BLF_I18NCONTEXT_DEFAULT; @@ -778,7 +802,7 @@ const char *RNA_property_identifier(PropertyRNA *prop) const char *RNA_property_description(PropertyRNA *prop) { - return rna_ensure_property_description(prop); + return TIP_(rna_ensure_property_description(prop)); } PropertyType RNA_property_type(PropertyRNA *prop) @@ -1401,11 +1425,21 @@ int RNA_property_enum_bitflag_identifiers(bContext *C, PointerRNA *ptr, Property const char *RNA_property_ui_name(PropertyRNA *prop) { + return CTX_IFACE_(prop->translation_context, rna_ensure_property_name(prop)); +} + +const char *RNA_property_ui_name_raw(PropertyRNA *prop) +{ return rna_ensure_property_name(prop); } const char *RNA_property_ui_description(PropertyRNA *prop) { + return TIP_(rna_ensure_property_description(prop)); +} + +const char *RNA_property_ui_description_raw(PropertyRNA *prop) +{ return rna_ensure_property_description(prop); } @@ -4797,6 +4831,13 @@ bool RNA_property_is_set(PointerRNA *ptr, PropertyRNA *prop) } } +void RNA_property_unset(PointerRNA *ptr, PropertyRNA *prop) +{ + if (prop->flag & PROP_IDPROPERTY) { + rna_idproperty_free(ptr, prop->identifier); + } +} + bool RNA_struct_property_is_set_ex(PointerRNA *ptr, const char *identifier, bool use_ghost) { PropertyRNA *prop = RNA_struct_find_property(ptr, identifier); @@ -4825,6 +4866,15 @@ bool RNA_struct_property_is_set(PointerRNA *ptr, const char *identifier) } } +void RNA_struct_property_unset(PointerRNA *ptr, const char *identifier) +{ + PropertyRNA *prop = RNA_struct_find_property(ptr, identifier); + + if (prop) { + RNA_property_unset(ptr, prop); + } +} + bool RNA_property_is_idprop(PropertyRNA *prop) { return (prop->magic != RNA_MAGIC); @@ -5190,6 +5240,11 @@ const char *RNA_function_identifier(FunctionRNA *func) const char *RNA_function_ui_description(FunctionRNA *func) { + return TIP_(func->description); +} + +const char *RNA_function_ui_description_raw(FunctionRNA *func) +{ return func->description; } |