Merging r41246 through r41535 from trunk into soc-2011-tomato
[blender.git] / source / blender / makesrna / intern / rna_main_api.c
index 077c88d..b490f30 100644 (file)
@@ -62,6 +62,7 @@
 #include "BKE_particle.h"
 #include "BKE_font.h"
 #include "BKE_node.h"
+#include "BKE_depsgraph.h"
 #include "BKE_speaker.h"
 #include "BKE_movieclip.h"
 
@@ -571,6 +572,33 @@ void rna_Main_particles_tag(Main *bmain, int value) { tag_main_lb(&bmain->partic
 void rna_Main_gpencil_tag(Main *bmain, int value) { tag_main_lb(&bmain->gpencil, value); }
 void rna_Main_movieclips_tag(Main *bmain, int value) { tag_main_lb(&bmain->text, value); }
 
+static int rna_Main_cameras_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_CA); }
+static int rna_Main_scenes_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_SCE); }
+static int rna_Main_objects_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_OB); }
+static int rna_Main_materials_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_MA); }
+static int rna_Main_node_groups_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_NT); }
+static int rna_Main_meshes_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_ME); }
+static int rna_Main_lamps_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_LA); }
+static int rna_Main_libraries_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_LI); }
+static int rna_Main_screens_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_SCR); }
+static int rna_Main_window_managers_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_WM); }
+static int rna_Main_images_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_IM); }
+static int rna_Main_lattices_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_LT); }
+static int rna_Main_curves_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_CU); }
+static int rna_Main_metaballs_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_MB); }
+static int rna_Main_fonts_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_VF); }
+static int rna_Main_textures_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_TE); }
+static int rna_Main_brushes_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_BR); }
+static int rna_Main_worlds_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_WO); }
+static int rna_Main_groups_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_GR); }
+static int rna_Main_texts_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_TXT); }
+static int rna_Main_speakers_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_SPK); }
+static int rna_Main_sounds_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_SO); }
+static int rna_Main_armatures_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_AR); }
+static int rna_Main_actions_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_AC); }
+static int rna_Main_particles_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_PA); }
+static int rna_Main_gpencil_is_updated_get(PointerRNA *ptr) { return DAG_id_type_tagged(ptr->data, ID_GD); }
+
 #else
 
 void RNA_api_main(StructRNA *srna)
@@ -597,6 +625,7 @@ void RNA_def_main_cameras(BlenderRNA *brna, PropertyRNA *cprop)
        StructRNA *srna;
        FunctionRNA *func;
        PropertyRNA *parm;
+       PropertyRNA *prop;
 
        RNA_def_property_srna(cprop, "BlendDataCameras");
        srna= RNA_def_struct(brna, "BlendDataCameras", NULL);
@@ -620,6 +649,10 @@ void RNA_def_main_cameras(BlenderRNA *brna, PropertyRNA *cprop)
        func= RNA_def_function(srna, "tag", "rna_Main_cameras_tag");
        parm= RNA_def_boolean(func, "value", 0, "Value", "");
        RNA_def_property_flag(parm, PROP_REQUIRED);
+
+       prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+       RNA_def_property_boolean_funcs(prop, "rna_Main_cameras_is_updated_get", NULL);
 }
 
 void RNA_def_main_scenes(BlenderRNA *brna, PropertyRNA *cprop)
@@ -627,6 +660,7 @@ void RNA_def_main_scenes(BlenderRNA *brna, PropertyRNA *cprop)
        StructRNA *srna;
        FunctionRNA *func;
        PropertyRNA *parm;
+       PropertyRNA *prop;
 
        RNA_def_property_srna(cprop, "BlendDataScenes");
        srna= RNA_def_struct(brna, "BlendDataScenes", NULL);
@@ -646,6 +680,10 @@ void RNA_def_main_scenes(BlenderRNA *brna, PropertyRNA *cprop)
        RNA_def_function_ui_description(func, "Remove a scene from the current blendfile");
        parm= RNA_def_pointer(func, "scene", "Scene", "", "Scene to remove");
        RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL);
+
+       prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+       RNA_def_property_boolean_funcs(prop, "rna_Main_scenes_is_updated_get", NULL);
 }
 
 void RNA_def_main_objects(BlenderRNA *brna, PropertyRNA *cprop)
@@ -653,6 +691,7 @@ void RNA_def_main_objects(BlenderRNA *brna, PropertyRNA *cprop)
        StructRNA *srna;
        FunctionRNA *func;
        PropertyRNA *parm;
+       PropertyRNA *prop;
 
        RNA_def_property_srna(cprop, "BlendDataObjects");
        srna= RNA_def_struct(brna, "BlendDataObjects", NULL);
@@ -680,6 +719,10 @@ void RNA_def_main_objects(BlenderRNA *brna, PropertyRNA *cprop)
        func= RNA_def_function(srna, "tag", "rna_Main_objects_tag");
        parm= RNA_def_boolean(func, "value", 0, "Value", "");
        RNA_def_property_flag(parm, PROP_REQUIRED);
+
+       prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+       RNA_def_property_boolean_funcs(prop, "rna_Main_objects_is_updated_get", NULL);
 }
 
 void RNA_def_main_materials(BlenderRNA *brna, PropertyRNA *cprop)
@@ -687,6 +730,7 @@ void RNA_def_main_materials(BlenderRNA *brna, PropertyRNA *cprop)
        StructRNA *srna;
        FunctionRNA *func;
        PropertyRNA *parm;
+       PropertyRNA *prop;
 
        RNA_def_property_srna(cprop, "BlendDataMaterials");
        srna= RNA_def_struct(brna, "BlendDataMaterials", NULL);
@@ -710,12 +754,17 @@ void RNA_def_main_materials(BlenderRNA *brna, PropertyRNA *cprop)
        func= RNA_def_function(srna, "tag", "rna_Main_materials_tag");
        parm= RNA_def_boolean(func, "value", 0, "Value", "");
        RNA_def_property_flag(parm, PROP_REQUIRED);
+
+       prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+       RNA_def_property_boolean_funcs(prop, "rna_Main_materials_is_updated_get", NULL);
 }
 void RNA_def_main_node_groups(BlenderRNA *brna, PropertyRNA *cprop)
 {
        StructRNA *srna;
        FunctionRNA *func;
        PropertyRNA *parm;
+       PropertyRNA *prop;
 
        static EnumPropertyItem node_nodetree_items[] = {
        {0, "SHADER",       0,    "Shader",       ""},
@@ -747,12 +796,17 @@ void RNA_def_main_node_groups(BlenderRNA *brna, PropertyRNA *cprop)
        func= RNA_def_function(srna, "tag", "rna_Main_node_groups_tag");
        parm= RNA_def_boolean(func, "value", 0, "Value", "");
        RNA_def_property_flag(parm, PROP_REQUIRED);
+
+       prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+       RNA_def_property_boolean_funcs(prop, "rna_Main_node_groups_is_updated_get", NULL);
 }
 void RNA_def_main_meshes(BlenderRNA *brna, PropertyRNA *cprop)
 {
        StructRNA *srna;
        FunctionRNA *func;
        PropertyRNA *parm;
+       PropertyRNA *prop;
 
        RNA_def_property_srna(cprop, "BlendDataMeshes");
        srna= RNA_def_struct(brna, "BlendDataMeshes", NULL);
@@ -776,12 +830,17 @@ void RNA_def_main_meshes(BlenderRNA *brna, PropertyRNA *cprop)
        func= RNA_def_function(srna, "tag", "rna_Main_meshes_tag");
        parm= RNA_def_boolean(func, "value", 0, "Value", "");
        RNA_def_property_flag(parm, PROP_REQUIRED);
+
+       prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+       RNA_def_property_boolean_funcs(prop, "rna_Main_meshes_is_updated_get", NULL);
 }
 void RNA_def_main_lamps(BlenderRNA *brna, PropertyRNA *cprop)
 {
        StructRNA *srna;
        FunctionRNA *func;
        PropertyRNA *parm;
+       PropertyRNA *prop;
 
        RNA_def_property_srna(cprop, "BlendDataLamps");
        srna= RNA_def_struct(brna, "BlendDataLamps", NULL);
@@ -807,6 +866,10 @@ void RNA_def_main_lamps(BlenderRNA *brna, PropertyRNA *cprop)
        func= RNA_def_function(srna, "tag", "rna_Main_lamps_tag");
        parm= RNA_def_boolean(func, "value", 0, "Value", "");
        RNA_def_property_flag(parm, PROP_REQUIRED);
+
+       prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+       RNA_def_property_boolean_funcs(prop, "rna_Main_lamps_is_updated_get", NULL);
 }
 
 void RNA_def_main_libraries(BlenderRNA *brna, PropertyRNA *cprop)
@@ -814,6 +877,7 @@ void RNA_def_main_libraries(BlenderRNA *brna, PropertyRNA *cprop)
        StructRNA *srna;
        FunctionRNA *func;
        PropertyRNA *parm;
+       PropertyRNA *prop;
 
        RNA_def_property_srna(cprop, "BlendDataLibraries");
        srna= RNA_def_struct(brna, "BlendDataLibraries", NULL);
@@ -823,6 +887,10 @@ void RNA_def_main_libraries(BlenderRNA *brna, PropertyRNA *cprop)
        func= RNA_def_function(srna, "tag", "rna_Main_libraries_tag");
        parm= RNA_def_boolean(func, "value", 0, "Value", "");
        RNA_def_property_flag(parm, PROP_REQUIRED);
+
+       prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+       RNA_def_property_boolean_funcs(prop, "rna_Main_libraries_is_updated_get", NULL);
 }
 
 void RNA_def_main_screens(BlenderRNA *brna, PropertyRNA *cprop)
@@ -830,6 +898,7 @@ void RNA_def_main_screens(BlenderRNA *brna, PropertyRNA *cprop)
        StructRNA *srna;
        FunctionRNA *func;
        PropertyRNA *parm;
+       PropertyRNA *prop;
 
        RNA_def_property_srna(cprop, "BlendDataScreens");
        srna= RNA_def_struct(brna, "BlendDataScreens", NULL);
@@ -839,6 +908,10 @@ void RNA_def_main_screens(BlenderRNA *brna, PropertyRNA *cprop)
        func= RNA_def_function(srna, "tag", "rna_Main_screens_tag");
        parm= RNA_def_boolean(func, "value", 0, "Value", "");
        RNA_def_property_flag(parm, PROP_REQUIRED);
+
+       prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+       RNA_def_property_boolean_funcs(prop, "rna_Main_screens_is_updated_get", NULL);
 }
 
 void RNA_def_main_window_managers(BlenderRNA *brna, PropertyRNA *cprop)
@@ -846,6 +919,7 @@ void RNA_def_main_window_managers(BlenderRNA *brna, PropertyRNA *cprop)
        StructRNA *srna;
        FunctionRNA *func;
        PropertyRNA *parm;
+       PropertyRNA *prop;
 
        RNA_def_property_srna(cprop, "BlendDataWindowManagers");
        srna= RNA_def_struct(brna, "BlendDataWindowManagers", NULL);
@@ -855,12 +929,17 @@ void RNA_def_main_window_managers(BlenderRNA *brna, PropertyRNA *cprop)
        func= RNA_def_function(srna, "tag", "rna_Main_window_managers_tag");
        parm= RNA_def_boolean(func, "value", 0, "Value", "");
        RNA_def_property_flag(parm, PROP_REQUIRED);
+
+       prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+       RNA_def_property_boolean_funcs(prop, "rna_Main_window_managers_is_updated_get", NULL);
 }
 void RNA_def_main_images(BlenderRNA *brna, PropertyRNA *cprop)
 {
        StructRNA *srna;
        FunctionRNA *func;
        PropertyRNA *parm;
+       PropertyRNA *prop;
 
        RNA_def_property_srna(cprop, "BlendDataImages");
        srna= RNA_def_struct(brna, "BlendDataImages", NULL);
@@ -899,6 +978,10 @@ void RNA_def_main_images(BlenderRNA *brna, PropertyRNA *cprop)
        func= RNA_def_function(srna, "tag", "rna_Main_images_tag");
        parm= RNA_def_boolean(func, "value", 0, "Value", "");
        RNA_def_property_flag(parm, PROP_REQUIRED);
+
+       prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+       RNA_def_property_boolean_funcs(prop, "rna_Main_images_is_updated_get", NULL);
 }
 
 void RNA_def_main_lattices(BlenderRNA *brna, PropertyRNA *cprop)
@@ -906,6 +989,7 @@ void RNA_def_main_lattices(BlenderRNA *brna, PropertyRNA *cprop)
        StructRNA *srna;
        FunctionRNA *func;
        PropertyRNA *parm;
+       PropertyRNA *prop;
 
        RNA_def_property_srna(cprop, "BlendDataLattices");
        srna= RNA_def_struct(brna, "BlendDataLattices", NULL);
@@ -929,12 +1013,17 @@ void RNA_def_main_lattices(BlenderRNA *brna, PropertyRNA *cprop)
        func= RNA_def_function(srna, "tag", "rna_Main_lattices_tag");
        parm= RNA_def_boolean(func, "value", 0, "Value", "");
        RNA_def_property_flag(parm, PROP_REQUIRED);
