Revision: 21914 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21914 Author: campbellbarton Date: 2009-07-26 06:31:46 +0200 (Sun, 26 Jul 2009)
Log Message: ----------- - console scrollback userpref - copy coperator for the console (Ctrl+C and from the menu) Modified Paths: -------------- branches/blender2.5/blender/release/ui/space_console.py branches/blender2.5/blender/release/ui/space_info.py branches/blender2.5/blender/source/blender/editors/space_console/console_intern.h branches/blender2.5/blender/source/blender/editors/space_console/console_ops.c branches/blender2.5/blender/source/blender/editors/space_console/space_console.c branches/blender2.5/blender/source/blender/makesdna/DNA_userdef_types.h branches/blender2.5/blender/source/blender/makesrna/intern/rna_userdef.c Modified: branches/blender2.5/blender/release/ui/space_console.py =================================================================== --- branches/blender2.5/blender/release/ui/space_console.py 2009-07-26 03:54:17 UTC (rev 21913) +++ branches/blender2.5/blender/release/ui/space_console.py 2009-07-26 04:31:46 UTC (rev 21914) @@ -50,6 +50,7 @@ layout.column() layout.itemO("console.clear") + layout.itemO("console.copy") class CONSOLE_MT_report(bpy.types.Menu): __space_type__ = "CONSOLE" Modified: branches/blender2.5/blender/release/ui/space_info.py =================================================================== --- branches/blender2.5/blender/release/ui/space_info.py 2009-07-26 03:54:17 UTC (rev 21913) +++ branches/blender2.5/blender/release/ui/space_info.py 2009-07-26 04:31:46 UTC (rev 21914) @@ -432,6 +432,7 @@ colsplitcol.itemR(system, "filter_file_extensions") colsplitcol.itemR(system, "hide_dot_files_datablocks") colsplitcol.itemR(system, "audio_mixing_buffer") + colsplitcol.itemR(lan, "scrollback", text="Console Scrollback") col = split.column() colsplit = col.split(percentage=0.85) Modified: branches/blender2.5/blender/source/blender/editors/space_console/console_intern.h =================================================================== --- branches/blender2.5/blender/source/blender/editors/space_console/console_intern.h 2009-07-26 03:54:17 UTC (rev 21913) +++ branches/blender2.5/blender/source/blender/editors/space_console/console_intern.h 2009-07-26 04:31:46 UTC (rev 21914) @@ -34,9 +34,6 @@ struct wmOperatorType; struct ReportList; -/* TODO, make into a pref */ -#define CONSOLE_SCROLLBACK_LIMIT 128 - /* console_draw.c */ void console_text_main(struct SpaceConsole *sc, struct ARegion *ar, struct ReportList *reports); int console_text_height(struct SpaceConsole *sc, struct ARegion *ar, struct ReportList *reports); /* needed to calculate the scrollbar */ @@ -62,8 +59,10 @@ void CONSOLE_OT_clear(wmOperatorType *ot); void CONSOLE_OT_history_cycle(wmOperatorType *ot); +void CONSOLE_OT_copy(wmOperatorType *ot); void CONSOLE_OT_zoom(wmOperatorType *ot); + /* console_report.c */ void CONSOLE_OT_select_pick(wmOperatorType *ot); /* report selection */ void CONSOLE_OT_select_all_toggle(wmOperatorType *ot); Modified: branches/blender2.5/blender/source/blender/editors/space_console/console_ops.c =================================================================== --- branches/blender2.5/blender/source/blender/editors/space_console/console_ops.c 2009-07-26 03:54:17 UTC (rev 21913) +++ branches/blender2.5/blender/source/blender/editors/space_console/console_ops.c 2009-07-26 04:31:46 UTC (rev 21914) @@ -37,9 +37,11 @@ #include "DNA_scene_types.h" #include "DNA_screen_types.h" #include "DNA_space_types.h" +#include "DNA_userdef_types.h" #include "DNA_windowmanager_types.h" #include "BLI_blenlib.h" +#include "BLI_dynstr.h" #include "PIL_time.h" #include "BKE_utildefines.h" @@ -79,7 +81,10 @@ void console_scrollback_limit(SpaceConsole *sc) { int tot; - for(tot= BLI_countlist(&sc->scrollback); tot > CONSOLE_SCROLLBACK_LIMIT; tot--) + + if (U.scrollback < 32) U.scrollback= 128; // XXX - save in user defaults + + for(tot= BLI_countlist(&sc->scrollback); tot > U.scrollback; tot--) console_scrollback_free(sc, sc->scrollback.first); } @@ -548,6 +553,46 @@ RNA_def_enum(ot->srna, "type", console_line_type_items, CONSOLE_LINE_OUTPUT, "Type", "Console output type."); } + +static int copy_exec(bContext *C, wmOperator *op) +{ + SpaceConsole *sc= CTX_wm_space_console(C); + + DynStr *buf_dyn= BLI_dynstr_new(); + char *buf_str; + + ConsoleLine *cl; + + for(cl= sc->scrollback.last; cl; cl= cl->prev) { + BLI_dynstr_append(buf_dyn, cl->line); + BLI_dynstr_append(buf_dyn, "\n"); + } + + buf_str= BLI_dynstr_get_cstring(buf_dyn); + BLI_dynstr_free(buf_dyn); + + WM_clipboard_text_set(buf_str, 0); + + MEM_freeN(buf_str); + return OPERATOR_FINISHED; +} + +void CONSOLE_OT_copy(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Copy to Clipboard"; + ot->idname= "CONSOLE_OT_copy"; + + /* api callbacks */ + ot->poll= console_edit_poll; + ot->exec= copy_exec; + + /* flags */ + ot->flag= OPTYPE_REGISTER; + + /* properties */ +} + static int zoom_exec(bContext *C, wmOperator *op) { SpaceConsole *sc= CTX_wm_space_console(C); Modified: branches/blender2.5/blender/source/blender/editors/space_console/space_console.c =================================================================== --- branches/blender2.5/blender/source/blender/editors/space_console/space_console.c 2009-07-26 03:54:17 UTC (rev 21913) +++ branches/blender2.5/blender/source/blender/editors/space_console/space_console.c 2009-07-26 04:31:46 UTC (rev 21914) @@ -214,6 +214,7 @@ WM_operatortype_append(CONSOLE_OT_clear); WM_operatortype_append(CONSOLE_OT_history_cycle); + WM_operatortype_append(CONSOLE_OT_copy); WM_operatortype_append(CONSOLE_OT_zoom); @@ -292,6 +293,8 @@ WM_keymap_add_item(keymap, "CONSOLE_OT_report_delete", XKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "CONSOLE_OT_report_delete", DELKEY, KM_PRESS, 0, 0); WM_keymap_add_item(keymap, "CONSOLE_OT_report_copy", CKEY, KM_PRESS, KM_CTRL, 0); + + WM_keymap_add_item(keymap, "CONSOLE_OT_copy", CKEY, KM_PRESS, KM_CTRL, 0); RNA_string_set(WM_keymap_add_item(keymap, "CONSOLE_OT_insert", TABKEY, KM_PRESS, 0, 0)->ptr, "text", " "); /* fake tabs */ WM_keymap_add_item(keymap, "CONSOLE_OT_insert", KM_TEXTINPUT, KM_ANY, KM_ANY, 0); // last! Modified: branches/blender2.5/blender/source/blender/makesdna/DNA_userdef_types.h =================================================================== --- branches/blender2.5/blender/source/blender/makesdna/DNA_userdef_types.h 2009-07-26 03:54:17 UTC (rev 21913) +++ branches/blender2.5/blender/source/blender/makesdna/DNA_userdef_types.h 2009-07-26 04:31:46 UTC (rev 21914) @@ -293,7 +293,7 @@ short userpref, viewzoom; int mixbufsize; - int pad1; + int scrollback; /* console scrollback limit */ int dpi; /* range 48-128? */ short encoding; short transopts; Modified: branches/blender2.5/blender/source/blender/makesrna/intern/rna_userdef.c =================================================================== --- branches/blender2.5/blender/source/blender/makesrna/intern/rna_userdef.c 2009-07-26 03:54:17 UTC (rev 21913) +++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_userdef.c 2009-07-26 04:31:46 UTC (rev 21914) @@ -1922,6 +1922,11 @@ RNA_def_property_range(prop, 48, 128); RNA_def_property_ui_text(prop, "DPI", "Font size and resolution for display."); RNA_def_property_update(prop, NC_WINDOW, NULL); + + prop= RNA_def_property(srna, "scrollback", PROP_INT, PROP_UNSIGNED); + RNA_def_property_int_sdna(prop, NULL, "scrollback"); + RNA_def_property_range(prop, 32, 32768); + RNA_def_property_ui_text(prop, "Scrollback", "Maximum number of lines to store for the console buffer."); /* Language Selection */ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs