diff options
author | Noel Power <noel.power@novell.com> | 2012-05-22 10:08:26 +0100 |
---|---|---|
committer | Noel Power <noel.power@novell.com> | 2012-05-22 10:20:44 +0100 |
commit | e623ee66dfde0d5a2705e222aaa7ce580e409506 (patch) | |
tree | 02647e6e70927e450ea5aef665ded863983df004 /xmloff | |
parent | 1543df470360d2e64428536a26a5996becc412d2 (diff) |
make row heights ( incl default row height ) from excel are saved absolute
Currently default row heights imported from Excel are not adjusted Optimally ( AdjustRowHeight() is no longer called ) However to ensure correct round tripping the CR_MANUALSIZE flag *is* still set, this results in the style:use-optimal-row-height="true" being set for default row height(s) when saving as odf. So, for example absolute positions which are calculated on importing the Excel document ( where the row height is *not* optimally adjusted ) are still saved with the 'style:use-optimal-row-height' set. When the row heights are read back into calc the row sizes are changed any absolutely positioned objects are now out of place. This patch ensures *all* row heights are from an imported excel document are saved with style:use-optimal-row-height="false"
Change-Id: If898b97ddb0c8b59a401d7b3c133b0eec09cd1db
Diffstat (limited to 'xmloff')
-rw-r--r-- | xmloff/inc/xmloff/xmlaustp.hxx | 2 | ||||
-rw-r--r-- | xmloff/inc/xmloff/xmltypes.hxx | 1 | ||||
-rw-r--r-- | xmloff/source/style/impastp4.cxx | 16 | ||||
-rw-r--r-- | xmloff/source/style/impastpl.hxx | 2 | ||||
-rw-r--r-- | xmloff/source/style/prhdlfac.cxx | 3 | ||||
-rw-r--r-- | xmloff/source/style/xmlaustp.cxx | 8 | ||||
-rw-r--r-- | xmloff/source/style/xmlbahdl.cxx | 20 | ||||
-rw-r--r-- | xmloff/source/style/xmlbahdl.hxx | 10 |
8 files changed, 62 insertions, 0 deletions
diff --git a/xmloff/inc/xmloff/xmlaustp.hxx b/xmloff/inc/xmloff/xmlaustp.hxx index ba7783476d94..828ff54d7d3a 100644 --- a/xmloff/inc/xmloff/xmlaustp.hxx +++ b/xmloff/inc/xmloff/xmlaustp.hxx @@ -89,6 +89,8 @@ public: void AddFamily( sal_Int32 nFamily, const ::rtl::OUString& rStrName, const UniReference< SvXMLExportPropertyMapper >& rMapper, const ::rtl::OUString& rStrPrefix, sal_Bool bAsFamily = sal_True ); + void SetFamilyPropSetMapper( sal_Int32 nFamily, const ::rtl::OUString& rStrName, + const UniReference< SvXMLExportPropertyMapper >& rMapper ); /// Register a name that must not be used as a generated name. void RegisterName( sal_Int32 nFamily, const ::rtl::OUString& rName ); diff --git a/xmloff/inc/xmloff/xmltypes.hxx b/xmloff/inc/xmloff/xmltypes.hxx index 9aee08b6fc59..dc790e4ca51a 100644 --- a/xmloff/inc/xmloff/xmltypes.hxx +++ b/xmloff/inc/xmloff/xmltypes.hxx @@ -280,6 +280,7 @@ #define XML_TYPE_TEXT_OVERLINE_WIDTH (XML_TEXT_TYPES_START + 111) #define XML_TYPE_TEXT_OVERLINE_COLOR (XML_TEXT_TYPES_START + 112) #define XML_TYPE_TEXT_OVERLINE_HASCOLOR (XML_TEXT_TYPES_START + 113) +#define XML_TYPE_BOOL_FALSE (XML_TEXT_TYPES_START + 114) #define XML_SCH_TYPES_START (0x4 << XML_TYPE_APP_SHIFT) #define XML_PM_TYPES_START (0x5 << XML_TYPE_APP_SHIFT) // page master diff --git a/xmloff/source/style/impastp4.cxx b/xmloff/source/style/impastp4.cxx index 884bf0f09075..3fda5126ee50 100644 --- a/xmloff/source/style/impastp4.cxx +++ b/xmloff/source/style/impastp4.cxx @@ -104,6 +104,22 @@ void SvXMLAutoStylePoolP_Impl::AddFamily( delete pFamily; } +void SvXMLAutoStylePoolP_Impl::SetFamilyPropSetMapper( + sal_Int32 nFamily, + const OUString& rStrName, + const UniReference < SvXMLExportPropertyMapper > & rMapper ) +{ + + XMLFamilyData_Impl aTemporary( nFamily ); + sal_uLong nPos; + + if( maFamilyList.Seek_Entry( &aTemporary, &nPos ) ) + { + XMLFamilyData_Impl* pFamily = maFamilyList.GetObject( nPos ); + if ( pFamily ) + pFamily-> mxMapper = rMapper; + } +} /////////////////////////////////////////////////////////////////////////////// // // Adds a name to list diff --git a/xmloff/source/style/impastpl.hxx b/xmloff/source/style/impastpl.hxx index 9feedb51ae5d..75420461e1a6 100644 --- a/xmloff/source/style/impastpl.hxx +++ b/xmloff/source/style/impastpl.hxx @@ -185,6 +185,8 @@ public: void AddFamily( sal_Int32 nFamily, const ::rtl::OUString& rStrName, const UniReference < SvXMLExportPropertyMapper > & rMapper, const ::rtl::OUString& rStrPrefix, sal_Bool bAsFamily = sal_True ); + void SetFamilyPropSetMapper( sal_Int32 nFamily, const ::rtl::OUString& rStrName, + const UniReference < SvXMLExportPropertyMapper > & rMapper ); void RegisterName( sal_Int32 nFamily, const ::rtl::OUString& rName ); void GetRegisteredNames( com::sun::star::uno::Sequence<sal_Int32>& aFamilies, diff --git a/xmloff/source/style/prhdlfac.cxx b/xmloff/source/style/prhdlfac.cxx index a2d2ea18762c..ef8e99aa1d09 100644 --- a/xmloff/source/style/prhdlfac.cxx +++ b/xmloff/source/style/prhdlfac.cxx @@ -171,6 +171,9 @@ const XMLPropertyHandler* XMLPropertyHandlerFactory::CreatePropertyHandler( sal_ case XML_TYPE_BOOL : pPropHdl = new XMLBoolPropHdl; break; + case XML_TYPE_BOOL_FALSE : + pPropHdl = new XMLBoolFalsePropHdl; + break; case XML_TYPE_MEASURE : pPropHdl = new XMLMeasurePropHdl( 4 ); break; diff --git a/xmloff/source/style/xmlaustp.cxx b/xmloff/source/style/xmlaustp.cxx index d0eed7a50475..5e428abb01ba 100644 --- a/xmloff/source/style/xmlaustp.cxx +++ b/xmloff/source/style/xmlaustp.cxx @@ -312,6 +312,14 @@ void SvXMLAutoStylePoolP::AddFamily( pImpl->AddFamily( nFamily, rStrName, rMapper, rStrPrefix, bAsFamily ); } +void SvXMLAutoStylePoolP::SetFamilyPropSetMapper( + sal_Int32 nFamily, + const OUString& rStrName, + const UniReference < SvXMLExportPropertyMapper > & rMapper ) +{ + pImpl->SetFamilyPropSetMapper( nFamily, rStrName, rMapper ); +} + void SvXMLAutoStylePoolP::RegisterName( sal_Int32 nFamily, const OUString& rName ) { diff --git a/xmloff/source/style/xmlbahdl.cxx b/xmloff/source/style/xmlbahdl.cxx index b34b37a166fd..8535c0b818d0 100644 --- a/xmloff/source/style/xmlbahdl.cxx +++ b/xmloff/source/style/xmlbahdl.cxx @@ -235,6 +235,26 @@ sal_Bool XMLMeasurePropHdl::exportXML( OUString& rStrExpValue, const Any& rValue /////////////////////////////////////////////////////////////////////////////// // +// class XMLBoolFalsePropHdl +// + +XMLBoolFalsePropHdl::~XMLBoolFalsePropHdl() +{ + // nothing to do +} + +sal_Bool XMLBoolFalsePropHdl::importXML( const OUString&, Any&, const SvXMLUnitConverter& ) const +{ + return sal_False; +} + +sal_Bool XMLBoolFalsePropHdl::exportXML( OUString& rStrExpValue, const Any& /*rValue*/, const SvXMLUnitConverter& rCnv) const +{ + return XMLBoolPropHdl::exportXML( rStrExpValue, makeAny( sal_False ), rCnv ); +} + +/////////////////////////////////////////////////////////////////////////////// +// // class XMLBoolPropHdl // diff --git a/xmloff/source/style/xmlbahdl.hxx b/xmloff/source/style/xmlbahdl.hxx index 83b7741b5758..529df72e2d22 100644 --- a/xmloff/source/style/xmlbahdl.hxx +++ b/xmloff/source/style/xmlbahdl.hxx @@ -143,6 +143,16 @@ public: virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const; }; +class XMLBoolFalsePropHdl : public XMLBoolPropHdl +{ +public: + virtual ~XMLBoolFalsePropHdl(); + + virtual sal_Bool importXML( const ::rtl::OUString& rStrImpValue, ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const; + virtual sal_Bool exportXML( ::rtl::OUString& rStrExpValue, const ::com::sun::star::uno::Any& rValue, const SvXMLUnitConverter& rUnitConverter ) const; + +}; + /** PropertyHandler for the XML-data-type: XML_TYPE_COLOR */ |