summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2014-08-04 17:36:54 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2014-08-04 17:37:12 +0200
commit65facd8c79ffb26e3a79c5139ece83dadfe65d9b (patch)
treeb4dc57842600d191d54141df62687b37bc547c9d
parente59420dd1ee5c3474ba3d6ef444b0ee947081624 (diff)
writerfilter: tokenize all attributes of CT_TblLook
Change-Id: I0dcaef56804a6998f83afe73d01eb0d5b21a210a
-rw-r--r--writerfilter/source/dmapper/DomainMapper.cxx10
-rw-r--r--writerfilter/source/dmapper/DomainMapperTableManager.cxx26
-rw-r--r--writerfilter/source/dmapper/DomainMapperTableManager.hxx1
-rw-r--r--writerfilter/source/ooxml/model.xml34
4 files changed, 63 insertions, 8 deletions
diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx
index e719ef1a20e7..33b6a95d237e 100644
--- a/writerfilter/source/dmapper/DomainMapper.cxx
+++ b/writerfilter/source/dmapper/DomainMapper.cxx
@@ -179,6 +179,9 @@ DomainMapper::~DomainMapper()
void DomainMapper::lcl_attribute(Id nName, Value & val)
{
+ if (m_pImpl->getTableManager().attribute(nName, val))
+ return;
+
static OUString sLocalBookmarkName;
sal_Int32 nIntValue = val.getInt();
OUString sStringValue = val.getString();
@@ -2451,6 +2454,13 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext )
m_pImpl->m_pSdtHelper->getInteropGrabBagAndClear();
}
break;
+ case NS_ooxml::LN_CT_TblPrBase_tblLook:
+ {
+ writerfilter::Reference<Properties>::Pointer_t pProperties = rSprm.getProps();
+ if (pProperties.get())
+ pProperties->resolve(*this);
+ }
+ break;
default:
{
#ifdef DEBUG_DOMAINMAPPER
diff --git a/writerfilter/source/dmapper/DomainMapperTableManager.cxx b/writerfilter/source/dmapper/DomainMapperTableManager.cxx
index e5a5b8bb4d68..d5a36a966a27 100644
--- a/writerfilter/source/dmapper/DomainMapperTableManager.cxx
+++ b/writerfilter/source/dmapper/DomainMapperTableManager.cxx
@@ -74,6 +74,25 @@ DomainMapperTableManager::~DomainMapperTableManager()
delete m_pTablePropsHandler, m_pTablePropsHandler = NULL;
}
+bool DomainMapperTableManager::attribute(Id nName, Value& rValue)
+{
+ bool bRet = true;
+
+ switch (nName)
+ {
+ case NS_ooxml::LN_CT_TblLook_val:
+ {
+ TablePropertyMapPtr pPropMap(new TablePropertyMap());
+ pPropMap->Insert(PROP_TBL_LOOK, uno::makeAny(rValue.getInt()));
+ insertTableProps(pPropMap);
+ }
+ break;
+ default:
+ bRet = false;
+ }
+
+ return bRet;
+}
bool DomainMapperTableManager::sprm(Sprm & rSprm)
{
@@ -318,13 +337,6 @@ bool DomainMapperTableManager::sprm(Sprm & rSprm)
m_nGridSpan = nIntValue;
}
break;
- case NS_ooxml::LN_CT_TblPrBase_tblLook:
- {
- TablePropertyMapPtr pPropMap( new TablePropertyMap );
- pPropMap->Insert( PROP_TBL_LOOK, uno::makeAny( nIntValue ));
- insertTableProps(pPropMap);
- }
- break;
case NS_ooxml::LN_CT_TcPrBase_textDirection:
{
TablePropertyMapPtr pPropMap( new TablePropertyMap );
diff --git a/writerfilter/source/dmapper/DomainMapperTableManager.hxx b/writerfilter/source/dmapper/DomainMapperTableManager.hxx
index fea928bd10e8..24145bd2f8fb 100644
--- a/writerfilter/source/dmapper/DomainMapperTableManager.hxx
+++ b/writerfilter/source/dmapper/DomainMapperTableManager.hxx
@@ -81,6 +81,7 @@ public:
inline void SetStyleProperties( PropertyMapPtr pProperties ) { m_pStyleProps = pProperties; };
virtual bool sprm(Sprm & rSprm) SAL_OVERRIDE;
+ bool attribute(Id nName, Value & val);
virtual void startLevel( ) SAL_OVERRIDE;
virtual void endLevel( ) SAL_OVERRIDE;
diff --git a/writerfilter/source/ooxml/model.xml b/writerfilter/source/ooxml/model.xml
index b1613d16a00c..0555ea907ff1 100644
--- a/writerfilter/source/ooxml/model.xml
+++ b/writerfilter/source/ooxml/model.xml
@@ -18377,7 +18377,7 @@
</optional>
<optional>
<element name="tblLook">
- <ref name="CT_ShortHexNumber"/>
+ <ref name="CT_TblLook"/>
</element>
</optional>
</define>
@@ -18458,6 +18458,29 @@
<ref name="EG_ContentRowContent"/>
</zeroOrMore>
</define>
+ <define name="CT_TblLook">
+ <attribute name="firstRow">
+ <ref name="ST_OnOff"/>
+ </attribute>
+ <attribute name="lastRow">
+ <ref name="ST_OnOff"/>
+ </attribute>
+ <attribute name="firstColumn">
+ <ref name="ST_OnOff"/>
+ </attribute>
+ <attribute name="lastColumn">
+ <ref name="ST_OnOff"/>
+ </attribute>
+ <attribute name="noHBand">
+ <ref name="ST_OnOff"/>
+ </attribute>
+ <attribute name="noVBand">
+ <ref name="ST_OnOff"/>
+ </attribute>
+ <attribute name="val">
+ <ref name="ST_ShortHexNumber"/>
+ </attribute>
+ </define>
<define name="ST_FtnPos">
<choice>
<!-- Footnotes Positioned at Page Bottom -->
@@ -23171,6 +23194,15 @@
<action name="end" action="clearProps"/>
</resource>
<resource name="CT_Tbl" resource="TextTable"/>
+ <resource name="CT_TblLook" resource="Properties">
+ <attribute name="firstRow" tokenid="ooxml:CT_TblLook_firstRow"/>
+ <attribute name="lastRow" tokenid="ooxml:CT_TblLook_lastRow"/>
+ <attribute name="firstColumn" tokenid="ooxml:CT_TblLook_firstColumn"/>
+ <attribute name="lastColumn" tokenid="ooxml:CT_TblLook_lastColumn"/>
+ <attribute name="noHBand" tokenid="ooxml:CT_TblLook_noHBand"/>
+ <attribute name="noVBand" tokenid="ooxml:CT_TblLook_noVBand"/>
+ <attribute name="val" tokenid="ooxml:CT_TblLook_val"/>
+ </resource>
<resource name="ST_FtnPos" resource="List">
<value tokenid="ooxml:Value_ST_FtnPos_pageBottom">pageBottom</value>
<value tokenid="ooxml:Value_ST_FtnPos_beneathText">beneathText</value>