forked from bartvdbraak/blender
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.
This commit is contained in:
parent
fe329792b4
commit
d35d04a789
@ -66,6 +66,7 @@ class TEXT_PT_properties(bpy.types.Panel):
|
|||||||
flow.itemR(st, "line_numbers", icon=ICON_LINENUMBERS_OFF)
|
flow.itemR(st, "line_numbers", icon=ICON_LINENUMBERS_OFF)
|
||||||
flow.itemR(st, "word_wrap", icon=ICON_WORDWRAP_OFF)
|
flow.itemR(st, "word_wrap", icon=ICON_WORDWRAP_OFF)
|
||||||
flow.itemR(st, "syntax_highlight", icon=ICON_SYNTAX_OFF)
|
flow.itemR(st, "syntax_highlight", icon=ICON_SYNTAX_OFF)
|
||||||
|
flow.itemR(st, "live_edit")
|
||||||
|
|
||||||
flow = layout.column_flow()
|
flow = layout.column_flow()
|
||||||
flow.itemR(st, "font_size")
|
flow.itemR(st, "font_size")
|
||||||
|
@ -524,7 +524,10 @@ static int run_script_exec(bContext *C, wmOperator *op)
|
|||||||
if (BPY_run_python_script( C, NULL, text ))
|
if (BPY_run_python_script( C, NULL, text ))
|
||||||
return OPERATOR_FINISHED;
|
return OPERATOR_FINISHED;
|
||||||
|
|
||||||
|
/* 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...");
|
BKE_report(op->reports, RPT_ERROR, "Python script fail, look in the console for now...");
|
||||||
|
|
||||||
return OPERATOR_CANCELLED;
|
return OPERATOR_CANCELLED;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -699,6 +702,10 @@ static int paste_exec(bContext *C, wmOperator *op)
|
|||||||
WM_event_add_notifier(C, NC_TEXT|ND_CURSOR, text);
|
WM_event_add_notifier(C, NC_TEXT|ND_CURSOR, text);
|
||||||
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, 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;
|
return OPERATOR_FINISHED;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -765,6 +772,10 @@ static int cut_exec(bContext *C, wmOperator *op)
|
|||||||
WM_event_add_notifier(C, NC_TEXT|ND_CURSOR, text);
|
WM_event_add_notifier(C, NC_TEXT|ND_CURSOR, text);
|
||||||
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, 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;
|
return OPERATOR_FINISHED;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1627,6 +1638,10 @@ static int delete_exec(bContext *C, wmOperator *op)
|
|||||||
WM_event_add_notifier(C, NC_TEXT|ND_CURSOR, text);
|
WM_event_add_notifier(C, NC_TEXT|ND_CURSOR, text);
|
||||||
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, 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;
|
return OPERATOR_FINISHED;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2224,7 +2239,7 @@ static int insert_exec(bContext *C, wmOperator *op)
|
|||||||
static int insert_invoke(bContext *C, wmOperator *op, wmEvent *event)
|
static int insert_invoke(bContext *C, wmOperator *op, wmEvent *event)
|
||||||
{
|
{
|
||||||
char str[2];
|
char str[2];
|
||||||
|
int ret;
|
||||||
/* XXX old code from winqreadtextspace, is it still needed somewhere? */
|
/* XXX old code from winqreadtextspace, is it still needed somewhere? */
|
||||||
/* smartass code to prevent the CTRL/ALT events below from not working! */
|
/* smartass code to prevent the CTRL/ALT events below from not working! */
|
||||||
/*if(qual & (LR_ALTKEY|LR_CTRLKEY))
|
/*if(qual & (LR_ALTKEY|LR_CTRLKEY))
|
||||||
@ -2235,8 +2250,13 @@ static int insert_invoke(bContext *C, wmOperator *op, wmEvent *event)
|
|||||||
str[1]= '\0';
|
str[1]= '\0';
|
||||||
|
|
||||||
RNA_string_set(op->ptr, "text", str);
|
RNA_string_set(op->ptr, "text", str);
|
||||||
|
ret = insert_exec(C, op);
|
||||||
|
|
||||||
return 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)
|
void TEXT_OT_insert(wmOperatorType *ot)
|
||||||
|
@ -272,7 +272,8 @@ typedef struct SpaceText {
|
|||||||
int tabnumber;
|
int tabnumber;
|
||||||
|
|
||||||
int showsyntax;
|
int showsyntax;
|
||||||
int overwrite;
|
short overwrite;
|
||||||
|
short live_edit; /* run python while editing, evil */
|
||||||
float pix_per_line;
|
float pix_per_line;
|
||||||
|
|
||||||
struct rcti txtscroll, txtbar;
|
struct rcti txtscroll, txtbar;
|
||||||
|
@ -727,6 +727,9 @@ static void rna_def_space_text(BlenderRNA *brna)
|
|||||||
RNA_def_property_ui_text(prop, "Overwrite", "Overwrite characters when typing rather than inserting them.");
|
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);
|
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);
|
prop= RNA_def_property(srna, "tab_width", PROP_INT, PROP_NONE);
|
||||||
RNA_def_property_int_sdna(prop, NULL, "tabnumber");
|
RNA_def_property_int_sdna(prop, NULL, "tabnumber");
|
||||||
RNA_def_property_range(prop, 2, 8);
|
RNA_def_property_range(prop, 2, 8);
|
||||||
|
Loading…
Reference in New Issue
Block a user