- commit
- 509574a9b3cfa6742b05932cfa561c7868d2892c
- parent
- 9a2c2cab51cc7a74a638432122af389eec21dbaf
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2024-07-06 17:49
finish drag
Diffstat
| M | sheet/__main__.py | 16 | ++++++++++++---- |
1 files changed, 12 insertions, 4 deletions
diff --git a/sheet/__main__.py b/sheet/__main__.py
@@ -3,6 +3,8 @@ import sys 3 3 import boon 4 4 5 5 from .csv import load_csv -1 6 from .expression import shift_refs -1 7 from .expression import unparse 6 8 from .expression import x2col 7 9 from .input import Input 8 10 from .sheet import iter_range @@ -129,10 +131,16 @@ class App(boon.App): 129 131 self.input = None 130 132 131 133 def submit_drag(self):132 -1 value = self.sheet.get_raw(self.drag)133 -1 for x, y in iter_range(self.cursor, self.drag):134 -1 # TODO: modify references in expression135 -1 self.sheet.set((x, y), value)-1 134 raw = self.sheet.get_raw(self.drag) -1 135 if raw.startswith('='): -1 136 expr = self.sheet.get_parsed(self.drag) -1 137 assert isinstance(expr, tuple) -1 138 for x, y in iter_range(self.cursor, self.drag): -1 139 shifted = shift_refs(expr, (x - self.drag[0], y - self.drag[1])) -1 140 self.sheet.set((x, y), '=' + unparse(shifted)) -1 141 else: -1 142 for x, y in iter_range(self.cursor, self.drag): -1 143 self.sheet.set((x, y), raw) 136 144 self.drag = None 137 145 138 146 def cancel_drag(self):