diff options
author | Serge Krot <Serge.Krot@cib.de> | 2020-05-13 22:52:52 +0200 |
---|---|---|
committer | Thorsten Behrens <Thorsten.Behrens@CIB.de> | 2020-05-26 00:20:54 +0200 |
commit | fd238380ae7820f12ac1f7c52d0f7180a93f3ba3 (patch) | |
tree | 45ab7a3059654e33707af0af7aa9c0dee069d74e /filter | |
parent | 51404171449eadcb69057ff03cbb7bdb0117910b (diff) |
tdf#106181 XLSX export: output form controls
Prepared general algorithm to ouput form controls into XLSX.
For now only CHECKBOX is supported with a possibility to
link withem to any worksheet/cell.
Change-Id: Ide8739d81ffb755aeae074c4ebecf24251383e34
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94161
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Diffstat (limited to 'filter')
-rw-r--r-- | filter/source/msfilter/eschesdo.cxx | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/filter/source/msfilter/eschesdo.cxx b/filter/source/msfilter/eschesdo.cxx index 22f47daa15af..efe3c908b6b4 100644 --- a/filter/source/msfilter/eschesdo.cxx +++ b/filter/source/msfilter/eschesdo.cxx @@ -401,11 +401,16 @@ sal_uInt32 ImplEESdrWriter::ImplWriteShape( ImplEESdrObject& rObj, const Reference< XPropertySet > xPropSet = rObj.mXPropSet; const Reference<XPropertySetInfo> xPropInfo = xPropSet.is() ? xPropSet->getPropertySetInfo() : Reference<XPropertySetInfo>(); // This code is expected to be called only for DOCX format. - if (xPropInfo.is() && xPropInfo->hasPropertyByName("AnchorType") && bOOxmlExport) + if (xPropInfo.is()) { - text::TextContentAnchorType eAnchorType; - xPropSet->getPropertyValue("AnchorType") >>= eAnchorType; - bool bInline = eAnchorType == text::TextContentAnchorType_AS_CHARACTER; + bool bInline = false; + if (xPropInfo->hasPropertyByName("AnchorType")) + { + text::TextContentAnchorType eAnchorType; + xPropSet->getPropertyValue("AnchorType") >>= eAnchorType; + bInline = eAnchorType == text::TextContentAnchorType_AS_CHARACTER; + } + mpEscherEx->OpenContainer( ESCHER_SpContainer ); if(bInline) { @@ -812,20 +817,14 @@ void ImplEESdrWriter::ImplWritePage( { ImplInitPageValues(); - sal_uInt32 nLastPer = 0, nShapes = mXShapes->getCount(); + const sal_uInt32 nShapes = mXShapes->getCount(); for( sal_uInt32 n = 0; n < nShapes; ++n ) { - sal_uInt32 nPer = ( 5 * n ) / nShapes; - if( nPer != nLastPer ) - { - nLastPer = nPer; - } - ImplEESdrObject aObj( *this, *o3tl::doAccess<Reference<XShape>>( mXShapes->getByIndex( n )) ); if( aObj.IsValid() ) { - ImplWriteShape( aObj, rSolverContainer ); + ImplWriteShape( aObj, rSolverContainer, true ); } } } |