+
+       prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+       RNA_def_property_boolean_funcs(prop, "rna_Main_lattices_is_updated_get", NULL);
 }
 void RNA_def_main_curves(BlenderRNA *brna, PropertyRNA *cprop)
 {
        StructRNA *srna;
        FunctionRNA *func;
        PropertyRNA *parm;
+       PropertyRNA *prop;
 
        RNA_def_property_srna(cprop, "BlendDataCurves");
        srna= RNA_def_struct(brna, "BlendDataCurves", NULL);
@@ -960,12 +1049,17 @@ void RNA_def_main_curves(BlenderRNA *brna, PropertyRNA *cprop)
        func= RNA_def_function(srna, "tag", "rna_Main_curves_tag");
        parm= RNA_def_boolean(func, "value", 0, "Value", "");
        RNA_def_property_flag(parm, PROP_REQUIRED);
+
+       prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+       RNA_def_property_boolean_funcs(prop, "rna_Main_curves_is_updated_get", NULL);
 }
 void RNA_def_main_metaballs(BlenderRNA *brna, PropertyRNA *cprop)
 {
        StructRNA *srna;
        FunctionRNA *func;
        PropertyRNA *parm;
+       PropertyRNA *prop;
 
        RNA_def_property_srna(cprop, "BlendDataMetaBalls");
        srna= RNA_def_struct(brna, "BlendDataMetaBalls", NULL);
@@ -989,12 +1083,17 @@ void RNA_def_main_metaballs(BlenderRNA *brna, PropertyRNA *cprop)
        func= RNA_def_function(srna, "tag", "rna_Main_metaballs_tag");
        parm= RNA_def_boolean(func, "value", 0, "Value", "");
        RNA_def_property_flag(parm, PROP_REQUIRED);
+
+       prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+       RNA_def_property_boolean_funcs(prop, "rna_Main_metaballs_is_updated_get", NULL);
 }
 void RNA_def_main_fonts(BlenderRNA *brna, PropertyRNA *cprop)
 {
        StructRNA *srna;
        FunctionRNA *func;
        PropertyRNA *parm;
+       PropertyRNA *prop;
 
        RNA_def_property_srna(cprop, "BlendDataFonts");
        srna= RNA_def_struct(brna, "BlendDataFonts", NULL);
@@ -1019,12 +1118,17 @@ void RNA_def_main_fonts(BlenderRNA *brna, PropertyRNA *cprop)
        func= RNA_def_function(srna, "tag", "rna_Main_fonts_tag");
        parm= RNA_def_boolean(func, "value", 0, "Value", "");
        RNA_def_property_flag(parm, PROP_REQUIRED);
+
+       prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+       RNA_def_property_boolean_funcs(prop, "rna_Main_fonts_is_updated_get", NULL);
 }
 void RNA_def_main_textures(BlenderRNA *brna, PropertyRNA *cprop)
 {
        StructRNA *srna;
        FunctionRNA *func;
        PropertyRNA *parm;
+       PropertyRNA *prop;
 
        RNA_def_property_srna(cprop, "BlendDataTextures");
        srna= RNA_def_struct(brna, "BlendDataTextures", NULL);
@@ -1050,12 +1154,17 @@ void RNA_def_main_textures(BlenderRNA *brna, PropertyRNA *cprop)
        func= RNA_def_function(srna, "tag", "rna_Main_textures_tag");
        parm= RNA_def_boolean(func, "value", 0, "Value", "");
        RNA_def_property_flag(parm, PROP_REQUIRED);
+
+       prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+       RNA_def_property_boolean_funcs(prop, "rna_Main_textures_is_updated_get", NULL);
 }
 void RNA_def_main_brushes(BlenderRNA *brna, PropertyRNA *cprop)
 {
        StructRNA *srna;
        FunctionRNA *func;
        PropertyRNA *parm;
+       PropertyRNA *prop;
 
        RNA_def_property_srna(cprop, "BlendDataBrushes");
        srna= RNA_def_struct(brna, "BlendDataBrushes", NULL);
@@ -1079,6 +1188,10 @@ void RNA_def_main_brushes(BlenderRNA *brna, PropertyRNA *cprop)
        func= RNA_def_function(srna, "tag", "rna_Main_brushes_tag");
        parm= RNA_def_boolean(func, "value", 0, "Value", "");
        RNA_def_property_flag(parm, PROP_REQUIRED);
+
+       prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+       RNA_def_property_boolean_funcs(prop, "rna_Main_brushes_is_updated_get", NULL);
 }
 
 void RNA_def_main_worlds(BlenderRNA *brna, PropertyRNA *cprop)
