summaryrefslogtreecommitdiff
path: root/oox
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2015-11-02 09:12:43 +0100
committerAndras Timar <andras.timar@collabora.com>2015-11-16 18:50:11 +0100
commit262581ec118ac20e42661ea298ade4f2fdf27ff3 (patch)
treec1817594ac6742a40d005252346de9245ae5a114 /oox
parentf5d44fe9297748a449e3c11a5e9cd507cc20b4f5 (diff)
tdf#89088 DOCX import: fix missing text due to throwing ShapeContextHandler
Regression from commit 866a4436d3cfac1ff42d7996250bf96fb703aeaa (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 (cherry picked from commit 4cae3689d4d78fabe6529c9df03c438b1e9d1611) Reviewed-on: https://gerrit.libreoffice.org/19905 Reviewed-by: Michael Stahl <mstahl@redhat.com> Tested-by: Michael Stahl <mstahl@redhat.com> (cherry picked from commit 2c43db1ecfd9621f4eb6775a4f682d00987692f4)
Diffstat (limited to 'oox')
-rw-r--r--oox/source/shape/ShapeContextHandler.cxx2
1 files changed, 1 insertions, 1 deletions
diff --git a/oox/source/shape/ShapeContextHandler.cxx b/oox/source/shape/ShapeContextHandler.cxx
index 39cc970f0be1..b69fc8c851cd 100644
--- a/oox/source/shape/ShapeContextHandler.cxx
+++ b/oox/source/shape/ShapeContextHandler.cxx
@@ -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();