summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2017-08-07 21:28:30 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2017-08-08 09:14:52 +0200
commita3c695c12386c2708a0c06ec0ccd42ee2b8aeb98 (patch)
treed15d4f7fd0176fa514e3863b73d05c9367b3142e
parent05aa784ed9891a1299f8c2328faee9c62050851a (diff)
tdf#110440 drawingML import: fix handling of group shape properties
The handler for nvGrpSpPr is "this class", not "no class". Change-Id: I7fc40681d77f94b7473d2f677d813d2ae246f6ac Reviewed-on: https://gerrit.libreoffice.org/40854 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
-rw-r--r--oox/source/drawingml/shapegroupcontext.cxx2
-rw-r--r--sc/qa/unit/data/xlsx/tdf110440.xlsxbin0 -> 11318 bytes
-rw-r--r--sc/qa/unit/subsequent_filters-test.cxx21
3 files changed, 22 insertions, 1 deletions
diff --git a/oox/source/drawingml/shapegroupcontext.cxx b/oox/source/drawingml/shapegroupcontext.cxx
index dae4ea67045a..7f10ec32a503 100644
--- a/oox/source/drawingml/shapegroupcontext.cxx
+++ b/oox/source/drawingml/shapegroupcontext.cxx
@@ -79,7 +79,7 @@ ContextHandlerRef ShapeGroupContext::onCreateContext( sal_Int32 aElementToken, c
case XML_grpSpPr:
return new ShapePropertiesContext( *this, *mpGroupShapePtr );
case XML_nvGrpSpPr:
- return nullptr;
+ return this;
case XML_spPr:
return new ShapePropertiesContext( *this, *mpGroupShapePtr );
/*
diff --git a/sc/qa/unit/data/xlsx/tdf110440.xlsx b/sc/qa/unit/data/xlsx/tdf110440.xlsx
new file mode 100644
index 000000000000..da849d0bd310
--- /dev/null
+++ b/sc/qa/unit/data/xlsx/tdf110440.xlsx
Binary files differ
diff --git a/sc/qa/unit/subsequent_filters-test.cxx b/sc/qa/unit/subsequent_filters-test.cxx
index 1e136675b2e5..1fdec5f26079 100644
--- a/sc/qa/unit/subsequent_filters-test.cxx
+++ b/sc/qa/unit/subsequent_filters-test.cxx
@@ -240,6 +240,7 @@ public:
void testTdf100458();
void testTdf100709XLSX();
void testTdf97598XLSX();
+ void testTdf110440XLSX();
void testPageScalingXLSX();
void testActiveXCheckboxXLSX();
@@ -367,6 +368,7 @@ public:
CPPUNIT_TEST(testTdf100458);
CPPUNIT_TEST(testTdf100709XLSX);
CPPUNIT_TEST(testTdf97598XLSX);
+ CPPUNIT_TEST(testTdf110440XLSX);
CPPUNIT_TEST(testPageScalingXLSX);
CPPUNIT_TEST(testActiveXCheckboxXLSX);
@@ -3790,6 +3792,25 @@ void ScFiltersTest::testColumnStyle2XLSX()
xDocSh->DoClose();
}
+void ScFiltersTest::testTdf110440XLSX()
+{
+ ScDocShellRef xDocSh = loadDoc("tdf110440.", FORMAT_XLSX);
+ CPPUNIT_ASSERT_MESSAGE("Failed to open doc", xDocSh.is());
+
+ uno::Reference<frame::XModel> xModel = xDocSh->GetModel();
+ uno::Reference<sheet::XSpreadsheetDocument> xDoc(xModel, uno::UNO_QUERY_THROW);
+ uno::Reference<container::XIndexAccess> xIA(xDoc->getSheets(), uno::UNO_QUERY_THROW);
+ uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(xIA->getByIndex(0), uno::UNO_QUERY_THROW);
+ xIA.set(xDrawPageSupplier->getDrawPage(), uno::UNO_QUERY_THROW);
+ uno::Reference<beans::XPropertySet> xShape(xIA->getByIndex(0), uno::UNO_QUERY_THROW);
+ bool bVisible = true;
+ xShape->getPropertyValue("Visible") >>= bVisible;
+ // This failed: group shape's hidden property was lost on import.
+ CPPUNIT_ASSERT(!bVisible);
+
+ xDocSh->DoClose();
+}
+
void ScFiltersTest::testBnc762542()
{
ScDocShellRef xDocSh = loadDoc("bnc762542.", FORMAT_XLSX);