summaryrefslogtreecommitdiff
path: root/filter/source
diff options
context:
space:
mode:
Diffstat (limited to 'filter/source')
-rw-r--r--filter/source/msfilter/escherex.cxx13
-rw-r--r--filter/source/msfilter/msdffimp.cxx14
2 files changed, 20 insertions, 7 deletions
diff --git a/filter/source/msfilter/escherex.cxx b/filter/source/msfilter/escherex.cxx
index 6bd7638a8cc9..b5951b441f9c 100644
--- a/filter/source/msfilter/escherex.cxx
+++ b/filter/source/msfilter/escherex.cxx
@@ -1255,17 +1255,20 @@ void EscherPropertyContainer::CreateShapeProperties( const uno::Reference<drawin
uno::Reference< beans::XPropertySet > aXPropSet( rXShape, uno::UNO_QUERY );
if ( aXPropSet.is() )
{
- bool bVal = false;
+ bool bVisible = false;
+ bool bPrintable = false;
uno::Any aAny;
sal_uInt32 nShapeAttr = 0;
- if (EscherPropertyValueHelper::GetPropertyValue(aAny, aXPropSet, "Visible", true) && (aAny >>= bVal))
+ if (EscherPropertyValueHelper::GetPropertyValue(aAny, aXPropSet, "Visible", true) && (aAny >>= bVisible))
{
- if ( !bVal )
+ if ( !bVisible )
nShapeAttr |= 0x20002; // set fHidden = true
}
- if (EscherPropertyValueHelper::GetPropertyValue(aAny, aXPropSet, "Printable", true) && (aAny >>= bVal))
+ // This property (fPrint) isn't used in Excel anymore, leaving it for legacy reasons
+ // one change, based on XLSX: hidden implies not printed, let's not export the fPrint property in that case
+ if (bVisible && EscherPropertyValueHelper::GetPropertyValue(aAny, aXPropSet, "Printable", true) && (aAny >>= bPrintable))
{
- if ( !bVal )
+ if ( !bPrintable )
nShapeAttr |= 0x10000; // set fPrint = false;
}
if ( nShapeAttr )
diff --git a/filter/source/msfilter/msdffimp.cxx b/filter/source/msfilter/msdffimp.cxx
index 9084e1b42638..0938905edb52 100644
--- a/filter/source/msfilter/msdffimp.cxx
+++ b/filter/source/msfilter/msdffimp.cxx
@@ -4864,8 +4864,18 @@ SdrObject* SvxMSDffManager::ImportShape( const DffRecordHeader& rHd, SvStream& r
if ( pRet )
{
sal_Int32 nGroupProperties( GetPropertyValue( DFF_Prop_fPrint, 0 ) );
- pRet->SetVisible( ( nGroupProperties & 2 ) == 0 );
- pRet->SetPrintable( ( nGroupProperties & 1 ) != 0 );
+ const bool bVisible = ( ( nGroupProperties & 2 ) == 0 );
+ pRet->SetVisible( bVisible );
+ // In Excel hidden means not printed
+ if ( !bVisible )
+ {
+ pRet->SetPrintable( false );
+ }
+ else
+ {
+ // This property isn't used in Excel anymore, leaving it for legacy reasons
+ pRet->SetPrintable( ( nGroupProperties & 1 ) != 0 );
+ }
}
//Import alt text as description