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

Miklos Vajna vmiklos at collabora.co.uk
Wed Mar 12 07:48:27 PDT 2014


 sw/qa/extras/ooxmlimport/data/bnc865381.docx             |binary
 sw/qa/extras/ooxmlimport/ooxmlimport.cxx                 |   10 ++++++++++
 writerfilter/source/dmapper/DomainMapperTableManager.cxx |   12 ++++++++----
 3 files changed, 18 insertions(+), 4 deletions(-)

New commits:
commit 48b5b7641d0df960558082e8948da8598f801264
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Wed Mar 12 11:42:34 2014 +0100

    bnc#865381 DOCX import: fix btLr cell direction when having vertical merge
    
    Change-Id: I527955671e1100f05da717bffe002131baaf0291

diff --git a/sw/qa/extras/ooxmlimport/data/bnc865381.docx b/sw/qa/extras/ooxmlimport/data/bnc865381.docx
new file mode 100755
index 0000000..bb125cc
Binary files /dev/null and b/sw/qa/extras/ooxmlimport/data/bnc865381.docx differ
diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
index bff4e1e..809e763 100644
--- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
+++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
@@ -1100,6 +1100,16 @@ DECLARE_OOXMLIMPORT_TEST(testTbLrHeight, "tblr-height.docx")
     CPPUNIT_ASSERT_EQUAL(text::SizeType::FIX, getProperty<sal_Int16>(xTableRows->getByIndex(0), "SizeType"));
 }
 
+DECLARE_OOXMLIMPORT_TEST(testBnc865381, "bnc865381.docx")
+{
+    uno::Reference<text::XTextTablesSupplier> xTablesSupplier(mxComponent, uno::UNO_QUERY);
+    uno::Reference<container::XIndexAccess> xTables(xTablesSupplier->getTextTables(), uno::UNO_QUERY);
+    uno::Reference<text::XTextTable> xTextTable(xTables->getByIndex(0), uno::UNO_QUERY);
+    uno::Reference<table::XTableRows> xTableRows(xTextTable->getRows(), uno::UNO_QUERY);
+    // Second row has a vertically merged cell, make sure size type is MIN in that case (otherwise B2 is not readable).
+    CPPUNIT_ASSERT_EQUAL(text::SizeType::MIN, getProperty<sal_Int16>(xTableRows->getByIndex(1), "SizeType"));
+}
+
 DECLARE_OOXMLIMPORT_TEST(testFdo53985, "fdo53985.docx")
 {
     // Unhandled excetion prevented import of the rest of the document.
diff --git a/writerfilter/source/dmapper/DomainMapperTableManager.cxx b/writerfilter/source/dmapper/DomainMapperTableManager.cxx
index 103befa..773da17 100644
--- a/writerfilter/source/dmapper/DomainMapperTableManager.cxx
+++ b/writerfilter/source/dmapper/DomainMapperTableManager.cxx
@@ -346,10 +346,14 @@ bool DomainMapperTableManager::sprm(Sprm & rSprm)
                         SAL_INFO( "writerfilter", "Have inserted textDirection " << nIntValue );
 
                         // We're faking a text direction, so don't allow multiple lines.
-                        TablePropertyMapPtr pRowPropMap( new TablePropertyMap );
-                        pRowPropMap->Insert(PROP_SIZE_TYPE, uno::makeAny(text::SizeType::FIX));
-                        m_bRowSizeTypeInserted = true;
-                        insertRowProps(pRowPropMap);
+                        if (!getCellProps() || getCellProps()->find(PROP_VERTICAL_MERGE) == getCellProps()->end())
+                        {
+                            // Though in case there will be a vertical merge, don't do this, it hides text that is supposed to be visible.
+                            TablePropertyMapPtr pRowPropMap( new TablePropertyMap );
+                            pRowPropMap->Insert(PROP_SIZE_TYPE, uno::makeAny(text::SizeType::FIX));
+                            m_bRowSizeTypeInserted = true;
+                            insertRowProps(pRowPropMap);
+                        }
                         }
                         break;
                     case 4: // lrTbV


More information about the Libreoffice-commits mailing list