[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19894] branches/blender2.5/blender/source : F8Key reloads all python scripts and redraws for quick testing
Campbell Barton
ideasman42 at gmail.com
Thu Apr 23 08:58:02 CEST 2009
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
More information about the Bf-blender-cvs
mailing list