diff options
author | Justin Luth <justin_luth@sil.org> | 2021-10-22 21:11:59 +0200 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2021-10-23 14:51:23 +0200 |
commit | 3e1d316734354c6b49696c8904e0fc431cfb5143 (patch) | |
tree | f5b92a0b43b2f84a46164372e3c0313a0fdf0279 /sw | |
parent | 6dd75b17e084b55a8104099945bc39ef4663585b (diff) |
tdf#131025 ODF import: recognize SV_COUNTRY_LANGUAGE_OFFSET
File import was making an exception for "float value 0"
if the accompanying text had no resemblance to the value 0,
but that only applied to GENERAL number format.
It should apply to any language's default number format.
REGRESSION warning: as we can see, this has been handled
inconsistently in the past. But from the coding exception to overcome
losing text to a zero (and the huge number of duplicate bugs)
the best choice seems to be ignore the spec that says that
a number value overrides the text value - at least in
the case where the number value is zero.
Change-Id: I701e72c6a5dad42c7799ab501255a4859adf61d4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124080
Tested-by: Jenkins
Reviewed-by: Justin Luth <justin_luth@sil.org>
Reviewed-by: Eike Rathke <erack@redhat.com>
Diffstat (limited to 'sw')
-rw-r--r-- | sw/qa/extras/odfexport/data/tdf131025_noZerosInTable.odt | bin | 0 -> 11544 bytes | |||
-rw-r--r-- | sw/qa/extras/odfexport/odfexport2.cxx | 12 | ||||
-rw-r--r-- | sw/source/filter/xml/xmltbli.cxx | 2 |
3 files changed, 13 insertions, 1 deletions
diff --git a/sw/qa/extras/odfexport/data/tdf131025_noZerosInTable.odt b/sw/qa/extras/odfexport/data/tdf131025_noZerosInTable.odt Binary files differnew file mode 100644 index 000000000000..f2bffb050ac4 --- /dev/null +++ b/sw/qa/extras/odfexport/data/tdf131025_noZerosInTable.odt diff --git a/sw/qa/extras/odfexport/odfexport2.cxx b/sw/qa/extras/odfexport/odfexport2.cxx index 28d0cd873944..c9eb4cdd18aa 100644 --- a/sw/qa/extras/odfexport/odfexport2.cxx +++ b/sw/qa/extras/odfexport/odfexport2.cxx @@ -8,7 +8,9 @@ */ #include <swmodeltestbase.hxx> +#include <unotxdoc.hxx> +#include <com/sun/star/text/XTextTable.hpp> class Test : public SwModelTestBase { @@ -52,6 +54,16 @@ DECLARE_ODFEXPORT_TEST(testTdf104254_noHeaderWrapping, "tdf104254_noHeaderWrappi CPPUNIT_ASSERT_MESSAGE("Paragraph should fit on a single line", nParaHeight < 600); } +DECLARE_ODFEXPORT_TEST(testTdf131025_noZerosInTable, "tdf131025_noZerosInTable.odt") +{ + uno::Reference<text::XTextTablesSupplier> xSupplier(mxComponent, uno::UNO_QUERY); + uno::Reference<container::XNameAccess> xTables = xSupplier->getTextTables(); + uno::Reference<text::XTextTable> xTable(xTables->getByName("Table1"), uno::UNO_QUERY); + + uno::Reference<text::XTextRange> xCell(xTable->getCellByName("C3"), uno::UNO_QUERY); + CPPUNIT_ASSERT_EQUAL(OUString("5 gp"), xCell->getString()); +} + DECLARE_ODFEXPORT_TEST(testTdf143793_noBodyWrapping, "tdf143793_noBodyWrapping.odt") { CPPUNIT_ASSERT_EQUAL(2, getShapes()); diff --git a/sw/source/filter/xml/xmltbli.cxx b/sw/source/filter/xml/xmltbli.cxx index b7efd43a3dea..2b02a1360a94 100644 --- a/sw/source/filter/xml/xmltbli.cxx +++ b/sw/source/filter/xml/xmltbli.cxx @@ -1916,7 +1916,7 @@ SwTableBox *SwXMLTableContext::MakeTableBox( { const SwTableBoxNumFormat* pNumFormat = static_cast<const SwTableBoxNumFormat*>( pItem ); - if( ( pNumFormat != nullptr ) && ( pNumFormat->GetValue() == 0 ) ) + if (pNumFormat && (pNumFormat->GetValue() % SV_COUNTRY_LANGUAGE_OFFSET) == 0) { // only one text node? SwNodeIndex aNodeIndex( *(pCell->GetStartNode()), 1 ); |