[Libreoffice-commits] core.git: Branch 'libreoffice-4-1' - sw/qa writerfilter/source
Zolnai Tamás
tamas.zolnai at collabora.com
Wed Jan 22 07:34:52 PST 2014
sw/qa/extras/ooxmlimport/data/fdo73389.docx |binary
sw/qa/extras/ooxmlimport/ooxmlimport.cxx | 10 +++++++
writerfilter/source/dmapper/DomainMapperTableManager.cxx | 19 ++++-----------
3 files changed, 16 insertions(+), 13 deletions(-)
New commits:
commit 7a0eec199901962b03f04371e9474caf8c408c01
Author: Zolnai Tamás <tamas.zolnai at collabora.com>
Date: Mon Jan 20 13:44:46 2014 +0100
fdo#73389 Writer does not show a docx-document with nested table correctly
The table manager can work with more table simultaneously
and so m_aCellWidths contains more table's properties.Only one
item of it belongs to the current table (getCurrentCellwidths).
Regression from 74c5ed19f430327988194cdcd6bdff09591a93fa
(cherry picked from commit d0c383256ef72d5212d8e2db77582d0ebe417209)
Conflicts:
sw/qa/extras/ooxmlimport/ooxmlimport.cxx
writerfilter/source/dmapper/DomainMapperTableManager.cxx
Change-Id: I93efac0c004af1b2524c955ffb20c3ecd74a2920
Reviewed-on: https://gerrit.libreoffice.org/7565
Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
Tested-by: Miklos Vajna <vmiklos at collabora.co.uk>
diff --git a/sw/qa/extras/ooxmlimport/data/fdo73389.docx b/sw/qa/extras/ooxmlimport/data/fdo73389.docx
new file mode 100644
index 0000000..02b55f7
Binary files /dev/null and b/sw/qa/extras/ooxmlimport/data/fdo73389.docx differ
diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
index 2c72214..32545c2 100644
--- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
+++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
@@ -137,6 +137,7 @@ public:
void testBnc779620();
void testRPrChangeClosed();
void testFdo65090();
+ void testFdo73389();
CPPUNIT_TEST_SUITE(Test);
#if !defined(MACOSX) && !defined(WNT)
@@ -239,6 +240,7 @@ void Test::run()
{"bnc779620.docx", &Test::testBnc779620},
{"rprchange_closed.docx", &Test::testRPrChangeClosed},
{"fdo65090.docx", &Test::testFdo65090},
+ {"fdo73389.docx", &Test::testFdo73389},
};
header();
for (unsigned int i = 0; i < SAL_N_ELEMENTS(aMethods); ++i)
@@ -1673,6 +1675,14 @@ void Test::testFdo65090()
CPPUNIT_ASSERT_EQUAL(sal_Int32(0), getProperty< uno::Sequence<text::TableColumnSeparator> >(xTableRows->getByIndex(0), "TableColumnSeparators").getLength());
}
+void Test::testFdo73389()
+{
+ uno::Reference<text::XTextTablesSupplier> xTablesSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> xTables(xTablesSupplier->getTextTables(), uno::UNO_QUERY);
+ // This was 9340, i.e. the width of the inner table was too large.
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(2842), getProperty<sal_Int32>(xTables->getByIndex(0), "Width"));
+}
+
CPPUNIT_TEST_SUITE_REGISTRATION(Test);
CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/writerfilter/source/dmapper/DomainMapperTableManager.cxx b/writerfilter/source/dmapper/DomainMapperTableManager.cxx
index 59afbb3..157fbf8 100644
--- a/writerfilter/source/dmapper/DomainMapperTableManager.cxx
+++ b/writerfilter/source/dmapper/DomainMapperTableManager.cxx
@@ -142,20 +142,13 @@ bool DomainMapperTableManager::sprm(Sprm & rSprm)
*/
bool bFixed = false;
sal_Int32 nRowFixedWidth = 0;
- if (!m_aCellWidths.empty())
+ IntVectorPtr pCellWidths = getCurrentCellWidths();
+ // Step 1. Check whether any cell has fixed width in the given row of table.
+ for (std::vector<sal_Int32>::const_iterator aValIter = pCellWidths->begin(); aValIter != pCellWidths->end(); ++aValIter)
{
- // Step 1. Check whether any cell has fixed width in the given row of table.
- ::std::vector< IntVectorPtr >::iterator itr;
- for (itr = m_aCellWidths.begin(); itr != m_aCellWidths.end(); itr ++)
- {
- IntVectorPtr itrVal = (*itr);
- for (std::vector<sal_Int32>::const_iterator aValIter = itrVal->begin(); aValIter != itrVal->end(); ++aValIter)
- {
- // Sum the width of cells to find the total width of given row
- nRowFixedWidth += (*aValIter);
- bFixed = true;
- }
- }
+ // Sum the width of cells to find the total width of given row
+ nRowFixedWidth += (*aValIter);
+ bFixed = true;
}
// Check whether the total width of given row is compared with the maximum value of rows (m_nMaxFixedWidth).
More information about the Libreoffice-commits
mailing list