@@ -1086,6 +1199,7 @@ void RNA_def_main_worlds(BlenderRNA *brna, PropertyRNA *cprop)
        StructRNA *srna;
        FunctionRNA *func;
        PropertyRNA *parm;
+       PropertyRNA *prop;
 
        RNA_def_property_srna(cprop, "BlendDataWorlds");
        srna= RNA_def_struct(brna, "BlendDataWorlds", NULL);
@@ -1109,6 +1223,10 @@ void RNA_def_main_worlds(BlenderRNA *brna, PropertyRNA *cprop)
        func= RNA_def_function(srna, "tag", "rna_Main_worlds_tag");
        parm= RNA_def_boolean(func, "value", 0, "Value", "");
        RNA_def_property_flag(parm, PROP_REQUIRED);
+
+       prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+       RNA_def_property_boolean_funcs(prop, "rna_Main_worlds_is_updated_get", NULL);
 }
 
 void RNA_def_main_groups(BlenderRNA *brna, PropertyRNA *cprop)
@@ -1116,6 +1234,7 @@ void RNA_def_main_groups(BlenderRNA *brna, PropertyRNA *cprop)
        StructRNA *srna;
        FunctionRNA *func;
        PropertyRNA *parm;
+       PropertyRNA *prop;
 
        RNA_def_property_srna(cprop, "BlendDataGroups");
        srna= RNA_def_struct(brna, "BlendDataGroups", NULL);
@@ -1138,6 +1257,10 @@ void RNA_def_main_groups(BlenderRNA *brna, PropertyRNA *cprop)
        func= RNA_def_function(srna, "tag", "rna_Main_groups_tag");
        parm= RNA_def_boolean(func, "value", 0, "Value", "");
        RNA_def_property_flag(parm, PROP_REQUIRED);
+
+       prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+       RNA_def_property_boolean_funcs(prop, "rna_Main_groups_is_updated_get", NULL);
 }
 
 void RNA_def_main_speakers(BlenderRNA *brna, PropertyRNA *cprop)
@@ -1145,6 +1268,7 @@ void RNA_def_main_speakers(BlenderRNA *brna, PropertyRNA *cprop)
        StructRNA *srna;
        FunctionRNA *func;
        PropertyRNA *parm;
+       PropertyRNA *prop;
 
        RNA_def_property_srna(cprop, "BlendDataSpeakers");
        srna= RNA_def_struct(brna, "BlendDataSpeakers", NULL);
@@ -1168,6 +1292,10 @@ void RNA_def_main_speakers(BlenderRNA *brna, PropertyRNA *cprop)
        func= RNA_def_function(srna, "tag", "rna_Main_speakers_tag");
        parm= RNA_def_boolean(func, "value", 0, "Value", "");
        RNA_def_property_flag(parm, PROP_REQUIRED);
+
+       prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+       RNA_def_property_boolean_funcs(prop, "rna_Main_speakers_is_updated_get", NULL);
 }
 
 void RNA_def_main_texts(BlenderRNA *brna, PropertyRNA *cprop)
@@ -1175,6 +1303,7 @@ void RNA_def_main_texts(BlenderRNA *brna, PropertyRNA *cprop)
        StructRNA *srna;
        FunctionRNA *func;
        PropertyRNA *parm;
+       PropertyRNA *prop;
 
        RNA_def_property_srna(cprop, "BlendDataTexts");
        srna= RNA_def_struct(brna, "BlendDataTexts", NULL);
@@ -1207,6 +1336,10 @@ void RNA_def_main_texts(BlenderRNA *brna, PropertyRNA *cprop)
        func= RNA_def_function(srna, "tag", "rna_Main_texts_tag");
        parm= RNA_def_boolean(func, "value", 0, "Value", "");
        RNA_def_property_flag(parm, PROP_REQUIRED);
+
+       prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+       RNA_def_property_boolean_funcs(prop, "rna_Main_texts_is_updated_get", NULL);
 }
 
 void RNA_def_main_sounds(BlenderRNA *brna, PropertyRNA *cprop)
@@ -1214,6 +1347,7 @@ void RNA_def_main_sounds(BlenderRNA *brna, PropertyRNA *cprop)
        StructRNA *srna;
        FunctionRNA *func;
        PropertyRNA *parm;
+       PropertyRNA *prop;
 
        RNA_def_property_srna(cprop, "BlendDataSounds");
        srna= RNA_def_struct(brna, "BlendDataSounds", NULL);
