RNA: Make enum properties compatible with raw access.
This will allow to use foreach_get/set on enums of RNA collection items, which can save a lot of time in some cases (see incoming FBX updates).
This commit is contained in:
@@ -31,7 +31,7 @@ extern "C" {
|
||||
* \note Use #STRINGIFY() rather than defining with quotes.
|
||||
*/
|
||||
#define BLENDER_VERSION 290
|
||||
#define BLENDER_SUBVERSION 2
|
||||
#define BLENDER_SUBVERSION 3
|
||||
/** Several breakages with 280, e.g. collections vs layers. */
|
||||
#define BLENDER_MINVERSION 280
|
||||
#define BLENDER_MINSUBVERSION 0
|
||||
|
||||
@@ -1823,6 +1823,10 @@ static void rna_def_property_funcs(FILE *f, StructRNA *srna, PropertyDefRNA *dp)
|
||||
case PROP_ENUM: {
|
||||
EnumPropertyRNA *eprop = (EnumPropertyRNA *)prop;
|
||||
|
||||
if (!eprop->get && !eprop->set) {
|
||||
rna_set_raw_property(dp, prop);
|
||||
}
|
||||
|
||||
eprop->get = (void *)rna_def_property_get_func(f, srna, prop, dp, (const char *)eprop->get);
|
||||
eprop->set = (void *)rna_def_property_set_func(f, srna, prop, dp, (const char *)eprop->set);
|
||||
break;
|
||||
|
||||
@@ -4386,8 +4386,8 @@ static int rna_raw_access(ReportList *reports,
|
||||
/* check type */
|
||||
itemtype = RNA_property_type(itemprop);
|
||||
|
||||
if (!ELEM(itemtype, PROP_BOOLEAN, PROP_INT, PROP_FLOAT)) {
|
||||
BKE_report(reports, RPT_ERROR, "Only boolean, int and float properties supported");
|
||||
if (!ELEM(itemtype, PROP_BOOLEAN, PROP_INT, PROP_FLOAT, PROP_ENUM)) {
|
||||
BKE_report(reports, RPT_ERROR, "Only boolean, int float and enum properties supported");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user