sc/qa/unit/data/ods/fdo62729.ods |binary sc/qa/unit/subsequent_export-test.cxx | 30 ++++++++++++++++++++++++++++++ sc/source/filter/xml/xmlexprt.cxx | 1 + 3 files changed, 31 insertions(+)
New commits: commit f5073172ace5722ad1bc9ee59d39e84077bf9846 Author: Noel Power <noel.po...@suse.com> Date: Mon Jul 29 10:00:15 2013 +0100 fix for fdo#62729 reference pos can point to non existing table there is an existing function ( called at least from uno names api also ) that updates the tab pos, calling that seems to fix this problem (cherry picked from commit b5fffdb8d0438a2fe933a5742d41fe50a14b71f3) with squash of unit test for fdo#62729 ( with tweak for 4.0 ) (cherry picked from commit 7b3d8e0a7dcf6ae05e1de5c33ed382822cf52cce) b9be75459aa49b8bab968dedae9e0760ccef9a26 Reviewed-on: https://gerrit.libreoffice.org/5124 Reviewed-by: Eike Rathke <er...@redhat.com> Tested-by: Eike Rathke <er...@redhat.com> (cherry picked from commit cb626d01772985bd0eed0f5963475d0e801379c8) Conflicts: sc/source/filter/xml/xmlexprt.cxx Change-Id: I6f6f31895eda9c338eeabd3f3285bf2c9eb23b7e Reviewed-on: https://gerrit.libreoffice.org/5164 Reviewed-by: Petr Mladek <pmla...@suse.cz> Tested-by: Petr Mladek <pmla...@suse.cz> diff --git a/sc/qa/unit/data/ods/fdo62729.ods b/sc/qa/unit/data/ods/fdo62729.ods new file mode 100644 index 0000000..00b5079 Binary files /dev/null and b/sc/qa/unit/data/ods/fdo62729.ods differ diff --git a/sc/qa/unit/subsequent_export-test.cxx b/sc/qa/unit/subsequent_export-test.cxx index 844020d..fe7e963 100644 --- a/sc/qa/unit/subsequent_export-test.cxx +++ b/sc/qa/unit/subsequent_export-test.cxx @@ -78,6 +78,7 @@ public: void testPasswordExport(); void testConditionalFormatExportXLSX(); void testMiscRowHeightExport(); + void testNamedRangeBugfdo62729(); CPPUNIT_TEST_SUITE(ScExportTest); CPPUNIT_TEST(test); @@ -86,6 +87,7 @@ public: #endif CPPUNIT_TEST(testConditionalFormatExportXLSX); CPPUNIT_TEST(testMiscRowHeightExport); + CPPUNIT_TEST(testNamedRangeBugfdo62729); CPPUNIT_TEST_SUITE_END(); private: @@ -371,6 +373,34 @@ void ScExportTest::testMiscRowHeightExport() } } + +void ScExportTest::testNamedRangeBugfdo62729() +{ + ScDocShellRef xShell = loadDocument("fdo62729.", ODS); + CPPUNIT_ASSERT(xShell.Is()); + ScDocument* pDoc = xShell->GetDocument(); + CPPUNIT_ASSERT(pDoc); + + ScRangeName* pNames = pDoc->GetRangeName(); + //should be just a single named range + CPPUNIT_ASSERT(pNames->size() == 1 ); + pDoc->DeleteTab(0); + //should be still a single named range + CPPUNIT_ASSERT(pNames->size() == 1 ); + ScDocShellRef xDocSh = saveAndReload(xShell, ODS); + xShell->DoClose(); + + CPPUNIT_ASSERT(xDocSh.Is()); + pDoc = xDocSh->GetDocument(); + CPPUNIT_ASSERT(pDoc); + + pNames = pDoc->GetRangeName(); + //after reload should still have a named range + CPPUNIT_ASSERT(pNames->size() == 1 ); + + xDocSh->DoClose(); +} + ScExportTest::ScExportTest() : m_aBaseString(RTL_CONSTASCII_USTRINGPARAM("/sc/qa/unit/data")) { diff --git a/sc/source/filter/xml/xmlexprt.cxx b/sc/source/filter/xml/xmlexprt.cxx index 3882e2f..b5159f3 100644 --- a/sc/source/filter/xml/xmlexprt.cxx +++ b/sc/source/filter/xml/xmlexprt.cxx @@ -3733,6 +3733,7 @@ void ScXMLExport::WriteNamedRange(ScRangeName* pRangeName) AddAttribute(sAttrName, it->second->GetName()); rtl::OUString sBaseCellAddress; + it->second->ValidateTabRefs(); ScRangeStringConverter::GetStringFromAddress( sBaseCellAddress, it->second->GetPos(), pDoc, FormulaGrammar::CONV_OOO, ' ', false, SCA_ABS_3D); AddAttribute(XML_NAMESPACE_TABLE, XML_BASE_CELL_ADDRESS, sBaseCellAddress); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits