From 5288fca2c5a384c3f3eb59c4da47cd2e9e9d676f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Fri, 22 Dec 2023 14:28:24 +0100 Subject: [PATCH] Use csv reader to paste clipboard content in tree view --- tryton/tryton/gui/window/view_form/view/list.py | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/tryton/tryton/gui/window/view_form/view/list.py b/tryton/tryton/gui/window/view_form/view/list.py index 26fee20641..ad47dbb2c5 100644 --- a/tryton/tryton/gui/window/view_form/view/list.py +++ b/tryton/tryton/gui/window/view_form/view/list.py @@ -749,19 +749,14 @@ class ViewTree(View): if not self.editable: return - def unquote(value): - if value[:1] == '"' and value[-1:] == '"': - return value[1:-1] - return value - data = [] + reader = None for clipboard_type in [ Gdk.SELECTION_CLIPBOARD, Gdk.SELECTION_PRIMARY]: clipboard = self.treeview.get_clipboard(clipboard_type) text = clipboard.wait_for_text() if not text: continue - data = [[unquote(v) for v in l.split('\t')] - for l in text.splitlines()] + reader = csv.reader(StringIO(text), delimiter='\t') break col = self.treeview.get_cursor()[1] columns = [c for c in self.treeview.get_columns() @@ -777,7 +772,7 @@ class ViewTree(View): group = self.group idx = len(group) default = None - for line in data: + for line in reader: if idx >= len(group): record = group.new(default=False) if default is None: