diff options
Diffstat (limited to 'sc/source')
-rw-r--r-- | sc/source/core/data/colorscale.cxx | 59 | ||||
-rw-r--r-- | sc/source/core/data/documen2.cxx | 4 | ||||
-rw-r--r-- | sc/source/core/data/documen4.cxx | 6 | ||||
-rw-r--r-- | sc/source/core/data/fillinfo.cxx | 6 | ||||
-rw-r--r-- | sc/source/core/data/table2.cxx | 10 | ||||
-rw-r--r-- | sc/source/filter/excel/xecontent.cxx | 11 |
6 files changed, 65 insertions, 31 deletions
diff --git a/sc/source/core/data/colorscale.cxx b/sc/source/core/data/colorscale.cxx index bad6a1495b65..1892a7562be8 100644 --- a/sc/source/core/data/colorscale.cxx +++ b/sc/source/core/data/colorscale.cxx @@ -120,21 +120,43 @@ const Color& ScColorScaleEntry::GetColor() const return maColor; } -ScColorScaleFormat::ScColorScaleFormat(ScDocument* pDoc): +ScColorFormat::ScColorFormat(ScDocument* pDoc): mpDoc(pDoc) { } -ScColorScaleFormat::ScColorScaleFormat(ScDocument* pDoc, const ScColorScaleFormat& rFormat): +ScColorFormat::ScColorFormat(ScDocument* pDoc, const ScColorFormat& rFormat): maRanges(rFormat.maRanges), mpDoc(pDoc) { +} + +ScColorFormat::~ScColorFormat() +{ +} + +ScColorScaleFormat::ScColorScaleFormat(ScDocument* pDoc): + ScColorFormat(pDoc) +{ +} + +ScColorScaleFormat::ScColorScaleFormat(ScDocument* pDoc, const ScColorScaleFormat& rFormat): + ScColorFormat(pDoc, rFormat) +{ for(const_iterator itr = rFormat.begin(); itr != rFormat.end(); ++itr) { maColorScales.push_back(new ScColorScaleEntry(pDoc, *itr)); } } +ScColorFormat* ScColorScaleFormat::Clone(ScDocument* pDoc) const +{ + return new ScColorScaleFormat(pDoc, *this); +} + +ScColorScaleFormat::~ScColorScaleFormat() +{ +} void ScColorScaleFormat::AddEntry( ScColorScaleEntry* pEntry ) { @@ -292,12 +314,12 @@ void ScColorScaleFormat::calcMinMax(double& rMin, double& rMax) const rMax = GetMaxValue(); } -void ScColorScaleFormat::SetRange(const ScRangeList& rList) +void ScColorFormat::SetRange(const ScRangeList& rList) { maRanges = rList; } -const ScRangeList& ScColorScaleFormat::GetRange() const +const ScRangeList& ScColorFormat::GetRange() const { return maRanges; } @@ -485,6 +507,11 @@ void ScColorScaleFormat::DataChanged(const ScRange& rRange) } } +ScColorFormatType ScColorScaleFormat::GetType() const +{ + return COLORSCALE; +} + ScColorScaleFormat::iterator ScColorScaleFormat::begin() { return maColorScales.begin(); @@ -505,21 +532,21 @@ ScColorScaleFormat::const_iterator ScColorScaleFormat::end() const return maColorScales.end(); } -ScColorScaleFormatList::ScColorScaleFormatList(ScDocument* pDoc, const ScColorScaleFormatList& rList) +ScColorFormatList::ScColorFormatList(ScDocument* pDoc, const ScColorFormatList& rList) { for(const_iterator itr = rList.begin(); itr != rList.end(); ++itr) { - maColorScaleFormats.push_back(new ScColorScaleFormat(pDoc, *itr)); + maColorScaleFormats.push_back(itr->Clone(pDoc)); } } -void ScColorScaleFormatList::AddFormat( ScColorScaleFormat* pFormat ) +void ScColorFormatList::AddFormat( ScColorFormat* pFormat ) { maColorScaleFormats.push_back( pFormat ); } // attention nFormat is 1 based, 0 is reserved for no format -ScColorScaleFormat* ScColorScaleFormatList::GetFormat(sal_uInt32 nFormat) +ScColorFormat* ScColorFormatList::GetFormat(sal_uInt32 nFormat) { if( nFormat > size() || !nFormat ) return NULL; @@ -527,32 +554,32 @@ ScColorScaleFormat* ScColorScaleFormatList::GetFormat(sal_uInt32 nFormat) return &maColorScaleFormats[nFormat-1]; } -ScColorScaleFormatList::iterator ScColorScaleFormatList::begin() +ScColorFormatList::iterator ScColorFormatList::begin() { return maColorScaleFormats.begin(); } -ScColorScaleFormatList::const_iterator ScColorScaleFormatList::begin() const +ScColorFormatList::const_iterator ScColorFormatList::begin() const { return maColorScaleFormats.begin(); } -ScColorScaleFormatList::iterator ScColorScaleFormatList::end() +ScColorFormatList::iterator ScColorFormatList::end() { return maColorScaleFormats.end(); } -ScColorScaleFormatList::const_iterator ScColorScaleFormatList::end() const +ScColorFormatList::const_iterator ScColorFormatList::end() const { return maColorScaleFormats.end(); } -size_t ScColorScaleFormatList::size() const +size_t ScColorFormatList::size() const { return maColorScaleFormats.size(); } -void ScColorScaleFormatList::DataChanged(const ScRange& rRange) +void ScColorFormatList::DataChanged(const ScRange& rRange) { for(iterator itr = begin(); itr != end(); ++itr) { @@ -560,7 +587,7 @@ void ScColorScaleFormatList::DataChanged(const ScRange& rRange) } } -void ScColorScaleFormatList::UpdateMoveTab(SCTAB nOldTab, SCTAB nNewTab) +void ScColorFormatList::UpdateMoveTab(SCTAB nOldTab, SCTAB nNewTab) { for(iterator itr = begin(); itr != end(); ++itr) { @@ -568,7 +595,7 @@ void ScColorScaleFormatList::UpdateMoveTab(SCTAB nOldTab, SCTAB nNewTab) } } -void ScColorScaleFormatList::UpdateReference( UpdateRefMode eUpdateRefMode, +void ScColorFormatList::UpdateReference( UpdateRefMode eUpdateRefMode, const ScRange& rRange, SCsCOL nDx, SCsROW nDy, SCsTAB nDz ) { for(iterator itr = begin(); itr != end(); ++itr) diff --git a/sc/source/core/data/documen2.cxx b/sc/source/core/data/documen2.cxx index 87ad7d41b6b5..0135892d8ad7 100644 --- a/sc/source/core/data/documen2.cxx +++ b/sc/source/core/data/documen2.cxx @@ -476,9 +476,9 @@ void ScDocument::InitClipPtrs( ScDocument* pSourceDoc ) if ( pSourceCond ) pCondFormList = new ScConditionalFormatList(this, *pSourceCond); - const ScColorScaleFormatList* pSourceColorScaleList = pSourceDoc->mpColorScaleList.get(); + const ScColorFormatList* pSourceColorScaleList = pSourceDoc->mpColorScaleList.get(); if ( pSourceColorScaleList ) - mpColorScaleList.reset(new ScColorScaleFormatList(this, *pSourceColorScaleList)); + mpColorScaleList.reset(new ScColorFormatList(this, *pSourceColorScaleList)); const ScValidationDataList* pSourceValid = pSourceDoc->pValidationList; if ( pSourceValid ) diff --git a/sc/source/core/data/documen4.cxx b/sc/source/core/data/documen4.cxx index cae947303aef..76d3773c2b8b 100644 --- a/sc/source/core/data/documen4.cxx +++ b/sc/source/core/data/documen4.cxx @@ -628,12 +628,12 @@ sal_uLong ScDocument::AddCondFormat( const ScConditionalFormat& rNew ) return nNewKey; } -const ScColorScaleFormatList* ScDocument::GetColorScaleList() const +const ScColorFormatList* ScDocument::GetColorScaleList() const { return mpColorScaleList.get(); } -ScColorScaleFormatList* ScDocument::GetColorScaleList() +ScColorFormatList* ScDocument::GetColorScaleList() { return mpColorScaleList.get(); } @@ -646,7 +646,7 @@ sal_uLong ScDocument::AddColorScaleFormat( ScColorScaleFormat* pNew ) return 0; if(!mpColorScaleList) - mpColorScaleList.reset(new ScColorScaleFormatList()); + mpColorScaleList.reset(new ScColorFormatList()); mpColorScaleList->AddFormat( pNew ); diff --git a/sc/source/core/data/fillinfo.cxx b/sc/source/core/data/fillinfo.cxx index 9d7fc2f9972d..4b227b0720a2 100644 --- a/sc/source/core/data/fillinfo.cxx +++ b/sc/source/core/data/fillinfo.cxx @@ -489,7 +489,11 @@ void ScDocument::FillInfo( ScTableInfo& rTabInfo, SCCOL nX1, SCROW nY1, SCCOL nX const ScColorScaleFormat* pColorScale = NULL; if ( nColorScale && mpColorScaleList ) - pColorScale = mpColorScaleList->GetFormat( nColorScale ); + { + ScColorFormat* pFormat = mpColorScaleList->GetFormat( nColorScale ); + if(pFormat->GetType() == COLORSCALE) + pColorScale = static_cast<ScColorScaleFormat*>(pFormat); + } do { diff --git a/sc/source/core/data/table2.cxx b/sc/source/core/data/table2.cxx index 9674c2ad1955..09a171f03b9c 100644 --- a/sc/source/core/data/table2.cxx +++ b/sc/source/core/data/table2.cxx @@ -702,8 +702,8 @@ void ScTable::CopyColorScales( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow std::map<sal_Int32, sal_Int32> aOldIdToNewId; std::map<sal_Int32, ScRangeList> aIdToRange; - ScColorScaleFormatList* pColorScaleList = pDocument->GetColorScaleList(); - ScColorScaleFormatList* pOldColorScaleList = pTable->pDocument->GetColorScaleList(); + ScColorFormatList* pColorScaleList = pDocument->GetColorScaleList(); + ScColorFormatList* pOldColorScaleList = pTable->pDocument->GetColorScaleList(); for(SCCOL i = nCol1; i <= nCol2; ++i) { ScAttrIterator* pIter = aCol[i-nDx].CreateAttrIterator( nRow1-nDy, nRow2-nDy ); @@ -714,8 +714,8 @@ void ScTable::CopyColorScales( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow { if (aOldIdToNewId.find(nId) == aOldIdToNewId.end()) { - ScColorScaleFormat* pFormat = pOldColorScaleList->GetFormat(nId); - ScColorScaleFormat* pNewFormat = new ScColorScaleFormat(pDocument, *pFormat); + ScColorFormat* pFormat = pOldColorScaleList->GetFormat(nId); + ScColorFormat* pNewFormat = pFormat->Clone(pDocument); sal_Int32 nNewId = pColorScaleList->size() + 1; //not in list => create entries in both maps and new format pColorScaleList->AddFormat(pNewFormat); @@ -731,7 +731,7 @@ void ScTable::CopyColorScales( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow itr != aIdToRange.end(); ++itr) { sal_uInt32 nNewKey = aOldIdToNewId.find(itr->first)->second; - ScColorScaleFormat* pFormat = pColorScaleList->GetFormat( nNewKey ); + ScColorFormat* pFormat = pColorScaleList->GetFormat( nNewKey ); pFormat->UpdateReference(URM_MOVE, ScRange(nCol1 - nDx, nRow1 - nDy, pTable->nTab, nCol2 - nDx, nRow2 - nDy, pTable->nTab), nDx, nDy, pTable->nTab - nTab); pFormat->SetRange(itr->second); diff --git a/sc/source/filter/excel/xecontent.cxx b/sc/source/filter/excel/xecontent.cxx index 968aab2f9601..9f42dcb68b7e 100644 --- a/sc/source/filter/excel/xecontent.cxx +++ b/sc/source/filter/excel/xecontent.cxx @@ -1084,16 +1084,19 @@ XclExpCondFormatBuffer::XclExpCondFormatBuffer( const XclExpRoot& rRoot ) : maCondfmtList.AppendRecord( xCondfmtRec ); } } - if( const ScColorScaleFormatList* pColorScaleList = GetDoc().GetColorScaleList() ) + if( const ScColorFormatList* pColorScaleList = GetDoc().GetColorScaleList() ) { - for( ScColorScaleFormatList::const_iterator itr = pColorScaleList->begin(); + for( ScColorFormatList::const_iterator itr = pColorScaleList->begin(); itr != pColorScaleList->end(); ++itr) { const ScRangeList& rList = itr->GetRange(); if (rList.front()->aStart.Tab() == GetCurrScTab()) { - XclExpColorScaleList::RecordRefType xColorScaleRec( new XclExpColorScale( GetRoot(), *itr ) ); - maColorScaleList.AppendRecord( xColorScaleRec ); + if(itr->GetType() == COLORSCALE) + { + XclExpColorScaleList::RecordRefType xColorScaleRec( new XclExpColorScale( GetRoot(), static_cast<const ScColorScaleFormat&>(*itr) ) ); + maColorScaleList.AppendRecord( xColorScaleRec ); + } } } } |