Fix: Datei-Menü komplett tot — id_pressed landete als Argument VOR dem Methodennamen (Sly-Befund 20.10. „Kartengröße ändern tut nichts“).
popup.id_pressed.connect(main.call.bind("_on_menu_action")) rief effektiv
call(6, "_on_menu_action") → „Cannot convert argument 1 from int to
StringName“ (map-builder.log 20.10., 2 Treffer) — KEIN Menü-Eintrag tat
etwas (Neue Map/Öffnen/Speichern/Kartengröße/Updates). Alle anderen
.call.bind-Stellen hängen an arg-losen Signalen (pressed/timeout) und
waren unbeeinträchtigt. Fix: Lambda mit expliziter Reihenfolge
(Stil wie grid_btn/contours_btn). Regression: test_resize_dialog stellt
jetzt den echten Klick nach (id_pressed.emit(6) am Datei-Popup) — vorher
rief die Suite _open_resize_dialog() direkt auf und sah den Bruch nicht.
Suiten: test_resize_dialog 42 OK, test_theme 35 OK, test_gui_smoke 92 OK, test_ux 137 OK.
This commit is contained in:
parent
f6c754115a
commit
f4cfe17594
2 changed files with 27 additions and 2 deletions
|
|
@ -61,7 +61,14 @@ func build() -> void:
|
|||
popup.add_separator()
|
||||
popup.add_item("🔄 Updates prüfen", 7)
|
||||
popup.add_item("Beenden", 4)
|
||||
popup.id_pressed.connect(main.call.bind("_on_menu_action"))
|
||||
# FIX 20.10. (Sly-Befund „Kartengröße ändern tut nichts“): id_pressed sendet
|
||||
# die Menü-ID. main.call.bind("_on_menu_action") hängt die ID aber ALS
|
||||
# ARGUMENT an call() → effektiv call(6, "_on_menu_action") →
|
||||
# „Cannot convert argument 1 from int to StringName“ (map-builder.log
|
||||
# 20.10.) — das GESAMTE Datei-Menü verpufft, kein Eintrag tut etwas.
|
||||
# Lambda macht die Reihenfolge (Name zuerst, ID als Argument) explizit,
|
||||
# Stil wie grid_btn/contours_btn oben.
|
||||
popup.id_pressed.connect(func(id: int) -> void: main.call("_on_menu_action", id))
|
||||
add_child(file_menu)
|
||||
|
||||
undo_btn = Button.new()
|
||||
|
|
|
|||
|
|
@ -251,4 +251,22 @@ func _test_main_wiring() -> void:
|
|||
_check((main.doc["spawn_zones"]["0"]["points"] as Array).size() == before_count,
|
||||
"Drop aus: draußen liegende Spawn-Punkte bleiben in der Map")
|
||||
_check(not bool(SvmapIO.save_to_file("/tmp/r3_drop_aus.svmap", main.doc)["ok"]),
|
||||
"Drop aus + Punkte draußen: Speichern blockiert (V9), wie im Dialog gewarnt")
|
||||
"Drop aus + Punkte draußen: Speichern blockiert (V9), wie im Dialog gewarnt")
|
||||
|
||||
# REGRESSION 20.10. (Sly-Befund „Kartengröße ändern tut nichts“): der
|
||||
# ECHTE UI-Pfad ist das id_pressed-SIGNAL des Datei-Popups. Vorher hing
|
||||
# main.call.bind("_on_menu_action") daran — die Menü-ID landete als
|
||||
# ARGUMENT VOR dem Methodennamen (call(6, "_on_menu_action")) →
|
||||
# „Cannot convert argument 1 from int to StringName“, das GESAMTE
|
||||
# Datei-Menü war tot. Diese Suite rief _open_resize_dialog() direkt auf
|
||||
# und sah den Bruch nicht — jetzt wird der echte Klick nachgestellt.
|
||||
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
|
||||
_check(file_menu_btn != null, "Datei-Menü (MenuButton) gefunden")
|
||||
if file_menu_btn != null:
|
||||
main.resize_dialog.hide()
|
||||
(file_menu_btn.get_popup() as PopupMenu).id_pressed.emit(6)
|
||||
_check(main.resize_dialog.visible,
|
||||
"Echter Menü-Klick (id_pressed=6) öffnet den Resize-Dialog")
|
||||
Loading…
Reference in a new issue