fixes for auto script execution, changing the user preference also updates the global...
[blender.git] / source / blender / makesrna / intern / rna_userdef.c
index a2602bc3cb71c47d46f98be167a197611fbc2b77..6f6ee5216ae35bcc889974a8be6db7bacff545ab 100644 (file)
@@ -47,6 +47,7 @@
 #include "BKE_depsgraph.h"
 #include "DNA_object_types.h"
 #include "GPU_draw.h"
+#include "BKE_global.h"
 
 #include "MEM_guardedalloc.h"
 
@@ -55,6 +56,13 @@ static void rna_userdef_update(Main *bmain, Scene *scene, PointerRNA *ptr)
        WM_main_add_notifier(NC_WINDOW, NULL);
 }
 
+static void rna_userdef_script_autoexec_update(Main *bmain, Scene *scene, PointerRNA *ptr)
+{
+       UserDef *userdef = (UserDef*)ptr->data;
+       if (userdef->flag & USER_SCRIPT_AUTOEXEC_DISABLE)       G.f &= ~G_SCRIPT_AUTOEXEC;
+       else                                                                                            G.f |=  G_SCRIPT_AUTOEXEC;
+}
+
 static void rna_userdef_mipmap_update(Main *bmain, Scene *scene, PointerRNA *ptr)
 {
        GPU_set_mipmap(!(U.gameflags & USER_DISABLE_MIPMAP));
@@ -2346,8 +2354,9 @@ static void rna_def_userdef_system(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Enable All Codecs", "Enables automatic saving of preview images in the .blend file (Windows only)");
 
        prop= RNA_def_property(srna, "auto_execute_scripts", PROP_BOOLEAN, PROP_NONE);
-       RNA_def_property_boolean_sdna(prop, NULL, "flag", USER_SCRIPT_AUTOEXEC_DISABLE);
+       RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", USER_SCRIPT_AUTOEXEC_DISABLE);
        RNA_def_property_ui_text(prop, "Auto Run Python Scripts", "Allow any .blend file to run scripts automatically (unsafe with blend files from an untrusted source)");
+       RNA_def_property_update(prop, 0, "rna_userdef_script_autoexec_update");
 
        prop= RNA_def_property(srna, "prefetch_frames", PROP_INT, PROP_NONE);
        RNA_def_property_int_sdna(prop, NULL, "prefetchframes");