Befund: der Check funktionierte die ganze Zeit — die Rückmeldung kam aber NUR in der Statuszeile („Du bist auf dem neusten Stand (…).“) und verblasst dort schnell → las sich wie „tut nichts“. Probe (echter Menü-Klick): Check läuft, ls-remote ok, Status korrekt. Fix: nach dem MANUELLEN Check (report=true) öffnet ein kleines AcceptDialog „Update-Check“ mit Klartext-Ergebnis (Stil wie Map-Check-Dialog): - up_to_date: „Du bist auf dem neusten Stand (<sha>).“ - update_available: Zusätzlich zum Banner das Fenster mit local → remote und Hinweis auf „Jetzt updaten“. - unreachable / auth_failed / error: gleicher Klartext wie Statuszeile. Der Still-Start-Check (report=false) zeigt bewusst KEIN Fenster (nur Banner bei „Update verfügbar“) — Probe belegt: Popup sichtbar=false. Probe: probe_update_check (echter Menü-Klick → Popup sichtbar + Text). Suiten: test_updater 75 OK, test_resize_dialog 44 OK, test_theme 35 OK, test_gui_smoke 92 OK, test_ux 137 OK, test_ui_layout 79 OK.
32 lines
1.4 KiB
GDScript
32 lines
1.4 KiB
GDScript
extends SceneTree
|
|
## „🔄 Updates prüfen“ per echtem Menü-Signal auslösen und den Statuszeilen-
|
|
## Text beobachten — deckt ab: Menü-Pfad, Thread, Statusmeldung.
|
|
|
|
func _initialize() -> void:
|
|
_run.call_deferred()
|
|
|
|
func _run() -> void:
|
|
var scene: PackedScene = load("res://scenes/main.tscn")
|
|
var main: Control = scene.instantiate()
|
|
root.add_child(main)
|
|
await process_frame
|
|
await process_frame
|
|
main._start_with_new_map()
|
|
# Echter Menü-Pfad: Datei-Popup id_pressed(7).
|
|
var file_menu_btn: MenuButton = null
|
|
for n in main.find_children("*", "MenuButton", true, false):
|
|
if n is MenuButton and n.text == "Datei":
|
|
file_menu_btn = n
|
|
(file_menu_btn.get_popup() as PopupMenu).id_pressed.emit(7)
|
|
print("PROBE direkt nach Klick: status='", main.status_label.text if "status_label" in main else "?", "' busy=", main._update_check_busy)
|
|
for i in 60:
|
|
await process_frame
|
|
if not main._update_check_busy:
|
|
break
|
|
print("PROBE nach Thread: busy=", main._update_check_busy, " status='", main.status_label.text, "'")
|
|
print("PROBE popup: visible=", main.update_dialog.visible, " text='", main.update_text.text, "'")
|
|
# Still-Start-Check (report=false) darf KEIN Popup zeigen.
|
|
main.update_dialog.hide()
|
|
main._updater_check_done({"status": "up_to_date", "local": "abc", "remote": "abc"}, false)
|
|
print("PROBE still-check: popup sichtbar=", main.update_dialog.visible)
|
|
quit(0)
|