diff options
author | Kurt Zenker <kz@openoffice.org> | 2009-06-04 20:36:53 +0000 |
---|---|---|
committer | Kurt Zenker <kz@openoffice.org> | 2009-06-04 20:36:53 +0000 |
commit | adc000a73c3699f4d1d53ba7151eadd2ea5f8940 (patch) | |
tree | 62dafeef94488ac30450e312bdcce36c668a96cc /sc/source/filter/xml/xmlexternaltabi.cxx | |
parent | 7470d7bd81ab783f5d46cfc8391a9b8c301d6aff (diff) |
CWS-TOOLING: integrate CWS calclinkfixes
2009-04-27 11:47:56 +0200 nn r271258 : #i101273# Uno broadcasts in DoRecalc/DoHardRecalc
2009-04-24 17:20:19 +0200 nn r271226 : #i101304# don't load source file of external ref for empty cells in the cached data
2009-04-24 14:15:43 +0200 nn r271212 : #i101319# handle merged cells and row groups when loading cached data for external refs
Diffstat (limited to 'sc/source/filter/xml/xmlexternaltabi.cxx')
-rw-r--r-- | sc/source/filter/xml/xmlexternaltabi.cxx | 45 |
1 files changed, 44 insertions, 1 deletions
diff --git a/sc/source/filter/xml/xmlexternaltabi.cxx b/sc/source/filter/xml/xmlexternaltabi.cxx index 4eefbbc1a917..7eabdff07b9b 100644 --- a/sc/source/filter/xml/xmlexternaltabi.cxx +++ b/sc/source/filter/xml/xmlexternaltabi.cxx @@ -114,6 +114,49 @@ void ScXMLExternalRefTabSourceContext::EndElement() // ============================================================================ +ScXMLExternalRefRowsContext::ScXMLExternalRefRowsContext( + ScXMLImport& rImport, USHORT nPrefix, const OUString& rLName, + const Reference<XAttributeList>& /* xAttrList */, ScXMLExternalTabData& rRefInfo ) : + SvXMLImportContext( rImport, nPrefix, rLName ), + mrScImport(rImport), + mrExternalRefInfo(rRefInfo) +{ +} + +ScXMLExternalRefRowsContext::~ScXMLExternalRefRowsContext() +{ +} + +SvXMLImportContext* ScXMLExternalRefRowsContext::CreateChildContext( + USHORT nPrefix, const OUString& rLocalName, const Reference<XAttributeList>& xAttrList ) +{ + // #i101319# row elements inside group, rows or header-rows + // are treated like row elements directly in the table element + + const SvXMLTokenMap& rTokenMap = mrScImport.GetTableRowsElemTokenMap(); + sal_uInt16 nToken = rTokenMap.Get(nPrefix, rLocalName); + switch (nToken) + { + case XML_TOK_TABLE_ROWS_ROW_GROUP: + case XML_TOK_TABLE_ROWS_HEADER_ROWS: + case XML_TOK_TABLE_ROWS_ROWS: + return new ScXMLExternalRefRowsContext( + mrScImport, nPrefix, rLocalName, xAttrList, mrExternalRefInfo); + case XML_TOK_TABLE_ROWS_ROW: + return new ScXMLExternalRefRowContext( + mrScImport, nPrefix, rLocalName, xAttrList, mrExternalRefInfo); + default: + ; + } + return new SvXMLImportContext(GetImport(), nPrefix, rLocalName); +} + +void ScXMLExternalRefRowsContext::EndElement() +{ +} + +// ============================================================================ + ScXMLExternalRefRowContext::ScXMLExternalRefRowContext( ScXMLImport& rImport, USHORT nPrefix, const OUString& rLName, const Reference<XAttributeList>& xAttrList, ScXMLExternalTabData& rRefInfo ) : @@ -153,7 +196,7 @@ SvXMLImportContext* ScXMLExternalRefRowContext::CreateChildContext( { const SvXMLTokenMap& rTokenMap = mrScImport.GetTableRowElemTokenMap(); sal_uInt16 nToken = rTokenMap.Get(nPrefix, rLocalName); - if (nToken == XML_TOK_TABLE_ROW_CELL) + if (nToken == XML_TOK_TABLE_ROW_CELL || nToken == XML_TOK_TABLE_ROW_COVERED_CELL) return new ScXMLExternalRefCellContext(mrScImport, nPrefix, rLocalName, xAttrList, mrExternalRefInfo); return new SvXMLImportContext(GetImport(), nPrefix, rLocalName); |