pollen-not-included/addons/gdUnit4/src/ui/parts/InspectorMonitor.gd
2024-05-02 09:36:31 +01:00

50 lines
1.3 KiB
GDScript

@tool
extends PanelContainer
signal jump_to_orphan_nodes
@onready var ICON_GREEN = load("res://addons/gdUnit4/src/ui/assets/orphan/orphan_green.svg")
@onready var ICON_RED = load("res://addons/gdUnit4/src/ui/assets/orphan/orphan_animated_icon.tres")
@onready var _time = $GridContainer/Time/value
@onready var _orphans = $GridContainer/Orphan/value
@onready var _orphan_button := $GridContainer/Orphan/Button
var total_elapsed_time := 0
var total_orphans := 0
func _ready():
GdUnitSignals.instance().gdunit_event.connect(_on_gdunit_event)
_time.text = ""
_orphans.text = "0"
func status_changed(elapsed_time :int, orphan_nodes :int):
total_elapsed_time += elapsed_time
total_orphans += orphan_nodes
_time.text = LocalTime.elapsed(total_elapsed_time)
_orphans.text = str(total_orphans)
if total_orphans > 0:
_orphan_button.icon = ICON_RED
func _on_gdunit_event(event :GdUnitEvent) -> void:
match event.type():
GdUnitEvent.INIT:
_orphan_button.icon = ICON_GREEN
total_elapsed_time = 0
total_orphans = 0
status_changed(0, 0)
GdUnitEvent.TESTCASE_BEFORE:
pass
GdUnitEvent.TESTCASE_AFTER:
status_changed(0, event.orphan_nodes())
GdUnitEvent.TESTSUITE_BEFORE:
pass
GdUnitEvent.TESTSUITE_AFTER:
status_changed(event.elapsed_time(), event.orphan_nodes())
func _on_ToolButton_pressed():
emit_signal("jump_to_orphan_nodes")