[Libreoffice-commits] core.git: filter/source include/svx sc/source
Andre Fischer
af at apache.org
Thu May 23 08:48:27 PDT 2013
filter/source/msfilter/msdffimp.cxx | 7 +++++++
include/svx/msdffdef.hxx | 3 +++
sc/source/filter/excel/xeescher.cxx | 7 +++++++
sc/source/filter/excel/xiescher.cxx | 15 +++++++++++++++
4 files changed, 32 insertions(+)
New commits:
commit aab697c7b64e79dd9102395ae1a8fe9025995a73
Author: Andre Fischer <af at apache.org>
Date: Thu Jun 21 10:29:05 2012 +0000
Resolves: #i119903# Alternative text for form control t import/export
Patch by: Jianyuan Li
review by: Andre Fischer
(cherry picked from commit 0ecc381c85bd4192add692d26fc60ba8e6341fd9)
Conflicts:
filter/source/msfilter/msdffimp.cxx
sc/source/filter/excel/xiescher.cxx
sc/source/filter/inc/xiescher.hxx
svx/inc/svx/msdffdef.hxx
Change-Id: Iac7282e50fd86244381ca174ba3f906aab89c7d9
diff --git a/filter/source/msfilter/msdffimp.cxx b/filter/source/msfilter/msdffimp.cxx
index 25942ee..637e2ab3 100644
--- a/filter/source/msfilter/msdffimp.cxx
+++ b/filter/source/msfilter/msdffimp.cxx
@@ -4705,6 +4705,13 @@ SdrObject* SvxMSDffManager::ImportShape( const DffRecordHeader& rHd, SvStream& r
pRet->SetPrintable( ( nGroupProperties & 1 ) != 0 );
}
+ //Import alt text as description
+ if ( pRet && SeekToContent( DFF_Prop_wzDescription, rSt ) )
+ {
+ OUString aAltText = MSDFFReadZString(rSt, GetPropertyValue(DFF_Prop_wzDescription), true);
+ pRet->SetDescription( aAltText );
+ }
+
return pRet;
}
diff --git a/include/svx/msdffdef.hxx b/include/svx/msdffdef.hxx
index 3ff5a3d..007f273 100644
--- a/include/svx/msdffdef.hxx
+++ b/include/svx/msdffdef.hxx
@@ -1179,6 +1179,9 @@ typedef enum {
mso_colorBParamShift = 16 // To extract the parameter value
} MSO_SYSCOLORINDEX;
+//ALT_TXT_MSINTEROP
+#define MSPROP_DESCRIPTION_MAX_LEN 4096
+
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/filter/excel/xeescher.cxx b/sc/source/filter/excel/xeescher.cxx
index b391a07..6acbf4d 100644
--- a/sc/source/filter/excel/xeescher.cxx
+++ b/sc/source/filter/excel/xeescher.cxx
@@ -686,6 +686,13 @@ XclExpTbxControlObj::XclExpTbxControlObj( XclExpObjectManager& rRoot, Reference<
if( aCtrlProp.GetProperty( aCtrlName, "Name" ) && !aCtrlName.isEmpty() )
aPropOpt.AddOpt( ESCHER_Prop_wzName, aCtrlName );
+ //Export description as alt text
+ if( SdrObject* pSdrObj = SdrObject::getSdrObjectFromXShape( xShape ) )
+ {
+ String aAltTxt( pSdrObj->GetDescription(), 0, MSPROP_DESCRIPTION_MAX_LEN );
+ aPropOpt.AddOpt( ESCHER_Prop_wzDescription, aAltTxt );
+ }
+
// write DFF property set to stream
aPropOpt.Commit( mrEscherEx.GetStream() );
diff --git a/sc/source/filter/excel/xiescher.cxx b/sc/source/filter/excel/xiescher.cxx
index 7acd77e..c358c1f 100644
--- a/sc/source/filter/excel/xiescher.cxx
+++ b/sc/source/filter/excel/xiescher.cxx
@@ -107,6 +107,7 @@
#include <comphelper/mediadescriptor.hxx>
#include <sfx2/docfile.hxx>
+using ::com::sun::star::uno::makeAny;
using ::com::sun::star::uno::Any;
using ::com::sun::star::uno::Exception;
using ::com::sun::star::uno::Reference;
@@ -1997,6 +1998,20 @@ void XclImpTbxObjBase::ConvertLabel( ScfPropertySet& rPropSet ) const
aLabel.Insert( '~', nPos );
}
rPropSet.SetStringProperty( "Label", aLabel );
+
+ //Excel Alt text <==> Aoo description
+ //For TBX control, if user does not operate alt text, alt text will be set label text as default value in Excel.
+ //In this case, DFF_Prop_wzDescription will not be set in excel file.
+ //So In the end of SvxMSDffManager::ImportShape, description will not be set. But actually in excel,
+ //the alt text is the label value. So here set description as label text first which is called before ImportShape.
+ Reference< ::com::sun::star::beans::XPropertySet > xPropset( mxShape, UNO_QUERY );
+ try{
+ if(xPropset.is())
+ xPropset->setPropertyValue( "Description", makeAny(::rtl::OUString(aLabel)) );
+ }catch( ... )
+ {
+ OSL_TRACE( " Can't set a default text for TBX Control ");
+ }
}
ConvertFont( rPropSet );
}
More information about the Libreoffice-commits
mailing list