[Libreoffice-commits] core.git: Branch 'libreoffice-4-1' - sw/qa sw/source

Miklos Vajna vmiklos at suse.cz
Thu Jun 6 01:00:14 PDT 2013


 sw/qa/extras/ww8import/data/page-border.doc |binary
 sw/qa/extras/ww8import/ww8import.cxx        |   11 +++++++++++
 sw/source/filter/ww8/ww8par.cxx             |    6 +++---
 3 files changed, 14 insertions(+), 3 deletions(-)

New commits:
commit a4f5152c8a0438c38cfbcb5738a128497da59a17
Author: Miklos Vajna <vmiklos at suse.cz>
Date:   Wed Jun 5 17:49:13 2013 +0200

    wwSectionManager: fix import of page borders
    
    Regression from 1e113cb7604e1509e7d598a9be329f1f7b6e9322. According to
    the spec (see 2.9.181), the first bit disables border of "all but first"
    pages, the second bit disables the border of first pages.
    
    Change-Id: Ie49c9b7b76d34c2a93350481965790976f49d7df
    (cherry picked from commit f06cc552a0699f7c2c34db981e77d4c8efe5e9e7)

diff --git a/sw/qa/extras/ww8import/data/page-border.doc b/sw/qa/extras/ww8import/data/page-border.doc
new file mode 100755
index 0000000..c2dec4f
Binary files /dev/null and b/sw/qa/extras/ww8import/data/page-border.doc differ
diff --git a/sw/qa/extras/ww8import/ww8import.cxx b/sw/qa/extras/ww8import/ww8import.cxx
index d924ef3..0ded9f7 100644
--- a/sw/qa/extras/ww8import/ww8import.cxx
+++ b/sw/qa/extras/ww8import/ww8import.cxx
@@ -18,6 +18,8 @@
 #include <swmodeltestbase.hxx>
 #include <bordertest.hxx>
 
+#define TWIP_TO_MM100(TWIP) ((TWIP) >= 0 ? (((TWIP)*127L+36L)/72L) : (((TWIP)*127L-36L)/72L))
+
 class Test : public SwModelTestBase
 {
 public:
@@ -32,6 +34,7 @@ public:
     void testI120158();
     void testN816603();
     void testN816593();
+    void testPageBorder();
 
     CPPUNIT_TEST_SUITE(Test);
 #if !defined(MACOSX) && !defined(WNT)
@@ -57,6 +60,7 @@ void Test::run()
         {"i120158.doc", &Test::testI120158},
         {"n816603.doc", &Test::testN816603},
         {"n816593.doc", &Test::testN816593},
+        {"page-border.doc", &Test::testPageBorder},
     };
     header();
     for (unsigned int i = 0; i < SAL_N_ELEMENTS(aMethods); ++i)
@@ -271,6 +275,13 @@ void Test::testN816593()
     CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xIndexAccess->getCount());
 }
 
+void Test::testPageBorder()
+{
+    // Page border was missing (LineWidth was 0), due to wrong interpretation of pgbApplyTo.
+    table::BorderLine2 aBorder = getProperty<table::BorderLine2>(getStyles("PageStyles")->getByName(DEFAULT_STYLE), "TopBorder");
+    CPPUNIT_ASSERT_EQUAL(sal_uInt32(TWIP_TO_MM100(6 * 20)), aBorder.LineWidth);
+}
+
 CPPUNIT_TEST_SUITE_REGISTRATION(Test);
 
 CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx
index 598385a..907454f 100644
--- a/sw/source/filter/ww8/ww8par.cxx
+++ b/sw/source/filter/ww8/ww8par.cxx
@@ -3848,10 +3848,10 @@ void wwSectionManager::SetSegmentToPageDesc(const wwSection &rSection,
 
     SetPage(rPage, rFmt, rSection, bIgnoreCols);
 
-    if (rSection.maSep.pgbApplyTo & 1)
-        mrReader.SetPageBorder(rPage.GetFirst(), rSection);
-    if (rSection.maSep.pgbApplyTo & 2)
+    if (!(rSection.maSep.pgbApplyTo & 1))
         mrReader.SetPageBorder(rFmt, rSection);
+    if (!(rSection.maSep.pgbApplyTo & 2))
+        mrReader.SetPageBorder(rPage.GetFirst(), rSection);
 
     mrReader.SetDocumentGrid(rFmt, rSection);
 }


More information about the Libreoffice-commits mailing list