chart2/source/tools/UncachedDataSequence.cxx | 13 +++++++++++-- sw/qa/extras/layout/data/tdf75659.docx |binary sw/qa/extras/layout/layout.cxx | 25 +++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 2 deletions(-)
New commits: commit 0869c65a7e937d71bd623ed498a3a47cebe0a66d Author: Balazs Varga <balazs.varga...@gmail.com> AuthorDate: Tue Jun 11 13:26:50 2019 +0200 Commit: Xisco Faulí <xiscofa...@libreoffice.org> CommitDate: Tue Jun 18 14:07:55 2019 +0200 tdf#75659 Chart: fix empty legend at not available legend names by using localized versions of "Unnamed Series 1" etc. Note: OOXML files don't contain the default or fallback legend names used by MSO in this case, so the original empty string replacement of the missing names resulted bad chart import. Change-Id: I2897c70d9003e1ab3241dd569de0d79821d896b1 Reviewed-on: https://gerrit.libreoffice.org/73817 Reviewed-by: László Németh <nem...@numbertext.org> Tested-by: László Németh <nem...@numbertext.org> (cherry picked from commit 007bf60611e2ba5a65ffabe80dbb0e279fcb9f26) Reviewed-on: https://gerrit.libreoffice.org/74252 Tested-by: Jenkins Reviewed-by: Balazs Varga <balazs.varga...@gmail.com> Reviewed-by: Xisco Faulí <xiscofa...@libreoffice.org> diff --git a/chart2/source/tools/UncachedDataSequence.cxx b/chart2/source/tools/UncachedDataSequence.cxx index b9721490b7e7..ca3a9280c452 100644 --- a/chart2/source/tools/UncachedDataSequence.cxx +++ b/chart2/source/tools/UncachedDataSequence.cxx @@ -23,6 +23,8 @@ #include <cppuhelper/supportsservice.hxx> #include <algorithm> +#include <strings.hrc> +#include <ResId.hxx> #include <com/sun/star/chart2/XInternalDataProvider.hpp> #include <tools/diagnose_ex.h> @@ -209,8 +211,15 @@ OUString SAL_CALL UncachedDataSequence::getSourceRangeRepresentation() Sequence< OUString > SAL_CALL UncachedDataSequence::generateLabel( chart2::data::LabelOrigin ) { - // auto-generated label is an empty string - return Sequence< OUString >(1); + // auto-generated label + sal_Int32 nSeries = m_aSourceRepresentation.toInt32() + 1; + OUString aResString(::chart::SchResId(STR_DATA_UNNAMED_SERIES_WITH_INDEX)); + const OUString aReplacementStr("%NUMBER"); + sal_Int32 nIndex = aResString.indexOf(aReplacementStr); + OUString aName; + if( nIndex != -1 ) + aName = aResString.replaceAt(nIndex, aReplacementStr.getLength(), OUString::number(nSeries)); + return Sequence< OUString >( &aName, 1 ); } ::sal_Int32 SAL_CALL UncachedDataSequence::getNumberFormatKeyByIndex( ::sal_Int32 ) diff --git a/sw/qa/extras/layout/data/tdf75659.docx b/sw/qa/extras/layout/data/tdf75659.docx new file mode 100644 index 000000000000..a3cde330f8f5 Binary files /dev/null and b/sw/qa/extras/layout/data/tdf75659.docx differ diff --git a/sw/qa/extras/layout/layout.cxx b/sw/qa/extras/layout/layout.cxx index 1175d25ef573..325c0ef49e64 100644 --- a/sw/qa/extras/layout/layout.cxx +++ b/sw/qa/extras/layout/layout.cxx @@ -2327,6 +2327,31 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testTdf125335) // This failed, if the legend first label is not "Data3". The legend position is bottom. } +CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testTdf75659) +{ + SwDoc* pDoc = createDoc("tdf75659.docx"); + SwDocShell* pShell = pDoc->GetDocShell(); + + // Dump the rendering of the first page as an XML file. + std::shared_ptr<GDIMetaFile> xMetaFile = pShell->GetPreviewMetaFile(); + MetafileXmlDump dumper; + xmlDocPtr pXmlDoc = dumpAndParse(dumper, *xMetaFile); + CPPUNIT_ASSERT(pXmlDoc); + + assertXPathContent(pXmlDoc, + "/metafile/push[1]/push[1]/push[1]/push[4]/push[1]/textarray[17]/text", + "Unnamed Series 1"); + + assertXPathContent(pXmlDoc, + "/metafile/push[1]/push[1]/push[1]/push[4]/push[1]/textarray[18]/text", + "Unnamed Series 2"); + + assertXPathContent(pXmlDoc, + "/metafile/push[1]/push[1]/push[1]/push[4]/push[1]/textarray[19]/text", + "Unnamed Series 3"); + // These failed, if the legend names are empty strings. +} + CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testTdf108021) { SwDoc* pDoc = createDoc("tdf108021.odt"); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits