summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chart2/source/tools/UncachedDataSequence.cxx13
-rw-r--r--sw/qa/extras/layout/data/tdf75659.docxbin0 -> 25109 bytes
-rw-r--r--sw/qa/extras/layout/layout.cxx25
3 files changed, 36 insertions, 2 deletions
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
--- /dev/null
+++ b/sw/qa/extras/layout/data/tdf75659.docx
Binary files 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");