Kontextmenü der Hierarchie auch im Scene View #204

Closed
opened 2026-09-22 19:11:18 +02:00 by meleki · 1 comment
Owner

Ein Rechtsklick auf ein Objekt im Scene View soll dasselbe Kontextmenü öffnen wie ein Rechtsklick auf seine Zeile in der Hierarchie.

Heute

  • SceneViewport.onPointerDown reagiert nur auf die linke und die mittlere Taste, ein Rechtsklick im Scene View macht nichts.
  • Das Menü steht als private Methode HierarchyPanel.openContextMenu und hängt nur an der Listenzeile.

Vorschlag

  • Das Menü wandert in eine gemeinsame Funktion, die Hierarchie und Scene View beide aufrufen. Beide zeigen damit immer dieselben Einträge.
  • Was ein Rechtsklick trifft, läuft nach derselben Regel wie das Ziehen aus #203:
    • Liegt ein gewähltes Objekt unter der Maus, auch ein verdecktes, gilt das Menü für die ganze aktuelle Auswahl.
    • Sonst wird das oberste Objekt unter der Maus gewählt, und das Menü gilt für dieses Objekt.
  • „Expand all“ und „Collapse all“ gibt es nur in der Hierarchie, im Scene View bewirken sie nichts.
  • Rechtsklick auf leere Fläche: kein Menü.
  • Gilt auch im Container-Tab, dort heißt der Eintrag wie in der Hierarchie „Remove from container“.
Ein Rechtsklick auf ein Objekt im Scene View soll dasselbe Kontextmenü öffnen wie ein Rechtsklick auf seine Zeile in der Hierarchie. ## Heute - `SceneViewport.onPointerDown` reagiert nur auf die linke und die mittlere Taste, ein Rechtsklick im Scene View macht nichts. - Das Menü steht als private Methode `HierarchyPanel.openContextMenu` und hängt nur an der Listenzeile. ## Vorschlag - **Das Menü wandert in eine gemeinsame Funktion**, die Hierarchie und Scene View beide aufrufen. Beide zeigen damit immer dieselben Einträge. - **Was ein Rechtsklick trifft**, läuft nach derselben Regel wie das Ziehen aus #203: - Liegt ein gewähltes Objekt unter der Maus, auch ein verdecktes, gilt das Menü für die ganze aktuelle Auswahl. - Sonst wird das oberste Objekt unter der Maus gewählt, und das Menü gilt für dieses Objekt. - **„Expand all“ und „Collapse all“ gibt es nur in der Hierarchie**, im Scene View bewirken sie nichts. - **Rechtsklick auf leere Fläche:** kein Menü. - Gilt auch im Container-Tab, dort heißt der Eintrag wie in der Hierarchie „Remove from container“.
admin added this to the Development project 2026-09-22 19:12:58 +02:00
admin moved this to Next in Development on 2026-09-22 19:13:01 +02:00
Author
Owner

Umgesetzt in 8c5846f.

Ein Rechtsklick im Scene View öffnet jetzt dasselbe Menü wie in der Hierarchie.

  • Ein Menü für beide Stellen: Das Menü aus HierarchyPanel ist nach src/editor/objectMenu.ts gezogen. Hierarchie und Scene View rufen dieselbe Funktion auf und können deshalb nicht auseinanderlaufen. Die Hierarchie hängt nur noch „Expand all“ und „Collapse all“ dazu, der Scene View zeigt die beiden nicht.
  • Welches Objekt das Menü bekommt, folgt derselben Regel wie Drücken und Ziehen aus #203: Liegt ein gewähltes Objekt unter der Maus, auch ein verdecktes, bleibt die Auswahl, und das Menü gilt für die ganze Auswahl. Sonst wird zuerst das oberste Objekt gewählt, und das Menü gilt für dieses. Die Regel steht als reine Funktion menuTargetOf in src/viewport/pick.ts, neben pressOn.
  • Leere Fläche: kein Menü, auch nicht auf einer leeren Tilemap-Zelle.
  • Im Container-Tab funktioniert es genauso, weil ContainerCanvas vom Scene View erbt.

