Overrides-Fenster aufgeräumt + Rule-Templates

UX-Cleanup:
- Globaler AN/AUS-Toggle entfernt — den gibt's bereits in der
  Oberleiste, doppelt war redundant.
- Reload/Refresh-Button entfernt — Backend re-applied automatisch
  bei jeder Regel-Aenderung, manuelles Reload nicht noetig.
- + (Neue Regel) wurde aus dem Header in eine neue Sektion
  UNTER der Kombinationen-Card verschoben.

Neues Feature: Rule-Templates (einzelne wiederverwendbare Regeln)
- Storage: ~/Library/.../override_rule_templates.json (cross-doc,
  parallel zu den Kombinationen-Presets)
- API in overrides.py: list/save/load/delete_rule_template
- Bridge-Messages: SAVE_RULE_TEMPLATE, DELETE_RULE_TEMPLATE,
  ADD_FROM_TEMPLATE
- State enthaelt jetzt ruleTemplates: [{name, rule}]

UI:
- Neuer Bereich "Neue Regel" unter Kombinationen: [+ leer] +
  [+ Aus Vorlage ▼ dropdown]
- Vorlage waehlen → insert auf hoechste Prio (gleich wie addRule)
- Im Dropdown unten: "🗑 <name> loeschen" zum Entfernen einer Vorlage
- Im Rule-Kontextmenue: neuer Eintrag "Als Vorlage speichern…"
  fragt nach Name, speichert die Regel cross-doc

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-19 02:10:31 +02:00
parent 42d9c1e27b
commit e3918cb155
4 changed files with 172 additions and 35 deletions
+4
View File
@@ -192,6 +192,10 @@ export function clearOverrideRules() { send('CLEAR_RULES', {}) }
export function savePreset(name) { send('SAVE_PRESET', { name }) }
export function loadPreset(name, mode) { send('LOAD_PRESET', { name, mode: mode || 'replace' }) }
export function deletePreset(name) { send('DELETE_PRESET', { name }) }
// Rule-Templates: einzelne Regel speichern/anwenden/loeschen
export function saveRuleTemplate(name, rule) { send('SAVE_RULE_TEMPLATE', { name, rule }) }
export function addFromTemplate(name) { send('ADD_FROM_TEMPLATE', { name }) }
export function deleteRuleTemplate(name) { send('DELETE_RULE_TEMPLATE', { name }) }
// --- Dimensionen-Panel ---
export function setRefPoint(x, y, z) { send('SET_REF_POINT', { x, y, z }) }