Kaydet (Commit) 4cae3689 authored tarafından Miklos Vajna's avatar Miklos Vajna

tdf#89088 DOCX import: fix missing text due to throwing ShapeContextHandler

Regression from commit 866a4436 (oox:
handle textboxes in ShapeContextHandler::endFastElement(), 2014-06-04),
the problem was that code in ShapeContextHandler::endFastElement()
assumed that all the XShape implementation it may see provides a TextBox
UNO property (which is specific to Writer) of type bool, but this is not
true.

Fix the problem by assuming false in case it has an other type.

Testcase can be a simple "does it load" one, as in the meantime
exceptions such as trying to read a bool from an uno::Any make the DOCX
XFilter::filter() implementation return false, unlike in the originally
reported LibreOffice 4.4 version that just silently discarded the
remaining content of the document.

Change-Id: I81781a7ec28d085ceee50d386b8eda023f83c29f
üst a365734f
......@@ -356,7 +356,7 @@ void SAL_CALL ShapeContextHandler::endFastElement(::sal_Int32 Element)
{
uno::Reference<beans::XPropertySet> xPropertySet(mxSavedShape, uno::UNO_QUERY);
if (xPropertySet.is())
bTextBox = xPropertySet->getPropertyValue("TextBox").get<bool>();
xPropertySet->getPropertyValue("TextBox") >>= bTextBox;
}
if (bTextFrame || bTextBox)
mxWpsContext.clear();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment