summaryrefslogtreecommitdiff
path: root/writerfilter
diff options
context:
space:
mode:
authorAdam Co <rattles2013@gmail.com>2014-08-11 18:31:45 +0300
committerMiklos Vajna <vmiklos@collabora.co.uk>2014-08-12 08:34:47 +0200
commitf91b81c24e21fffbee0d02d325171e684ca880eb (patch)
treec9292ac28f8cdcc812dec83c7c412d3a1d5ea749 /writerfilter
parent886e4edf59d212d88d50024e1bfe3664d3fc03c3 (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.hxx1
-rw-r--r--writerfilter/source/dmapper/DomainMapper.cxx5
-rw-r--r--writerfilter/source/dmapper/DomainMapperTableManager.cxx18
-rw-r--r--writerfilter/source/dmapper/DomainMapperTableManager.hxx5
-rw-r--r--writerfilter/source/dmapper/DomainMapper_Impl.hxx2
-rw-r--r--writerfilter/source/dmapper/StyleSheetTable.cxx5
-rw-r--r--writerfilter/source/dmapper/StyleSheetTable.hxx1
-rw-r--r--writerfilter/source/dmapper/TablePropertiesHandler.cxx6
-rw-r--r--writerfilter/source/dmapper/TablePropertiesHandler.hxx4
-rw-r--r--writerfilter/source/dmapper/TblStylePrHandler.cxx2
-rw-r--r--writerfilter/source/ooxml/model.xml14
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"/>