Revision: 19894
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19894
Author:   campbellbarton
Date:     2009-04-23 08:58:02 +0200 (Thu, 23 Apr 2009)

Log Message:
-----------
F8Key reloads all python scripts and redraws for quick testing
F7 runs test.py also for testing

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c
    
branches/blender2.5/blender/source/blender/editors/space_script/script_edit.c
    
branches/blender2.5/blender/source/blender/editors/space_script/script_intern.h
    branches/blender2.5/blender/source/blender/editors/space_script/script_ops.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_ops.c
    branches/blender2.5/blender/source/blender/python/BPY_extern.h
    branches/blender2.5/blender/source/blender/python/intern/bpy_interface.c
    branches/blender2.5/blender/source/creator/creator.c

Modified: branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c      
2009-04-23 06:07:51 UTC (rev 19893)
+++ branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c      
2009-04-23 06:58:02 UTC (rev 19894)
@@ -2446,6 +2446,9 @@
        WM_keymap_verify_item(keymap, "SCREEN_OT_repeat_last", F4KEY, KM_PRESS, 
0, 0);
        WM_keymap_add_item(keymap, "SCREEN_OT_region_flip", F5KEY, KM_PRESS, 0, 
0);
        WM_keymap_verify_item(keymap, "SCREEN_OT_redo_last", F6KEY, KM_PRESS, 
0, 0);
+       
+       RNA_string_set(WM_keymap_add_item(keymap, "SCRIPT_OT_python_file_run", 
F7KEY, KM_PRESS, 0, 0)->ptr, "filename", "test.py");
+       WM_keymap_verify_item(keymap, "SCRIPT_OT_python_run_ui_scripts", F8KEY, 
KM_PRESS, 0, 0);
 
        /* files */
        WM_keymap_add_item(keymap, "FILE_OT_exec", RETKEY, KM_PRESS, 0, 0);

Modified: 
branches/blender2.5/blender/source/blender/editors/space_script/script_edit.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/editors/space_script/script_edit.c   
    2009-04-23 06:07:51 UTC (rev 19893)
+++ 
branches/blender2.5/blender/source/blender/editors/space_script/script_edit.c   
    2009-04-23 06:58:02 UTC (rev 19894)
@@ -86,3 +86,33 @@
        RNA_def_string_file_path(ot->srna, "filename", "", 512, "Filename", "");
 }
 
+static int run_ui_scripts_exec(bContext *C, wmOperator *op)
+{
+#ifndef DISABLE_PYTHON
+       BPY_run_ui_scripts(C, 1); /* reload */
+#endif
+       return OPERATOR_FINISHED;
+}
+
+static int run_ui_scripts_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{      
+       int ret= run_ui_scripts_exec(C, op);
+       
+       if(ret==OPERATOR_FINISHED)
+               WM_event_add_notifier(C, NC_WINDOW, NULL);      
+       
+       return ret;
+}
+
+
+void SCRIPT_OT_python_run_ui_scripts(wmOperatorType *ot)
+{
+       /* identifiers */
+       ot->name= "Reload Python Interface";
+       ot->idname= "SCRIPT_OT_python_run_ui_scripts";
+
+       /* api callbacks */
+       ot->exec= run_ui_scripts_exec;
+       ot->invoke= run_ui_scripts_invoke;
+       ot->poll= ED_operator_areaactive;
+}

Modified: 
branches/blender2.5/blender/source/blender/editors/space_script/script_intern.h
===================================================================
--- 
branches/blender2.5/blender/source/blender/editors/space_script/script_intern.h 
    2009-04-23 06:07:51 UTC (rev 19893)
+++ 
branches/blender2.5/blender/source/blender/editors/space_script/script_intern.h 
    2009-04-23 06:58:02 UTC (rev 19894)
@@ -40,6 +40,7 @@
 
 /* script_edit.c */
 void SCRIPT_OT_python_file_run(struct wmOperatorType *ot);
+void SCRIPT_OT_python_run_ui_scripts(struct wmOperatorType *ot);
 
 #endif /* ED_SCRIPT_INTERN_H */
 

Modified: 
branches/blender2.5/blender/source/blender/editors/space_script/script_ops.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/editors/space_script/script_ops.c    
    2009-04-23 06:07:51 UTC (rev 19893)
+++ 
branches/blender2.5/blender/source/blender/editors/space_script/script_ops.c    
    2009-04-23 06:58:02 UTC (rev 19894)
@@ -60,6 +60,7 @@
 void script_operatortypes(void)
 {
        WM_operatortype_append(SCRIPT_OT_python_file_run);
+       WM_operatortype_append(SCRIPT_OT_python_run_ui_scripts);
 }
 
 void script_keymap(wmWindowManager *wm)
@@ -68,5 +69,6 @@
 
        /* TODO - this is just while we have no way to load a text datablock */
        RNA_string_set(WM_keymap_add_item(keymap, "SCRIPT_OT_python_file_run", 
PKEY, KM_PRESS, KM_CTRL|KM_SHIFT|KM_ALT, 0)->ptr, "filename", "test.py");
+       WM_keymap_add_item(keymap, "SCRIPT_OT_python_run_ui_scripts", PKEY, 
KM_PRESS, KM_SHIFT, 0);
 }
 

Modified: 
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_ops.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_ops.c    
    2009-04-23 06:07:51 UTC (rev 19893)
+++ 
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_ops.c    
    2009-04-23 06:58:02 UTC (rev 19894)
@@ -223,9 +223,6 @@
        RNA_enum_set(WM_keymap_add_item(keymap, 
"PAINT_OT_weight_paint_radial_control", FKEY, KM_PRESS, KM_SHIFT, 0)->ptr, 
"mode", WM_RADIALCONTROL_STRENGTH);
        RNA_enum_set(WM_keymap_add_item(keymap, 
"PAINT_OT_texture_paint_radial_control", FKEY, KM_PRESS, KM_SHIFT, 0)->ptr, 
"mode", WM_RADIALCONTROL_STRENGTH);
 
-       /* TODO - this is just while we have no way to load a text datablock */
-       RNA_string_set(WM_keymap_add_item(keymap, "SCRIPT_OT_python_file_run", 
PKEY, KM_PRESS, KM_CTRL|KM_SHIFT|KM_ALT, 0)->ptr, "filename", "test.py");
-
        transform_keymap_for_space(wm, keymap, SPACE_VIEW3D);
 
 }

Modified: branches/blender2.5/blender/source/blender/python/BPY_extern.h
===================================================================
--- branches/blender2.5/blender/source/blender/python/BPY_extern.h      
2009-04-23 06:07:51 UTC (rev 19893)
+++ branches/blender2.5/blender/source/blender/python/BPY_extern.h      
2009-04-23 06:58:02 UTC (rev 19894)
@@ -99,7 +99,7 @@
        /* 2.5 UI Scripts */
        int BPY_run_python_script( struct bContext *C, const char *filename, 
struct Text *text ); // 2.5 working
        int BPY_run_script_space_draw(struct bContext *C, struct SpaceScript * 
sc); // 2.5 working
-       void BPY_run_ui_scripts(struct bContext *C);
+       void BPY_run_ui_scripts(struct bContext *C, int reload);
 //     int BPY_run_script_space_listener(struct bContext *C, struct 
SpaceScript * sc, struct ARegion *ar, struct wmNotifier *wmn); // 2.5 working
        void BPY_update_modules( void ); // XXX - annoying, need this for 
pointers that get out of date
        

Modified: 
branches/blender2.5/blender/source/blender/python/intern/bpy_interface.c
===================================================================
--- branches/blender2.5/blender/source/blender/python/intern/bpy_interface.c    
2009-04-23 06:07:51 UTC (rev 19893)
+++ branches/blender2.5/blender/source/blender/python/intern/bpy_interface.c    
2009-04-23 06:58:02 UTC (rev 19894)
@@ -347,7 +347,7 @@
 #endif
 
 /* XXX this is temporary, need a proper script registration system for 2.5 */
-void BPY_run_ui_scripts(bContext *C)
+void BPY_run_ui_scripts(bContext *C, int reload)
 {
 #ifdef TIME_REGISTRATION
        double time = PIL_check_seconds_timer();
@@ -396,13 +396,19 @@
                        
                        mod= PyImport_ImportModuleLevel(path, NULL, NULL, NULL, 
0);
                        if (mod) {
-                               Py_DECREF(mod);                 
+                               if (reload) {
+                                       PyObject *mod_orig= mod;
+                                       mod= PyImport_ReloadModule(mod);
+                                       Py_DECREF(mod_orig);
+                               }
                        }
-                       else {
+                       
+                       if(mod) {
+                               Py_DECREF(mod); /* could be NULL from reloading 
*/
+                       } else {
                                PyErr_Print();
                                fprintf(stderr, "unable to import \"%s\"  
%s/%s\n", path, dirname, de->d_name);
                        }
-                       
                }
        }
 

Modified: branches/blender2.5/blender/source/creator/creator.c
===================================================================
--- branches/blender2.5/blender/source/creator/creator.c        2009-04-23 
06:07:51 UTC (rev 19893)
+++ branches/blender2.5/blender/source/creator/creator.c        2009-04-23 
06:58:02 UTC (rev 19894)
@@ -529,7 +529,7 @@
         */
        BPY_post_start_python();
 
-       BPY_run_ui_scripts(C);
+       BPY_run_ui_scripts(C, 0); /* dont need to reload the first time */
 #endif
        
 #ifdef WITH_QUICKTIME


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to