Tests

./check.sh                → 142 Files, 2094 Tests, CHECK EXIT 0   (vorher 2090)
e2e 39,40 (frisch)        → ALL PASSED – 80 checks
e2e 1-16,39,40 (frisch)   → ALL PASSED – 565 checks
  • 4 neue Unit-Tests in tests/viewport/pick.test.ts.
  • 3 neue e2e-Checks (Block 40r): Rechtsklick auf die gewählte, unter der Karte verdeckte Kiste (Menü zeigt die 8 Einträge, Auswahl bleibt, „Select asset“ wählt wirklich das Kisten-Asset); ohne Auswahl wird das oberste Objekt gewählt; auf einer leeren Zelle erscheint kein Menü.
  • Gegenprobe greift: Nimmt der Rechtsklick immer das oberste Objekt, fallen 2 Unit-Tests und genau der e2e-Check mit der verdeckten Kiste. Originale per cmp zurück, danach neu gebaut.
  • Die Module 08, 09 und 12 nutzen das Hierarchie-Menü und waren im großen Lauf dabei.
  • Nicht gemacht: ein Screenshot vom Menü im Scene View. Es ist dasselbe Menü-Widget wie überall, geprüft sind die Einträge und ihre Wirkung.

Wiki: Scene editing hat einen Absatz „The object menu in the view“ bekommen.

Umgesetzt in `8c5846f`. Ein Rechtsklick im Scene View öffnet jetzt dasselbe Menü wie in der Hierarchie. - **Ein Menü für beide Stellen:** Das Menü aus `HierarchyPanel` ist nach `src/editor/objectMenu.ts` gezogen. Hierarchie und Scene View rufen dieselbe Funktion auf und können deshalb nicht auseinanderlaufen. Die Hierarchie hängt nur noch „Expand all“ und „Collapse all“ dazu, der Scene View zeigt die beiden nicht. - **Welches Objekt das Menü bekommt,** folgt derselben Regel wie Drücken und Ziehen aus #203: Liegt ein gewähltes Objekt unter der Maus, auch ein verdecktes, bleibt die Auswahl, und das Menü gilt für die ganze Auswahl. Sonst wird zuerst das oberste Objekt gewählt, und das Menü gilt für dieses. Die Regel steht als reine Funktion `menuTargetOf` in `src/viewport/pick.ts`, neben `pressOn`. - **Leere Fläche:** kein Menü, auch nicht auf einer leeren Tilemap-Zelle. - Im Container-Tab funktioniert es genauso, weil `ContainerCanvas` vom Scene View erbt. ### Tests ``` ./check.sh → 142 Files, 2094 Tests, CHECK EXIT 0 (vorher 2090) e2e 39,40 (frisch) → ALL PASSED – 80 checks e2e 1-16,39,40 (frisch) → ALL PASSED – 565 checks ``` - 4 neue Unit-Tests in `tests/viewport/pick.test.ts`. - 3 neue e2e-Checks (Block 40r): Rechtsklick auf die gewählte, unter der Karte verdeckte Kiste (Menü zeigt die 8 Einträge, Auswahl bleibt, „Select asset“ wählt wirklich das Kisten-Asset); ohne Auswahl wird das oberste Objekt gewählt; auf einer leeren Zelle erscheint kein Menü. - Gegenprobe greift: Nimmt der Rechtsklick immer das oberste Objekt, fallen 2 Unit-Tests und genau der e2e-Check mit der verdeckten Kiste. Originale per `cmp` zurück, danach neu gebaut. - Die Module 08, 09 und 12 nutzen das Hierarchie-Menü und waren im großen Lauf dabei. - Nicht gemacht: ein Screenshot vom Menü im Scene View. Es ist dasselbe Menü-Widget wie überall, geprüft sind die Einträge und ihre Wirkung. Wiki: *Scene editing* hat einen Absatz „The object menu in the view“ bekommen.
admin moved this to Done in Development on 2026-09-22 20:35:02 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: meleki/feuerwerk#204