[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [21914] branches/blender2.5/blender: - console scrollback userpref
Campbell Barton
ideasman42 at gmail.com
Sun Jul 26 06:31:47 CEST 2009
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 */
More information about the Bf-blender-cvs
mailing list