summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLászló Németh <nemeth@numbertext.org>2021-02-03 16:56:49 +0100
committerLászló Németh <nemeth@numbertext.org>2021-02-03 20:51:51 +0100
commit183c06fc02a50fb117bb6162e4d6e56cdd34fad1 (patch)
tree41394203c0c51efa3086c918449667d15ba68851
parent24b11f5a691f4a7ac977de919b4cb0cd4d668a7d (diff)
tdf#139301 fix OOXML-compatible preset dash styles
Despite the purpose of the new interoperability styles added in commit b2d8093b19642038631dfb8f1ab6745a380a652c (tdf#127499 added 9 new line styles all are (var) and in line with MSO), collision with commit 57c9bdab377a00649299d1a4c9ed2f9e5e03b84e (tdf#127166, tdf#123903 improve import/export of line styles) resulted still missing interoperability on the user interface: 1) opening an OOXML document, preset styles weren't recognized on the UI, also the preview was a solid line on the Drawing Object Properties toolbar. 2) using the new compatibility preset styles, OOXML export resulted custom styles instead of the intended preset styles. On the UI, now the layout of the first 10 preset dash styles follows the OOXML standard, see 20.1.10.49 ST_PresetLineDashVal (Preset Line Dash Value) in ISO/IEC 29500-1, 2016: dash pattern name (OOXML name) 10 "Dot" (sysDot) 1000 "Long Dot" (dot) 1110 "Dash" (sysDash) 1111000 "Long Dash" (dash) 11111111000 "Double Dash" (lgDash) 111010 "Dash Dot" (sysDashDot) 11110001000 "Long Dash Dot (dashDot) 111111110001000 "Double Dash Dot" (lgDashDot) 11101010 "Dash Dot Dot" (sysDashDotDot) 1111111100010001000 "Double Dash Dot Dot" (lgDashDotDot) Note: add missing "Dash Dot Dot" (sysDashDotDot). Remove "Double Dot": it really wasn't an OOXML-compatible preset style, and it has a good replacement among the older styles, the similarly loosely dotted "Fine dotted", which is still supported for back-compatibility. Note: to start the new UI test, use $ (cd sw; make -srj8 UITest_writer_tests7 UITEST_TEST_NAME="tdf139301.tdf139301.test_tdf139301" SAL_USE_VCLPLUGIN=gen) Change-Id: Ifc3fa634f2170aada61632e0a419d35dcaaf5ef6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110386 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org>
-rw-r--r--extras/source/palettes/standard.sod17
-rw-r--r--sw/qa/uitest/data/tdf127166_prstDash_Word97.docxbin0 -> 6300 bytes
-rw-r--r--sw/qa/uitest/writer_tests7/tdf139301.py41
3 files changed, 50 insertions, 8 deletions
diff --git a/extras/source/palettes/standard.sod b/extras/source/palettes/standard.sod
index d8b010b1ada1..3ac90cb0604a 100644
--- a/extras/source/palettes/standard.sod
+++ b/extras/source/palettes/standard.sod
@@ -2,14 +2,15 @@
<office:dash-table xmlns:office="http://openoffice.org/2000/office" xmlns:style="http://openoffice.org/2000/style" xmlns:text="http://openoffice.org/2000/text" xmlns:table="http://openoffice.org/2000/table" xmlns:draw="http://openoffice.org/2000/drawing" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="http://openoffice.org/2000/meta" xmlns:number="http://openoffice.org/2000/datastyle" xmlns:svg="http://www.w3.org/2000/svg" xmlns:chart="http://openoffice.org/2000/chart" xmlns:dr3d="http://openoffice.org/2000/dr3d" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="http://openoffice.org/2000/form" xmlns:script="http://openoffice.org/2000/script">
<draw:stroke-dash draw:name="Dot" draw:style="rect" draw:dots1="1" draw:dots1-length="100%" draw:distance="100%"/>
- <draw:stroke-dash draw:name="Long Dot" draw:style="rect" draw:dots1="1" draw:dots1-length="100%" draw:dots2="1" draw:dots2-length="100%" draw:distance="300%"/>
- <draw:stroke-dash draw:name="Double Dot" draw:style="rect" draw:dots1="1" draw:dots1-length="100%" draw:dots2="1" draw:dots2-length="100%" draw:distance="500%"/>
- <draw:stroke-dash draw:name="Dash" draw:style="rect" draw:dots1="1" draw:dots1-length="300%" draw:distance="300%"/>
- <draw:stroke-dash draw:name="Long Dash" draw:style="rect" draw:dots1="1" draw:dots1-length="600%" draw:distance="300%"/>
- <draw:stroke-dash draw:name="Double Dash" draw:style="rect" draw:dots1="1" draw:dots1-length="1100%" draw:dots2="1" draw:dots2-length="1100%" draw:distance="500%"/>
- <draw:stroke-dash draw:name="Long Dash Dot" draw:style="rect" draw:dots1="1" draw:dots1-length="600%" draw:dots2="1" draw:dots2-length="100%" draw:distance="300%"/>
- <draw:stroke-dash draw:name="Double Dash Dot" draw:style="rect" draw:dots1="1" draw:dots1-length="1100%" draw:dots2="1" draw:dots2-length="100%" draw:distance="500%"/>
- <draw:stroke-dash draw:name="Double Dash Dot Dot" draw:style="rect" draw:dots1="1" draw:dots1-length="1100%" draw:dots2="2" draw:dots2-length="100%" draw:distance="500%"/>
+ <draw:stroke-dash draw:name="Long Dot" draw:style="rect" draw:dots1="1" draw:dots1-length="100%" draw:distance="300%"/>
+ <draw:stroke-dash draw:name="Dash" draw:style="rect" draw:dots1="1" draw:dots1-length="300%" draw:distance="100%"/>
+ <draw:stroke-dash draw:name="Long Dash" draw:style="rect" draw:dots1="1" draw:dots1-length="400%" draw:distance="300%"/>
+ <draw:stroke-dash draw:name="Double Dash" draw:style="rect" draw:dots1="1" draw:dots1-length="800%" draw:distance="300%"/>
+ <draw:stroke-dash draw:name="Dash Dot" draw:style="rect" draw:dots1="1" draw:dots1-length="300%" draw:dots2="1" draw:dots2-length="100%" draw:distance="100%"/>
+ <draw:stroke-dash draw:name="Long Dash Dot" draw:style="rect" draw:dots1="1" draw:dots1-length="400%" draw:dots2="1" draw:dots2-length="100%" draw:distance="300%"/>
+ <draw:stroke-dash draw:name="Double Dash Dot" draw:style="rect" draw:dots1="1" draw:dots1-length="800%" draw:dots2="1" draw:dots2-length="100%" draw:distance="300%"/>
+ <draw:stroke-dash draw:name="Dash Dot Dot" draw:style="rect" draw:dots1="1" draw:dots1-length="300%" draw:dots2="2" draw:dots2-length="100%" draw:distance="100%"/>
+ <draw:stroke-dash draw:name="Double Dash Dot Dot" draw:style="rect" draw:dots1="1" draw:dots1-length="800%" draw:dots2="2" draw:dots2-length="100%" draw:distance="300%"/>
<draw:stroke-dash draw:name="Ultrafine Dotted (var)" draw:style="rect" draw:dots1="1" draw:distance="50%"/>
<draw:stroke-dash draw:name="Fine Dotted" draw:style="rect" draw:dots1="1" draw:distance="0.1799inch"/>
diff --git a/sw/qa/uitest/data/tdf127166_prstDash_Word97.docx b/sw/qa/uitest/data/tdf127166_prstDash_Word97.docx
new file mode 100644
index 000000000000..b89f52fdc5b5
--- /dev/null
+++ b/sw/qa/uitest/data/tdf127166_prstDash_Word97.docx
Binary files differ
diff --git a/sw/qa/uitest/writer_tests7/tdf139301.py b/sw/qa/uitest/writer_tests7/tdf139301.py
new file mode 100644
index 000000000000..87d36d35a951
--- /dev/null
+++ b/sw/qa/uitest/writer_tests7/tdf139301.py
@@ -0,0 +1,41 @@
+# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+from uitest.framework import UITestCase
+from uitest.uihelper.common import get_state_as_dict, get_url_for_data_file
+
+class tdf139301(UITestCase):
+
+ def test_tdf139301(self):
+ styles = ('Long Dash', 'Long Dash Dot', 'Long Dot', 'Double Dash', 'Double Dash Dot', 'Double Dash Dot Dot', 'Dash', 'Dash Dot', 'Dash Dot Dot', 'Dot')
+
+ for i in range(len(styles)):
+ writer_doc = self.ui_test.load_file(get_url_for_data_file("tdf127166_prstDash_Word97.docx"))
+ xWriterDoc = self.xUITest.getTopFocusWindow()
+ xWriterEdit = xWriterDoc.getChild("writer_edit")
+
+ for i in range(i+1):
+ self.xUITest.executeCommand(".uno:JumpToNextFrame")
+
+ # wait for available line style setting
+ self.ui_test.wait_until_child_is_available(xWriterEdit, 'metricfield')
+
+ # line setting dialog window
+ self.ui_test.execute_dialog_through_command(".uno:FormatLine")
+ xFormatLineDlg = self.xUITest.getTopFocusWindow()
+ # get line style combo box
+ xLineStyle = xFormatLineDlg.getChild("LB_LINE_STYLE")
+
+ # preset line style
+ self.assertEqual(get_state_as_dict(xLineStyle)['SelectEntryText'], styles[i])
+
+ xOKBtn = xFormatLineDlg.getChild("ok")
+ self.ui_test.close_dialog_through_button(xOKBtn)
+
+ self.ui_test.close_doc()
+
+# vim: set shiftwidth=4 softtabstop=4 expandtab:
+