Raumstempel-Stile (Presets) — speichern + anwenden per Doc

Damit User wiederkehrende Stempel-Configs (Wettbewerb / Bauantrag /
Mobiliar etc.) nicht jedes Mal neu klicken muss.

Backend (elemente.py):
- Storage in doc.Strings dossier_raum_stempel_stile als JSON-Array
- load_raum_stempel_stile / save_raum_stempel_stile Helpers
- Bridge-Handler:
  - SAVE_RAUM_STIL: upsert by id (neu wenn leer)
  - DELETE_RAUM_STIL: remove by id
  - APPLY_RAUM_STIL: schreibt Stil-Felder auf Raum-IDs + Regen
- _RAUM_STIL_FIELDS umfasst font/bold/italic/txtH/txtModus/align/
  rundung/fuellung/showSia/layout (alles was die Optik bestimmt)
- raumStempelStile im STATE-Emit zum Frontend

Frontend:
- saveRaumStil/deleteRaumStil/applyRaumStil in rhinoBridge.js
- RaumProperties: neue "Stil"-Sektion oben mit Dropdown
  * gespeicherte Stile + "+ Aktuelle Settings als Stil speichern" +
    "🗑 Aktiven Stil loeschen"
  * Klick auf Stil → applyRaumStil mit aktueller Raum-ID
- Beide PropertiesView-Aufrufe (inline + satellite) bekommen die Liste
This commit is contained in:
2026-05-26 23:17:08 +02:00
parent da0fd365f2
commit f1860ae85d
4 changed files with 215 additions and 3 deletions
+8
View File
@@ -243,6 +243,14 @@ export function saveOeffStyle(name, settings) {
send('SAVE_OEFF_STYLE', { name, settings })
}
export function deleteOeffStyle(id) { send('DELETE_OEFF_STYLE', { id }) }
// Raumstempel-Stile (Presets pro Doc)
export function saveRaumStil(id, name, settings) {
send('SAVE_RAUM_STIL', { id, name, settings })
}
export function deleteRaumStil(id) { send('DELETE_RAUM_STIL', { id }) }
export function applyRaumStil(stilId, ids) {
send('APPLY_RAUM_STIL', { stilId, ids })
}
export function setSectionStyle(enabled, source, color, pattern, scale, rotation,
opts = {}) {
send('SET_SECTION_STYLE', {