diff options
-rw-r--r-- | svx/qa/unit/data/theme.pptx | bin | 27231 -> 28788 bytes | |||
-rw-r--r-- | svx/qa/unit/styles.cxx | 1 | ||||
-rw-r--r-- | svx/source/styles/ColorSets.cxx | 6 |
3 files changed, 7 insertions, 0 deletions
diff --git a/svx/qa/unit/data/theme.pptx b/svx/qa/unit/data/theme.pptx Binary files differindex 652a9fc29e06..74397b3ea67a 100644 --- a/svx/qa/unit/data/theme.pptx +++ b/svx/qa/unit/data/theme.pptx diff --git a/svx/qa/unit/styles.cxx b/svx/qa/unit/styles.cxx index 1e7151edf359..565d981e6e2e 100644 --- a/svx/qa/unit/styles.cxx +++ b/svx/qa/unit/styles.cxx @@ -68,6 +68,7 @@ CPPUNIT_TEST_FIXTURE(Test, testThemeChange) OUString aURL = m_directories.getURLFromSrc(DATA_DIRECTORY) + "theme.pptx"; getComponent() = loadFromDesktop(aURL); uno::Reference<drawing::XDrawPagesSupplier> xDrawPagesSupplier(getComponent(), uno::UNO_QUERY); + // The draw page also contains a group shape to make sure we don't crash on group shapes. uno::Reference<drawing::XMasterPageTarget> xDrawPage( xDrawPagesSupplier->getDrawPages()->getByIndex(0), uno::UNO_QUERY); uno::Reference<drawing::XShapes> xDrawPageShapes(xDrawPage, uno::UNO_QUERY); diff --git a/svx/source/styles/ColorSets.cxx b/svx/source/styles/ColorSets.cxx index c77e6ccf2d76..97c79b58bcc6 100644 --- a/svx/source/styles/ColorSets.cxx +++ b/svx/source/styles/ColorSets.cxx @@ -74,6 +74,12 @@ void UpdateSdrObject(svx::Theme* pTheme, SdrObject* pObject) } uno::Reference<text::XTextRange> xShape(pObject->getUnoShape(), uno::UNO_QUERY); + if (!xShape.is()) + { + // E.g. group shapes have no text. + return; + } + uno::Reference<container::XEnumerationAccess> xText(xShape->getText(), uno::UNO_QUERY); uno::Reference<container::XEnumeration> xParagraphs = xText->createEnumeration(); while (xParagraphs->hasMoreElements()) |