include/oox/helper/modelobjecthelper.hxx | 4 ++++ oox/source/drawingml/shape.cxx | 7 +++++++ oox/source/helper/modelobjecthelper.cxx | 15 +++++++++++++++ sw/qa/extras/ooxmlexport/ooxmlexport.cxx | 2 +- 4 files changed, 27 insertions(+), 1 deletion(-)
New commits: commit f1d1c9a6529d575ba3f65872e5ae9e7ac381c6b7 Author: Muthu Subramanian <sumu...@collabora.com> Date: Thu Mar 6 21:21:43 2014 +0530 n#821567: Fix TextFrame background import for sw. TextFrame in sw unfortunately doesn't seem to support nametable! diff --git a/include/oox/helper/modelobjecthelper.hxx b/include/oox/helper/modelobjecthelper.hxx index e57e014..2ced973 100644 --- a/include/oox/helper/modelobjecthelper.hxx +++ b/include/oox/helper/modelobjecthelper.hxx @@ -48,6 +48,8 @@ public: /** Returns true, if the object with the passed name exists in the container. */ bool hasObject( const OUString& rObjName ) const; + ::com::sun::star::uno::Any getObject( const OUString& rObjName ) const; + /** Inserts the passed object into the container, returns its final name. */ OUString insertObject( const OUString& rObjName, @@ -104,6 +106,8 @@ public: an internal constant name with a new unused index appended. */ OUString insertFillBitmapUrl( const OUString& rGraphicUrl ); + OUString getFillBitmapUrl( const OUString& rGraphicName ); + private: ObjectContainer maMarkerContainer; ///< Contains all named line markers (line end polygons). ObjectContainer maDashContainer; ///< Contains all named line dsahes. diff --git a/oox/source/drawingml/shape.cxx b/oox/source/drawingml/shape.cxx index 883d76f..7d3b0dc 100644 --- a/oox/source/drawingml/shape.cxx +++ b/oox/source/drawingml/shape.cxx @@ -35,6 +35,7 @@ #include "oox/core/xmlfilterbase.hxx" #include "oox/helper/graphichelper.hxx" #include "oox/helper/propertyset.hxx" +#include "oox/helper/modelobjecthelper.hxx" #include <tools/gen.hxx> #include <tools/mapunit.hxx> @@ -691,6 +692,12 @@ Reference< XShape > Shape::createAndInsert( aShapeProps.setProperty(PROP_BackGraphicURL, aShapeProps.getProperty(PROP_FillBitmapURL)); aShapeProps.erase(PROP_FillBitmapURL); } + if (aShapeProps.hasProperty(PROP_FillBitmapName)) + { + uno::Any aAny = aShapeProps[PROP_FillBitmapName]; + aShapeProps.setProperty(PROP_BackGraphicURL, rFilterBase.getModelObjectHelper().getFillBitmapUrl( aAny.get<OUString>() )); + // aShapeProps.erase(PROP_FillBitmapName); // Maybe, leave the name as well + } // And no LineColor property; individual borders can have colors if (aShapeProps.hasProperty(PROP_LineColor)) { diff --git a/oox/source/helper/modelobjecthelper.cxx b/oox/source/helper/modelobjecthelper.cxx index 5a966fe..1ec45af 100644 --- a/oox/source/helper/modelobjecthelper.cxx +++ b/oox/source/helper/modelobjecthelper.cxx @@ -56,6 +56,13 @@ bool ObjectContainer::hasObject( const OUString& rObjName ) const return mxContainer.is() && mxContainer->hasByName( rObjName ); } +Any ObjectContainer::getObject( const OUString& rObjName ) const +{ + if( hasObject( rObjName ) ) + return mxContainer->getByName( rObjName ); + return Any(); +} + OUString ObjectContainer::insertObject( const OUString& rObjName, const Any& rObj, bool bInsertByUnusedName ) { createContainer(); @@ -132,6 +139,14 @@ OUString ModelObjectHelper::insertFillBitmapUrl( const OUString& rGraphicUrl ) return OUString(); } +OUString ModelObjectHelper::getFillBitmapUrl( const OUString &rGraphicName ) +{ + Any aAny = maBitmapUrlContainer.getObject( rGraphicName ); + if( aAny.hasValue() ) + return aAny.get<OUString>(); + return OUString(); +} + } // namespace oox commit ad737e7ff4bf12d8b66ceb2001aebf54ff5badba Author: Muthu Subramanian <sumu...@collabora.com> Date: Thu Mar 6 18:16:46 2014 +0530 Re-enable the unit test (BackGraphicURL). diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx index 28a8bfd..c51b58a 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx @@ -2116,7 +2116,7 @@ DECLARE_OOXMLEXPORT_TEST(testTextBoxPictureFill, "textbox_picturefill.docx") { uno::Reference<beans::XPropertySet> xFrame(getShape(1), uno::UNO_QUERY); CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_BITMAP, getProperty<drawing::FillStyle>(xFrame, "FillStyle")); - //CPPUNIT_ASSERT(!(getProperty<OUString>(xFrame,"BackGraphicURL")).isEmpty()); + CPPUNIT_ASSERT(!(getProperty<OUString>(xFrame,"BackGraphicURL")).isEmpty()); } DECLARE_OOXMLEXPORT_TEST(testFDO73034, "FDO73034.docx") _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits