oox/source/shape/ShapeContextHandler.cxx |   10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

New commits:
commit 866a4436d3cfac1ff42d7996250bf96fb703aeaa
Author: Miklos Vajna <vmik...@collabora.co.uk>
Date:   Wed Jun 4 14:18:33 2014 +0200

    oox: handle textboxes in ShapeContextHandler::endFastElement()
    
    DOCX shape import normally works by oox creating the shape, then
    writerfilter handling the shape text. For drawingML shapes, having shape
    text, this a bit more complicated, as there are shape properties after
    the shape text as well.
    
    ShapeContextHandler::endFastElement() assumed that shape text is only
    possible on css.text.TextFrame shapes: also handle shapes having a
    TextBox as well.
    
    sw/qa/extras/ooxmlimport/data/mce-nested.docx is a reproducer for this
    problem (group shape missing), when TextBoxes are enabled by default in
    oox.
    
    Change-Id: I7a412b31965cf363da0b0c7fcc732741f2037542

diff --git a/oox/source/shape/ShapeContextHandler.cxx 
b/oox/source/shape/ShapeContextHandler.cxx
index 34a84b4..f180f18 100644
--- a/oox/source/shape/ShapeContextHandler.cxx
+++ b/oox/source/shape/ShapeContextHandler.cxx
@@ -331,7 +331,15 @@ void SAL_CALL 
ShapeContextHandler::endFastElement(::sal_Int32 Element)
     if (Element == (NMSP_wps | XML_wsp))
     {
         uno::Reference<lang::XServiceInfo> xServiceInfo(mxSavedShape, 
uno::UNO_QUERY);
-        if (xServiceInfo.is() && 
xServiceInfo->supportsService("com.sun.star.text.TextFrame"))
+        bool bTextFrame = xServiceInfo.is() && 
xServiceInfo->supportsService("com.sun.star.text.TextFrame");
+        bool bTextBox = false;
+        if (!bTextFrame)
+        {
+            uno::Reference<beans::XPropertySet> xPropertySet(mxSavedShape, 
uno::UNO_QUERY);
+            if (xPropertySet.is())
+                bTextBox = 
xPropertySet->getPropertyValue("TextBox").get<bool>();
+        }
+        if (bTextFrame || bTextBox)
             mxWpsContext.clear();
         mxSavedShape.clear();
     }
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to