U1-Nachbesserung (Operator, Sly-Befund 'Damit kann man nicht mehr arbeiten'): Werkzeugleiste erbte EditorPanel (=VBoxContainer) und wurde selbst senkrecht -> jeder Knopf eine fensterbreite Zeile (~440px), 3D-Fenster auf einen Streifen gedrueckt. Fix: toolbar.gd extends HBoxContainer + size_flags SHRINK_BEGIN; neue Groessenprobe in test_ui_layout (Leiste <=80px, Mittelbereich >=120px).

This commit is contained in:
scopedvr-operator 2026-10-20 09:20:13 +00:00 committed by Hermes (scopedvr-dev)
parent 8f0e011a07
commit 85bee00f3d
2 changed files with 46 additions and 1 deletions

View file

@ -1,8 +1,30 @@
extends "res://src/ui/panels/editor_panel.gd"
extends HBoxContainer
## Toolbar (aus main.gd ausgezogen, Karte t_eaccbfed U1 — Logik unverändert):
## Menü Datei + Undo/Redo + Gitter/Höhenlinien + Symmetrie + Toolbar-Aktionen
## aus der Registry (Karte prüfen, ▶ Karte testen). Neue Aktionen melden sich
## künftig in registry.gd an (U2–U7, T1-F5 bleibt unverändert erreichbar).
##
## NACHBESSERUNG 20.10. (Operator, Sly-Befund „Damit kann man nicht mehr
## arbeiten"): Diese Leiste erbte von EditorPanel (= VBoxContainer) und wurde
## dadurch SELBST senkrecht — jeder Knopf bekam eine eigene, fensterbreite
## Zeile, die Leiste wuchs auf ~11×40 px und drückte das 3D-Fenster auf einen
## Briefmarken-Streifen. Eine Leiste braucht eine WAAGERECHTE Zeile: extends
## HBoxContainer. Die Helfer der Basis (main-Zeiger, Label-Bauer) braucht nur
## die senkrechte Spalte; hier genügt der main-Zeiger.
var main # src/ui/main.gd (script-erweitert → untypisiert)
func setup(p_main) -> void:
main = p_main
# Eine Leiste darf NIE in die Höhe wachsen (sie würde dem 3D-Fenster die
# Fläche wegnehmen): genau eine Knopfzeile, oben ausgerichtet.
size_flags_vertical = Control.SIZE_SHRINK_BEGIN
size_flags_horizontal = Control.SIZE_EXPAND_FILL
func panel_title() -> String:
return "Werkzeuge"
var undo_btn: Button
var redo_btn: Button

View file

@ -36,6 +36,29 @@ func _init() -> void:
await process_frame
await process_frame
# --- 1b. GRÖSSEN-GEGENPROBE (Operator-Nachbesserung 20.10.) ----------------
# Sly-Befund „Was ist das? Damit kann man nicht mehr arbeiten!" — Ursache war
# reine FLÄCHE, nicht Aufbau: die Werkzeugleiste erbte von EditorPanel
# (VBoxContainer) und wurde dadurch selbst senkrecht → ~11 Knöpfe untereinander,
# das 3D-Fenster auf einen Briefmarken-Streifen gedrückt. Aufbau-Tests sagen
# dazu nichts — deshalb hier echte Größen.
# WICHTIG (Lektion 20.10.): im headless-Testlauf ist das Wurzelfenster nur
# 64 px hoch — Prozentwerte gegen main.size.y sind deshalb Unsinn. Geprüft
# wird ABSOLUT, und zwar die Größe, die den Fehler ausmachte.
# main ist als Control typisiert — Skript-Eigenschaften über get() lesen
# (sonst Parse-Fehler „Invalid access to property"). Namen mit probe_*,
# damit sie nicht mit Variablen der übrigen Suite kollidieren.
var probe_top: Control = main.get("ui_top_bar")
_check(probe_top != null, "Größenprobe: Top-Bar vorhanden")
if probe_top != null:
_check(probe_top.size.y <= 80.0,
"Leiste ist EINE Zeile (Höhe %.0f px, Grenze 80)" % probe_top.size.y)
var probe_center: Control = main.find_child("MainSplit", true, false)
_check(probe_center != null, "Größenprobe: Mittelbereich (MainSplit) vorhanden")
if probe_center != null:
_check(probe_center.size.y >= 120.0,
"Mittelbereich hat echte Höhe (%.0f px, min 120)" % probe_center.size.y)
# --- 1. Registry-Tabelle ist die Autorität --------------------------------
var registry_script: GDScript = load("res://src/ui/panels/registry.gd")
var ids: Array = []