Bulk-Op Bail-out per Objekt-Typ statt global — DOSSIER-Cascade bleibt aktiv
Regression vom letzten Commit: _on_object_deleted und gestaltung.on_delete bailten KOMPLETT bei Bulk-Ops. Damit liefen Cascade-Cleanups nicht mehr: - Wand-Achse geloescht → Wand-Volumen blieb orphaned - Oeffnungs-Punkt geloescht → Loch in Wand verschwand nicht - Curve mit Hatch geloescht → Hatch blieb als Geist liegen Fix: Schnellfilter per UserString-Lookup VOR dem Bail. - elemente._on_object_deleted: GetUserString(_KEY_TYPE) — nur DOSSIER- Sources triggern Cascade. OSM/Swisstopo-Curves haben keinen Type → cheap exit, kein per-Event-Overhead. Bulk-Bail entfernt. - gestaltung.on_delete: bestehender _FILL_KEY/_FILL_OWNER_KEY-Check (line 1540-1548) filtert non-Hatch-Objekte schon billig. Bulk-Bail entfernt. Panel-Sync optimiert: _send_state aus on_object_deleted unterdrueckt waehrend Bulk, einmaliger Push aus _on_command_end. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
+5
-6
@@ -1517,12 +1517,11 @@ def _install_selection_listener(bridge):
|
||||
Curve aufraeumen damit beim naechsten Toggle keine Geister-Referenz steht."""
|
||||
if sc.sticky.get("_dossier_undo_active"): return
|
||||
if sc.sticky.get("_elemente_regen_busy"): return
|
||||
# Bulk-Delete (SelAll + Delete): pro-Object Hatch-Sync ueberspringen
|
||||
# — bei 6000 Objekten waere das massive Overhead. Hatch-Verweise
|
||||
# wuerden zwar nicht aufgeraeumt aber das ist tolerierbar
|
||||
# (Sticky-Cache laeuft auch ohne Cleanup ab, alte Eintraege bleiben
|
||||
# nur unsichtbar liegen).
|
||||
if sc.sticky.get("_dossier_bulk_op_active"): return
|
||||
# Bulk-Op (SelAll + Delete): KEIN frueher Bail — der UserString-
|
||||
# Schnellcheck unten (kein _FILL_KEY/_FILL_OWNER_KEY → return)
|
||||
# filtert OSM/Swisstopo-Curves billig raus. Hatch-gekoppelte Curves
|
||||
# MUESSEN ihre Hatch mitnehmen, sonst bleiben Geister-Hatches
|
||||
# liegen (Curve+Hatch zerfallen als Einheit).
|
||||
obj = args.TheObject
|
||||
if obj is None or obj.Id in _processing:
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user