summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sw/source/core/layout/atrfrm.cxx6
-rw-r--r--sw/source/filter/xml/xmlexpit.cxx2
-rw-r--r--xmloff/source/style/xmlbahdl.cxx5
-rw-r--r--xmloff/source/style/xmlbahdl.hxx4
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
{