Merge pull request #2351 from MoritzBrueckner/debug-console-trace

Debug console: make log output more readable
This commit is contained in:
Lubos Lenco 2021-09-28 13:00:51 +02:00 committed by GitHub
commit a2c33b2f6a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 37 additions and 16 deletions

View file

@ -25,6 +25,8 @@ class DebugConsole extends Trait {
#else
public static var visible = true;
public static var traceWithPosition = true;
static var ui: Zui;
var scaleFactor = 1.0;
@ -75,9 +77,11 @@ class DebugConsole extends Trait {
#end
public function new(scaleFactor = 1.0, scaleDebugConsole = 1.0, positionDebugConsole = 2, visibleDebugConsole = 1,
keyCodeVisible = kha.input.KeyCode.Tilde, keyCodeScaleIn = kha.input.KeyCode.OpenBracket, keyCodeScaleOut = kha.input.KeyCode.CloseBracket) {
traceWithPosition = 1, keyCodeVisible = kha.input.KeyCode.Tilde, keyCodeScaleIn = kha.input.KeyCode.OpenBracket,
keyCodeScaleOut = kha.input.KeyCode.CloseBracket) {
super();
this.scaleFactor = scaleFactor;
DebugConsole.traceWithPosition = traceWithPosition == 1;
iron.data.Data.getFont("font_default.ttf", function(font: kha.Font) {
ui = new Zui({scaleFactor: scaleFactor, font: font});
@ -170,7 +174,7 @@ class DebugConsole extends Trait {
static var haxeTrace: Dynamic->haxe.PosInfos->Void = null;
static var lastTraces: Array<String> = [""];
static function consoleTrace(v: Dynamic, ?inf: haxe.PosInfos) {
lastTraces.unshift(haxe.Log.formatOutput(v,inf));
lastTraces.unshift(haxe.Log.formatOutput(v, traceWithPosition ? inf : null));
if (lastTraces.length > 10) lastTraces.pop();
haxeTrace(v, inf);
}
@ -775,11 +779,23 @@ class DebugConsole extends Trait {
#end
if (ui.panel(Id.handle({selected: true}), "Log")) {
ui.indent();
final h = Id.handle();
h.selected = DebugConsole.traceWithPosition;
DebugConsole.traceWithPosition = ui.check(h, "Print With Position");
if (ui.isHovered) ui.tooltip("Whether to prepend the position of print/trace statements to the printed text");
if (ui.button("Clear")) {
lastTraces[0] = "";
lastTraces.splice(1, lastTraces.length - 1);
}
if (ui.isHovered) ui.tooltip("Clear the log output");
final eh = ui.t.ELEMENT_H;
ui.t.ELEMENT_H = ui.fontSize;
for (t in lastTraces) ui.text(t);
ui.t.ELEMENT_H = eh;
ui.unindent();
}
}

View file

@ -2679,13 +2679,16 @@ Make sure the mesh only has tris/quads.""")
out_trait = {
'type': 'Script',
'class_name': 'armory.trait.internal.DebugConsole',
'parameters': [str(arm.utils.get_ui_scale()),
'parameters': [
str(arm.utils.get_ui_scale()),
str(wrd.arm_debug_console_scale),
str(debug_console_pos_type),
str(int(wrd.arm_debug_console_visible)),
str(int(wrd.arm_debug_console_trace_pos)),
str(int(arm.utils.get_debug_console_visible_sc())),
str(int(arm.utils.get_debug_console_scale_in_sc())),
str(int(arm.utils.get_debug_console_scale_out_sc()))]
str(int(arm.utils.get_debug_console_scale_out_sc()))
]
}
self.output['traits'].append(out_trait)

View file

@ -256,6 +256,7 @@ def init_properties():
name="Position", description="Position Debug Console", default='Right', update=assets.invalidate_shader_cache)
bpy.types.World.arm_debug_console_scale = FloatProperty(name="Scale Console", description="Scale Debug Console", default=1.0, min=0.3, max=10.0, subtype='FACTOR', update=assets.invalidate_shader_cache)
bpy.types.World.arm_debug_console_visible = BoolProperty(name="Visible", description="Setting the console visibility at application start", default=True, update=assets.invalidate_shader_cache)
bpy.types.World.arm_debug_console_trace_pos = BoolProperty(name="Print With Position", description="Whether to prepend the position of print/trace statements to the printed text", default=True)
bpy.types.World.arm_verbose_output = BoolProperty(name="Verbose Output", description="Print additional information to the console during compilation", default=False)
bpy.types.World.arm_runtime = EnumProperty(
items=[('Krom', 'Krom', 'Krom'),

View file

@ -969,6 +969,7 @@ class ARM_PT_ProjectFlagsDebugConsolePanel(bpy.types.Panel):
col.prop(wrd, 'arm_debug_console_position')
col.prop(wrd, 'arm_debug_console_scale')
col.prop(wrd, 'arm_debug_console_visible')
col.prop(wrd, 'arm_debug_console_trace_pos')
class ARM_PT_ProjectWindowPanel(bpy.types.Panel):
bl_label = "Window"