summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTünde Tóth <tundeth@gmail.com>2020-02-20 14:39:11 +0100
committerXisco Faulí <xiscofauli@libreoffice.org>2020-03-25 16:02:15 +0100
commit730369b8670590cb9625691fa2c0008e904fb4e1 (patch)
tree8b26ac4d3ec61e838a9e2bfb86eccbe29a396be0
parent0185241456971f06a7795fb4f304317027f50db9 (diff)
tdf#123268 fix lost chart if all legend entries are hidden
See also commit 19b2ed4dee1ec33ad55473d43bfcd0bfa194cbee (related tdf#51671, add UI options for new "hide legend entry" feature) Change-Id: If20ab167d867d2845fa414ba0bbc490bed09f61c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89123 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org> (cherry picked from commit 300e65cc47f3d6ae1563350757dbfadc080d7452) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90387 Tested-by: Jenkins Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
-rw-r--r--chart2/source/view/main/VLegend.cxx2
-rw-r--r--sw/qa/extras/layout/data/tdf123268.odtbin0 -> 12629 bytes
-rw-r--r--sw/qa/extras/layout/layout.cxx18
3 files changed, 20 insertions, 0 deletions
diff --git a/chart2/source/view/main/VLegend.cxx b/chart2/source/view/main/VLegend.cxx
index df5ca49cea74..8272696ea102 100644
--- a/chart2/source/view/main/VLegend.cxx
+++ b/chart2/source/view/main/VLegend.cxx
@@ -951,6 +951,8 @@ void VLegend::createShapes(
std::vector<ViewLegendEntry> aNewEntries = pLegendEntryProvider->createLegendEntries(
aMaxSymbolExtent, eExpansion, xLegendProp,
xLegendContainer, m_xShapeFactory, m_xContext, mrModel);
+ if (aNewEntries.size() == 0)
+ return;
aViewEntries.insert( aViewEntries.end(), aNewEntries.begin(), aNewEntries.end() );
}
}
diff --git a/sw/qa/extras/layout/data/tdf123268.odt b/sw/qa/extras/layout/data/tdf123268.odt
new file mode 100644
index 000000000000..e68c8139f52c
--- /dev/null
+++ b/sw/qa/extras/layout/data/tdf123268.odt
Binary files differ
diff --git a/sw/qa/extras/layout/layout.cxx b/sw/qa/extras/layout/layout.cxx
index 7752f2e53e1d..58b98a602e1a 100644
--- a/sw/qa/extras/layout/layout.cxx
+++ b/sw/qa/extras/layout/layout.cxx
@@ -2331,6 +2331,24 @@ CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testTdf75659)
// These failed, if the legend names are empty strings.
}
+CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testTdf123268)
+{
+ SwDoc* pDoc = createDoc("tdf123268.odt");
+ 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);
+ // Without the accompanying fix in place, this test would have failed with:
+ // - Expected: 41
+ // - Actual : 0
+ // i.e. the chart lost.
+ assertXPath(pXmlDoc, "/metafile/push[1]/push[1]/push[1]/push[3]/push[1]/push[1]/push[1]/push",
+ 41);
+}
+
CPPUNIT_TEST_FIXTURE(SwLayoutWriter, testTdf115630)
{
SwDoc* pDoc = createDoc("tdf115630.docx");