Text-Styling-Leiste wirkt auf selektierten Freitext/Textspalte
Die Text-Formatier-Gruppe der Oberleiste formatierte bisher nur den Raum-Stempel. Jetzt ist auch ein selektierter Freitext/Textspalten-Element (Drawing2D shape "text") ein Formatier-Ziel: - Neues optionales Feld Drawing2D-Text.marks (Marks) für einheitliche Formatierung (Schriftfamilie, fett/kursiv/unterstrichen, Farbe). - App.textTarget adaptiert den Text über docFromText/plainText an die Rich-Text-Leiste; die GRÖSSE bleibt bewusst über die Modell-Höhe (Meter), nicht über pt (massstabslos wäre falsch) — sizePt wird verworfen. - generatePlan/PlanView rendern die Marks (fontFamily/-weight/-style/ textDecoration); marks.color hat Vorrang vor der Kategorie-Farbe. +3 Tests. tsc + vitest grün.
This commit is contained in:
+13
-1
@@ -3283,12 +3283,24 @@ function renderPrimitive(
|
||||
} else {
|
||||
lines.push(p.text);
|
||||
}
|
||||
// Einheitliche Formatierung (Text-Werkzeug + Oberleisten-Formatier-Gruppe):
|
||||
// Schriftfamilie/fett/kursiv/Unterstreichung aus `marks`; Grösse bleibt über
|
||||
// heightM (Modell-Meter). Farbe steckt bereits in p.color (marks.color-Vorrang
|
||||
// in generatePlan aufgelöst).
|
||||
const mk = p.marks;
|
||||
const deco =
|
||||
mk && (mk.underline || mk.strike)
|
||||
? [mk.underline ? "underline" : "", mk.strike ? "line-through" : ""].join(" ").trim()
|
||||
: undefined;
|
||||
return (
|
||||
<text
|
||||
x={c.x}
|
||||
y={c.y}
|
||||
fontSize={fontSize}
|
||||
fontFamily="var(--font-ui, sans-serif)"
|
||||
fontFamily={mk?.font ?? "var(--font-ui, sans-serif)"}
|
||||
fontWeight={mk?.bold ? 700 : undefined}
|
||||
fontStyle={mk?.italic ? "italic" : undefined}
|
||||
textDecoration={deco}
|
||||
fill={p.color}
|
||||
opacity={p.greyed ? 0.45 : undefined}
|
||||
textAnchor="start"
|
||||
|
||||
Reference in New Issue
Block a user