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

Priyanka Gaikwad priyanka.gaikwad at synerzip.com
Thu Nov 14 04:52:14 PST 2013


 editeng/source/items/paraitem.cxx                    |    2 +-
 include/editeng/lspcitem.hxx                         |    4 ++--
 sw/qa/extras/ooxmlexport/data/test_line_spacing.docx |binary
 sw/qa/extras/ooxmlexport/ooxmlexport.cxx             |   14 ++++++++++++++
 4 files changed, 17 insertions(+), 3 deletions(-)

New commits:
commit 7e115a4685ad21872e6759686860c5113e19c473
Author: Priyanka Gaikwad <priyanka.gaikwad at synerzip.com>
Date:   Tue Nov 12 11:29:34 2013 +0530

    Fixed for spacing between lines in paragraph.
    
    Problem Description:
    In "w:spacing" value of "w:line" attribute value is not getting preserved.
    
    Conflicts:
    	sw/qa/extras/ooxmlexport/ooxmlexport.cxx
    Reviewed on:
    	https://gerrit.libreoffice.org/6645
    
    Change-Id: Id9da4f9234d14cf4599c6520b4a191ad9af92c25

diff --git a/editeng/source/items/paraitem.cxx b/editeng/source/items/paraitem.cxx
index a78912b..c130771 100644
--- a/editeng/source/items/paraitem.cxx
+++ b/editeng/source/items/paraitem.cxx
@@ -203,7 +203,7 @@ bool SvxLineSpacingItem::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId )
             case style::LineSpacingMode::PROP:
             {
                 eLineSpace = SVX_LINE_SPACE_AUTO;
-                nPropLineSpace = (sal_Int8)std::min(aLSp.Height, (short)0xFF);
+                nPropLineSpace = (sal_Int16)aLSp.Height;
                 if(100 == aLSp.Height)
                     eInterLineSpace = SVX_INTER_LINE_SPACE_OFF;
                 else
diff --git a/include/editeng/lspcitem.hxx b/include/editeng/lspcitem.hxx
index 91505d5..d04e876 100644
--- a/include/editeng/lspcitem.hxx
+++ b/include/editeng/lspcitem.hxx
@@ -38,7 +38,7 @@ class EDITENG_DLLPUBLIC SvxLineSpacingItem : public SfxEnumItemInterface
 
     short nInterLineSpace;
     sal_uInt16 nLineHeight;
-    sal_uInt8 nPropLineSpace;
+    sal_uInt16 nPropLineSpace;
     SvxLineSpace eLineSpace;
     SvxInterLineSpace eInterLineSpace;
 
@@ -83,7 +83,7 @@ public:
     }
 
     // To increase or decrease the row height.
-    sal_uInt8 GetPropLineSpace() const { return nPropLineSpace; }
+    sal_uInt16 GetPropLineSpace() const { return nPropLineSpace; }
     inline void SetPropLineSpace( const sal_uInt8 nProp )
     {
         nPropLineSpace = nProp;
diff --git a/sw/qa/extras/ooxmlexport/data/test_line_spacing.docx b/sw/qa/extras/ooxmlexport/data/test_line_spacing.docx
new file mode 100644
index 0000000..2f92afb
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/test_line_spacing.docx differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
index d2efe7c..24d242b 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
@@ -1704,6 +1704,20 @@ DECLARE_OOXML_TEST(testFdo70838, "fdo70838.docx")
     }
 }
 
+DECLARE_OOXML_TEST(testLineSpacingexport, "test_line_spacing.docx")
+{
+     // The Problem was that the w:line attribute value in w:spacing tag was incorrect
+    uno::Reference<text::XTextDocument> xTextDocument(mxComponent, uno::UNO_QUERY);
+    uno::Reference<container::XEnumerationAccess> xParaEnumAccess(xTextDocument->getText(), uno::UNO_QUERY);
+    uno::Reference<container::XEnumeration> xParaEnum = xParaEnumAccess->createEnumeration();
+    CPPUNIT_ASSERT(xParaEnum->hasMoreElements());
+
+    style::LineSpacing alineSpacing = getProperty<style::LineSpacing>(xParaEnum->nextElement(), "ParaLineSpacing");
+    CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int16>(13200), static_cast<sal_Int16>(alineSpacing.Height));
+    xmlDocPtr pXmlDoc = parseExport("word/document.xml");
+    assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:pPr/w:spacing", "line", "31680");
+}
+
 #endif
 
 CPPUNIT_PLUGIN_IMPLEMENT();


More information about the Libreoffice-commits mailing list