diff options
author | Adam Co <rattles2013@gmail.com> | 2014-08-11 18:31:45 +0300 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2014-08-12 08:34:47 +0200 |
commit | f91b81c24e21fffbee0d02d325171e684ca880eb (patch) | |
tree | c9292ac28f8cdcc812dec83c7c412d3a1d5ea749 /writerfilter | |
parent | 886e4edf59d212d88d50024e1bfe3664d3fc03c3 (diff) |
Add reference to 'DomainMapper' to some DOCX import classes
The reason for adding 'DomainMapper' is to be able to check
during import in these classes whether or not the import is
in a 'styles.xml' file or not.
Also added blank handling for new XML nodes.
Reviewed on:
https://gerrit.libreoffice.org/10870
Change-Id: Ib2acde736d96f30eda40ee327991dc6ae0ed7f25
Diffstat (limited to 'writerfilter')
-rw-r--r-- | writerfilter/inc/dmapper/DomainMapper.hxx | 1 | ||||
-rw-r--r-- | writerfilter/source/dmapper/DomainMapper.cxx | 5 | ||||
-rw-r--r-- | writerfilter/source/dmapper/DomainMapperTableManager.cxx | 18 | ||||
-rw-r--r-- | writerfilter/source/dmapper/DomainMapperTableManager.hxx | 5 | ||||
-rw-r--r-- | writerfilter/source/dmapper/DomainMapper_Impl.hxx | 2 | ||||
-rw-r--r-- | writerfilter/source/dmapper/StyleSheetTable.cxx | 5 | ||||
-rw-r--r-- | writerfilter/source/dmapper/StyleSheetTable.hxx | 1 | ||||
-rw-r--r-- | writerfilter/source/dmapper/TablePropertiesHandler.cxx | 6 | ||||
-rw-r--r-- | writerfilter/source/dmapper/TablePropertiesHandler.hxx | 4 | ||||
-rw-r--r-- | writerfilter/source/dmapper/TblStylePrHandler.cxx | 2 | ||||
-rw-r--r-- | writerfilter/source/ooxml/model.xml | 14 |
11 files changed, 53 insertions, 10 deletions
diff --git a/writerfilter/inc/dmapper/DomainMapper.hxx b/writerfilter/inc/dmapper/DomainMapper.hxx index dd4dc3fa68f5..054f69b54627 100644 --- a/writerfilter/inc/dmapper/DomainMapper.hxx +++ b/writerfilter/inc/dmapper/DomainMapper.hxx @@ -115,6 +115,7 @@ public: com::sun::star::uno::Reference<com::sun::star::drawing::XShape> PopPendingShape(); bool IsInHeaderFooter() const; + bool IsStyleSheetImport() const; /** @see DomainMapper_Impl::processDeferredCharacterProperties() */ diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx index 78d7ba0e758c..f001d99c06b2 100644 --- a/writerfilter/source/dmapper/DomainMapper.cxx +++ b/writerfilter/source/dmapper/DomainMapper.cxx @@ -3450,6 +3450,11 @@ bool DomainMapper::IsInHeaderFooter() const return m_pImpl->IsInHeaderFooter(); } +bool DomainMapper::IsStyleSheetImport() const +{ + return m_pImpl->IsStyleSheetImport(); +} + void DomainMapper::enableInteropGrabBag(const OUString& aName) { m_pImpl->m_aInteropGrabBagName = aName; diff --git a/writerfilter/source/dmapper/DomainMapperTableManager.cxx b/writerfilter/source/dmapper/DomainMapperTableManager.cxx index efbecfe59754..75eeb619adc2 100644 --- a/writerfilter/source/dmapper/DomainMapperTableManager.cxx +++ b/writerfilter/source/dmapper/DomainMapperTableManager.cxx @@ -32,6 +32,7 @@ #include <com/sun/star/text/WritingMode2.hpp> #include <ooxml/resourceids.hxx> #include <dmapperLoggers.hxx> +#include <dmapper/DomainMapper.hxx> namespace writerfilter { namespace dmapper { @@ -40,7 +41,7 @@ using namespace ::com::sun::star; using namespace ::std; -DomainMapperTableManager::DomainMapperTableManager(bool bOOXML) : +DomainMapperTableManager::DomainMapperTableManager(bool bOOXML, DomainMapper& rDMapper) : m_nRow(0), m_nCell(), m_nGridSpan(1), @@ -50,6 +51,7 @@ DomainMapperTableManager::DomainMapperTableManager(bool bOOXML) : m_nHeaderRepeat(0), m_nTableWidth(0), m_bOOXML( bOOXML ), + m_rDMapper( rDMapper ), m_aTmpPosition(), m_aTmpTableProperties(), m_bPushCurrentWidth(false), @@ -58,7 +60,7 @@ DomainMapperTableManager::DomainMapperTableManager(bool bOOXML) : m_bTableSizeTypeInserted(false), m_nLayoutType(0), m_nMaxFixedWidth(0), - m_pTablePropsHandler( new TablePropertiesHandler( bOOXML ) ) + m_pTablePropsHandler( new TablePropertiesHandler( bOOXML, rDMapper ) ) { m_pTablePropsHandler->SetTableManager( this ); @@ -457,6 +459,18 @@ bool DomainMapperTableManager::sprm(Sprm & rSprm) case NS_ooxml::LN_CT_TrPrBase_gridAfter: m_nGridAfter = nIntValue; break; + case NS_ooxml::LN_CT_TblPrBase_tblCaption: + // To-Do: Not yet preserved + break; + case NS_ooxml::LN_CT_TblPrBase_tblDescription: + // To-Do: Not yet preserved + break; + case NS_ooxml::LN_CT_TrPrBase_tblCellSpacing: + // To-Do: Not yet preserved + break; + case NS_ooxml::LN_CT_TblPrBase_tblCellSpacing: + // To-Do: Not yet preserved + break; default: bRet = false; diff --git a/writerfilter/source/dmapper/DomainMapperTableManager.hxx b/writerfilter/source/dmapper/DomainMapperTableManager.hxx index 3f53e93c0259..dfb89445b4a9 100644 --- a/writerfilter/source/dmapper/DomainMapperTableManager.hxx +++ b/writerfilter/source/dmapper/DomainMapperTableManager.hxx @@ -32,6 +32,8 @@ namespace writerfilter { namespace dmapper { +class DomainMapper; + class DomainMapperTableManager : public DomainMapperTableManager_Base_t { typedef boost::shared_ptr< std::vector<sal_Int32> > IntVectorPtr; @@ -45,6 +47,7 @@ class DomainMapperTableManager : public DomainMapperTableManager_Base_t sal_Int32 m_nHeaderRepeat; //counter of repeated headers - if == -1 then the repeating stops sal_Int32 m_nTableWidth; //might be set directly or has to be calculated from the column positions bool m_bOOXML; + DomainMapper& m_rDMapper; OUString m_sTableStyleName; /// Grab-bag of table look attributes for preserving. comphelper::SequenceAsHashMap m_aTableLook; @@ -76,7 +79,7 @@ class DomainMapperTableManager : public DomainMapperTableManager_Base_t public: - DomainMapperTableManager(bool bOOXML); + DomainMapperTableManager(bool bOOXML, DomainMapper& rDMapper); virtual ~DomainMapperTableManager(); // use this method to avoid adding the properties for the table diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.hxx b/writerfilter/source/dmapper/DomainMapper_Impl.hxx index e2f9c4ba3f80..8ec93fec6e39 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.hxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.hxx @@ -676,7 +676,7 @@ public: void appendTableManager( ) { boost::shared_ptr< DomainMapperTableManager > pMngr( - new DomainMapperTableManager( m_eDocumentType == DOCUMENT_OOXML || m_eDocumentType == DOCUMENT_RTF ) ); + new DomainMapperTableManager( m_eDocumentType == DOCUMENT_OOXML || m_eDocumentType == DOCUMENT_RTF, m_rDMapper )); m_aTableManagers.push( pMngr ); } diff --git a/writerfilter/source/dmapper/StyleSheetTable.cxx b/writerfilter/source/dmapper/StyleSheetTable.cxx index 50e9b7eeb5e9..3d717398d01e 100644 --- a/writerfilter/source/dmapper/StyleSheetTable.cxx +++ b/writerfilter/source/dmapper/StyleSheetTable.cxx @@ -382,7 +382,8 @@ StyleSheetTable::StyleSheetTable(DomainMapper& rDMapper, bool const bIsNewDoc) : LoggedProperties(dmapper_logger, "StyleSheetTable") , LoggedTable(dmapper_logger, "StyleSheetTable") -, m_pImpl( new StyleSheetTable_Impl(rDMapper, xTextDocument, bIsNewDoc) ) +, m_pImpl( new StyleSheetTable_Impl(rDMapper, xTextDocument, bIsNewDoc) ), +m_rDMapper( rDMapper ) { } @@ -747,7 +748,7 @@ void StyleSheetTable::lcl_sprm(Sprm & rSprm) if (!m_pImpl->m_pCurrentEntry) break; - TablePropertiesHandlerPtr pTblHandler( new TablePropertiesHandler( true ) ); + TablePropertiesHandlerPtr pTblHandler( new TablePropertiesHandler( true, m_rDMapper ) ); pTblHandler->SetProperties( m_pImpl->m_pCurrentEntry->pProperties ); if ( !pTblHandler->sprm( rSprm ) ) { diff --git a/writerfilter/source/dmapper/StyleSheetTable.hxx b/writerfilter/source/dmapper/StyleSheetTable.hxx index 43b3b432eb52..7bc40a3b6234 100644 --- a/writerfilter/source/dmapper/StyleSheetTable.hxx +++ b/writerfilter/source/dmapper/StyleSheetTable.hxx @@ -86,6 +86,7 @@ class StyleSheetTable : public LoggedTable { StyleSheetTable_Impl *m_pImpl; + DomainMapper & m_rDMapper; public: StyleSheetTable( DomainMapper& rDMapper, diff --git a/writerfilter/source/dmapper/TablePropertiesHandler.cxx b/writerfilter/source/dmapper/TablePropertiesHandler.cxx index de66b335feee..e2d30316cce1 100644 --- a/writerfilter/source/dmapper/TablePropertiesHandler.cxx +++ b/writerfilter/source/dmapper/TablePropertiesHandler.cxx @@ -33,6 +33,7 @@ #include <com/sun/star/text/VertOrientation.hpp> #include <dmapperLoggers.hxx> #include <oox/token/tokens.hxx> +#include <dmapper/DomainMapper.hxx> using namespace com::sun::star; using namespace oox; @@ -40,10 +41,11 @@ using namespace oox; namespace writerfilter { namespace dmapper { - TablePropertiesHandler::TablePropertiesHandler( bool bOOXML ) : + TablePropertiesHandler::TablePropertiesHandler( bool bOOXML, DomainMapper& rDMapper ) : m_pCurrentInteropGrabBag(0), m_pTableManager( NULL ), - m_bOOXML( bOOXML ) + m_bOOXML( bOOXML ), + m_rDMapper( rDMapper ) { } diff --git a/writerfilter/source/dmapper/TablePropertiesHandler.hxx b/writerfilter/source/dmapper/TablePropertiesHandler.hxx index 6f4b3c762aa4..a4588e06434e 100644 --- a/writerfilter/source/dmapper/TablePropertiesHandler.hxx +++ b/writerfilter/source/dmapper/TablePropertiesHandler.hxx @@ -32,6 +32,7 @@ namespace writerfilter { namespace dmapper { +class DomainMapper; typedef ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > Handle_t; typedef TableManager<Handle_t , TablePropertyMapPtr > DomainMapperTableManager_Base_t; @@ -44,9 +45,10 @@ private: std::vector<css::beans::PropertyValue>* m_pCurrentInteropGrabBag; DomainMapperTableManager_Base_t *m_pTableManager; bool m_bOOXML; + DomainMapper& m_rDMapper; public: - TablePropertiesHandler( bool bOOXML ); + TablePropertiesHandler( bool bOOXML, DomainMapper& rDMapper ); virtual ~TablePropertiesHandler( ); bool sprm(Sprm & sprm); diff --git a/writerfilter/source/dmapper/TblStylePrHandler.cxx b/writerfilter/source/dmapper/TblStylePrHandler.cxx index 24fee7d5f5dc..0acccd644a36 100644 --- a/writerfilter/source/dmapper/TblStylePrHandler.cxx +++ b/writerfilter/source/dmapper/TblStylePrHandler.cxx @@ -33,7 +33,7 @@ namespace dmapper { TblStylePrHandler::TblStylePrHandler( DomainMapper & rDMapper ) : LoggedProperties(dmapper_logger, "TblStylePrHandler"), m_rDMapper( rDMapper ), -m_pTablePropsHandler( new TablePropertiesHandler( true ) ), +m_pTablePropsHandler( new TablePropertiesHandler( true, rDMapper ) ), m_nType( TBL_STYLE_UNKNOWN ), m_pProperties( new PropertyMap ) { diff --git a/writerfilter/source/ooxml/model.xml b/writerfilter/source/ooxml/model.xml index 42e7eb11fbf6..f2b8aeb57e98 100644 --- a/writerfilter/source/ooxml/model.xml +++ b/writerfilter/source/ooxml/model.xml @@ -14636,6 +14636,12 @@ <element name="tblLook"> <ref name="CT_TblLook"/> </element> + <element name="tblCaption"> + <ref name="CT_String"/> + </element> + <element name="tblDescription"> + <ref name="CT_String"/> + </element> </define> <define name="CT_TblPr"> <ref name="CT_TblPrBase"/> @@ -14671,6 +14677,12 @@ <element name="tblLook"> <ref name="CT_TblLook"/> </element> + <element name="tblCaption"> + <ref name="CT_String"/> + </element> + <element name="tblDescription"> + <ref name="CT_String"/> + </element> </define> <define name="CT_TblPrEx"> <ref name="CT_TblPrExBase"/> @@ -18347,6 +18359,8 @@ <element name="tblLayout" tokenid="ooxml:CT_TblPrBase_tblLayout"/> <element name="tblCellMar" tokenid="ooxml:CT_TblPrBase_tblCellMar"/> <element name="tblLook" tokenid="ooxml:CT_TblPrBase_tblLook"/> + <element name="tblCaption" tokenid="ooxml:CT_TblPrBase_tblCaption"/> + <element name="tblDescription" tokenid="ooxml:CT_TblPrBase_tblDescription"/> </resource> <resource name="CT_TblPr" resource="Properties"> <element name="tblPrChange" tokenid="ooxml:CT_TblPr_tblPrChange"/> |