[Libreoffice-commits] core.git: extras/source sw/qa

László Németh (via logerrit) logerrit at kemper.freedesktop.org
Wed May 5 11:43:12 UTC 2021


 extras/source/palettes/standard.sod                 |   10 +++++
 sw/qa/uitest/data/tdf127166_prstDash_round_cap.docx |binary
 sw/qa/uitest/writer_tests7/tdf139301.py             |   34 ++++++++++++++++++--
 3 files changed, 41 insertions(+), 3 deletions(-)

New commits:
commit b9b2c6a98fec798fc0ec76ec3cd407724f19dcac
Author:     László Németh <nemeth at numbertext.org>
AuthorDate: Wed Apr 21 15:42:37 2021 +0200
Commit:     László Németh <nemeth at numbertext.org>
CommitDate: Wed May 5 13:42:30 2021 +0200

    tdf#141933 add preset dash styles with round cap
    
    New OOXML-compatible preset styles weren't recognized
    on the UI, including the Drawing Object Properties
    toolbar and Line Style settings, if the preset styles
    use round cap, e.g. line styles with dot-like dots (i.e.
    not tiny squares as dots).
    
    As a workaround for interoperability and access to
    the line styles with dot-like dots, add "Rounded"
    version for every OOXML-compatible preset styles with
    round cap. This allows to apply dot-like dotted lines
    to new shapes, too.
    
    Background: round cap modifies the DotLen and DashLen
    values of the LineDash struct during the OOXML import,
    using ~zero values to get dot-like dots. For the details,
    see commit 3f3b50015e4fd9efc3459612a70409fca49cf390
    "tdf#134053 tweak dash and space length for ooxml" and
    commit 24d770799660d3ec94ee7add435645794426042b
    "tdf#134128 Use Gdiplus::DashCapRound for round dash or dot".
    
    Follow of commit 183c06fc02a50fb117bb6162e4d6e56cdd34fad1
    "tdf#139301 fix OOXML-compatible preset dash styles".
    
    Change-Id: I4f3173579964b2c00618ada475b012c85320f758
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114459
    Tested-by: László Németh <nemeth at numbertext.org>
    Reviewed-by: László Németh <nemeth at numbertext.org>

diff --git a/extras/source/palettes/standard.sod b/extras/source/palettes/standard.sod
index 3ac90cb0604a..7b68ea06cf9c 100644
--- a/extras/source/palettes/standard.sod
+++ b/extras/source/palettes/standard.sod
@@ -2,15 +2,25 @@
 
 <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="Dot (Rounded)"        draw:style="round" draw:dots1="1" draw:dots1-length="1%" draw:distance="199%"/>
  <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="Long Dot (Rounded)"   draw:style="round" draw:dots1="1" draw:dots1-length="1%" draw:distance="399%"/>
  <draw:stroke-dash draw:name="Dash"                 draw:style="rect" draw:dots1="1" draw:dots1-length="300%" draw:distance="100%"/>
+ <draw:stroke-dash draw:name="Dash (Rounded)"       draw:style="round" draw:dots1="1" draw:dots1-length="201%" draw:distance="199%"/>
  <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="Long Dash (Rounded)"  draw:style="round" draw:dots1="1" draw:dots1-length="301%" draw:distance="399%"/>
  <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="Double Dash (Rounded)" draw:style="round" draw:dots1="1" draw:dots1-length="701%" draw:distance="399%"/>
  <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="Dash Dot (Rounded)"   draw:style="round" draw:dots1="1" draw:dots1-length="201%" draw:dots2="1" draw:dots2-length="1%" draw:distance="199%"/>
  <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="Long Dash Dot (Rounded)" draw:style="round" draw:dots1="1" draw:dots1-length="301%" draw:dots2="1" draw:dots2-length="1%" draw:distance="399%"/>
  <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="Double Dash Dot (Rounded)" draw:style="round" draw:dots1="1" draw:dots1-length="701%" draw:dots2="1" draw:dots2-length="1%" draw:distance="399%"/>
  <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="Dash Dot Dot (Rounded)" draw:style="round" draw:dots1="1" draw:dots1-length="201%" draw:dots2="2" draw:dots2-length="1%" draw:distance="199%"/>
  <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="Double Dash Dot Dot (Rounded)" draw:style="round" draw:dots1="1" draw:dots1-length="701%" draw:dots2="2" draw:dots2-length="1%" draw:distance="399%"/>
 
  <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_round_cap.docx b/sw/qa/uitest/data/tdf127166_prstDash_round_cap.docx
new file mode 100644
index 000000000000..52f9aaa5589f
Binary files /dev/null and b/sw/qa/uitest/data/tdf127166_prstDash_round_cap.docx differ
diff --git a/sw/qa/uitest/writer_tests7/tdf139301.py b/sw/qa/uitest/writer_tests7/tdf139301.py
index 62a80b29998f..064018889031 100644
--- a/sw/qa/uitest/writer_tests7/tdf139301.py
+++ b/sw/qa/uitest/writer_tests7/tdf139301.py
@@ -9,12 +9,40 @@ from uitest.uihelper.common import get_state_as_dict, get_url_for_data_file
 
 class tdf139301(UITestCase):
 
+    styles = ('Long Dash', 'Long Dash Dot', 'Long Dot', 'Double Dash', 'Double Dash Dot', 'Double Dash Dot Dot', 'Dash', 'Dash Dot', 'Dash Dot Dot', 'Dot')
+
     def test_tdf139301(self):
         writer_doc = self.ui_test.load_file(get_url_for_data_file("tdf127166_prstDash_Word97.docx"))
 
-        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(self.styles)):
+            # select next line shape
+            writer_doc.getCurrentController().select(writer_doc.getDrawPage()[i])
+
+            # wait for available line style setting
+            self.ui_test.wait_until_child_is_available('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")
+
+            # check preset line style
+            style = get_state_as_dict(xLineStyle)['SelectEntryText']
+
+            xOKBtn = xFormatLineDlg.getChild("ok")
+            self.ui_test.close_dialog_through_button(xOKBtn)
+
+            self.assertEqual(style, self.styles[i])
+
+        self.ui_test.close_doc()
+
+    def test_round_cap(self):
+        writer_doc = self.ui_test.load_file(get_url_for_data_file("tdf127166_prstDash_round_cap.docx"))
+
+        style_name_extension = ' (Rounded)'
 
-        for i in range(len(styles)):
+        for i in range(len(self.styles)):
             # select next line shape
             writer_doc.getCurrentController().select(writer_doc.getDrawPage()[i])
 
@@ -33,7 +61,7 @@ class tdf139301(UITestCase):
             xOKBtn = xFormatLineDlg.getChild("ok")
             self.ui_test.close_dialog_through_button(xOKBtn)
 
-            self.assertEqual(style, styles[i])
+            self.assertEqual(style, self.styles[i] + style_name_extension)
 
         self.ui_test.close_doc()
 


More information about the Libreoffice-commits mailing list