From e66ffda7c7f1e78dbca082ff7549ded121dc7356 Mon Sep 17 00:00:00 2001 From: Laurent Balland Date: Thu, 7 Dec 2023 19:38:54 +0100 Subject: [PATCH] tdf#129701 Skip empty cell: treat last column When pasting data as text, with "Skip empty cells" not checked, empty cells in the last column of the source do not empty cells in destination, because there is nothing anymore to paste and while loop stops. This commit adds a flag to check if the last cell of each line is empty, and treat it if "Skip empty cells" is not checked. Add UITest to Copy data with empty cells; Paste Unformatted text, without "Skip empty cells"; Check data with empty cells in last column. Change-Id: Idec823fb1c27b803f49c6d13d6c757ef0f41e437 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160951 Tested-by: Jenkins Reviewed-by: Laurent Balland --- sc/qa/uitest/data/tdf129701.ods | Bin 0 -> 23138 bytes .../pasteSpecial/tdf129701-PasteUnformated.py | 70 ++++++++++++++++++ sc/source/ui/docshell/impex.cxx | 19 ++++- 3 files changed, 86 insertions(+), 3 deletions(-) create mode 100644 sc/qa/uitest/data/tdf129701.ods create mode 100644 sc/qa/uitest/pasteSpecial/tdf129701-PasteUnformated.py diff --git a/sc/qa/uitest/data/tdf129701.ods b/sc/qa/uitest/data/tdf129701.ods new file mode 100644 index 0000000000000000000000000000000000000000..94407fcd566e841ba56c6050b5d63c4518aa1034 GIT binary patch literal 23138 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 xy>Z9)yqh2O{(Yz3#y85lUg?*dRd