diff options
Diffstat (limited to 'source/blender/makesrna')
-rw-r--r-- | source/blender/makesrna/intern/rna_access.c | 5 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_constraint.c | 6 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_curve.c | 2 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_define.c | 7 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_mesh.c | 51 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_modifier.c | 15 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_nodetree.c | 112 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_object_api.c | 14 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_rna.c | 8 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_scene.c | 7 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_ui.c | 13 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_userdef.c | 19 |
12 files changed, 115 insertions, 144 deletions
diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 92ce8122597..b9ee9b6ad1c 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -554,7 +554,7 @@ const char *RNA_struct_ui_description_raw(StructRNA *type) const char *RNA_struct_translation_context(StructRNA *type) { - return type->translation_context ? type->translation_context : BLF_I18NCONTEXT_DEFAULT; + return type->translation_context; } PropertyRNA *RNA_struct_name_property(StructRNA *type) @@ -1283,7 +1283,6 @@ void RNA_property_enum_items_gettexted(bContext *C, PointerRNA *ptr, PropertyRNA for (i = 0; nitem[i].identifier; i++) { if (nitem[i].name && do_iface) { - /* note: prop->translation_context may be NULL, this just means we use the default "" context */ nitem[i].name = BLF_pgettext(prop->translation_context, nitem[i].name); } if (nitem[i].description && do_tooltip) { @@ -1446,7 +1445,7 @@ const char *RNA_property_ui_description_raw(PropertyRNA *prop) const char *RNA_property_translation_context(PropertyRNA *_prop) { PropertyRNA *prop = rna_ensure_property(_prop); - return prop->translation_context ? prop->translation_context : BLF_I18NCONTEXT_DEFAULT; + return prop->translation_context; } int RNA_property_ui_icon(PropertyRNA *prop) diff --git a/source/blender/makesrna/intern/rna_constraint.c b/source/blender/makesrna/intern/rna_constraint.c index 4ced8326560..c96ea72fee2 100644 --- a/source/blender/makesrna/intern/rna_constraint.c +++ b/source/blender/makesrna/intern/rna_constraint.c @@ -48,8 +48,8 @@ EnumPropertyItem constraint_type_items[] = { {0, "", 0, N_("Motion Tracking"), ""}, {CONSTRAINT_TYPE_CAMERASOLVER, "CAMERA_SOLVER", ICON_CONSTRAINT_DATA, "Camera Solver", ""}, - {CONSTRAINT_TYPE_OBJECTSOLVER, "OBJECT_SOLVER", ICON_CONSTRAINT_DATA, "Object Solver", ""}, {CONSTRAINT_TYPE_FOLLOWTRACK, "FOLLOW_TRACK", ICON_CONSTRAINT_DATA, "Follow Track", ""}, + {CONSTRAINT_TYPE_OBJECTSOLVER, "OBJECT_SOLVER", ICON_CONSTRAINT_DATA, "Object Solver", ""}, {0, "", 0, N_("Transform"), ""}, {CONSTRAINT_TYPE_LOCLIKE, "COPY_LOCATION", ICON_CONSTRAINT_DATA, "Copy Location", "Copy the location of a target (with an optional offset), so that they move together"}, @@ -99,8 +99,8 @@ EnumPropertyItem constraint_type_items[] = { "Change pivot point for transforms (buggy)"}, {CONSTRAINT_TYPE_RIGIDBODYJOINT, "RIGID_BODY_JOINT", ICON_CONSTRAINT_DATA, "Rigid Body Joint", "Use to define a Rigid Body Constraint (for Game Engine use only)"}, - {CONSTRAINT_TYPE_PYTHON, "SCRIPT", ICON_CONSTRAINT_DATA, "Script", - "Custom constraint(s) written in Python (Not yet implemented)"}, + /* {CONSTRAINT_TYPE_PYTHON, "SCRIPT", ICON_CONSTRAINT_DATA, "Script", + "Custom constraint(s) written in Python (Not yet implemented)"}, */ {CONSTRAINT_TYPE_SHRINKWRAP, "SHRINKWRAP", ICON_CONSTRAINT_DATA, "Shrinkwrap", "Restrict movements to surface of target mesh"}, {0, NULL, 0, NULL, NULL} diff --git a/source/blender/makesrna/intern/rna_curve.c b/source/blender/makesrna/intern/rna_curve.c index dba33bb9ab5..479af956591 100644 --- a/source/blender/makesrna/intern/rna_curve.c +++ b/source/blender/makesrna/intern/rna_curve.c @@ -281,7 +281,7 @@ static int rna_Nurb_length(PointerRNA *ptr) static void rna_Nurb_type_set(PointerRNA *ptr, int value) { Nurb *nu = (Nurb *)ptr->data; - ED_nurb_set_spline_type(nu, value); + BKE_nurb_type_convert(nu, value, true); } static void rna_BPoint_array_begin(CollectionPropertyIterator *iter, PointerRNA *ptr) diff --git a/source/blender/makesrna/intern/rna_define.c b/source/blender/makesrna/intern/rna_define.c index 02cacb00bec..6649d58d718 100644 --- a/source/blender/makesrna/intern/rna_define.c +++ b/source/blender/makesrna/intern/rna_define.c @@ -741,6 +741,8 @@ StructRNA *RNA_def_struct_ptr(BlenderRNA *brna, const char *identifier, StructRN srna->identifier = identifier; srna->name = identifier; /* may be overwritten later RNA_def_struct_ui_text */ srna->description = ""; + /* may be overwritten later RNA_def_struct_translation_context */ + srna->translation_context = BLF_I18NCONTEXT_DEFAULT_BPYRNA; srna->flag |= STRUCT_UNDO; if (!srnafrom) srna->icon = ICON_DOT; @@ -984,7 +986,7 @@ void RNA_def_struct_ui_icon(StructRNA *srna, int icon) void RNA_def_struct_translation_context(StructRNA *srna, const char *context) { - srna->translation_context = context; + srna->translation_context = context ? context : BLF_I18NCONTEXT_DEFAULT_BPYRNA; } /* Property Definition */ @@ -1113,6 +1115,7 @@ PropertyRNA *RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier prop->subtype = subtype; prop->name = identifier; prop->description = ""; + prop->translation_context = BLF_I18NCONTEXT_DEFAULT_BPYRNA; /* a priori not raw editable */ prop->rawtype = -1; @@ -2057,7 +2060,7 @@ void RNA_def_property_collection_sdna(PropertyRNA *prop, const char *structname, void RNA_def_property_translation_context(PropertyRNA *prop, const char *context) { - prop->translation_context = context; + prop->translation_context = context ? context : BLF_I18NCONTEXT_DEFAULT_BPYRNA; } /* Functions */ diff --git a/source/blender/makesrna/intern/rna_mesh.c b/source/blender/makesrna/intern/rna_mesh.c index e488bedca8a..aed0e49cf7e 100644 --- a/source/blender/makesrna/intern/rna_mesh.c +++ b/source/blender/makesrna/intern/rna_mesh.c @@ -1268,12 +1268,12 @@ static int rna_Mesh_tot_face_get(PointerRNA *ptr) return me->edit_btmesh ? me->edit_btmesh->bm->totfacesel : 0; } -static PointerRNA rna_Mesh_vertex_color_new(struct Mesh *me, struct bContext *C, const char *name) +static PointerRNA rna_Mesh_vertex_color_new(struct Mesh *me, const char *name) { PointerRNA ptr; CustomData *ldata; CustomDataLayer *cdl = NULL; - int index = ED_mesh_color_add(C, NULL, NULL, me, name, FALSE); + int index = ED_mesh_color_add(me, name, false); if (index != -1) { ldata = rna_mesh_ldata_helper(me); @@ -1284,8 +1284,14 @@ static PointerRNA rna_Mesh_vertex_color_new(struct Mesh *me, struct bContext *C, return ptr; } -static PointerRNA rna_Mesh_tessface_vertex_color_new(struct Mesh *me, struct bContext *C, ReportList *reports, - const char *name) +static void rna_Mesh_vertex_color_remove(struct Mesh *me, ReportList *reports, CustomDataLayer *layer) +{ + if (ED_mesh_color_remove_named(me, layer->name) == false) { + BKE_reportf(reports, RPT_ERROR, "vertex color '%s' not found", layer->name); + } +} + +static PointerRNA rna_Mesh_tessface_vertex_color_new(struct Mesh *me, ReportList *reports, const char *name) { PointerRNA ptr; CustomData *fdata; @@ -1302,7 +1308,7 @@ static PointerRNA rna_Mesh_tessface_vertex_color_new(struct Mesh *me, struct bCo return PointerRNA_NULL; } - index = ED_mesh_color_add(C, NULL, NULL, me, name, FALSE); + index = ED_mesh_color_add(me, name, false); if (index != -1) { fdata = rna_mesh_fdata_helper(me); @@ -1358,12 +1364,12 @@ static PointerRNA rna_Mesh_polygon_string_property_new(struct Mesh *me, struct b return ptr; } -static PointerRNA rna_Mesh_uv_texture_new(struct Mesh *me, struct bContext *C, const char *name) +static PointerRNA rna_Mesh_uv_texture_new(struct Mesh *me, const char *name) { PointerRNA ptr; CustomData *pdata; CustomDataLayer *cdl = NULL; - int index = ED_mesh_uv_texture_add(C, me, name, FALSE); + int index = ED_mesh_uv_texture_add(me, name, false); if (index != -1) { pdata = rna_mesh_pdata_helper(me); @@ -1374,11 +1380,17 @@ static PointerRNA rna_Mesh_uv_texture_new(struct Mesh *me, struct bContext *C, c return ptr; } +static void rna_Mesh_uv_texture_layers_remove(struct Mesh *me, ReportList *reports, CustomDataLayer *layer) +{ + if (ED_mesh_uv_texture_remove_named(me, layer->name) == false) { + BKE_reportf(reports, RPT_ERROR, "texture layer '%s' not found", layer->name); + } +} + /* while this is supposed to be readonly, * keep it to support importers that only make tessfaces */ -static PointerRNA rna_Mesh_tessface_uv_texture_new(struct Mesh *me, struct bContext *C, ReportList *reports, - const char *name) +static PointerRNA rna_Mesh_tessface_uv_texture_new(struct Mesh *me, ReportList *reports, const char *name) { PointerRNA ptr; CustomData *fdata; @@ -1395,7 +1407,7 @@ static PointerRNA rna_Mesh_tessface_uv_texture_new(struct Mesh *me, struct bCont return PointerRNA_NULL; } - index = ED_mesh_uv_texture_add(C, me, name, FALSE); + index = ED_mesh_uv_texture_add(me, name, false); if (index != -1) { fdata = rna_mesh_fdata_helper(me); @@ -2385,7 +2397,7 @@ static void rna_def_tessface_vertex_colors(BlenderRNA *brna, PropertyRNA *cprop) /* eventually deprecate this */ func = RNA_def_function(srna, "new", "rna_Mesh_tessface_vertex_color_new"); - RNA_def_function_flag(func, FUNC_USE_CONTEXT | FUNC_USE_REPORTS); + RNA_def_function_flag(func, FUNC_USE_REPORTS); RNA_def_function_ui_description(func, "Add a vertex color layer to Mesh"); RNA_def_string(func, "name", "Col", 0, "", "Vertex color name"); parm = RNA_def_pointer(func, "layer", "MeshColorLayer", "", "The newly created layer"); @@ -2420,21 +2432,18 @@ static void rna_def_loop_colors(BlenderRNA *brna, PropertyRNA *cprop) RNA_def_struct_ui_text(srna, "Loop Colors", "Collection of vertex colors"); func = RNA_def_function(srna, "new", "rna_Mesh_vertex_color_new"); - RNA_def_function_flag(func, FUNC_USE_CONTEXT); RNA_def_function_ui_description(func, "Add a vertex color layer to Mesh"); RNA_def_string(func, "name", "Col", 0, "", "Vertex color name"); parm = RNA_def_pointer(func, "layer", "MeshLoopColorLayer", "", "The newly created layer"); RNA_def_property_flag(parm, PROP_RNAPTR); RNA_def_function_return(func, parm); -#if 0 func = RNA_def_function(srna, "remove", "rna_Mesh_vertex_color_remove"); RNA_def_function_ui_description(func, "Remove a vertex color layer"); RNA_def_function_flag(func, FUNC_USE_REPORTS); - parm = RNA_def_pointer(func, "layer", "Layer", "", "The layer to remove"); - RNA_def_property_flag(parm, PROP_REQUIRED | PROP_NEVER_NULL | PROP_RNAPTR); + parm = RNA_def_pointer(func, "layer", "MeshLoopColorLayer", "", "The layer to remove"); + RNA_def_property_flag(parm, PROP_REQUIRED | PROP_NEVER_NULL); RNA_def_property_clear_flag(parm, PROP_THICK_WRAP); -#endif prop = RNA_def_property(srna, "active", PROP_POINTER, PROP_NONE); RNA_def_property_struct_type(prop, "MeshLoopColorLayer"); @@ -2561,7 +2570,7 @@ static void rna_def_tessface_uv_textures(BlenderRNA *brna, PropertyRNA *cprop) /* eventually deprecate this */ func = RNA_def_function(srna, "new", "rna_Mesh_tessface_uv_texture_new"); - RNA_def_function_flag(func, FUNC_USE_CONTEXT | FUNC_USE_REPORTS); + RNA_def_function_flag(func, FUNC_USE_REPORTS); RNA_def_function_ui_description(func, "Add a UV tessface-texture layer to Mesh (only for meshes with no polygons)"); RNA_def_string(func, "name", "UVMap", 0, "", "UV map name"); parm = RNA_def_pointer(func, "layer", "MeshTextureFaceLayer", "", "The newly created layer"); @@ -2598,21 +2607,17 @@ static void rna_def_uv_textures(BlenderRNA *brna, PropertyRNA *cprop) RNA_def_struct_ui_text(srna, "UV Maps", "Collection of UV maps"); func = RNA_def_function(srna, "new", "rna_Mesh_uv_texture_new"); - RNA_def_function_flag(func, FUNC_USE_CONTEXT); RNA_def_function_ui_description(func, "Add a UV map layer to Mesh"); RNA_def_string(func, "name", "UVMap", 0, "", "UV map name"); parm = RNA_def_pointer(func, "layer", "MeshTexturePolyLayer", "", "The newly created layer"); RNA_def_property_flag(parm, PROP_RNAPTR); RNA_def_function_return(func, parm); -#if 0 func = RNA_def_function(srna, "remove", "rna_Mesh_uv_texture_layers_remove"); RNA_def_function_ui_description(func, "Remove a vertex color layer"); RNA_def_function_flag(func, FUNC_USE_REPORTS); - parm = RNA_def_pointer(func, "layer", "Layer", "", "The layer to remove"); - RNA_def_property_flag(parm, PROP_REQUIRED | PROP_NEVER_NULL | PROP_RNAPTR); - RNA_def_property_clear_flag(parm, PROP_THICK_WRAP); -#endif + parm = RNA_def_pointer(func, "layer", "MeshTexturePolyLayer", "", "The layer to remove"); + RNA_def_property_flag(parm, PROP_REQUIRED | PROP_NEVER_NULL); prop = RNA_def_property(srna, "active", PROP_POINTER, PROP_NONE); RNA_def_property_struct_type(prop, "MeshTexturePolyLayer"); diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index fa436e30200..185968ded79 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -670,15 +670,6 @@ static void rna_UVProjectModifier_num_projectors_set(PointerRNA *ptr, int value) md->projectors[a] = NULL; } -static int rna_OceanModifier_is_build_enabled_get(PointerRNA *UNUSED(ptr)) -{ -#ifdef WITH_OCEANSIM - return 1; -#else /* WITH_OCEANSIM */ - return 0; -#endif /* WITH_OCEANSIM */ -} - static void rna_OceanModifier_init_update(Main *bmain, Scene *scene, PointerRNA *ptr) { OceanModifierData *omd = (OceanModifierData *)ptr->data; @@ -3287,12 +3278,6 @@ static void rna_def_modifier_ocean(BlenderRNA *brna) RNA_def_struct_sdna(srna, "OceanModifierData"); RNA_def_struct_ui_icon(srna, ICON_MOD_OCEAN); - /* General check if blender was built with OceanSim modifier support */ - prop = RNA_def_property(srna, "is_build_enabled", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_funcs(prop, "rna_OceanModifier_is_build_enabled_get", NULL); - RNA_def_property_clear_flag(prop, PROP_EDITABLE); - RNA_def_property_ui_text(prop, "Build Enabled", "True if the OceanSim modifier is enabled in this build"); - prop = RNA_def_property(srna, "geometry_mode", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "geometry_mode"); RNA_def_property_enum_items(prop, geometry_items); diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index b558e6d2eeb..d8dd9ff3c33 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -69,15 +69,15 @@ EnumPropertyItem node_socket_in_out_items[] = { }; EnumPropertyItem node_socket_type_items[] = { - {SOCK_CUSTOM, "CUSTOM", 0, "Custom", ""}, - {SOCK_FLOAT, "VALUE", 0, "Value", ""}, - {SOCK_INT, "INT", 0, "Int", ""}, - {SOCK_BOOLEAN, "BOOLEAN", 0, "Boolean", ""}, - {SOCK_VECTOR, "VECTOR", 0, "Vector", ""}, - {SOCK_STRING, "STRING", 0, "String", ""}, - {SOCK_RGBA, "RGBA", 0, "RGBA", ""}, - {SOCK_SHADER, "SHADER", 0, "Shader", ""}, - {0, NULL, 0, NULL, NULL} + {SOCK_CUSTOM, "CUSTOM", 0, "Custom", ""}, + {SOCK_FLOAT, "VALUE", 0, "Value", ""}, + {SOCK_INT, "INT", 0, "Int", ""}, + {SOCK_BOOLEAN, "BOOLEAN", 0, "Boolean", ""}, + {SOCK_VECTOR, "VECTOR", 0, "Vector", ""}, + {SOCK_STRING, "STRING", 0, "String", ""}, + {SOCK_RGBA, "RGBA", 0, "RGBA", ""}, + {SOCK_SHADER, "SHADER", 0, "Shader", ""}, + {0, NULL, 0, NULL, NULL} }; EnumPropertyItem node_quality_items[] = { @@ -542,9 +542,6 @@ static void rna_NodeTree_draw_add_menu(const bContext *C, struct uiLayout *layou ParameterList list; FunctionRNA *func; - if (!ntreeIsValid(ntree)) - return; - RNA_id_pointer_create(&ntree->id, &ptr); func = &rna_NodeTree_draw_add_menu_func; /* RNA_struct_find_function(&ptr, "draw_add_menu"); */ @@ -656,6 +653,18 @@ static StructRNA *rna_NodeTree_register(Main *bmain, ReportList *reports, void * return nt->ext.srna; } +static bool rna_NodeTree_check(bNodeTree *ntree, ReportList *reports) +{ + if (!ntreeIsRegistered(ntree)) { + if (reports) + BKE_reportf(reports, RPT_ERROR, "Node tree '%s' has undefined type %s", ntree->id.name + 2, ntree->idname); + + return false; + } + else + return true; +} + static void rna_NodeTree_update(Main *bmain, Scene *scene, PointerRNA *ptr) { bNodeTree *ntree = (bNodeTree *)ptr->id.data; @@ -695,10 +704,8 @@ static bNode *rna_NodeTree_node_new(bNodeTree *ntree, bContext *C, ReportList *r bNodeType *ntype; bNode *node; - if (!ntreeIsValid(ntree)) { - BKE_reportf(reports, RPT_ERROR, "Node tree %s invalid", ntree->id.name + 2); + if (!rna_NodeTree_check(ntree, reports)) return NULL; - } ntype = nodeTypeFind(type); if (!ntype) { @@ -745,10 +752,8 @@ static void rna_NodeTree_node_remove(bNodeTree *ntree, ReportList *reports, Poin { bNode *node = node_ptr->data; - if (!ntreeIsValid(ntree)) { - BKE_reportf(reports, RPT_ERROR, "Node tree %s invalid", ntree->id.name + 2); + if (!rna_NodeTree_check(ntree, reports)) return; - } if (BLI_findindex(&ntree->nodes, node) == -1) { BKE_reportf(reports, RPT_ERROR, "Unable to locate node '%s' in node tree", node->name); @@ -767,10 +772,8 @@ static void rna_NodeTree_node_clear(bNodeTree *ntree, ReportList *reports) { bNode *node = ntree->nodes.first; - if (!ntreeIsValid(ntree)) { - BKE_reportf(reports, RPT_ERROR, "Node tree %s invalid", ntree->id.name + 2); + if (!rna_NodeTree_check(ntree, reports)) return; - } while (node) { bNode *next_node = node->next; @@ -800,10 +803,6 @@ static void rna_NodeTree_active_node_set(PointerRNA *ptr, const PointerRNA value bNodeTree *ntree = (bNodeTree *)ptr->data; bNode *node = (bNode *)value.data; - /* activating node might require valid typeinfo */ - if (!ntreeIsValid(ntree)) - return; - if (node && BLI_findindex(&ntree->nodes, node) != -1) nodeSetActive(ntree, node); else @@ -817,10 +816,8 @@ static bNodeLink *rna_NodeTree_link_new(bNodeTree *ntree, ReportList *reports, bNodeLink *ret; bNode *fromnode = NULL, *tonode = NULL; - if (!ntreeIsValid(ntree)) { - BKE_reportf(reports, RPT_ERROR, "Node tree %s invalid", ntree->id.name + 2); + if (!rna_NodeTree_check(ntree, reports)) return NULL; - } nodeFindNode(ntree, fromsock, &fromnode, NULL); nodeFindNode(ntree, tosock, &tonode, NULL); @@ -832,9 +829,9 @@ static bNodeLink *rna_NodeTree_link_new(bNodeTree *ntree, ReportList *reports, if (verify_limits) { /* remove other socket links if limit is exceeded */ - if (nodeCountSocketLinks(ntree, fromsock) > fromsock->limit) + if (nodeCountSocketLinks(ntree, fromsock) + 1 > fromsock->limit) nodeRemSocketLinks(ntree, fromsock); - if (nodeCountSocketLinks(ntree, tosock) > tosock->limit) + if (nodeCountSocketLinks(ntree, tosock) + 1 > tosock->limit) nodeRemSocketLinks(ntree, tosock); } @@ -855,10 +852,8 @@ static void rna_NodeTree_link_remove(bNodeTree *ntree, ReportList *reports, Poin { bNodeLink *link = link_ptr->data; - if (!ntreeIsValid(ntree)) { - BKE_reportf(reports, RPT_ERROR, "Node tree %s invalid", ntree->id.name + 2); + if (!rna_NodeTree_check(ntree, reports)) return; - } if (BLI_findindex(&ntree->links, link) == -1) { BKE_report(reports, RPT_ERROR, "Unable to locate link in node tree"); @@ -876,10 +871,8 @@ static void rna_NodeTree_link_clear(bNodeTree *ntree, ReportList *reports) { bNodeLink *link = ntree->links.first; - if (!ntreeIsValid(ntree)) { - BKE_reportf(reports, RPT_ERROR, "Node tree %s invalid", ntree->id.name + 2); + if (!rna_NodeTree_check(ntree, reports)) return; - } while (link) { bNodeLink *next_link = link->next; @@ -971,10 +964,8 @@ static bNodeSocket *rna_NodeTree_inputs_new(bNodeTree *ntree, ReportList *report { bNodeSocket *sock; - if (!ntreeIsValid(ntree)) { - BKE_reportf(reports, RPT_ERROR, "Node tree %s invalid", ntree->id.name + 2); + if (!rna_NodeTree_check(ntree, reports)) return NULL; - } sock = ntreeAddSocketInterface(ntree, SOCK_IN, type, name); @@ -988,10 +979,8 @@ static bNodeSocket *rna_NodeTree_outputs_new(bNodeTree *ntree, ReportList *repor { bNodeSocket *sock; - if (!ntreeIsValid(ntree)) { - BKE_reportf(reports, RPT_ERROR, "Node tree %s invalid", ntree->id.name + 2); + if (!rna_NodeTree_check(ntree, reports)) return NULL; - } sock = ntreeAddSocketInterface(ntree, SOCK_OUT, type, name); @@ -1003,10 +992,8 @@ static bNodeSocket *rna_NodeTree_outputs_new(bNodeTree *ntree, ReportList *repor static void rna_NodeTree_socket_remove(bNodeTree *ntree, ReportList *reports, bNodeSocket *sock) { - if (!ntreeIsValid(ntree)) { - BKE_reportf(reports, RPT_ERROR, "Node tree %s invalid", ntree->id.name + 2); + if (!rna_NodeTree_check(ntree, reports)) return; - } if (BLI_findindex(&ntree->inputs, sock) == -1 && BLI_findindex(&ntree->outputs, sock) == -1) { BKE_reportf(reports, RPT_ERROR, "Unable to locate socket '%s' in node", sock->identifier); @@ -1023,10 +1010,8 @@ static void rna_NodeTree_inputs_clear(bNodeTree *ntree, ReportList *reports) { bNodeSocket *sock, *nextsock; - if (!ntreeIsValid(ntree)) { - BKE_reportf(reports, RPT_ERROR, "Node tree %s invalid", ntree->id.name + 2); + if (!rna_NodeTree_check(ntree, reports)) return; - } for (sock = ntree->inputs.first; sock; sock = nextsock) { nextsock = sock->next; @@ -1041,10 +1026,8 @@ static void rna_NodeTree_outputs_clear(bNodeTree *ntree, ReportList *reports) { bNodeSocket *sock, *nextsock; - if (!ntreeIsValid(ntree)) { - BKE_reportf(reports, RPT_ERROR, "Node tree %s invalid", ntree->id.name + 2); + if (!rna_NodeTree_check(ntree, reports)) return; - } for (sock = ntree->outputs.first; sock; sock = nextsock) { nextsock = sock->next; @@ -1057,9 +1040,6 @@ static void rna_NodeTree_outputs_clear(bNodeTree *ntree, ReportList *reports) static void rna_NodeTree_interface_update(bNodeTree *ntree, bContext *C) { - if (!ntreeIsValid(ntree)) - return; - ntree->update |= NTREE_UPDATE_GROUP; ntreeUpdateTree(ntree); @@ -2325,7 +2305,7 @@ static void rna_NodeSocketStandard_float_range(PointerRNA *ptr, float *min, floa static void rna_NodeSocketStandard_int_range(PointerRNA *ptr, int *min, int *max, int *softmin, int *softmax) { bNodeSocket *sock = ptr->data; - bNodeSocketValueFloat *dval = sock->default_value; + bNodeSocketValueInt *dval = sock->default_value; int subtype = sock->typeinfo->subtype; *min = (subtype == PROP_UNSIGNED ? 0 : INT_MIN); @@ -2863,6 +2843,11 @@ static void def_group_output(StructRNA *srna) RNA_def_property_struct_type(prop, "PropertyGroup"); RNA_def_property_flag(prop, PROP_IDPROPERTY); RNA_def_property_ui_text(prop, "Interface", "Interface socket data"); + + prop = RNA_def_property(srna, "is_active_output", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", NODE_DO_OUTPUT); + RNA_def_property_ui_text(prop, "Active Output", "True if this node is used as the active group output"); + RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update"); } static void def_group(StructRNA *srna) @@ -6964,11 +6949,6 @@ static void rna_def_composite_nodetree(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Two Pass", "Use two pass execution during editing: first calculate fast nodes, " "second pass calculate all nodes"); - prop = RNA_def_property(srna, "is_local_tree", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_default(prop, FALSE); - RNA_def_property_flag(prop, PROP_IDPROPERTY); - RNA_def_property_ui_text(prop, "Local Scene Tree", "Local scene node tree, eligible for special node types"); - prop = RNA_def_property(srna, "use_viewer_border", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", NTREE_VIEWER_BORDER); RNA_def_property_ui_text(prop, "Viewer Border", "Use boundaries for viewer nodes and composite backdrop"); @@ -6978,34 +6958,22 @@ static void rna_def_composite_nodetree(BlenderRNA *brna) static void rna_def_shader_nodetree(BlenderRNA *brna) { StructRNA *srna; - PropertyRNA *prop; srna = RNA_def_struct(brna, "ShaderNodeTree", "NodeTree"); RNA_def_struct_ui_text(srna, "Shader Node Tree", "Node tree consisting of linked nodes used for materials (and other shading datablocks)"); RNA_def_struct_sdna(srna, "bNodeTree"); RNA_def_struct_ui_icon(srna, ICON_MATERIAL); - - prop = RNA_def_property(srna, "is_local_tree", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_default(prop, FALSE); - RNA_def_property_flag(prop, PROP_IDPROPERTY); - RNA_def_property_ui_text(prop, "Local Material Tree", "Local material node tree, eligible for special node types"); } static void rna_def_texture_nodetree(BlenderRNA *brna) { StructRNA *srna; - PropertyRNA *prop; srna = RNA_def_struct(brna, "TextureNodeTree", "NodeTree"); RNA_def_struct_ui_text(srna, "Texture Node Tree", "Node tree consisting of linked nodes used for textures"); RNA_def_struct_sdna(srna, "bNodeTree"); RNA_def_struct_ui_icon(srna, ICON_TEXTURE); - - prop = RNA_def_property(srna, "is_local_tree", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_default(prop, FALSE); - RNA_def_property_flag(prop, PROP_IDPROPERTY); - RNA_def_property_ui_text(prop, "Local Texture Tree", "Local texture node tree, eligible for special node types"); } static void define_specific_node(BlenderRNA *brna, const char *struct_name, const char *base_name, diff --git a/source/blender/makesrna/intern/rna_object_api.c b/source/blender/makesrna/intern/rna_object_api.c index 2b7df1ca317..7715dfa64de 100644 --- a/source/blender/makesrna/intern/rna_object_api.c +++ b/source/blender/makesrna/intern/rna_object_api.c @@ -76,6 +76,8 @@ static EnumPropertyItem space_items[] = { #include "BKE_object.h" #include "BKE_report.h" +#include "ED_object.h" + #include "DNA_curve_types.h" #include "DNA_mesh_types.h" #include "DNA_meshdata_types.h" @@ -393,6 +395,13 @@ void rna_Object_dm_info(struct Object *ob, int type, char *result) } #endif /* NDEBUG */ +static int rna_Object_update_from_editmode(Object *ob) +{ + if (ob->mode & OB_MODE_EDIT) { + return ED_object_editmode_load(ob); + } + return false; +} #else /* RNA_RUNTIME */ void RNA_api_object(StructRNA *srna) @@ -567,6 +576,11 @@ void RNA_api_object(StructRNA *srna) RNA_def_property_flag(parm, PROP_THICK_WRAP); /* needed for string return value */ RNA_def_function_output(func, parm); #endif /* NDEBUG */ + + func = RNA_def_function(srna, "update_from_editmode", "rna_Object_update_from_editmode"); + RNA_def_function_ui_description(func, "Load the objects edit-mode data intp the object data"); + parm = RNA_def_boolean(func, "result", 0, "", "Success"); + RNA_def_function_return(func, parm); } diff --git a/source/blender/makesrna/intern/rna_rna.c b/source/blender/makesrna/intern/rna_rna.c index 17b01de1eeb..67fc3056485 100644 --- a/source/blender/makesrna/intern/rna_rna.c +++ b/source/blender/makesrna/intern/rna_rna.c @@ -141,12 +141,12 @@ static int rna_Struct_name_length(PointerRNA *ptr) static void rna_Struct_translation_context_get(PointerRNA *ptr, char *value) { - strcpy(value, ((StructRNA *)ptr->data)->translation_context ? ((StructRNA *)ptr->data)->translation_context : ""); + strcpy(value, ((StructRNA *)ptr->data)->translation_context); } static int rna_Struct_translation_context_length(PointerRNA *ptr) { - return ((StructRNA *)ptr->data)->translation_context ? strlen(((StructRNA *)ptr->data)->translation_context) : 0; + return strlen(((StructRNA *)ptr->data)->translation_context); } static PointerRNA rna_Struct_base_get(PointerRNA *ptr) @@ -491,14 +491,14 @@ static void rna_Property_translation_context_get(PointerRNA *ptr, char *value) { PropertyRNA *prop = (PropertyRNA *)ptr->data; rna_idproperty_check(&prop, ptr); - strcpy(value, prop->translation_context ? prop->translation_context : ""); + strcpy(value, prop->translation_context); } static int rna_Property_translation_context_length(PointerRNA *ptr) { PropertyRNA *prop = (PropertyRNA *)ptr->data; rna_idproperty_check(&prop, ptr); - return prop->translation_context ? strlen(prop->translation_context) : 0; + return strlen(prop->translation_context); } static int rna_Property_type_get(PointerRNA *ptr) diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 7469aac56ad..ebce22bac79 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -4125,13 +4125,6 @@ static void rna_def_scene_render_data(BlenderRNA *brna) RNA_def_property_boolean_sdna(prop, NULL, "mode", R_ENVMAP); RNA_def_property_ui_text(prop, "Environment Maps", "Calculate environment maps while rendering"); RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, NULL); - -#if 0 - prop = RNA_def_property(srna, "use_radiosity", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_sdna(prop, NULL, "mode", R_RADIO); - RNA_def_property_ui_text(prop, "Radiosity", "Calculate radiosity in a pre-process before rendering"); - RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, NULL); -#endif prop = RNA_def_property(srna, "use_sss", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "mode", R_SSS); diff --git a/source/blender/makesrna/intern/rna_ui.c b/source/blender/makesrna/intern/rna_ui.c index 05056574a71..9efe3d9f1d6 100644 --- a/source/blender/makesrna/intern/rna_ui.c +++ b/source/blender/makesrna/intern/rna_ui.c @@ -199,6 +199,9 @@ static StructRNA *rna_Panel_register(Main *bmain, ReportList *reports, void *dat dummypanel.type = &dummypt; RNA_pointer_create(NULL, &RNA_Panel, &dummypanel, &dummyptr); + /* We have to set default context! Else we get a void string... */ + strcpy(dummypt.translation_context, BLF_I18NCONTEXT_DEFAULT_BPYRNA); + /* validate the python class */ if (validate(&dummyptr, data, have_function) != 0) return NULL; @@ -544,6 +547,8 @@ static StructRNA *rna_Menu_register(Main *bmain, ReportList *reports, void *data /* clear in case they are left unset */ _menu_descr[0] = '\0'; + /* We have to set default context! Else we get a void string... */ + strcpy(dummymt.translation_context, BLF_I18NCONTEXT_DEFAULT_BPYRNA); /* validate the python class */ if (validate(&dummymtr, data, have_function) != 0) @@ -777,7 +782,7 @@ static void rna_def_panel(BlenderRNA *brna) RNA_def_struct_sdna(srna, "Panel"); RNA_def_struct_refine_func(srna, "rna_Panel_refine"); RNA_def_struct_register_funcs(srna, "rna_Panel_register", "rna_Panel_unregister", NULL); - RNA_def_struct_translation_context(srna, BLF_I18NCONTEXT_DEFAULT); + RNA_def_struct_translation_context(srna, BLF_I18NCONTEXT_DEFAULT_BPYRNA); /* poll */ func = RNA_def_function(srna, "poll", NULL); @@ -827,7 +832,7 @@ static void rna_def_panel(BlenderRNA *brna) prop = RNA_def_property(srna, "bl_translation_context", PROP_STRING, PROP_NONE); RNA_def_property_string_sdna(prop, NULL, "type->translation_context"); - RNA_def_property_string_default(prop, BLF_I18NCONTEXT_DEFAULT); + RNA_def_property_string_default(prop, BLF_I18NCONTEXT_DEFAULT_BPYRNA); RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL); RNA_define_verify_sdna(TRUE); @@ -967,7 +972,7 @@ static void rna_def_menu(BlenderRNA *brna) RNA_def_struct_sdna(srna, "Menu"); RNA_def_struct_refine_func(srna, "rna_Menu_refine"); RNA_def_struct_register_funcs(srna, "rna_Menu_register", "rna_Menu_unregister", NULL); - RNA_def_struct_translation_context(srna, BLF_I18NCONTEXT_DEFAULT); + RNA_def_struct_translation_context(srna, BLF_I18NCONTEXT_DEFAULT_BPYRNA); /* poll */ func = RNA_def_function(srna, "poll", NULL); @@ -1008,7 +1013,7 @@ static void rna_def_menu(BlenderRNA *brna) prop = RNA_def_property(srna, "bl_translation_context", PROP_STRING, PROP_NONE); RNA_def_property_string_sdna(prop, NULL, "type->translation_context"); - RNA_def_property_string_default(prop, BLF_I18NCONTEXT_DEFAULT); + RNA_def_property_string_default(prop, BLF_I18NCONTEXT_DEFAULT_BPYRNA); RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL); prop = RNA_def_property(srna, "bl_description", PROP_STRING, PROP_NONE); diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index 9e4583b84ee..c9a9cca3147 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -3376,12 +3376,17 @@ static void rna_def_userdef_system(BlenderRNA *brna) prop = RNA_def_property(srna, "use_translate_tooltips", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "transopts", USER_TR_TOOLTIPS); - RNA_def_property_ui_text(prop, "Translate Tooltips", "Translate Tooltips"); + RNA_def_property_ui_text(prop, "Translate Tooltips", "Translate tooltips"); RNA_def_property_update(prop, 0, "rna_userdef_update"); prop = RNA_def_property(srna, "use_translate_interface", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "transopts", USER_TR_IFACE); - RNA_def_property_ui_text(prop, "Translate Interface", "Translate Interface"); + RNA_def_property_ui_text(prop, "Translate Interface", "Translate interface"); + RNA_def_property_update(prop, 0, "rna_userdef_update"); + + prop = RNA_def_property(srna, "use_translate_new_dataname", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "transopts", USER_TR_NEWDATANAME); + RNA_def_property_ui_text(prop, "Translate New Names", "Translate new data names (when adding/creating some)"); RNA_def_property_update(prop, 0, "rna_userdef_update"); prop = RNA_def_property(srna, "use_textured_fonts", PROP_BOOLEAN, PROP_NONE); @@ -3435,7 +3440,8 @@ static void rna_def_userdef_system(BlenderRNA *brna) prop = RNA_def_property(srna, "prefetch_frames", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "prefetchframes"); - RNA_def_property_range(prop, 0, 500); + RNA_def_property_range(prop, 0, INT_MAX); + RNA_def_property_ui_range(prop, 0, 500, 1, 0); RNA_def_property_ui_text(prop, "Prefetch Frames", "Number of frames to render ahead during playback (sequencer only)"); prop = RNA_def_property(srna, "memory_cache_limit", PROP_INT, PROP_NONE); @@ -3485,13 +3491,6 @@ static void rna_def_userdef_system(BlenderRNA *brna) /* this isn't essential but nice to check if VBO draws any differently */ RNA_def_property_update(prop, NC_WINDOW, NULL); -#if 0 - prop = RNA_def_property(srna, "use_antialiasing", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_negative_sdna(prop, NULL, "gameflags", USER_DISABLE_AA); - RNA_def_property_ui_text(prop, "Anti-aliasing", - "Use anti-aliasing for the 3D view (may impact redraw performance)"); -#endif - prop = RNA_def_property(srna, "anisotropic_filter", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "anisotropic_filter"); RNA_def_property_enum_items(prop, anisotropic_items); |