@@ -1225,6 +1359,10 @@ void RNA_def_main_sounds(BlenderRNA *brna, PropertyRNA *cprop)
        func= RNA_def_function(srna, "tag", "rna_Main_sounds_tag");
        parm= RNA_def_boolean(func, "value", 0, "Value", "");
        RNA_def_property_flag(parm, PROP_REQUIRED);
+
+       prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+       RNA_def_property_boolean_funcs(prop, "rna_Main_sounds_is_updated_get", NULL);
 }
 
 void RNA_def_main_armatures(BlenderRNA *brna, PropertyRNA *cprop)
@@ -1232,6 +1370,7 @@ void RNA_def_main_armatures(BlenderRNA *brna, PropertyRNA *cprop)
        StructRNA *srna;
        FunctionRNA *func;
        PropertyRNA *parm;
+       PropertyRNA *prop;
 
        RNA_def_property_srna(cprop, "BlendDataArmatures");
        srna= RNA_def_struct(brna, "BlendDataArmatures", NULL);
@@ -1255,12 +1394,17 @@ void RNA_def_main_armatures(BlenderRNA *brna, PropertyRNA *cprop)
        func= RNA_def_function(srna, "tag", "rna_Main_armatures_tag");
        parm= RNA_def_boolean(func, "value", 0, "Value", "");
        RNA_def_property_flag(parm, PROP_REQUIRED);
+
+       prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+       RNA_def_property_boolean_funcs(prop, "rna_Main_armatures_is_updated_get", NULL);
 }
 void RNA_def_main_actions(BlenderRNA *brna, PropertyRNA *cprop)
 {
        StructRNA *srna;
        FunctionRNA *func;
        PropertyRNA *parm;
+       PropertyRNA *prop;
 
        RNA_def_property_srna(cprop, "BlendDataActions");
        srna= RNA_def_struct(brna, "BlendDataActions", NULL);
@@ -1284,12 +1428,17 @@ void RNA_def_main_actions(BlenderRNA *brna, PropertyRNA *cprop)
        func= RNA_def_function(srna, "tag", "rna_Main_actions_tag");
        parm= RNA_def_boolean(func, "value", 0, "Value", "");
        RNA_def_property_flag(parm, PROP_REQUIRED);
+
+       prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+       RNA_def_property_boolean_funcs(prop, "rna_Main_actions_is_updated_get", NULL);
 }
 void RNA_def_main_particles(BlenderRNA *brna, PropertyRNA *cprop)
 {
        StructRNA *srna;
        FunctionRNA *func;
        PropertyRNA *parm;
+       PropertyRNA *prop;
 
        RNA_def_property_srna(cprop, "BlendDataParticles");
        srna= RNA_def_struct(brna, "BlendDataParticles", NULL);
@@ -1313,6 +1462,10 @@ void RNA_def_main_particles(BlenderRNA *brna, PropertyRNA *cprop)
        func= RNA_def_function(srna, "tag", "rna_Main_particles_tag");
        parm= RNA_def_boolean(func, "value", 0, "Value", "");
        RNA_def_property_flag(parm, PROP_REQUIRED);
+
+       prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+       RNA_def_property_boolean_funcs(prop, "rna_Main_particles_is_updated_get", NULL);
 }
 
 void RNA_def_main_gpencil(BlenderRNA *brna, PropertyRNA *cprop)
@@ -1320,6 +1473,7 @@ void RNA_def_main_gpencil(BlenderRNA *brna, PropertyRNA *cprop)
        StructRNA *srna;
        FunctionRNA *func;
        PropertyRNA *parm;
+       PropertyRNA *prop;
 
        RNA_def_property_srna(cprop, "BlendDataGreasePencils");
        srna= RNA_def_struct(brna, "BlendDataGreasePencils", NULL);
@@ -1329,6 +1483,10 @@ void RNA_def_main_gpencil(BlenderRNA *brna, PropertyRNA *cprop)
        func= RNA_def_function(srna, "tag", "rna_Main_gpencil_tag");
        parm= RNA_def_boolean(func, "value", 0, "Value", "");
        RNA_def_property_flag(parm, PROP_REQUIRED);
+
+       prop= RNA_def_property(srna, "is_updated", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+       RNA_def_property_boolean_funcs(prop, "rna_Main_gpencil_is_updated_get", NULL);
 }
 
 void RNA_def_main_movieclips(BlenderRNA *brna, PropertyRNA *cprop)