diff options
Diffstat (limited to 'sc/source')
-rw-r--r-- | sc/source/filter/xml/XMLExportIterator.cxx | 40 | ||||
-rw-r--r-- | sc/source/filter/xml/xmlexprt.cxx | 15 |
2 files changed, 23 insertions, 32 deletions
diff --git a/sc/source/filter/xml/XMLExportIterator.cxx b/sc/source/filter/xml/XMLExportIterator.cxx index cfbbe540f88d..1662db73621f 100644 --- a/sc/source/filter/xml/XMLExportIterator.cxx +++ b/sc/source/filter/xml/XMLExportIterator.cxx @@ -861,33 +861,21 @@ bool ScMyNotEmptyCellsIterator::GetNext(ScMyCell& aCell, ScFormatRangeStyles* pC table::CellAddress aAddress( nCurrentTable, MAXCOL + 1, MAXROW + 1 ); UpdateAddress( aAddress ); - if( (maNoteExportListItr != maNoteExportList.end()) && IsNoteBeforeNextCell(maNoteExportListItr->nCol, maNoteExportListItr->nRow, aAddress) ) - { - //we have a note before the new cell - aAddress.Column = maNoteExportListItr->nCol; - aAddress.Row = maNoteExportListItr->nRow; - ++maNoteExportListItr; - } - else - { - if(maNoteExportListItr != maNoteExportList.end() && maNoteExportListItr->nCol == aAddress.Column && maNoteExportListItr->nRow == aAddress.Row) - ++maNoteExportListItr; - if( pShapes ) - pShapes->UpdateAddress( aAddress ); - if( pNoteShapes ) - pNoteShapes->UpdateAddress( aAddress ); - if( pEmptyDatabaseRanges ) - pEmptyDatabaseRanges->UpdateAddress( aAddress ); - if( pMergedRanges ) - pMergedRanges->UpdateAddress( aAddress ); - if( pAreaLinks ) - pAreaLinks->UpdateAddress( aAddress ); - if( pDetectiveObj ) - pDetectiveObj->UpdateAddress( aAddress ); - if( pDetectiveOp ) - pDetectiveOp->UpdateAddress( aAddress ); - } + if( pShapes ) + pShapes->UpdateAddress( aAddress ); + if( pNoteShapes ) + pNoteShapes->UpdateAddress( aAddress ); + if( pEmptyDatabaseRanges ) + pEmptyDatabaseRanges->UpdateAddress( aAddress ); + if( pMergedRanges ) + pMergedRanges->UpdateAddress( aAddress ); + if( pAreaLinks ) + pAreaLinks->UpdateAddress( aAddress ); + if( pDetectiveObj ) + pDetectiveObj->UpdateAddress( aAddress ); + if( pDetectiveOp ) + pDetectiveOp->UpdateAddress( aAddress ); bool bFoundCell((aAddress.Column <= MAXCOL) && (aAddress.Row <= MAXROW)); if( bFoundCell ) diff --git a/sc/source/filter/xml/xmlexprt.cxx b/sc/source/filter/xml/xmlexprt.cxx index b599e6e6328d..3882e2f2baa9 100644 --- a/sc/source/filter/xml/xmlexprt.cxx +++ b/sc/source/filter/xml/xmlexprt.cxx @@ -2531,13 +2531,16 @@ void ScXMLExport::CollectInternalShape( uno::Reference< drawing::XShape > xShape // collect note caption objects from all layers (internal or hidden) if( ScDrawObjData* pCaptData = ScDrawLayer::GetNoteCaptionData( pObject, static_cast< SCTAB >( nCurrentTable ) ) ) { - pSharedData->AddNoteObj( xShape, pCaptData->maStart ); + if(pDoc->GetNotes(nCurrentTable)->findByAddress(pCaptData->maStart)) + { + pSharedData->AddNoteObj( xShape, pCaptData->maStart ); - // #i60851# When the file is saved while editing a new note, - // the cell is still empty -> last column/row must be updated - OSL_ENSURE( pCaptData->maStart.Tab() == nCurrentTable, "invalid table in object data" ); - pSharedData->SetLastColumn( nCurrentTable, pCaptData->maStart.Col() ); - pSharedData->SetLastRow( nCurrentTable, pCaptData->maStart.Row() ); + // #i60851# When the file is saved while editing a new note, + // the cell is still empty -> last column/row must be updated + OSL_ENSURE( pCaptData->maStart.Tab() == nCurrentTable, "invalid table in object data" ); + pSharedData->SetLastColumn( nCurrentTable, pCaptData->maStart.Col() ); + pSharedData->SetLastRow( nCurrentTable, pCaptData->maStart.Row() ); + } } // other objects from internal layer only (detective) else if( pObject->GetLayer() == SC_LAYER_INTERN ) |