sc/source/filter/xml/xmlcelli.cxx | 58 ++++++------------- sc/source/filter/xml/xmlcelli.hxx | 1 sc/source/filter/xml/xmlsubti.cxx | 39 +------------ sc/source/filter/xml/xmlsubti.hxx | 1 sc/source/filter/xml/xmltabi.cxx | 113 +++++++++++++++++--------------------- sc/source/filter/xml/xmltabi.hxx | 4 - 6 files changed, 75 insertions(+), 141 deletions(-)
New commits: commit 8d4d75c7d67832c65472d48637d1a200682c4d5f Author: Daniel Bankston <daniel.e.banks...@gmail.com> Date: Sat Jun 16 04:42:05 2012 -0500 Remove subtable import code since sc core doesn't support it Change-Id: Ic9be156a9468bec4bccdce40ddd51344002067f9 diff --git a/sc/source/filter/xml/xmlcelli.cxx b/sc/source/filter/xml/xmlcelli.cxx index ce52a6c..56aafc7 100644 --- a/sc/source/filter/xml/xmlcelli.cxx +++ b/sc/source/filter/xml/xmlcelli.cxx @@ -133,7 +133,6 @@ ScXMLTableRowCellContext::ScXMLTableRowCellContext( ScXMLImport& rImport, nCellType(util::NumberFormat::TEXT), bIsMerged(false), bIsMatrix(false), - bHasSubTable(false), bIsCovered(bTempIsCovered), bIsEmpty(true), bHasTextImport(false), @@ -399,23 +398,7 @@ SvXMLImportContext *ScXMLTableRowCellContext::CreateChildContext( sal_uInt16 nPr break; case XML_TOK_TABLE_ROW_CELL_TABLE: { - const sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; - rtl::OUString aLocalName; - for( sal_Int16 i=0; i < nAttrCount; i++ ) - { - sal_uInt16 nAttrPrefix = rXMLImport.GetNamespaceMap().GetKeyByAttrName( - xAttrList->getNameByIndex( i ), &aLocalName ); - if ( nAttrPrefix == XML_NAMESPACE_TABLE - && IsXMLToken(aLocalName, XML_IS_SUB_TABLE)) - { - bHasSubTable = IsXMLToken(xAttrList->getValueByIndex( i ), XML_TRUE); - } - } - OSL_ENSURE(bHasSubTable, "it should be a subtable"); - pContext = new ScXMLTableContext( rXMLImport , nPrefix, - rLName, xAttrList, true, static_cast<sal_Int32>(nMergedCols) ); - nMergedCols = 1; - bIsMerged = false; + SAL_WARN("sc", "ScXMLTableRowCellContext::CreateChildContext: subtables are not supported"); } break; case XML_TOK_TABLE_ROW_CELL_ANNOTATION: @@ -1106,34 +1089,31 @@ void ScXMLTableRowCellContext::AddFormulaCell( const ScAddress& rCellPos ) void ScXMLTableRowCellContext::EndElement() { - if( !bHasSubTable ) + if( bHasTextImport && rXMLImport.GetRemoveLastChar() ) { - if( bHasTextImport && rXMLImport.GetRemoveLastChar() ) + UniReference< XMLTextImportHelper > aTextImport = rXMLImport.GetTextImport(); + if( aTextImport->GetCursor().is() ) { - UniReference< XMLTextImportHelper > aTextImport = rXMLImport.GetTextImport(); - if( aTextImport->GetCursor().is() ) + if( aTextImport->GetCursor()->goLeft(1, true) ) { - if( aTextImport->GetCursor()->goLeft(1, true) ) - { - aTextImport->GetText()->insertString( - aTextImport->GetCursorAsRange(), rtl::OUString(), true ); - } - aTextImport->ResetCursor(); + aTextImport->GetText()->insertString( + aTextImport->GetCursorAsRange(), rtl::OUString(), true ); } + aTextImport->ResetCursor(); } - - ScAddress aCellPos = rXMLImport.GetTables().GetRealScCellPos(); - if( aCellPos.Col() > 0 && nRepeatedRows > 1 ) - aCellPos.SetRow( aCellPos.Row() - (nRepeatedRows - 1) ); - if( bIsMerged ) - DoMerge( aCellPos, nMergedCols - 1, nMergedRows - 1 ); - if( !pOUFormula ) - AddNonFormulaCells( aCellPos ); - else // if ( pOUFormula ) - AddFormulaCell( aCellPos ); } + + ScAddress aCellPos = rXMLImport.GetTables().GetRealScCellPos(); + if( aCellPos.Col() > 0 && nRepeatedRows > 1 ) + aCellPos.SetRow( aCellPos.Row() - (nRepeatedRows - 1) ); + if( bIsMerged ) + DoMerge( aCellPos, nMergedCols - 1, nMergedRows - 1 ); + if( !pOUFormula ) + AddNonFormulaCells( aCellPos ); + else // if ( pOUFormula ) + AddFormulaCell( aCellPos ); + bIsMerged = false; - bHasSubTable = false; nMergedCols = 1; nMergedRows = 1; nColsRepeated = 1; diff --git a/sc/source/filter/xml/xmlcelli.hxx b/sc/source/filter/xml/xmlcelli.hxx index cf1b091..3df155e 100644 --- a/sc/source/filter/xml/xmlcelli.hxx +++ b/sc/source/filter/xml/xmlcelli.hxx @@ -67,7 +67,6 @@ class ScXMLTableRowCellContext : public SvXMLImportContext sal_Int16 nCellType; bool bIsMerged; bool bIsMatrix; - bool bHasSubTable; bool bIsCovered; bool bIsEmpty; bool bHasTextImport; diff --git a/sc/source/filter/xml/xmlsubti.cxx b/sc/source/filter/xml/xmlsubti.cxx index 950cbbd..3d88df0 100644 --- a/sc/source/filter/xml/xmlsubti.cxx +++ b/sc/source/filter/xml/xmlsubti.cxx @@ -223,7 +223,9 @@ void ScMyTables::NewSheet(const rtl::OUString& sTableName, const rtl::OUString& } } - NewTable(1); + maTables.push_back(new ScMyTableData(nCurrentSheet)); + pCurrentTab = & maTables.back(); + pCurrentTab->SetSpannedCols(1); } void ScMyTables::SetTableStyle(const rtl::OUString& sStyleName) @@ -372,41 +374,6 @@ void ScMyTables::AddColumn(bool bIsCovered) } } -void ScMyTables::NewTable(sal_Int32 nTempSpannedCols) -{ - maTables.push_back(new ScMyTableData(nCurrentSheet)); - pCurrentTab = & maTables.back(); - - size_t nTables = maTables.size(); - if (nTables > 1) - { - ScMyTableData& rFirstTab = maTables.front(); - - const sal_Int32 nCol = rFirstTab.GetColumn(); - const sal_Int32 nColCount = rFirstTab.GetColCount(); - const sal_Int32 nColsPerCol = rFirstTab.GetColsPerCol(nCol); - - sal_Int32 nSpannedCols = rFirstTab.GetSpannedCols(); - sal_Int32 nTemp = nSpannedCols - nColCount; - sal_Int32 nTemp2 = nCol - nColCount + 1; - if ((nTemp > 0) && (nTemp2 == 0)) - nTempSpannedCols *= nTemp + 1; - else - if (nColsPerCol > 1) - nTempSpannedCols *= nColsPerCol; - - sal_Int32 nToMerge; - if (nSpannedCols > nColCount) - nToMerge = rFirstTab.GetChangedCols(nCol, nCol + nColsPerCol + nSpannedCols - nColCount); - else - nToMerge = rFirstTab.GetChangedCols(nCol, nCol + nColsPerCol); - if (nToMerge > nCol) - nTempSpannedCols += nToMerge; - } - - pCurrentTab->SetSpannedCols(nTempSpannedCols); -} - void ScMyTables::UpdateRowHeights() { if (rImport.GetModel().is()) diff --git a/sc/source/filter/xml/xmlsubti.hxx b/sc/source/filter/xml/xmlsubti.hxx index edab1bd..8252f4c 100644 --- a/sc/source/filter/xml/xmlsubti.hxx +++ b/sc/source/filter/xml/xmlsubti.hxx @@ -155,7 +155,6 @@ public: void AddRow(); void SetRowStyle(const rtl::OUString& rCellStyleName); void AddColumn(bool bIsCovered); - void NewTable(sal_Int32 nTempSpannedCols); void UpdateRowHeights(); void FixupOLEs() { aFixupOLEs.FixupOLEs(); } bool IsOLE(com::sun::star::uno::Reference< com::sun::star::drawing::XShape >& rShape) const diff --git a/sc/source/filter/xml/xmltabi.cxx b/sc/source/filter/xml/xmltabi.cxx index 7add17f..7384e3b 100644 --- a/sc/source/filter/xml/xmltabi.cxx +++ b/sc/source/filter/xml/xmltabi.cxx @@ -155,9 +155,7 @@ ScXMLTableContext::ScXMLTableContext( ScXMLImport& rImport, sal_uInt16 nPrfx, const ::rtl::OUString& rLName, const ::com::sun::star::uno::Reference< - ::com::sun::star::xml::sax::XAttributeList>& xAttrList, - const bool bTempIsSubTable, - const sal_Int32 nSpannedCols) : + ::com::sun::star::xml::sax::XAttributeList>& xAttrList ) : SvXMLImportContext( rImport, nPrfx, rLName ), pExternalRefInfo(NULL), nStartOffset(-1), @@ -167,77 +165,70 @@ ScXMLTableContext::ScXMLTableContext( ScXMLImport& rImport, // get start offset in file (if available) nStartOffset = GetScImport().GetByteOffset(); - if (!bTempIsSubTable) + ScXMLTabProtectionData aProtectData; + rtl::OUString sName; + rtl::OUString sStyleName; + sal_Int16 nAttrCount(xAttrList.is() ? xAttrList->getLength() : 0); + const SvXMLTokenMap& rAttrTokenMap = GetScImport().GetTableAttrTokenMap(); + for( sal_Int16 i=0; i < nAttrCount; ++i ) { - ScXMLTabProtectionData aProtectData; - rtl::OUString sName; - rtl::OUString sStyleName; - sal_Int16 nAttrCount(xAttrList.is() ? xAttrList->getLength() : 0); - const SvXMLTokenMap& rAttrTokenMap = GetScImport().GetTableAttrTokenMap(); - for( sal_Int16 i=0; i < nAttrCount; ++i ) - { - const rtl::OUString& sAttrName(xAttrList->getNameByIndex( i )); - rtl::OUString aLocalName; - sal_uInt16 nPrefix(GetScImport().GetNamespaceMap().GetKeyByAttrName( - sAttrName, &aLocalName )); - const rtl::OUString& sValue(xAttrList->getValueByIndex( i )); + const rtl::OUString& sAttrName(xAttrList->getNameByIndex( i )); + rtl::OUString aLocalName; + sal_uInt16 nPrefix(GetScImport().GetNamespaceMap().GetKeyByAttrName( + sAttrName, &aLocalName )); + const rtl::OUString& sValue(xAttrList->getValueByIndex( i )); - switch( rAttrTokenMap.Get( nPrefix, aLocalName ) ) - { - case XML_TOK_TABLE_NAME: - sName = sValue; - break; - case XML_TOK_TABLE_STYLE_NAME: - sStyleName = sValue; - break; - case XML_TOK_TABLE_PROTECTED: - aProtectData.mbProtected = IsXMLToken(sValue, XML_TRUE); + switch( rAttrTokenMap.Get( nPrefix, aLocalName ) ) + { + case XML_TOK_TABLE_NAME: + sName = sValue; break; - case XML_TOK_TABLE_PRINT_RANGES: - sPrintRanges = sValue; - break; - case XML_TOK_TABLE_PASSWORD: - aProtectData.maPassword = sValue; + case XML_TOK_TABLE_STYLE_NAME: + sStyleName = sValue; break; - case XML_TOK_TABLE_PASSHASH: - aProtectData.meHash1 = ScPassHashHelper::getHashTypeFromURI(sValue); + case XML_TOK_TABLE_PROTECTED: + aProtectData.mbProtected = IsXMLToken(sValue, XML_TRUE); + break; + case XML_TOK_TABLE_PRINT_RANGES: + sPrintRanges = sValue; break; - case XML_TOK_TABLE_PASSHASH_2: - aProtectData.meHash2 = ScPassHashHelper::getHashTypeFromURI(sValue); + case XML_TOK_TABLE_PASSWORD: + aProtectData.maPassword = sValue; + break; + case XML_TOK_TABLE_PASSHASH: + aProtectData.meHash1 = ScPassHashHelper::getHashTypeFromURI(sValue); + break; + case XML_TOK_TABLE_PASSHASH_2: + aProtectData.meHash2 = ScPassHashHelper::getHashTypeFromURI(sValue); + break; + case XML_TOK_TABLE_PRINT: + { + if (IsXMLToken(sValue, XML_FALSE)) + bPrintEntireSheet = false; + } break; - case XML_TOK_TABLE_PRINT: - { - if (IsXMLToken(sValue, XML_FALSE)) - bPrintEntireSheet = false; - } - break; - } } + } - rtl::OUString aExtUrl, aExtTabName; - if (lcl_isExternalRefCache(sName, aExtUrl, aExtTabName)) - { - // This is an external ref cache table. - pExternalRefInfo.reset(new ScXMLExternalTabData); - pExternalRefInfo->maFileUrl = aExtUrl; - ScDocument* pDoc = GetScImport().GetDocument(); - if (pDoc) - { - ScExternalRefManager* pRefMgr = pDoc->GetExternalRefManager(); - pExternalRefInfo->mnFileId = pRefMgr->getExternalFileId(aExtUrl); - pExternalRefInfo->mpCacheTable = pRefMgr->getCacheTable(pExternalRefInfo->mnFileId, aExtTabName, true); - pExternalRefInfo->mpCacheTable->setWholeTableCached(); - } - } - else + rtl::OUString aExtUrl, aExtTabName; + if (lcl_isExternalRefCache(sName, aExtUrl, aExtTabName)) + { + // This is an external ref cache table. + pExternalRefInfo.reset(new ScXMLExternalTabData); + pExternalRefInfo->maFileUrl = aExtUrl; + ScDocument* pDoc = GetScImport().GetDocument(); + if (pDoc) { - // This is a regular table. - GetScImport().GetTables().NewSheet(sName, sStyleName, aProtectData); + ScExternalRefManager* pRefMgr = pDoc->GetExternalRefManager(); + pExternalRefInfo->mnFileId = pRefMgr->getExternalFileId(aExtUrl); + pExternalRefInfo->mpCacheTable = pRefMgr->getCacheTable(pExternalRefInfo->mnFileId, aExtTabName, true); + pExternalRefInfo->mpCacheTable->setWholeTableCached(); } } else { - GetScImport().GetTables().NewTable(nSpannedCols); + // This is a regular table. + GetScImport().GetTables().NewSheet(sName, sStyleName, aProtectData); } } diff --git a/sc/source/filter/xml/xmltabi.hxx b/sc/source/filter/xml/xmltabi.hxx index 8ccf841..8a55978 100644 --- a/sc/source/filter/xml/xmltabi.hxx +++ b/sc/source/filter/xml/xmltabi.hxx @@ -62,9 +62,7 @@ public: ScXMLTableContext( ScXMLImport& rImport, sal_uInt16 nPrfx, const ::rtl::OUString& rLName, const ::com::sun::star::uno::Reference< - ::com::sun::star::xml::sax::XAttributeList>& xAttrList, - const bool bTempIsSubTable = false, - const sal_Int32 nSpannedCols = 0); + ::com::sun::star::xml::sax::XAttributeList>& xAttrList ); virtual ~ScXMLTableContext(); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits