Größenänderungs-Verhalten der Tabellenmodi vertauscht
Der SE-Griff-Effekt war genau falsch herum zugeordnet: "Automatisch"- Tabellen (Größe folgt immer dem Inhalt) sollen beim Ziehen die Zeilen-/ Spaltenzahl ändern, "Feste Größe"-Tabellen (expliziter, unabhängig wählbarer Scroll-Viewport) sollen unverändert nur den Pixel-Viewport ändern. - "Automatisch": Ziehen zeigt ein gestricheltes Vorschau-Rechteck (die eigentliche Zeilen-/Spaltenänderung ist teuer -- voller Workbook-Rebuild -- und committet daher erst beim Loslassen, nicht live). Wachsen fügt leere Zeilen/Spalten hinzu, Schrumpfen entfernt sie nie über echten Zellinhalt hinweg (gleicher Inhaltsschutz wie zuvor, nur am richtigen Modus). - "Feste Größe": zurück auf reines Pixel-Viewport-Resize, unabhängig von der Zeilen-/Spaltenzahl -- das ursprüngliche Verhalten. - Die dadurch tot gewordene alte "Automatisch"-Funktion (proportionale Spaltenbreiten-Skalierung beim Ziehen) entfernt (scaleTableColumns), keine andere Stelle rief sie noch auf. vue-tsc/eslint/build sauber, Playwright-live-verifiziert (Automatisch: Wachsen 12×8→19×11, hartes Schrumpfen klemmt auf 6×5 mit erhaltenem Inhalt; Feste Größe: Zeilen-/Spaltenzahl bleibt bei Viewport-Resize unverändert). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -32,20 +32,22 @@ scroll- und zoombare Fläche, die **Objekte** trägt:
|
||||
eindeutig ist (siehe „Formelgrammatik" unten für Bezüge über mehrere Blätter
|
||||
mit demselben Tabellennamen). Frei positionierbar (Ziehen an der
|
||||
Kopfleiste). Zwei Darstellungen:
|
||||
- **Automatisch** — so groß wie die Zellen, alle Zeilen sichtbar; der SE-Griff
|
||||
skaliert die Spaltenbreiten proportional.
|
||||
- **Feste Größe** — mit frei wählbarer Zahl **fixierter Kopfzeilen und
|
||||
fixierter Spalten** (`position: sticky` gegen den Scroll-Container, falls
|
||||
der Inhalt doch mal über die Boxgröße hinauswächst — etwa durch Tippen
|
||||
über den Rand hinaus). Der SE-Griff zieht hier **direkt an Zeilen-/
|
||||
Spaltenzahl**: Vergrößern fügt leere Zeilen/Spalten hinzu, Verkleinern
|
||||
entfernt sie — aber **nie** über echten Zellinhalt hinweg. Beim Loslassen
|
||||
wird auf die kleinste Größe geklemmt, die den vorhandenen Inhalt noch
|
||||
vollständig zeigt; die Box passt sich exakt an (kein Leerraum, kein
|
||||
Scrollen nötig, solange nicht direkt über die Boxgröße hinaus getippt
|
||||
wird). Die Breiten-/Höhenfelder im Einstellungen-Panel (⚙, s. u.) bleiben
|
||||
davon unabhängig — reine Pixelmaße, ohne Rückwirkung auf Zeilen-/
|
||||
Spaltenzahl.
|
||||
- **Automatisch** — so groß wie die Zellen, alle Zeilen sichtbar. Der
|
||||
SE-Griff zieht hier **direkt an Zeilen-/Spaltenzahl**: Vergrößern fügt
|
||||
leere Zeilen/Spalten hinzu, Verkleinern entfernt sie — aber **nie** über
|
||||
echten Zellinhalt hinweg. Während des Ziehens zeigt ein gestricheltes
|
||||
Vorschau-Rechteck die Zielgröße (die eigentliche Änderung ist teuer —
|
||||
ein voller Neuaufbau der Engine — und committet daher erst beim
|
||||
Loslassen, nicht bei jeder Mausbewegung); dann wird auf die kleinste
|
||||
Größe geklemmt, die den vorhandenen Inhalt noch vollständig zeigt.
|
||||
- **Feste Größe** — ein fester, unabhängig wählbarer **Pixel-Viewport**
|
||||
mit frei wählbarer Zahl **fixierter Kopfzeilen und fixierter Spalten**
|
||||
(`position: sticky` gegen den Scroll-Container) — für eine große
|
||||
Tabelle, die nur einen kleinen Ausschnitt auf dem Canvas belegen soll,
|
||||
mit internem Scrollen für den Rest. Der SE-Griff zieht hier **nur den
|
||||
Viewport**, unabhängig von der Zeilen-/Spaltenzahl (die bleibt exakt wie
|
||||
sie ist) — dieselben Breiten-/Höhenfelder im Einstellungen-Panel (⚙, s.
|
||||
u.) steuern denselben Wert.
|
||||
Spaltenbreite per Drag am Spaltenkopf (ab **24 px**), **Zeilenhöhe** per Drag
|
||||
an der Unterkante des Zeilenkopfs (Standard + je Zeile).
|
||||
- **Diagramm-Objekt** — Chart.js (Balken/Linie), frei positionier- **und**
|
||||
@@ -1081,7 +1083,7 @@ Grundrechenarten: `Übersicht!B2 = =SUM(Umsatz!B2:E2)`, `D2 = =B2-C2`,
|
||||
`OFFSET`/`INDEX`-Äquivalent — ein `#REF`, das aus einer gelöschten Zeile
|
||||
entsteht, muss von Hand korrigiert werden, es gibt keine „nächstbeste
|
||||
Zelle"-Heuristik.
|
||||
- **Größenänderung einer „Feste Größe"-Tabelle** (SE-Griff → Zeilen-/
|
||||
- **Größenänderung einer „Automatisch"-Tabelle** (SE-Griff → Zeilen-/
|
||||
Spaltenzahl, s. o. „Das Canvas-Modell") ist rein UI-seitig (`CanvasObject.vue`)
|
||||
implementiert, ohne eigene Unit-Tests — das Projekt hat (noch) kein
|
||||
Komponenten-Test-Setup (z. B. Vue Test Utils), nur Engine-/Store-Tests.
|
||||
|
||||
Reference in New Issue
Block a user