Korrektur: Wand/Decke bleiben bei "Nach Bauteil" als Default, nur

Drawing2D wechselt auf "Nach Ebene"

Nutzer-Korrektur zum vorigen Commit: "eine Wand usw soll weiterhin
nach Bauteil haben und die weisser Grund und schwarzer Vordergrund
haben. Also nach Bauteil. 2D Elemente haben aber bei Attribute kein
nach Bauteil!!!" -- der vorige Commit hatte den Default global (auch
für Wand/Decke) auf "Nach Ebene" umgestellt, was die neutrale SIA-
Poché-Konvention (weisser Grund/schwarzer Vordergrund über die
Bauteil-Kette) durch die rohe Ebenenfarbe ersetzt hätte.

resolveForeground/resolveBackground/resolveHatchId/resolveStrokeWeight
(plan/generatePlan/shared.ts) sind zurückgesetzt auf ihr ursprüngliches
Verhalten: `source === "layer"` (fehlend/"object" ⇒ weiterhin Bauteil-
Kette, DEFAULT bei Wand/Decke). Der elementart-abhängige Default sitzt
jetzt an den AUFRUFERN statt im generischen Resolver:
  • Wand/Decke (selectionInfo.ts): rohes Source-Feld unverändert
    durchgereicht -- Default bleibt "Nach Bauteil".
  • Drawing2D (selectionInfo.ts drawingSelection): `d.foregroundSource
    ?? "layer"` usw. VOR dem Resolver -- Default wird dort explizit
    "Nach Ebene" (kein eigenes Bauteil, "Nach Bauteil" bietet das Panel
    für 2D-Elemente ohnehin nicht mehr an, s. vorletzter Commit).
  • AttributesPanel.tsx uiSourceOf() bekommt einen isDrawing-Parameter
    für denselben elementart-abhängigen Default in der Dropdown-
    Anzeige.

+Tests in shared.resolve.test.ts auf die jetzt korrekten Erwartungen
umgeschrieben (Default bleibt Bauteil, explizites "layer" liefert die
Kategorie, Drawing2D-Aufrufer-Mapping separat geprüft). tsc/vitest
934/934 grün.
This commit is contained in:
2026-08-22 01:05:20 +02:00
parent bfc064796f
commit 85be7173e1
5 changed files with 103 additions and 64 deletions
+7 -4
View File
@@ -1067,16 +1067,19 @@ function drawingSelection(project: Project, d: Drawing2D): Selection {
// „Nach Bauteil"-Option im Panel, s. AttributesPanel.tsx) — als Platzhalter
// ein leeres Bauteil, dessen foreground/background/hatchId immer fehlen,
// sodass die Kette bei einem (aus Alt-Daten) expliziten `source:"object"`
// korrekt auf „kein Wert" statt einer erfundenen Bauteilfarbe fällt.
// korrekt auf „kein Wert" statt einer erfundenen Bauteilfarbe fällt. Anders
// als bei Wand/Decke (Default „Nach Bauteil") gilt bei Drawing2D „Nach
// Ebene" als Default — daher hier explizit `?? "layer"` VOR dem Resolver
// (der selbst weiterhin generisch „Nach Bauteil" als Default kennt).
const noComponent = { id: "", name: "", color, hatchId: "", joinPriority: 0 };
const effectiveForeground = closed
? resolveForeground(noComponent, d.foreground, cat, d.foregroundSource)
? resolveForeground(noComponent, d.foreground, cat, d.foregroundSource ?? "layer")
: undefined;
const effectiveBackground = closed
? resolveBackground(noComponent, d.background, cat, d.backgroundSource)
? resolveBackground(noComponent, d.background, cat, d.backgroundSource ?? "layer")
: undefined;
const effectiveHatchId = closed
? resolveHatchId(d.hatchId, d.hatchSource, cat, undefined)
? resolveHatchId(d.hatchId, d.hatchSource ?? "layer", cat, undefined)
: null;
return {
kind: "drawing2d",