[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [20846] branches/blender2.5/blender: text live_edit feature useful for UI scripts ( run python scripts on every keystroke, careful with the os module)

Campbell Barton ideasman42 at gmail.com
Sat Jun 13 08:42:13 CEST 2009


Revision: 20846
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20846
Author:   campbellbarton
Date:     2009-06-13 08:42:12 +0200 (Sat, 13 Jun 2009)

Log Message:
-----------
text live_edit feature useful for UI scripts (run python scripts on every keystroke, careful with the os module)
http://www.graphicall.org/ftp/ideasman42/realtime_ui.ogv

current kerning makes this a bit cryptic.

Modified Paths:
--------------
    branches/blender2.5/blender/release/ui/space_text.py
    branches/blender2.5/blender/source/blender/editors/space_text/text_ops.c
    branches/blender2.5/blender/source/blender/makesdna/DNA_space_types.h
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_space.c

Modified: branches/blender2.5/blender/release/ui/space_text.py
===================================================================
--- branches/blender2.5/blender/release/ui/space_text.py	2009-06-13 04:31:30 UTC (rev 20845)
+++ branches/blender2.5/blender/release/ui/space_text.py	2009-06-13 06:42:12 UTC (rev 20846)
@@ -66,6 +66,7 @@
 		flow.itemR(st, "line_numbers", icon=ICON_LINENUMBERS_OFF)
 		flow.itemR(st, "word_wrap", icon=ICON_WORDWRAP_OFF)
 		flow.itemR(st, "syntax_highlight", icon=ICON_SYNTAX_OFF)
+		flow.itemR(st, "live_edit")
 
 		flow = layout.column_flow()
 		flow.itemR(st, "font_size")

Modified: branches/blender2.5/blender/source/blender/editors/space_text/text_ops.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_text/text_ops.c	2009-06-13 04:31:30 UTC (rev 20845)
+++ branches/blender2.5/blender/source/blender/editors/space_text/text_ops.c	2009-06-13 06:42:12 UTC (rev 20846)
@@ -524,7 +524,10 @@
 	if (BPY_run_python_script( C, NULL, text ))
 		return OPERATOR_FINISHED;
 	
-	BKE_report(op->reports, RPT_ERROR, "Python script fail, look in the console for now...");
+	/* Dont report error messages while live editing */
+	if(!CTX_wm_space_text(C)->live_edit)
+		BKE_report(op->reports, RPT_ERROR, "Python script fail, look in the console for now...");
+	
 	return OPERATOR_CANCELLED;
 #endif
 }
@@ -699,6 +702,10 @@
 	WM_event_add_notifier(C, NC_TEXT|ND_CURSOR, text);
 	WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
 
+	/* run the script while editing, evil but useful */
+	if(CTX_wm_space_text(C)->live_edit)
+		run_script_exec(C, op);
+	
 	return OPERATOR_FINISHED;
 }
 
@@ -765,6 +772,10 @@
 	WM_event_add_notifier(C, NC_TEXT|ND_CURSOR, text);
 	WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
 
+	/* run the script while editing, evil but useful */
+	if(CTX_wm_space_text(C)->live_edit)
+		run_script_exec(C, op);
+	
 	return OPERATOR_FINISHED;
 }
 
@@ -1627,6 +1638,10 @@
 	WM_event_add_notifier(C, NC_TEXT|ND_CURSOR, text);
 	WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
 
+	/* run the script while editing, evil but useful */
+	if(CTX_wm_space_text(C)->live_edit)
+		run_script_exec(C, op);
+	
 	return OPERATOR_FINISHED;
 }
 
@@ -2224,7 +2239,7 @@
 static int insert_invoke(bContext *C, wmOperator *op, wmEvent *event)
 {
 	char str[2];
-
+	int ret;
 	/* XXX old code from winqreadtextspace, is it still needed somewhere? */
 	/* smartass code to prevent the CTRL/ALT events below from not working! */
 	/*if(qual & (LR_ALTKEY|LR_CTRLKEY))
@@ -2235,8 +2250,13 @@
 	str[1]= '\0';
 
 	RNA_string_set(op->ptr, "text", str);
-
-	return insert_exec(C, op);
+	ret = insert_exec(C, op);
+	
+	/* run the script while editing, evil but useful */
+	if(ret==OPERATOR_FINISHED && CTX_wm_space_text(C)->live_edit)
+		run_script_exec(C, op);
+	
+	return ret;
 }
 
 void TEXT_OT_insert(wmOperatorType *ot)

Modified: branches/blender2.5/blender/source/blender/makesdna/DNA_space_types.h
===================================================================
--- branches/blender2.5/blender/source/blender/makesdna/DNA_space_types.h	2009-06-13 04:31:30 UTC (rev 20845)
+++ branches/blender2.5/blender/source/blender/makesdna/DNA_space_types.h	2009-06-13 06:42:12 UTC (rev 20846)
@@ -272,7 +272,8 @@
 	int tabnumber;
 
 	int showsyntax;
-	int overwrite;
+	short overwrite;
+	short live_edit; /* run python while editing, evil */
 	float pix_per_line;
 
 	struct rcti txtscroll, txtbar;

Modified: branches/blender2.5/blender/source/blender/makesrna/intern/rna_space.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/rna_space.c	2009-06-13 04:31:30 UTC (rev 20845)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_space.c	2009-06-13 06:42:12 UTC (rev 20846)
@@ -726,6 +726,9 @@
 	prop= RNA_def_property(srna, "overwrite", PROP_BOOLEAN, PROP_NONE);
 	RNA_def_property_ui_text(prop, "Overwrite", "Overwrite characters when typing rather than inserting them.");
 	RNA_def_property_update(prop, NC_TEXT|ND_DISPLAY, NULL);
+	
+	prop= RNA_def_property(srna, "live_edit", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_ui_text(prop, "Live Edit", "Run python while editing.");
 
 	prop= RNA_def_property(srna, "tab_width", PROP_INT, PROP_NONE);
 	RNA_def_property_int_sdna(prop, NULL, "tabnumber");





More information about the Bf-blender-cvs mailing list