sc/source/core/data/column.cxx | 89 ++++++++++----------- sc/source/core/data/column2.cxx | 163 +++++++++++++++++++--------------------- 2 files changed, 123 insertions(+), 129 deletions(-)
New commits: commit f60708de8a73cb716cc73e95ded7b0032a47be72 Author: Eric Seynaeve <git...@nosperse.com> Date: Tue Feb 5 22:08:36 2013 +0100 Translated german comments Change-Id: I9ee25faa57397ec2d0e7e9bb77aabade4404e32d diff --git a/sc/source/core/data/column2.cxx b/sc/source/core/data/column2.cxx index 5f30ebd..21f7784 100644 --- a/sc/source/core/data/column2.cxx +++ b/sc/source/core/data/column2.cxx @@ -74,7 +74,7 @@ inline bool IsAmbiguousScript( sal_uInt8 nScript ) // ----------------------------------------------------------------------------------------- // -// Datei-Operationen +// Data operations // // ----------------------------------------------------------------------------------------- @@ -95,8 +95,8 @@ long ScColumn::GetNeededSize( if (!pPattern) pPattern = pAttrArray->GetPattern( nRow ); - // zusammengefasst? - // Merge nicht in bedingter Formatierung + // merged? + // Do not merge in conditional formatting const ScMergeAttr* pMerge = (const ScMergeAttr*)&pPattern->GetItem(ATTR_MERGE); const ScMergeFlagAttr* pFlag = (const ScMergeFlagAttr*)&pPattern->GetItem(ATTR_MERGE_FLAG); @@ -116,10 +116,10 @@ long ScColumn::GetNeededSize( return 0; } - // bedingte Formatierung + // conditional formatting const SfxItemSet* pCondSet = pDocument->GetCondResult( nCol, nRow, nTab ); - // Zeilenumbruch? + // line break? const SfxPoolItem* pCondItem; SvxCellHorJustify eHorJust; @@ -179,7 +179,7 @@ long ScColumn::GetNeededSize( pPattern->GetItem(ATTR_ROTATE_MODE)).GetValue(); if ( nRotate == 18000 ) - eRotMode = SVX_ROTATE_MODE_STANDARD; // keinen Ueberlauf + eRotMode = SVX_ROTATE_MODE_STANDARD; // no overflow } } @@ -229,7 +229,7 @@ long ScColumn::GetNeededSize( IsAmbiguousScript( nScript ) || ((eCellType == CELLTYPE_FORMULA) && ((ScFormulaCell*)pCell)->IsMultilineResult()) ); - if (!bEditEngine) // direkte Ausgabe + if (!bEditEngine) // direct output { Color* pColor; rtl::OUString aValStr; @@ -238,7 +238,7 @@ long ScColumn::GetNeededSize( true, rOptions.bFormula, ftCheck ); if (!aValStr.isEmpty()) { - // SetFont ist nach oben verschoben + // SetFont is moved up Size aSize( pDev->GetTextWidth( aValStr ), pDev->GetTextHeight() ); if ( eOrient != SVX_ORIENTATION_STANDARD ) @@ -249,9 +249,9 @@ long ScColumn::GetNeededSize( } else if ( nRotate ) { - //! unterschiedliche Skalierung X/Y beruecksichtigen + //! take different X/Y scaling into consideration - double nRealOrient = nRotate * F_PI18000; // nRotate sind 1/100 Grad + double nRealOrient = nRotate * F_PI18000; // nRotate is in 1/100 Grad double nCosAbs = fabs( cos( nRealOrient ) ); double nSinAbs = fabs( sin( nRealOrient ) ); long nHeight = (long)( aSize.Height() * nCosAbs + aSize.Width() * nSinAbs ); @@ -262,14 +262,14 @@ long ScColumn::GetNeededSize( { nWidth = (long) ( pDocument->GetColWidth( nCol,nTab ) * nPPT ); bAddMargin = false; - // nur nach rechts: - //! unterscheiden nach Ausrichtung oben/unten (nur Text/ganze Hoehe) + // only to the right: + //! differ on direction up/down (only Text/whole height) if ( pPattern->GetRotateDir( pCondSet ) == SC_ROTDIR_RIGHT ) nWidth += (long)( pDocument->GetRowHeight( nRow,nTab ) * nPPT * nCosAbs / nSinAbs ); } else - nWidth = (long)( aSize.Height() / nSinAbs ); //! begrenzen? + nWidth = (long)( aSize.Height() / nSinAbs ); //! limit? if ( bBreak && !rOptions.bTotalSize ) { @@ -297,18 +297,18 @@ long ScColumn::GetNeededSize( (long) ( pMargin->GetBottomMargin() * nPPT ); } - // Zeilenumbruch ausgefuehrt ? + // linebreak done ? if ( bBreak && !bWidth ) { - // Test mit EditEngine zur Sicherheit schon bei 90% - // (wegen Rundungsfehlern und weil EditEngine teilweise anders formatiert) + // test with EditEngine the safety at 90% + // (due to rounding errors and because EditEngine formats partially differently) long nDocPixel = (long) ( ( pDocument->GetColWidth( nCol,nTab ) - pMargin->GetLeftMargin() - pMargin->GetRightMargin() - nIndent ) * nPPT ); - nDocPixel = (nDocPixel * 9) / 10; // zur Sicherheit + nDocPixel = (nDocPixel * 9) / 10; // for safety if ( aSize.Width() > nDocPixel ) bEditEngine = true; } @@ -317,12 +317,12 @@ long ScColumn::GetNeededSize( if (bEditEngine) { - // der Font wird bei !bEditEngine nicht jedesmal neu gesetzt + // the font is not reset each time with !bEditEngine Font aOldFont = pDev->GetFont(); MapMode aHMMMode( MAP_100TH_MM, Point(), rZoomX, rZoomY ); - // am Dokument speichern ? + // save in document ? ScFieldEditEngine* pEngine = pDocument->CreateFieldEditEngine(); pEngine->SetUpdateMode( false ); @@ -372,7 +372,7 @@ long ScColumn::GetNeededSize( nDocWidth += (long) ( pDocument->GetColWidth(nCol+nColAdd,nTab) * fWidthFactor ); nDocWidth -= (long) ( pMargin->GetLeftMargin() * fWidthFactor ) + (long) ( pMargin->GetRightMargin() * fWidthFactor ) - + 1; // Ausgabebereich ist Breite-1 Pixel (wegen Gitterlinien) + + 1; // output size is width-1 pixel (due to gridline) if ( nIndent ) nDocWidth -= (long) ( nIndent * fWidthFactor ); @@ -414,10 +414,10 @@ long ScColumn::GetNeededSize( bEdWidth = !bEdWidth; if ( nRotate ) { - //! unterschiedliche Skalierung X/Y beruecksichtigen + //! take different X/Y scaling into consideration Size aSize( pEngine->CalcTextWidth(), pEngine->GetTextHeight() ); - double nRealOrient = nRotate * F_PI18000; // nRotate sind 1/100 Grad + double nRealOrient = nRotate * F_PI18000; // nRotate is in 1/100 Grad double nCosAbs = fabs( cos( nRealOrient ) ); double nSinAbs = fabs( sin( nRealOrient ) ); long nHeight = (long)( aSize.Height() * nCosAbs + aSize.Width() * nSinAbs ); @@ -433,7 +433,7 @@ long ScColumn::GetNeededSize( nPPT * nCosAbs / nSinAbs ); } else - nWidth = (long)( aSize.Height() / nSinAbs ); //! begrenzen? + nWidth = (long)( aSize.Height() / nSinAbs ); //! limit? aSize = Size( nWidth, nHeight ); Size aPixSize = pDev->LogicToPixel( aSize, aHMMMode ); @@ -460,7 +460,7 @@ long ScColumn::GetNeededSize( nValue = pDev->LogicToPixel(Size( pEngine->CalcTextWidth(), 0 ), aHMMMode).Width(); } - else // Hoehe + else // height { nValue = pDev->LogicToPixel(Size( 0, pEngine->GetTextHeight() ), aHMMMode).Height(); @@ -510,9 +510,9 @@ long ScColumn::GetNeededSize( if (bWidth) { - // Platz fuer Autofilter-Button + // place for Autofilter Button // 20 * nZoom/100 - // bedingte Formatierung hier nicht interessant + // Conditional formatting is not interesting here sal_Int16 nFlags = ((const ScMergeFlagAttr&)pPattern->GetItem(ATTR_MERGE_FLAG)).GetValue(); if (nFlags & SC_MF_AUTO) @@ -536,7 +536,7 @@ sal_uInt16 ScColumn::GetOptimalColWidth( SCSIZE nIndex; ScMarkedDataIter aDataIter(this, pMarkData, true); if ( pParam && pParam->mbSimpleText ) - { // alles eins bis auf NumberFormate + { // all the same except for number format const ScPatternAttr* pPattern = GetPattern( 0 ); Font aFont; // font color doesn't matter here @@ -631,7 +631,7 @@ static sal_uInt16 lcl_GetAttribHeight( const ScPatternAttr& rPattern, sal_uInt16 sal_uInt16 nHeight = (sal_uInt16) ((const SvxFontHeightItem&) rPattern.GetItem(nFontHeightId)).GetHeight(); const SvxMarginItem* pMargin = (const SvxMarginItem*) &rPattern.GetItem(ATTR_MARGIN); nHeight += nHeight / 5; - // gibt bei 10pt 240 + // for 10pt gives 240 if ( ((const SvxEmphasisMarkItem&)rPattern. GetItem(ATTR_FONT_EMPHASISMARK)).GetEmphasisMark() != EMPHASISMARK_NONE ) @@ -647,8 +647,8 @@ static sal_uInt16 lcl_GetAttribHeight( const ScPatternAttr& rPattern, sal_uInt16 nHeight -= 240; } - // Standard-Hoehe: TextHeight + Raender - 23 - // -> 257 unter Windows + // Standard height: TextHeight + margin - 23 + // -> 257 for Windows if (nHeight > STD_ROWHEIGHT_DIFF) nHeight -= STD_ROWHEIGHT_DIFF; @@ -659,8 +659,8 @@ static sal_uInt16 lcl_GetAttribHeight( const ScPatternAttr& rPattern, sal_uInt16 } // pHeight in Twips -// nMinHeight, nMinStart zur Optimierung: ab nRow >= nMinStart ist mindestens nMinHeight -// (wird nur bei bStdAllowed ausgewertet) +// optimize nMinHeight, nMinStart : with nRow >= nMinStart is at least nMinHeight +// (is only evaluated with bStdAllowed) void ScColumn::GetOptimalHeight( SCROW nStartRow, SCROW nEndRow, sal_uInt16* pHeight, OutputDevice* pDev, @@ -674,7 +674,7 @@ void ScColumn::GetOptimalHeight( SCROW nEditPos = 0; SCROW nNextEnd = 0; - // bei bedingter Formatierung werden immer die einzelnen Zellen angesehen + // with conditional formatting, always consider the individual cells const ScPatternAttr* pPattern = aIter.Next(nStart,nEnd); while ( pPattern ) @@ -683,9 +683,9 @@ void ScColumn::GetOptimalHeight( const ScMergeFlagAttr* pFlag = (const ScMergeFlagAttr*)&pPattern->GetItem(ATTR_MERGE_FLAG); if ( pMerge->GetRowMerge() > 1 || pFlag->IsOverlapped() ) { - // nix - vertikal bei der zusammengefassten und den ueberdeckten, - // horizontal nur bei den ueberdeckten (unsichtbaren) - - // eine nur horizontal zusammengefasste wird aber beruecksichtigt + // do nothing - vertically with merged and overlapping, + // horizontally only with overlapped (invisible) - + // only one horizontal merged is always considered } else { @@ -700,7 +700,7 @@ void ScColumn::GetOptimalHeight( SVX_HOR_JUSTIFY_BLOCK); bStdOnly = !bBreak; - // bedingte Formatierung: Zellen durchgehen + // conditional formatting: loop all cells if (bStdOnly && !static_cast<const ScCondFormatItem&>(pPattern->GetItem( ATTR_CONDITIONAL)).GetCondFormatData().empty()) @@ -708,7 +708,7 @@ void ScColumn::GetOptimalHeight( bStdOnly = false; } - // gedrehter Text: Zellen durchgehen + // rotated text: loop all cells if ( bStdOnly && ((const SfxInt32Item&)pPattern-> GetItem(ATTR_ROTATE_VALUE)).GetValue() ) bStdOnly = false; @@ -722,13 +722,13 @@ void ScColumn::GetOptimalHeight( bStdOnly = false; if (nEnd > nEditPos) nNextEnd = nEnd; - nEnd = nEditPos; // einzeln ausrechnen - bStdAllowed = false; // wird auf jeden Fall per Zelle berechnet + nEnd = nEditPos; // calculate single + bStdAllowed = false; // will be computed in any case per cell } else { nNextEnd = nEnd; - nEnd = nEditPos - 1; // Standard - Teil + nEnd = nEditPos - 1; // standard - part } } @@ -795,7 +795,7 @@ void ScColumn::GetOptimalHeight( } } - if (!bStdOnly) // belegte Zellen suchen + if (!bStdOnly) // search covered cells { ScNeededSizeOptions aOptions; @@ -803,7 +803,7 @@ void ScColumn::GetOptimalHeight( Search(nStart,nIndex); while ( (nIndex < maItems.size()) ? ((nRow=maItems[nIndex].nRow) <= nEnd) : false ) { - // Zellhoehe nur berechnen, wenn sie spaeter auch gebraucht wird (#37928#) + // only calculate the cell height when it's used later (#37928#) if ( bShrink || !(pDocument->GetRowFlags(nRow, nTab) & CR_MANUALSIZE) ) { @@ -894,27 +894,25 @@ void ScColumn::RemoveAutoSpellObj() { ScEditCell* pOldCell = (ScEditCell*) maItems[i].pCell; const EditTextObject* pData = pOldCell->GetData(); - // keine Abfrage auf HasOnlineSpellErrors, damit es auch - // nach dem Laden funktioniert + // no query on HasOnlineSpellErrors, this makes it also work after loading - // Fuer den Test auf harte Formatierung (ScEditAttrTester) sind die Defaults - // in der EditEngine unwichtig. Wenn der Tester spaeter einmal gleiche - // Attribute in Default und harter Formatierung erkennen und weglassen sollte, - // muessten an der EditEngine zu jeder Zelle die richtigen Defaults gesetzt - // werden! + // For the test on hard formatting (ScEditAttrTester), are the defaults in the + // EditEngine of no importance. When the tester would later recognise the same + // attributes in default and hard formatting and has to remove them, the correct + // defaults must be set in the EditEngine for each cell. - // auf Attribute testen + // test for attributes if ( !pEngine ) pEngine = new ScTabEditEngine(pDocument); pEngine->SetText( *pData ); ScEditAttrTester aTester( pEngine ); - if ( aTester.NeedsObject() ) // nur Spell-Errors entfernen + if ( aTester.NeedsObject() ) // only remove spelling errors { - EditTextObject* pNewData = pEngine->CreateTextObject(); // ohne BIGOBJ + EditTextObject* pNewData = pEngine->CreateTextObject(); // without BIGOBJ pOldCell->SetData( pNewData, pEngine->GetEditTextObjectPool() ); delete pNewData; } - else // String erzeugen + else // create a string { String aText = ScEditUtil::GetSpaceDelimitedString( *pEngine ); ScBaseCell* pNewCell = new ScStringCell( aText ); @@ -939,17 +937,16 @@ void ScColumn::RemoveEditAttribs( SCROW nStartRow, SCROW nEndRow ) ScEditCell* pOldCell = (ScEditCell*) maItems[i].pCell; const EditTextObject* pData = pOldCell->GetData(); - // Fuer den Test auf harte Formatierung (ScEditAttrTester) sind die Defaults - // in der EditEngine unwichtig. Wenn der Tester spaeter einmal gleiche - // Attribute in Default und harter Formatierung erkennen und weglassen sollte, - // muessten an der EditEngine zu jeder Zelle die richtigen Defaults gesetzt - // werden! + // For the test on hard formatting (ScEditAttrTester), are the defaults in the + // EditEngine of no importance. When the tester would later recognise the same + // attributes in default and hard formatting and has to remove them, the correct + // defaults must be set in the EditEngine for each cell. - // auf Attribute testen + // test for attributes if ( !pEngine ) { pEngine = new ScFieldEditEngine(pDocument, pDocument->GetEditPool()); - // EE_CNTRL_ONLINESPELLING falls schon Fehler drin sind + // EE_CNTRL_ONLINESPELLING if there are errors already pEngine->SetControlWord( pEngine->GetControlWord() | EE_CNTRL_ONLINESPELLING ); pDocument->ApplyAsianEditSettings( *pEngine ); } @@ -961,18 +958,18 @@ void ScColumn::RemoveEditAttribs( SCROW nStartRow, SCROW nEndRow ) const SfxItemSet& rOld = pEngine->GetParaAttribs( nPar ); if ( rOld.Count() ) { - SfxItemSet aNew( *rOld.GetPool(), rOld.GetRanges() ); // leer + SfxItemSet aNew( *rOld.GetPool(), rOld.GetRanges() ); // empty pEngine->SetParaAttribs( nPar, aNew ); } } - // URL-Felder in Text wandeln (andere gibt's nicht, darum pType=0) + // change URL field to text (not possible otherwise, thus pType=0) pEngine->RemoveFields( true ); bool bSpellErrors = pEngine->HasOnlineSpellErrors(); - bool bNeedObject = bSpellErrors || nParCount>1; // Errors/Absaetze behalten - // ScEditAttrTester nicht mehr noetig, Felder sind raus + bool bNeedObject = bSpellErrors || nParCount>1; // keep errors/paragraphs + // ScEditAttrTester is not needed anymore, arrays are gone - if ( bNeedObject ) // bleibt Edit-Zelle + if ( bNeedObject ) // remains edit cell { sal_uInt32 nCtrl = pEngine->GetControlWord(); sal_uInt32 nWantBig = bSpellErrors ? EE_CNTRL_ALLOWBIGOBJS : 0; @@ -982,7 +979,7 @@ void ScColumn::RemoveEditAttribs( SCROW nStartRow, SCROW nEndRow ) pOldCell->SetData( pNewData, pEngine->GetEditTextObjectPool() ); delete pNewData; } - else // String erzeugen + else // create String { String aText = ScEditUtil::GetSpaceDelimitedString( *pEngine ); ScBaseCell* pNewCell = new ScStringCell( aText ); @@ -1040,9 +1037,9 @@ bool ScColumnIterator::Next( SCROW& rRow, ScBaseCell*& rpCell ) return false; } -SCSIZE ScColumnIterator::GetIndex() const // Index zur letzen abgefragten Zelle +SCSIZE ScColumnIterator::GetIndex() const // Index of the last cell asked { - return nPos - 1; // bei Next ist Pos hochgezaehlt worden + return nPos - 1; // next time the position is incremented } // ----------------------------------------------------------------------------------------- @@ -1072,7 +1069,7 @@ bool ScMarkedDataIter::Next( SCSIZE& rIndex ) { if (!pMarkIter || !pMarkIter->Next( nTop, nBottom )) { - if (bAll) // ganze Spalte + if (bAll) // complete column { nTop = 0; nBottom = MAXROW; @@ -1082,7 +1079,7 @@ bool ScMarkedDataIter::Next( SCSIZE& rIndex ) } pColumn->Search( nTop, nPos ); bNext = false; - bAll = false; // nur beim ersten Versuch + bAll = false; // only the first time } if ( nPos >= pColumn->maItems.size() ) @@ -1126,7 +1123,7 @@ bool ScColumn::IsEmptyVisData() const SCSIZE ScColumn::VisibleCount( SCROW nStartRow, SCROW nEndRow ) const { - // Notizen werden nicht mitgezaehlt + // Notes are not counted SCSIZE nVisCount = 0; SCSIZE nIndex; @@ -1436,8 +1433,8 @@ void ScColumn::FindDataAreaPos(SCROW& rRow, bool bDown) const bool ScColumn::HasDataAt(SCROW nRow) const { - // immer nur sichtbare interessant ? - //! dann HasVisibleDataAt raus + // are only visible cells interesting ? + //! then HasVisibleDataAt out SCSIZE nIndex; if (Search(nRow, nIndex)) @@ -1643,12 +1640,12 @@ static void lcl_UpdateSubTotal( ScFunctionData& rData, const ScBaseCell* pCell ) break; case CELLTYPE_FORMULA: { - if ( rData.eFunc != SUBTOTAL_FUNC_CNT2 ) // da interessiert's nicht + if ( rData.eFunc != SUBTOTAL_FUNC_CNT2 ) // it doesn't interest us { ScFormulaCell* pFC = (ScFormulaCell*)pCell; if ( pFC->GetErrCode() ) { - if ( rData.eFunc != SUBTOTAL_FUNC_CNT ) // fuer Anzahl einfach weglassen + if ( rData.eFunc != SUBTOTAL_FUNC_CNT ) // simply remove from count rData.bError = true; } else if (pFC->IsValue()) @@ -1656,14 +1653,14 @@ static void lcl_UpdateSubTotal( ScFunctionData& rData, const ScBaseCell* pCell ) nValue = pFC->GetValue(); bVal = true; } - // sonst Text + // otherwise text } } break; case CELLTYPE_NOTE: bCell = false; break; - // bei Strings nichts + // nothing for strings default: { // added to avoid warnings @@ -1683,11 +1680,11 @@ static void lcl_UpdateSubTotal( ScFunctionData& rData, const ScBaseCell* pCell ) rData.bError = true; } break; - case SUBTOTAL_FUNC_CNT: // nur Werte + case SUBTOTAL_FUNC_CNT: // only the value if (bVal) ++rData.nCount; break; - case SUBTOTAL_FUNC_CNT2: // alle + case SUBTOTAL_FUNC_CNT2: // everything if (bCell) ++rData.nCount; break; @@ -1709,7 +1706,7 @@ static void lcl_UpdateSubTotal( ScFunctionData& rData, const ScBaseCell* pCell ) } } -// Mehrfachselektion: +// multiple selections: void ScColumn::UpdateSelectionFunction( const ScMarkData& rMark, ScFunctionData& rData, ScFlatBoolRowSegments& rHiddenRows, bool bDoExclude, SCROW nExStartRow, SCROW nExEndRow) const @@ -1726,7 +1723,7 @@ void ScColumn::UpdateSelectionFunction( } } -// bei bNoMarked die Mehrfachselektion weglassen +// with bNoMarked ignore the multiple selections void ScColumn::UpdateAreaFunction( ScFunctionData& rData, ScFlatBoolRowSegments& rHiddenRows, SCROW nStartRow, SCROW nEndRow) const { @@ -1746,7 +1743,7 @@ sal_uInt32 ScColumn::GetWeightedCount() const { sal_uInt32 nTotal = 0; - // Notizen werden nicht gezaehlt + // Notes are not counted for (SCSIZE i=0; i<maItems.size(); i++) { commit b7820359b945051040c8f2022ec7452107e3210a Author: Eric Seynaeve <git...@nosperse.com> Date: Mon Feb 4 22:45:06 2013 +0100 Translated german comments Change-Id: Idc31ebc5bb2d11345f68b7275b7fc4d335b633c1 diff --git a/sc/source/core/data/column.cxx b/sc/source/core/data/column.cxx index fc22a5b..ad156ef 100644 --- a/sc/source/core/data/column.cxx +++ b/sc/source/core/data/column.cxx @@ -425,7 +425,7 @@ void ScColumn::ApplyPattern( SCROW nRow, const ScPatternAttr& rPatAttr ) const ScPatternAttr* pPattern = pAttrArray->GetPattern( nRow ); - // true = alten Eintrag behalten + // true = keep old content ScPatternAttr* pNewPattern = (ScPatternAttr*) &aCache.ApplyTo( *pPattern, true ); ScDocumentPool::CheckRef( *pPattern ); @@ -548,7 +548,7 @@ const ScStyleSheet* ScColumn::GetSelectionStyle( const ScMarkData& rMark, bool& rFound = false; if (!rMark.IsMultiMarked()) { - OSL_FAIL("ScColumn::GetSelectionStyle ohne Selektion"); + OSL_FAIL("No selection in ScColumn::GetSelectionStyle"); return NULL; } @@ -571,7 +571,7 @@ const ScStyleSheet* ScColumn::GetSelectionStyle( const ScMarkData& rMark, bool& pNewStyle = pPattern->GetStyleSheet(); rFound = true; if ( !pNewStyle || ( pStyle && pNewStyle != pStyle ) ) - bEqual = false; // unterschiedliche + bEqual = false; // difference pStyle = pNewStyle; } } @@ -598,7 +598,7 @@ const ScStyleSheet* ScColumn::GetAreaStyle( bool& rFound, SCROW nRow1, SCROW nRo pNewStyle = pPattern->GetStyleSheet(); rFound = true; if ( !pNewStyle || ( pStyle && pNewStyle != pStyle ) ) - bEqual = false; // unterschiedliche + bEqual = false; // difference pStyle = pNewStyle; } @@ -649,8 +649,8 @@ void ScColumn::SetPatternArea( SCROW nStartRow, SCROW nEndRow, void ScColumn::ApplyAttr( SCROW nRow, const SfxPoolItem& rAttr ) { - // um nur ein neues SetItem zu erzeugen, brauchen wir keinen SfxItemPoolCache. - //! Achtung: der SfxItemPoolCache scheint zuviele Refs fuer das neue SetItem zu erzeugen ?? + // in order to only create a new SetItem, we don't need SfxItemPoolCache. + //! Warning: SfxItemPoolCache seems to create to many Refs for the new SetItem ?? ScDocumentPool* pDocPool = pDocument->GetPool(); @@ -662,11 +662,9 @@ void ScColumn::ApplyAttr( SCROW nRow, const SfxPoolItem& rAttr ) if ( pNewPattern != pOldPattern ) pAttrArray->SetPattern( nRow, pNewPattern ); else - pDocPool->Remove( *pNewPattern ); // ausser Spesen nichts gewesen + pDocPool->Remove( *pNewPattern ); // free up resources delete pTemp; - - // alte Version mit SfxItemPoolCache: } bool ScColumn::Search( SCROW nRow, SCSIZE& nIndex ) const @@ -775,7 +773,6 @@ void ScColumn::ReserveSize( SCSIZE nSize ) maItems.reserve(nSize); } -// SwapRow zum Sortieren namespace { @@ -793,6 +790,7 @@ void lclTakeBroadcaster( ScBaseCell*& rpCell, SvtBroadcaster* pBC ) } // namespace +// SwapRow for sorting void ScColumn::SwapRow(SCROW nRow1, SCROW nRow2) { /* Simple swap of cell pointers does not work if broadcasters exist (crash @@ -887,7 +885,7 @@ void ScColumn::SwapRow(SCROW nRow1, SCROW nRow2) ScTokenArray* pCode1 = pFmlaCell1->GetCode(); ScTokenArray* pCode2 = pFmlaCell2->GetCode(); - if (pCode1->GetLen() == pCode2->GetLen()) // nicht-UPN + if (pCode1->GetLen() == pCode2->GetLen()) // not-UPN { bool bEqual = true; sal_uInt16 nLen = pCode1->GetLen(); @@ -971,10 +969,10 @@ void ScColumn::SwapCell( SCROW nRow, ScColumn& rCol) if ( pCell2 ) { - // Tauschen + // swap maItems[nIndex1].pCell = pCell2; rCol.maItems[nIndex2].pCell = pCell1; - // Referenzen aktualisieren + // update references SCsCOL dx = rCol.nCol - nCol; if ( pFmlaCell1 ) { @@ -993,9 +991,9 @@ void ScColumn::SwapCell( SCROW nRow, ScColumn& rCol) } else { - // Loeschen + // remove maItems.erase(maItems.begin() + nIndex1); - // Referenzen aktualisieren + // update references SCsCOL dx = rCol.nCol - nCol; if ( pFmlaCell1 ) { @@ -1004,7 +1002,7 @@ void ScColumn::SwapCell( SCROW nRow, ScColumn& rCol) pFmlaCell1->aPos.SetCol( rCol.nCol ); pFmlaCell1->UpdateReference(URM_MOVE, aRange, dx, 0, 0); } - // Einfuegen + // insert rCol.Insert(nRow, pCell1); } } @@ -1020,12 +1018,12 @@ bool ScColumn::TestInsertCol( SCROW nStartRow, SCROW nEndRow) const bTest = (maItems[i].nRow < nStartRow) || (maItems[i].nRow > nEndRow) || maItems[i].pCell->IsBlank(); - // AttrArray testet nur zusammengefasste + // AttrArray only looks for merged cells if ((bTest) && (pAttrArray)) bTest = pAttrArray->TestInsertCol(nStartRow, nEndRow); - //! rausgeschobene Attribute bei Undo beruecksichtigen + //! consider the removed Attribute at Undo return bTest; } @@ -1061,7 +1059,7 @@ void ScColumn::InsertRow( SCROW nStartRow, SCSIZE nSize ) return ; bool bOldAutoCalc = pDocument->GetAutoCalc(); - pDocument->SetAutoCalc( false ); // Mehrfachberechnungen vermeiden + pDocument->SetAutoCalc( false ); // avoid recalculations SCSIZE nNewCount = maItems.size(); bool bCountChanged = false; @@ -1169,8 +1167,7 @@ void ScColumn::CopyToClip(SCROW nRow1, SCROW nRow2, ScColumn& rColumn, bool bKee nEndIndex = i; ++nBlockCount; - // im Clipboard muessen interpretierte Zellen stehen, um andere Formate - // (Text, Grafik...) erzueugen zu koennen + // put interpreted cells in the clipboard in order to create other formats (text, graphics, ...) if ( maItems[i].pCell->GetCellType() == CELLTYPE_FORMULA ) { @@ -1338,8 +1335,8 @@ void ScColumn::CopyToColumn( if ( (nFlags & IDF_ATTRIB) != 0 ) { if ( (nFlags & IDF_STYLES) != IDF_STYLES ) - { // StyleSheets im Zieldokument bleiben erhalten - // z.B. DIF und RTF Clipboard-Import + { // keep the StyleSheets in the target document + // e.g. DIF and RTF Clipboard-Import for ( SCROW nRow = nRow1; nRow <= nRow2; nRow++ ) { const ScStyleSheet* pStyle = @@ -1443,7 +1440,7 @@ void ScColumn::CopyUpdated( const ScColumn& rPosCol, ScColumn& rDestCol ) const void ScColumn::CopyScenarioFrom( const ScColumn& rSrcCol ) { - // Dies ist die Szenario-Tabelle, die Daten werden hineinkopiert + // This is the scenario table, the data is copied into it ScAttrIterator aAttrIter( pAttrArray, 0, MAXROW ); SCROW nStart = -1, nEnd = -1; @@ -1456,7 +1453,7 @@ void ScColumn::CopyScenarioFrom( const ScColumn& rSrcCol ) ((ScColumn&)rSrcCol). CopyToColumn( nStart, nEnd, IDF_CONTENTS, false, *this ); - // UpdateUsed nicht noetig, schon in TestCopyScenario passiert + // UpdateUsed not needed, already done in TestCopyScenario (obsolete comment ?) SCsTAB nDz = nTab - rSrcCol.nTab; UpdateReference(URM_COPY, nCol, nStart, nTab, @@ -1465,7 +1462,7 @@ void ScColumn::CopyScenarioFrom( const ScColumn& rSrcCol ) UpdateCompile(); } - //! CopyToColumn "const" machen !!! + //! make CopyToColumn "const" !!! (obsolete comment ?) pPattern = aAttrIter.Next( nStart, nEnd ); } @@ -1474,7 +1471,7 @@ void ScColumn::CopyScenarioFrom( const ScColumn& rSrcCol ) void ScColumn::CopyScenarioTo( ScColumn& rDestCol ) const { - // Dies ist die Szenario-Tabelle, die Daten werden in die andere kopiert + // This is the scenario table, the data is copied to the other ScAttrIterator aAttrIter( pAttrArray, 0, MAXROW ); SCROW nStart = -1, nEnd = -1; @@ -1487,7 +1484,7 @@ void ScColumn::CopyScenarioTo( ScColumn& rDestCol ) const ((ScColumn*)this)-> CopyToColumn( nStart, nEnd, IDF_CONTENTS, false, rDestCol ); - // UpdateUsed nicht noetig, schon in TestCopyScenario passiert + // UpdateUsed not needed, is already done in TestCopyScenario (obsolete comment ?) SCsTAB nDz = rDestCol.nTab - nTab; rDestCol.UpdateReference(URM_COPY, rDestCol.nCol, nStart, rDestCol.nTab, @@ -1496,7 +1493,7 @@ void ScColumn::CopyScenarioTo( ScColumn& rDestCol ) const rDestCol.UpdateCompile(); } - //! CopyToColumn "const" machen !!! + //! make CopyToColumn "const" !!! (obsolete comment ?) pPattern = aAttrIter.Next( nStart, nEnd ); } @@ -1550,7 +1547,7 @@ void ScColumn::SwapCol(ScColumn& rCol) rCol.pAttrArray = pAttrArray; pAttrArray = pTempAttr; - // AttrArray muss richtige Spaltennummer haben + // AttrArray needs to have the right column number pAttrArray->SetCol(nCol); rCol.pAttrArray->SetCol(rCol.nCol); @@ -1652,7 +1649,7 @@ bool ScColumn::UpdateReference( UpdateRefMode eUpdateRefMode, SCCOL nCol1, SCROW ScRange aRange( ScAddress( nCol1, nRow1, nTab1 ), ScAddress( nCol2, nRow2, nTab2 ) ); if ( eUpdateRefMode == URM_COPY && nRow1 == nRow2 ) - { // z.B. eine einzelne Zelle aus dem Clipboard eingefuegt + { // e.g. put a single cell in the clipboard SCSIZE nIndex; if ( Search( nRow1, nIndex ) ) { @@ -1724,7 +1721,7 @@ void ScColumn::UpdateTranspose( const ScRange& rSource, const ScAddress& rDest, SCROW nRow = maItems[i].nRow; ((ScFormulaCell*)pCell)->UpdateTranspose( rSource, rDest, pUndoDoc ); if ( nRow != maItems[i].nRow ) - Search( nRow, i ); // Listener geloescht/eingefuegt? + Search( nRow, i ); // Listener deleted/inserted? } } } @@ -1741,7 +1738,7 @@ void ScColumn::UpdateGrow( const ScRange& rArea, SCCOL nGrowX, SCROW nGrowY ) SCROW nRow = maItems[i].nRow; ((ScFormulaCell*)pCell)->UpdateGrow( rArea, nGrowX, nGrowY ); if ( nRow != maItems[i].nRow ) - Search( nRow, i ); // Listener geloescht/eingefuegt? + Search( nRow, i ); // Listener deleted/inserted? } } } @@ -1844,7 +1841,7 @@ void ScColumn::UpdateDeleteTab(SCTAB nDelPos, bool bIsMove, ScColumn* pRefUndo, bool bChanged = pOld->UpdateDeleteTab(nDelPos, bIsMove, nSheets); if ( nRow != maItems[i].nRow ) - Search( nRow, i ); // Listener geloescht/eingefuegt? + Search( nRow, i ); // Listener deleted/inserted? if (pRefUndo) { @@ -1911,7 +1908,7 @@ void ScColumn::UpdateCompile( bool bForceIfNameInUse ) SCROW nRow = maItems[i].nRow; p->UpdateCompile( bForceIfNameInUse ); if ( nRow != maItems[i].nRow ) - Search( nRow, i ); // Listener geloescht/eingefuegt? + Search( nRow, i ); // Listener deleted/inserted? } } } @@ -1953,9 +1950,9 @@ void ScColumn::SetDirtyVar() void ScColumn::SetDirty() { - // wird nur dokumentweit verwendet, kein FormulaTrack + // is only done documentwide, no FormulaTracking bool bOldAutoCalc = pDocument->GetAutoCalc(); - pDocument->SetAutoCalc( false ); // Mehrfachberechnungen vermeiden + pDocument->SetAutoCalc( false ); // no multiple recalculation for (SCSIZE i=0; i<maItems.size(); i++) { ScFormulaCell* p = (ScFormulaCell*) maItems[i].pCell; @@ -1971,11 +1968,11 @@ void ScColumn::SetDirty() void ScColumn::SetDirty( const ScRange& rRange ) -{ // broadcastet alles innerhalb eines Range, mit FormulaTrack +{ // broadcasts everything within the range, with FormulaTracking if ( maItems.empty() ) return ; bool bOldAutoCalc = pDocument->GetAutoCalc(); - pDocument->SetAutoCalc( false ); // Mehrfachberechnungen vermeiden + pDocument->SetAutoCalc( false ); // no multiple recalculation SCROW nRow2 = rRange.aEnd.Row(); ScAddress aPos( nCol, 0, nTab ); ScHint aHint( SC_HINT_DATACHANGED, aPos, NULL ); @@ -2031,7 +2028,7 @@ void ScColumn::SetTableOpDirty( const ScRange& rRange ) void ScColumn::SetDirtyAfterLoad() { bool bOldAutoCalc = pDocument->GetAutoCalc(); - pDocument->SetAutoCalc( false ); // Mehrfachberechnungen vermeiden + pDocument->SetAutoCalc( false ); // no multiple recalculation for (SCSIZE i=0; i<maItems.size(); i++) { ScFormulaCell* p = (ScFormulaCell*) maItems[i].pCell; @@ -2064,7 +2061,7 @@ void ScColumn::SetDirtyAfterLoad() void ScColumn::SetRelNameDirty() { bool bOldAutoCalc = pDocument->GetAutoCalc(); - pDocument->SetAutoCalc( false ); // Mehrfachberechnungen vermeiden + pDocument->SetAutoCalc( false ); // no multiple recalculation for (SCSIZE i=0; i<maItems.size(); i++) { ScFormulaCell* p = (ScFormulaCell*) maItems[i].pCell; @@ -2084,7 +2081,7 @@ void ScColumn::CalcAll() if (pCell->GetCellType() == CELLTYPE_FORMULA) { #if OSL_DEBUG_LEVEL > 1 - // nach F9 ctrl-F9: ueberprueft die Berechnung per FormulaTree + // after F9 ctrl-F9: check the calculation for each FormulaTree ScFormulaCell* pFCell = (ScFormulaCell*)pCell; double nOldVal, nNewVal; nOldVal = pFCell->GetValue(); @@ -2111,13 +2108,13 @@ void ScColumn::CompileAll() if ( pCell->GetCellType() == CELLTYPE_FORMULA ) { SCROW nRow = maItems[i].nRow; - // fuer unbedingtes kompilieren - // bCompile=true und pCode->nError=0 + // for unconditional compilation + // bCompile=true and pCode->nError=0 ((ScFormulaCell*)pCell)->GetCode()->SetCodeError( 0 ); ((ScFormulaCell*)pCell)->SetCompile( true ); ((ScFormulaCell*)pCell)->CompileTokenArray(); if ( nRow != maItems[i].nRow ) - Search( nRow, i ); // Listener geloescht/eingefuegt? + Search( nRow, i ); // Listener deleted/inserted? } } } @@ -2134,7 +2131,7 @@ void ScColumn::CompileXML( ScProgress& rProgress ) SCROW nRow = maItems[i].nRow; ((ScFormulaCell*)pCell)->CompileXML( rProgress ); if ( nRow != maItems[i].nRow ) - Search( nRow, i ); // Listener geloescht/eingefuegt? + Search( nRow, i ); // Listener deleted/inserted? } } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits