Panels poliert: Ebenenkombi in Oberleiste, Satelliten-Dialoge, Caps weg, Perf

- Ebenenkombination raus aus Ebenen-Panel, in Oberleiste-Topbar +
  Editor-Satellite (AusschnittLayerDialog embedded). doc.Strings
  haelt active_comb_name, auto-clear bei manueller Eye/Lock-Aenderung.
- EbenenSettingsDialog jetzt Satellite mit Ebene-Picker-Dropdown
  (auto-save on switch via SAVE_KEEP).
- Per-Ausschnitt Einstellungen-Satellite (Massstab, Display, Overrides,
  Ebenenkombi). Alte 'Sichtbarkeit bearbeiten'-Option entfernt.
- Layouts/Ausschnitte: Top-Header weg, Sticky-Footer mit Anzahl +
  Aktionen. LayoutDialog ist jetzt Satellite mit Format-Live-Preview.
- Panel-Captions + Default-Ebenen-Namen auf Mixed-Case (Ausschnitte,
  Ebenen, Waende ...). Nur DOSSIER bleibt caps.
- DimensionenApp: Card-Optik raus, REF-Wuerfel mit Kreisen statt
  Quadraten + Hover-Scale.
- GeschossManager angeglichen an EbenenManager: Rechtsklick-Menue,
  Lock-Button, Delete-X, Duplizieren. layer_builder honoriert z.locked.
- Active Sublayer folgt jetzt dem Geschoss-Wechsel (gleicher Code
  unter neuem Parent).

Performance Geschoss-Wechsel:
- elemente._send_state() ersetzt durch _notify_active_geschoss()
  (Partial-Push statt 200+ Elements re-enumerieren).
- _apply_visibility dedupe via sticky last-applied-signature
  (STATE_SYNC-Echo loopt nicht mehr durch alle Layer).
- _update_clipping nur wenn alt oder neu hasClipping=True.
- Redundante doc.Views.Redraw() im CPlane-Pfad entfernt — die folgende
  apply_visibility-Roundtrip redrawt 30ms spaeter ohnehin.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-19 03:58:28 +02:00
parent e3918cb155
commit 95031ee2c0
29 changed files with 1708 additions and 713 deletions
+18 -18
View File
@@ -1076,24 +1076,24 @@ const VIEW_COLOR_FIELDS = [
// src/App.jsx des Rhino-Panels bleiben — wenn der User keine eigene Schema
// definiert, schickt das Plugin diese hier als FIRST_RUN-Default.
const DEFAULT_LAYER_SCHEMA = [
{ code: '00', name: 'RASTER', color: '#484850', lw: 0.13 },
{ code: '01', name: 'VERMESSUNG', color: '#707078', lw: 0.18 },
{ code: '10', name: 'SITUATION', color: '#909090', lw: 0.18 },
{ code: '11', name: 'STRASSE', color: '#a89070', lw: 0.18 },
{ code: '12', name: 'GEBAEUDE', color: '#888888', lw: 0.25 },
{ code: '13', name: 'BAEUME', color: '#50a050', lw: 0.13 },
{ code: '14', name: 'HOEHENLINIEN', color: '#909050', lw: 0.18 },
{ code: '20', name: 'WAENDE', color: '#0a0a0a', lw: 0.50 },
{ code: '21', name: 'TUEREN_FENSTER', color: '#5080c8', lw: 0.25 },
{ code: '22', name: 'MOEBEL', color: '#909090', lw: 0.13 },
{ code: '25', name: 'STUETZEN', color: '#c87050', lw: 0.50 },
{ code: '30', name: 'DECKEN', color: '#605850', lw: 0.35 },
{ code: '31', name: 'DAECHER', color: '#7a4a3a', lw: 0.35 },
{ code: '35', name: 'TRAEGER', color: '#a87858', lw: 0.50 },
{ code: '50', name: 'TEXT', color: '#d0d0d0', lw: 0.13 },
{ code: '60', name: 'PLANGRAFIK', color: '#c0a040', lw: 0.13 },
{ code: '90', name: 'REFERENZEN', color: '#585860', lw: 0.13 },
{ code: '99', name: 'KONSTRUKTION', color: '#404048', lw: 0.13 },
{ code: '00', name: 'Raster', color: '#484850', lw: 0.13 },
{ code: '01', name: 'Vermessung', color: '#707078', lw: 0.18 },
{ code: '10', name: 'Situation', color: '#909090', lw: 0.18 },
{ code: '11', name: 'Strasse', color: '#a89070', lw: 0.18 },
{ code: '12', name: 'Gebaeude', color: '#888888', lw: 0.25 },
{ code: '13', name: 'Baeume', color: '#50a050', lw: 0.13 },
{ code: '14', name: 'Hoehenlinien', color: '#909050', lw: 0.18 },
{ code: '20', name: 'Waende', color: '#0a0a0a', lw: 0.50 },
{ code: '21', name: 'Tueren_Fenster', color: '#5080c8', lw: 0.25 },
{ code: '22', name: 'Moebel', color: '#909090', lw: 0.13 },
{ code: '25', name: 'Stuetzen', color: '#c87050', lw: 0.50 },
{ code: '30', name: 'Decken', color: '#605850', lw: 0.35 },
{ code: '31', name: 'Daecher', color: '#7a4a3a', lw: 0.35 },
{ code: '35', name: 'Traeger', color: '#a87858', lw: 0.50 },
{ code: '50', name: 'Text', color: '#d0d0d0', lw: 0.13 },
{ code: '60', name: 'Plangrafik', color: '#c0a040', lw: 0.13 },
{ code: '90', name: 'Referenzen', color: '#585860', lw: 0.13 },
{ code: '99', name: 'Konstruktion', color: '#404048', lw: 0.13 },
]
// Built-in Presets — nicht in den Settings gespeichert, immer verfuegbar.