summaryrefslogtreecommitdiff
path: root/filter
diff options
context:
space:
mode:
authorVinaya Mandke <vinaya.mandke@synerzip.com>2014-01-08 18:54:51 +0530
committerMiklos Vajna <vmiklos@collabora.co.uk>2014-01-13 17:48:18 +0100
commitc4ff46485f0461de6a2804ae859dbbc81b6af105 (patch)
treeb314c4ec6ea2da7ddf85c5f091a7755e5c9d9a83 /filter
parent4a68f12691d4fd77652d824ccb4147e8ce643182 (diff)
fdo#65833 Fix to preserve VML Canvas Information
Grab-bagged the "editas" attribute of v:group and added UT for the same Please verify this fix on MS Office 2007 as it renders the mc:Fallback VML part Conflicts: sw/qa/extras/ooxmlexport/ooxmlexport.cxx Reviewed on: https://gerrit.libreoffice.org/7335 Change-Id: I4e4456997621089967514009005ee775b71d6d69
Diffstat (limited to 'filter')
-rw-r--r--filter/source/msfilter/escherex.cxx5
-rw-r--r--filter/source/msfilter/eschesdo.cxx24
2 files changed, 29 insertions, 0 deletions
diff --git a/filter/source/msfilter/escherex.cxx b/filter/source/msfilter/escherex.cxx
index 782dcfcecaaf..129831e396f2 100644
--- a/filter/source/msfilter/escherex.cxx
+++ b/filter/source/msfilter/escherex.cxx
@@ -5081,6 +5081,11 @@ void EscherEx::ReplacePersistOffset( sal_uInt32 nKey, sal_uInt32 nOffset )
PtReplace( ESCHER_Persist_PrivateEntry | nKey, nOffset );
}
+void EscherEx::SetEditAs( OUString rEditAs )
+{
+ mEditAs = rEditAs;
+}
+
sal_uInt32 EscherEx::GetPersistOffset( sal_uInt32 nKey )
{
return PtGetOffsetByID( ESCHER_Persist_PrivateEntry | nKey );
diff --git a/filter/source/msfilter/eschesdo.cxx b/filter/source/msfilter/eschesdo.cxx
index 16311df438e3..fa697ee0beae 100644
--- a/filter/source/msfilter/eschesdo.cxx
+++ b/filter/source/msfilter/eschesdo.cxx
@@ -191,6 +191,30 @@ sal_uInt32 ImplEESdrWriter::ImplWriteShape( ImplEESdrObject& rObj,
if( const SdrObject* pSdrObj = rObj.GetSdrObject() )
if (!pSdrObj->GetName().isEmpty())
aShapeName = pSdrObj->GetName();
+ uno::Reference< drawing::XShape> mXShape(rObj.GetShapeRef(), uno::UNO_QUERY);
+ if (mXShape.is())
+ {
+ uno::Reference<beans::XPropertySet> xPropertySet(mXShape, uno::UNO_QUERY);
+ if (xPropertySet.is())
+ {
+ uno::Sequence<beans::PropertyValue> aGrabBag;
+ uno::Reference< XPropertySetInfo > xPropInfo = xPropertySet->getPropertySetInfo();
+ if ( xPropInfo.is() && xPropInfo->hasPropertyByName( "InteropGrabBag" ) )
+ {
+ xPropertySet->getPropertyValue( "InteropGrabBag" ) >>= aGrabBag;
+ for (int i=0; i< aGrabBag.getLength(); i++)
+ {
+ if (aGrabBag[i].Name == "mso-edit-as")
+ {
+ OUString rEditAs;
+ aGrabBag[i].Value >>= rEditAs;
+ mpEscherEx->SetEditAs(rEditAs);
+ break;
+ }
+ }
+ }
+ }
+ }
Point aTextRefPoint;