diff options
-rw-r--r-- | sw/source/core/layout/atrfrm.cxx | 6 | ||||
-rw-r--r-- | sw/source/filter/xml/xmlexpit.cxx | 2 | ||||
-rw-r--r-- | xmloff/source/style/xmlbahdl.cxx | 5 | ||||
-rw-r--r-- | xmloff/source/style/xmlbahdl.hxx | 4 |
4 files changed, 11 insertions, 6 deletions
diff --git a/sw/source/core/layout/atrfrm.cxx b/sw/source/core/layout/atrfrm.cxx index 4f482c556c44..b06cea43daf7 100644 --- a/sw/source/core/layout/atrfrm.cxx +++ b/sw/source/core/layout/atrfrm.cxx @@ -710,7 +710,11 @@ bool SwFmtPageDesc::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId ) case MID_PAGEDESC_PAGENUMOFFSET: { sal_Int16 nOffset = 0; - if(rVal >>= nOffset) + if (!rVal.hasValue()) + { + SetNumOffset(boost::none); + } + else if (rVal >>= nOffset) SetNumOffset( nOffset ); else bRet = false; diff --git a/sw/source/filter/xml/xmlexpit.cxx b/sw/source/filter/xml/xmlexpit.cxx index abe355de4f77..b1e5182bf6d0 100644 --- a/sw/source/filter/xml/xmlexpit.cxx +++ b/sw/source/filter/xml/xmlexpit.cxx @@ -1005,7 +1005,7 @@ bool SvXMLExportItemMapper::QueryXMLValue( if( MID_PAGEDESC_PAGENUMOFFSET==nMemberId ) { ::boost::optional<sal_uInt16> oNumOffset = pPageDesc->GetNumOffset(); - if (oNumOffset) + if (oNumOffset && oNumOffset.get() > 0) { // #i114163# positiveInteger only! sal_Int32 const number(oNumOffset.get()); diff --git a/xmloff/source/style/xmlbahdl.cxx b/xmloff/source/style/xmlbahdl.cxx index 3397e47e28ef..0a797e5e471f 100644 --- a/xmloff/source/style/xmlbahdl.cxx +++ b/xmloff/source/style/xmlbahdl.cxx @@ -879,7 +879,7 @@ bool XMLNumberWithAutoInsteadZeroPropHdl::importXML( lcl_xmloff_setAny( rValue, nValue, 2 ); else if( rStrImpValue == GetXMLToken( XML_AUTO ) ) { - rValue <<= (sal_Int16)nValue; + rValue.clear(); // void bRet = true; } return bRet; @@ -891,7 +891,8 @@ bool XMLNumberWithAutoInsteadZeroPropHdl::exportXML( OUString& rStrExpValue, con sal_Int32 nValue = 0; lcl_xmloff_getAny( rValue, nValue, 2 ); - if( 0 == nValue ) + // FIXME: 0 is not a valid value - write "auto" instead + if (0 == nValue || !rValue.hasValue()) rStrExpValue = GetXMLToken( XML_AUTO ); else { diff --git a/xmloff/source/style/xmlbahdl.hxx b/xmloff/source/style/xmlbahdl.hxx index 58c6dc18691b..8b57ccbddc77 100644 --- a/xmloff/source/style/xmlbahdl.hxx +++ b/xmloff/source/style/xmlbahdl.hxx @@ -306,8 +306,8 @@ public: /** PropertyHandler for the XML-data-type: XML_TYPE_NUMBER16_AUTO - Reads/writes numeric properties with special handling for the value zero - (i.e., a value 0 property will be written as "auto") + Reads/writes numeric properties with special handling for "void" value + (i.e., void property will be written as "auto") */ class XMLNumberWithAutoInsteadZeroPropHdl : public XMLNumberWithoutZeroPropHdl { |