[Libreoffice-commits] core.git: 2 commits - sc/inc sc/source
Kohei Yoshida
kohei.yoshida at collabora.com
Tue Apr 15 08:15:57 PDT 2014
sc/inc/cellsuno.hxx | 2 -
sc/source/filter/xml/XMLExportIterator.cxx | 22 +++-----------
sc/source/filter/xml/xmlexprt.cxx | 43 +++++++++------------------
sc/source/ui/unoobj/cellsuno.cxx | 45 ++++-------------------------
4 files changed, 28 insertions(+), 84 deletions(-)
New commits:
commit 7963e79361278c14ddf98ac4d9ab3b6cab338129
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date: Tue Apr 15 11:13:05 2014 -0400
Remove this duplicate, and use the one in ScCellFormat.
Change-Id: I2410c8805ef5be950d5ce1e24f845ed910615442
diff --git a/sc/inc/cellsuno.hxx b/sc/inc/cellsuno.hxx
index 27eb295..c85bf55 100644
--- a/sc/inc/cellsuno.hxx
+++ b/sc/inc/cellsuno.hxx
@@ -1010,8 +1010,6 @@ public:
virtual void SAL_CALL setActionLocks( sal_Int16 nLock )
throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
virtual sal_Int16 SAL_CALL resetActionLocks() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
-
- static OUString GetOutputString_Impl(ScDocument* pDoc, const ScAddress& aPos);
};
diff --git a/sc/source/ui/unoobj/cellsuno.cxx b/sc/source/ui/unoobj/cellsuno.cxx
index fbde9f9..1e2a1dc 100644
--- a/sc/source/ui/unoobj/cellsuno.cxx
+++ b/sc/source/ui/unoobj/cellsuno.cxx
@@ -6149,49 +6149,18 @@ OUString ScCellObj::GetInputString_Impl(bool bEnglish) const // fuer getFor
return OUString();
}
-OUString ScCellObj::GetOutputString_Impl(ScDocument* pDoc, const ScAddress& aCellPos)
-{
- if (!pDoc)
- return EMPTY_OUSTRING;
-
- ScRefCellValue aCell;
- aCell.assign(*pDoc, aCellPos);
-
- if (aCell.isEmpty())
- return EMPTY_OUSTRING;
-
- OUString aVal;
-
- if (aCell.meType == CELLTYPE_EDIT)
- {
- // GetString an der EditCell macht Leerzeichen aus Umbruechen,
- // hier werden die Umbrueche aber gebraucht
- const EditTextObject* pData = aCell.mpEditText;
- if (pData)
- {
- EditEngine& rEngine = pDoc->GetEditEngine();
- rEngine.SetText(*pData);
- aVal = rEngine.GetText(LINEEND_LF);
- }
- // Edit-Zellen auch nicht per NumberFormatter formatieren
- // (passend zur Ausgabe)
- }
- else
- {
- // wie in GetString am Dokument (column)
- Color* pColor;
- sal_uLong nNumFmt = pDoc->GetNumberFormat( aCellPos );
- aVal = ScCellFormat::GetString(*pDoc, aCellPos, nNumFmt, &pColor, *pDoc->GetFormatTable());
- }
- return aVal;
-}
-
OUString ScCellObj::GetOutputString_Impl() const
{
ScDocShell* pDocSh = GetDocShell();
OUString aVal;
if ( pDocSh )
- aVal = GetOutputString_Impl(pDocSh->GetDocument(), aCellPos);
+ {
+ ScDocument* pDoc = pDocSh->GetDocument();
+ ScRefCellValue aCell;
+ aCell.assign(*pDoc, aCellPos);
+
+ aVal = ScCellFormat::GetOutputString(*pDoc, aCellPos, aCell);
+ }
return aVal;
}
commit fec4ab14c0f5e0223559e9fd98d7c8d90e58cd18
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date: Tue Apr 15 11:00:15 2014 -0400
Avoid unnecessarily converting UNO cell address to ScAddress.
Change-Id: I69849b0a16cb353257f9fc1890a27595cd1b7b7b
diff --git a/sc/source/filter/xml/XMLExportIterator.cxx b/sc/source/filter/xml/XMLExportIterator.cxx
index ff0b419..729ca41 100644
--- a/sc/source/filter/xml/XMLExportIterator.cxx
+++ b/sc/source/filter/xml/XMLExportIterator.cxx
@@ -94,12 +94,10 @@ bool ScMyShapesContainer::GetFirstAddress( table::CellAddress& rCellAddress )
void ScMyShapesContainer::SetCellData( ScMyCell& rMyCell )
{
rMyCell.aShapeList.clear();
- ScAddress aAddress;
- ScUnoConversion::FillScAddress( aAddress, rMyCell.aCellAddress );
ScMyShapeList::iterator aItr(aShapeList.begin());
ScMyShapeList::iterator aEndItr(aShapeList.end());
- while( (aItr != aEndItr) && (aItr->aAddress == aAddress) )
+ while( (aItr != aEndItr) && (aItr->aAddress == rMyCell.maCellAddress) )
{
rMyCell.aShapeList.push_back(*aItr);
aItr = aShapeList.erase(aItr);
@@ -156,11 +154,8 @@ bool ScMyNoteShapesContainer::GetFirstAddress( table::CellAddress& rCellAddress
void ScMyNoteShapesContainer::SetCellData( ScMyCell& rMyCell )
{
- ScAddress aAddress;
- ScUnoConversion::FillScAddress( aAddress, rMyCell.aCellAddress );
-
ScMyNoteShapeList::iterator aItr = aNoteShapeList.begin();
- while( (aItr != aNoteShapeList.end()) && (aItr->aPos == aAddress) )
+ while( (aItr != aNoteShapeList.end()) && (aItr->aPos == rMyCell.maCellAddress) )
{
aItr = aNoteShapeList.erase(aItr);
}
@@ -659,8 +654,6 @@ void ScMyNotEmptyCellsIterator::SetCellData( ScMyCell& rMyCell, const table::Cel
bool bIsMatrixBase = false;
- ScAddress aScAddress;
- ScUnoConversion::FillScAddress( aScAddress, rMyCell.aCellAddress );
switch (rMyCell.maBaseCell.meType)
{
case CELLTYPE_VALUE:
@@ -678,7 +671,7 @@ void ScMyNotEmptyCellsIterator::SetCellData( ScMyCell& rMyCell, const table::Cel
}
if (rMyCell.maBaseCell.meType == CELLTYPE_FORMULA)
- if( rExport.IsMatrix( aScAddress, rMyCell.aMatrixRange, bIsMatrixBase ) )
+ if (rExport.IsMatrix(rMyCell.maCellAddress, rMyCell.aMatrixRange, bIsMatrixBase))
{
rMyCell.bIsMatrixBase = bIsMatrixBase;
rMyCell.bIsMatrixCovered = !bIsMatrixBase;
@@ -688,10 +681,7 @@ void ScMyNotEmptyCellsIterator::SetCellData( ScMyCell& rMyCell, const table::Cel
void ScMyNotEmptyCellsIterator::HasAnnotation(ScMyCell& aCell)
{
aCell.bHasAnnotation = false;
- ScAddress aAddress;
- ScUnoConversion::FillScAddress( aAddress, aCell.aCellAddress );
-
- ScPostIt* pNote = rExport.GetDocument()->GetNote(aAddress);
+ ScPostIt* pNote = rExport.GetDocument()->GetNote(aCell.maCellAddress);
if(pNote)
{
@@ -787,8 +777,8 @@ bool ScMyNotEmptyCellsIterator::GetNext(ScMyCell& aCell, ScFormatRangeStyles* pC
bool bIsAutoStyle;
// Ranges before the previous cell are not needed by ExportFormatRanges anymore and can be removed
sal_Int32 nRemoveBeforeRow = aLastAddress.Row;
- aCell.nStyleIndex = pCellStyles->GetStyleNameIndex(aCell.aCellAddress.Sheet,
- aCell.aCellAddress.Column, aCell.aCellAddress.Row,
+ aCell.nStyleIndex = pCellStyles->GetStyleNameIndex(aCell.maCellAddress.Tab(),
+ aCell.maCellAddress.Col(), aCell.maCellAddress.Row(),
bIsAutoStyle, aCell.nValidationIndex, aCell.nNumberFormat, nRemoveBeforeRow);
aLastAddress = aCell.aCellAddress;
aCell.bIsAutoStyle = bIsAutoStyle;
diff --git a/sc/source/filter/xml/xmlexprt.cxx b/sc/source/filter/xml/xmlexprt.cxx
index 2603d05..ea2f883 100644
--- a/sc/source/filter/xml/xmlexprt.cxx
+++ b/sc/source/filter/xml/xmlexprt.cxx
@@ -2950,14 +2950,14 @@ void ScXMLExport::WriteTable(sal_Int32 nTable, const Reference<sheet::XSpreadshe
{
if (bIsFirst)
{
- ExportFormatRanges(0, 0, aCell.aCellAddress.Column - 1, aCell.aCellAddress.Row, nTable);
+ ExportFormatRanges(0, 0, aCell.maCellAddress.Col()-1, aCell.maCellAddress.Row(), nTable);
aPrevCell = aCell;
bIsFirst = false;
}
else
{
- if ((aPrevCell.aCellAddress.Row == aCell.aCellAddress.Row) &&
- (aPrevCell.aCellAddress.Column + nEqualCells + 1 == aCell.aCellAddress.Column))
+ if ((aPrevCell.maCellAddress.Row() == aCell.maCellAddress.Row()) &&
+ (aPrevCell.maCellAddress.Col() + nEqualCells + 1 == aCell.maCellAddress.Col()))
{
if(IsCellEqual(aPrevCell, aCell))
++nEqualCells;
@@ -2971,8 +2971,8 @@ void ScXMLExport::WriteTable(sal_Int32 nTable, const Reference<sheet::XSpreadshe
else
{
WriteCell(aPrevCell, nEqualCells);
- ExportFormatRanges(aPrevCell.aCellAddress.Column + nEqualCells + 1, aPrevCell.aCellAddress.Row,
- aCell.aCellAddress.Column - 1, aCell.aCellAddress.Row, nTable);
+ ExportFormatRanges(aPrevCell.maCellAddress.Col() + nEqualCells + 1, aPrevCell.maCellAddress.Row(),
+ aCell.maCellAddress.Col()-1, aCell.maCellAddress.Row(), nTable);
nEqualCells = 0;
aPrevCell = aCell;
}
@@ -2981,7 +2981,7 @@ void ScXMLExport::WriteTable(sal_Int32 nTable, const Reference<sheet::XSpreadshe
if (!bIsFirst)
{
WriteCell(aPrevCell, nEqualCells);
- ExportFormatRanges(aPrevCell.aCellAddress.Column + nEqualCells + 1, aPrevCell.aCellAddress.Row,
+ ExportFormatRanges(aPrevCell.maCellAddress.Col() + nEqualCells + 1, aPrevCell.maCellAddress.Row(),
pSharedData->GetLastColumn(nTable), pSharedData->GetLastRow(nTable), nTable);
}
else
@@ -3133,8 +3133,6 @@ void ScXMLExport::WriteCell(ScMyCell& aCell, sal_Int32 nEqualCellCount)
// nEqualCellCount is the number of additional cells
SetRepeatAttribute(nEqualCellCount, (aCell.nType != table::CellContentType_EMPTY));
- ScAddress aCellPos;
- ScUnoConversion::FillScAddress( aCellPos, aCell.aCellAddress );
if (aCell.nStyleIndex != -1)
AddAttribute(sAttrStyleName, *pCellStyles->GetStyleNameByIndex(aCell.nStyleIndex, aCell.bIsAutoStyle));
if (aCell.nValidationIndex > -1)
@@ -3171,7 +3169,7 @@ void ScXMLExport::WriteCell(ScMyCell& aCell, sal_Int32 nEqualCellCount)
break;
case table::CellContentType_TEXT :
{
- OUString sFormattedString(lcl_GetFormattedString(pDoc, aCellPos));
+ OUString sFormattedString(lcl_GetFormattedString(pDoc, aCell.maCellAddress));
OUString sCellString = aCell.maBaseCell.getString(pDoc);
GetNumberFormatAttributesExportHelper()->SetNumberFormatAttributes(
sCellString, sFormattedString, true, true);
@@ -3224,11 +3222,11 @@ void ScXMLExport::WriteCell(ScMyCell& aCell, sal_Int32 nEqualCellCount)
if (pDoc)
{
GetNumberFormatAttributesExportHelper()->SetNumberFormatAttributes(
- aCell.nNumberFormat, pDoc->GetValue( aCellPos ));
+ aCell.nNumberFormat, pDoc->GetValue(aCell.maCellAddress));
if( getDefaultVersion() >= SvtSaveOptions::ODFVER_012 )
{
GetNumberFormatAttributesExportHelper()->SetNumberFormatAttributes(
- aCell.nNumberFormat, pDoc->GetValue( aCellPos ), false, XML_NAMESPACE_CALC_EXT, false );
+ aCell.nNumberFormat, pDoc->GetValue(aCell.maCellAddress), false, XML_NAMESPACE_CALC_EXT, false );
}
}
}
@@ -3507,9 +3505,9 @@ void ScXMLExport::WriteShapes(const ScMyCell& rMyCell)
if( rMyCell.bHasShape && !rMyCell.aShapeList.empty() && pDoc )
{
awt::Point aPoint;
- Rectangle aRect = pDoc->GetMMRect(static_cast<SCCOL>(rMyCell.aCellAddress.Column), static_cast<SCROW>(rMyCell.aCellAddress.Row),
- static_cast<SCCOL>(rMyCell.aCellAddress.Column), static_cast<SCROW>(rMyCell.aCellAddress.Row), static_cast<SCTAB>(rMyCell.aCellAddress.Sheet));
- bool bNegativePage(pDoc->IsNegativePage(rMyCell.aCellAddress.Sheet));
+ Rectangle aRect = pDoc->GetMMRect(rMyCell.maCellAddress.Col(), rMyCell.maCellAddress.Row(),
+ rMyCell.maCellAddress.Col(), rMyCell.maCellAddress.Row(), rMyCell.maCellAddress.Tab());
+ bool bNegativePage = pDoc->IsNegativePage(rMyCell.maCellAddress.Tab());
if (bNegativePage)
aPoint.X = aRect.Right();
else
@@ -3600,9 +3598,6 @@ void ScXMLExport::WriteAreaLink( const ScMyCell& rMyCell )
void ScXMLExport::exportAnnotationMeta( const uno::Reference < drawing::XShape >& xShape)
{
- ScAddress aCellPos;
- ScUnoConversion::FillScAddress( aCellPos, pCurrentCell->aCellAddress );
-
ScPostIt* pNote = pCurrentCell->pNote;
if (pNote)
@@ -3610,7 +3605,7 @@ void ScXMLExport::exportAnnotationMeta( const uno::Reference < drawing::XShape >
// TODO : notes
//is it still usefull, as this call back is only called from ScXMLExport::WriteAnnotation
// and should be in sync with pCurrentCell
- SdrCaptionObj* pNoteCaption = pNote->GetOrCreateCaption(aCellPos);
+ SdrCaptionObj* pNoteCaption = pNote->GetOrCreateCaption(pCurrentCell->maCellAddress);
Reference<drawing::XShape> xCurrentShape( pNoteCaption->getUnoShape(), uno::UNO_QUERY );
if (xCurrentShape.get()!=xShape.get())
return;
@@ -3659,11 +3654,7 @@ void ScXMLExport::exportAnnotationMeta( const uno::Reference < drawing::XShape >
void ScXMLExport::WriteAnnotation(ScMyCell& rMyCell)
{
-
- ScAddress aCellPos;
- ScUnoConversion::FillScAddress( aCellPos, rMyCell.aCellAddress );
-
- ScPostIt* pNote = pDoc->GetNote(aCellPos);
+ ScPostIt* pNote = pDoc->GetNote(rMyCell.maCellAddress);
if (pNote)
{
if (pNote->IsCaptionShown())
@@ -3671,7 +3662,7 @@ void ScXMLExport::WriteAnnotation(ScMyCell& rMyCell)
pCurrentCell = &rMyCell;
- SdrCaptionObj* pNoteCaption = pNote->GetOrCreateCaption(aCellPos);
+ SdrCaptionObj* pNoteCaption = pNote->GetOrCreateCaption(rMyCell.maCellAddress);
Reference<drawing::XShape> xShape( pNoteCaption->getUnoShape(), uno::UNO_QUERY );
GetShapeExport()->exportShape(xShape, SEF_DEFAULT|SEF_EXPORT_ANNOTATION, NULL);
@@ -3756,10 +3747,6 @@ bool ScXMLExport::IsEditCell(ScMyCell& rCell) const
bool ScXMLExport::IsCellEqual (ScMyCell& aCell1, ScMyCell& aCell2)
{
- ScAddress aCellPos1;
- ScUnoConversion::FillScAddress( aCellPos1, aCell1.aCellAddress );
- ScAddress aCellPos2;
- ScUnoConversion::FillScAddress( aCellPos2, aCell2.aCellAddress );
bool bIsEqual = false;
if( !aCell1.bIsMergedBase && !aCell2.bIsMergedBase &&
aCell1.bIsCovered == aCell2.bIsCovered &&
More information about the Libreoffice-commits
mailing list