[Libreoffice-commits] .: 2 commits - sw/source
Stefan Knorr
astron at kemper.freedesktop.org
Wed Nov 30 01:13:20 PST 2011
sw/source/core/doc/docfly.cxx | 137 +++++++++------------
sw/source/core/doc/docfmt.cxx | 270 ++++++++++++++++++++----------------------
2 files changed, 193 insertions(+), 214 deletions(-)
New commits:
commit b8c18bbb837c892657d189f1456ceee31d7740e3
Author: Philipp Weissenbacher <p.weissenbacher at gmail.com>
Date: Wed Nov 30 03:41:57 2011 +0100
Translate German comments
diff --git a/sw/source/core/doc/docfmt.cxx b/sw/source/core/doc/docfmt.cxx
index 394a049..10cd5f7 100644
--- a/sw/source/core/doc/docfmt.cxx
+++ b/sw/source/core/doc/docfmt.cxx
@@ -53,15 +53,15 @@
#include <IDocumentUndoRedo.hxx>
#include <rootfrm.hxx>
#include <pagefrm.hxx>
-#include <hints.hxx> // fuer SwHyphenBug (in SetDefault)
+#include <hints.hxx> // for SwHyphenBug (in SetDefault)
#include <ndtxt.hxx>
#include <pam.hxx>
#include <UndoCore.hxx>
#include <UndoAttribute.hxx>
#include <ndgrf.hxx>
-#include <pagedesc.hxx> // Fuer Sonderbehandlung in InsFrmFmt
+#include <pagedesc.hxx> // For special treatment in InsFrmFmt
#include <rolbck.hxx> // Undo-Attr
-#include <mvsave.hxx> // servieren: Veraenderungen erkennen
+#include <mvsave.hxx> // serve: Recognize changes
#include <txatbase.hxx>
#include <swtable.hxx>
#include <swtblfmt.hxx>
@@ -86,11 +86,11 @@ using namespace ::com::sun::star::uno;
SV_IMPL_PTRARR(SwFrmFmts,SwFrmFmtPtr)
SV_IMPL_PTRARR(SwCharFmts,SwCharFmtPtr)
-//Spezifische Frameformate (Rahmen)
+// Specific frame formats (frames)
SV_IMPL_PTRARR(SwSpzFrmFmts,SwFrmFmtPtr)
/*
- * interne Funktionen
+ * Internal functions
*/
sal_Bool SetTxtFmtCollNext( const SwTxtFmtCollPtr& rpTxtColl, void* pArgs )
@@ -104,10 +104,10 @@ sal_Bool SetTxtFmtCollNext( const SwTxtFmtCollPtr& rpTxtColl, void* pArgs )
}
/*
- * Zuruecksetzen der harten Formatierung fuer Text
+ * Reset the text's hard formatting
*/
-// Uebergabeparameter fuer _Rst und lcl_SetTxtFmtColl
+// Parameters for _Rst and lcl_SetTxtFmtColl
struct ParaRstFmt
{
SwFmtColl* pFmtColl;
@@ -152,8 +152,8 @@ struct ParaRstFmt
{}
};
-/* in pArgs steht die ChrFmtTablle vom Dokument
- * (wird bei Selectionen am Start/Ende und bei keiner SSelection benoetigt)
+/* pArgs contains the document's ChrFmtTable
+ * Is need for selections at the beginning/end and with no SSelection.
*/
sal_Bool lcl_RstTxtAttr( const SwNodePtr& rpNd, void* pArgs )
@@ -174,7 +174,7 @@ sal_Bool lcl_RstTxtAttr( const SwNodePtr& rpNd, void* pArgs )
if( pPara->pHistory )
{
- // fuers Undo alle Attribute sichern
+ // Save all attributes for the Undo.
SwRegHistory aRHst( *pTxtNode, pPara->pHistory );
pTxtNode->GetpSwpHints()->Register( &aRHst );
pTxtNode->RstAttr( aSt, nEnd - aSt.GetIndex(), pPara->nWhich,
@@ -363,8 +363,7 @@ void SwDoc::ResetAttrs( const SwPaM &rRg,
SwIndex& rSt = pPam->GetPoint()->nContent;
sal_uInt16 nMkPos, nPtPos = rSt.GetIndex();
- // JP 22.08.96: Sonderfall: steht der Crsr in einem URL-Attribut
- // dann wird dessen Bereich genommen
+ // Special case: if the Crsr is located within a URL attribute, we take over it's area
SwTxtAttr const*const pURLAttr(
pTxtNd->GetTxtAttrAt(rSt.GetIndex(), RES_TXTATR_INETFMT));
if (pURLAttr && pURLAttr->GetINetFmt().GetValue().Len())
@@ -401,7 +400,7 @@ void SwDoc::ResetAttrs( const SwPaM &rRg,
}
// #i96644#
-// SwDataChanged aTmp( *pPam, 0 );
+ // SwDataChanged aTmp( *pPam, 0 );
std::auto_ptr< SwDataChanged > pDataChanged;
if ( bSendDataChangedEvents )
{
@@ -452,9 +451,9 @@ void SwDoc::ResetAttrs( const SwPaM &rRg,
sal_Bool bAdd = sal_True;
SwNodeIndex aTmpStt( pStt->nNode );
SwNodeIndex aTmpEnd( pEnd->nNode );
- if( pStt->nContent.GetIndex() ) // nur ein Teil
+ if( pStt->nContent.GetIndex() ) // just one part
{
- // dann spaeter aufsetzen und alle CharFmtAttr -> TxtFmtAttr
+ // set up a later, and all CharFmtAttr -> TxtFmtAttr
SwTxtNode* pTNd = aTmpStt.GetNode().GetTxtNode();
if( pTNd && pTNd->HasSwAttrSet() && pTNd->GetpSwAttrSet()->Count() )
{
@@ -472,7 +471,7 @@ void SwDoc::ResetAttrs( const SwPaM &rRg,
aTmpStt++;
}
if( pEnd->nContent.GetIndex() == pEnd->nNode.GetNode().GetCntntNode()->Len() )
- // dann spaeter aufsetzen und alle CharFmtAttr -> TxtFmtAttr
+ // set up a later, and all CharFmtAttr -> TxtFmtAttr
aTmpEnd++, bAdd = sal_False;
else if( pStt->nNode != pEnd->nNode || !pStt->nContent.GetIndex() )
{
@@ -515,14 +514,14 @@ void SwDoc::ResetAttrs( const SwPaM &rRg,
#define DELETECHARSETS if ( bDelete ) { delete pCharSet; delete pOtherSet; }
-// Einfuegen der Hints nach Inhaltsformen;
-// wird in SwDoc::Insert(..., SwFmtHint &rHt) benutzt
+// Insert Hints according to content types;
+// Is used in SwDoc::Insert(..., SwFmtHint &rHt)
static bool
lcl_InsAttr(SwDoc *const pDoc, const SwPaM &rRg, const SfxItemSet& rChgSet,
const SetAttrMode nFlags, SwUndoAttr *const pUndo)
{
- // teil die Sets auf (fuer Selektion in Nodes)
+ // Divide the Sets (for selections in Nodes)
const SfxItemSet* pCharSet = 0;
const SfxItemSet* pOtherSet = 0;
bool bDelete = false;
@@ -630,7 +629,7 @@ lcl_InsAttr(SwDoc *const pDoc, const SwPaM &rRg, const SfxItemSet& rChgSet,
const SwIndex& rSt = pStt->nContent;
- // Attribute ohne Ende haben keinen Bereich
+ // Attributes without an end do not have a range
if ( !bCharAttr && !bOtherAttr )
{
SfxItemSet aTxtSet( pDoc->GetAttrPool(),
@@ -659,11 +658,10 @@ lcl_InsAttr(SwDoc *const pDoc, const SwPaM &rRg, const SfxItemSet& rChgSet,
}
}
- // TextAttribute mit Ende expandieren nie ihren Bereich
+ // TextAttributes with an end never expand their range
if ( !bCharAttr && !bOtherAttr )
{
- // CharFmt wird gesondert behandelt !!!
- // JP 22.08.96: URL-Attribute auch!!
+ // CharFmt and URL attributes are treated seperately!
// TEST_TEMP ToDo: AutoFmt!
SfxItemSet aTxtSet( pDoc->GetAttrPool(),
RES_TXTATR_REFMARK, RES_TXTATR_TOXMARK,
@@ -685,9 +683,9 @@ lcl_InsAttr(SwDoc *const pDoc, const SwPaM &rRg, const SfxItemSet& rChgSet,
if (bRet && (pDoc->IsRedlineOn() || (!pDoc->IsIgnoreRedline()
&& pDoc->GetRedlineTbl().Count())))
{
- // wurde Text-Inhalt eingefuegt? (RefMark/TOXMarks ohne Ende)
+ // Was text content inserted? (RefMark/TOXMarks without an end)
sal_Bool bTxtIns = nInsCnt != rSt.GetIndex();
- // wurde Inhalt eingefuegt oder ueber die Selektion gesetzt?
+ // Was content inserted or set over the selection?
SwPaM aPam( pStt->nNode, bTxtIns ? nInsCnt + 1 : nEnd,
pStt->nNode, nInsCnt );
if( pUndo )
@@ -703,8 +701,7 @@ lcl_InsAttr(SwDoc *const pDoc, const SwPaM &rRg, const SfxItemSet& rChgSet,
}
}
- // bei PageDesc's, die am Node gesetzt werden, muss immer das
- // Auto-Flag gesetzt werden!!
+ // We always have to set the auto flag for PageDescs that are set at the Node!
if( pOtherSet && pOtherSet->Count() )
{
SwTableNode* pTblNd;
@@ -714,12 +711,12 @@ lcl_InsAttr(SwDoc *const pDoc, const SwPaM &rRg, const SfxItemSet& rChgSet,
{
if( pNode )
{
- // Auto-Flag setzen, nur in Vorlagen ist ohne Auto !
+ // Set auto flag. Only in the template it's without auto!
SwFmtPageDesc aNew( *pDesc );
- // Bug 38479: AutoFlag wird jetzt in der WrtShell gesetzt
+ // 38479: AutoFlag is now being set in the WrtShell
// aNew.SetAuto();
- // Tabellen kennen jetzt auch Umbrueche
+ // Tables now also know line breaks
if( 0 == (nFlags & nsSetAttrMode::SETATTR_APICALL) &&
0 != ( pTblNd = pNode->FindTableNode() ) )
{
@@ -727,7 +724,7 @@ lcl_InsAttr(SwDoc *const pDoc, const SwPaM &rRg, const SfxItemSet& rChgSet,
while ( 0 != ( pCurTblNd = pCurTblNd->StartOfSectionNode()->FindTableNode() ) )
pTblNd = pCurTblNd;
- // dann am Tabellen Format setzen
+ // set the table format
SwFrmFmt* pFmt = pTblNd->GetTable().GetFrmFmt();
SwRegHistory aRegH( pFmt, *pTblNd, pHistory );
pFmt->SetFmtAttr( aNew );
@@ -754,7 +751,7 @@ lcl_InsAttr(SwDoc *const pDoc, const SwPaM &rRg, const SfxItemSet& rChgSet,
}
}
- // Tabellen kennen jetzt auch Umbrueche
+ // Tables now also know line breaks
const SvxFmtBreakItem* pBreak;
if( pNode && 0 == (nFlags & nsSetAttrMode::SETATTR_APICALL) &&
0 != (pTblNd = pNode->FindTableNode() ) &&
@@ -765,7 +762,7 @@ lcl_InsAttr(SwDoc *const pDoc, const SwPaM &rRg, const SfxItemSet& rChgSet,
while ( 0 != ( pCurTblNd = pCurTblNd->StartOfSectionNode()->FindTableNode() ) )
pTblNd = pCurTblNd;
- // dann am Tabellen Format setzen
+ // set the table format
SwFrmFmt* pFmt = pTblNd->GetTable().GetFrmFmt();
SwRegHistory aRegH( pFmt, *pTblNd, pHistory );
pFmt->SetFmtAttr( *pBreak );
@@ -786,7 +783,7 @@ lcl_InsAttr(SwDoc *const pDoc, const SwPaM &rRg, const SfxItemSet& rChgSet,
}
{
- // wenns eine PoolNumRule ist, diese ggfs. anlegen
+ // If we have a PoolNumRule, create it if needed
const SwNumRuleItem* pRule;
sal_uInt16 nPoolId;
if( SFX_ITEM_SET == pOtherSet->GetItemState( RES_PARATR_NUMRULE,
@@ -799,7 +796,7 @@ lcl_InsAttr(SwDoc *const pDoc, const SwPaM &rRg, const SfxItemSet& rChgSet,
}
- if( !rRg.HasMark() ) // kein Bereich
+ if( !rRg.HasMark() ) // no range
{
if( !pNode )
{
@@ -814,8 +811,7 @@ lcl_InsAttr(SwDoc *const pDoc, const SwPaM &rRg, const SfxItemSet& rChgSet,
sal_uInt16 nMkPos, nPtPos = rSt.GetIndex();
const String& rStr = pTxtNd->GetTxt();
- // JP 22.08.96: Sonderfall: steht der Crsr in einem URL-Attribut
- // dann wird dessen Bereich genommen
+ // Special case: if the Crsr is located within a URL attribute, we take over it's area
SwTxtAttr const*const pURLAttr(
pTxtNd->GetTxtAttrAt(rSt.GetIndex(), RES_TXTATR_INETFMT));
if (pURLAttr && pURLAttr->GetINetFmt().GetValue().Len())
@@ -842,17 +838,17 @@ lcl_InsAttr(SwDoc *const pDoc, const SwPaM &rRg, const SfxItemSet& rChgSet,
nPtPos = nMkPos = rSt.GetIndex();
}
- // erstmal die zu ueberschreibenden Attribute aus dem
- // SwpHintsArray entfernen, wenn die Selektion den gesamten
- // Absatz umspannt. (Diese Attribute werden als FormatAttr.
- // eingefuegt und verdraengen nie die TextAttr.!)
+ // Remove the overriding attributes from the SwpHintsArray,
+ // if the selection spans across the whole paragraph.
+ // These attributes are inserted as FormatAttributes and
+ // never override the TextAttributes!
if( !(nFlags & nsSetAttrMode::SETATTR_DONTREPLACE ) &&
pTxtNd->HasHints() && !nMkPos && nPtPos == rStr.Len() )
{
SwIndex aSt( pTxtNd );
if( pHistory )
{
- // fuers Undo alle Attribute sichern
+ // Save all attributes for the Undo.
SwRegHistory aRHst( *pTxtNd, pHistory );
pTxtNd->GetpSwpHints()->Register( &aRHst );
pTxtNd->RstAttr( aSt, nPtPos, 0, pCharSet );
@@ -894,7 +890,7 @@ lcl_InsAttr(SwDoc *const pDoc, const SwPaM &rRg, const SfxItemSet& rChgSet,
pDoc->AppendRedline( new SwRedline( nsRedlineType_t::REDLINE_FORMAT, rRg ), true);
}
- /* jetzt wenn Bereich */
+ /* now if range */
sal_uLong nNodes = 0;
SwNodeIndex aSt( pDoc->GetNodes() );
@@ -924,7 +920,7 @@ lcl_InsAttr(SwDoc *const pDoc, const SwPaM &rRg, const SfxItemSet& rChgSet,
bRet = pNode->SetAttr( *pOtherSet ) || bRet;
}
- // lediglich Selektion in einem Node.
+ // Only selection in a Node.
if( pStt->nNode == pEnd->nNode )
{
DELETECHARSETS
@@ -935,15 +931,15 @@ lcl_InsAttr(SwDoc *const pDoc, const SwPaM &rRg, const SfxItemSet& rChgSet,
}
else
aSt = pStt->nNode;
- aCntEnd = pEnd->nContent; // aEnd wurde veraendert !!
+ aCntEnd = pEnd->nContent; // aEnd was changed!
}
else
aSt.Assign( pStt->nNode.GetNode(), +1 );
- // aSt zeigt jetzt auf den ersten vollen Node
+ // aSt points to the first full Node now
/*
- * die Selektion umfasst mehr als einen Node
+ * The selection spans more than one Node.
*/
if( pStt->nNode < pEnd->nNode )
{
@@ -979,10 +975,10 @@ lcl_InsAttr(SwDoc *const pDoc, const SwPaM &rRg, const SfxItemSet& rChgSet,
else
aEnd.Assign( pEnd->nNode.GetNode(), +1 );
- // aEnd zeigt jetzt HINTER den letzten voll Node
+ // aEnd points BEHIND the last full node now
- /* Bearbeitung der vollstaendig selektierten Nodes. */
-// alle Attribute aus dem Set zuruecksetzen !!
+ /* Edit the fully selected Nodes. */
+ // Reset all attributes from the set!
if( pCharSet && pCharSet->Count() && !( nsSetAttrMode::SETATTR_DONTREPLACE & nFlags ) )
{
@@ -1084,8 +1080,8 @@ bool SwDoc::InsertItemSet ( const SwPaM &rRg, const SfxItemSet &rSet,
}
- // Setze das Attribut im angegebenen Format. Ist Undo aktiv, wird
- // das alte in die Undo-History aufgenommen
+ // Set the attribute according to the stated format. If Undo is enabled, the old values is
+ // added to the Undo history.
void SwDoc::SetAttr( const SfxPoolItem& rAttr, SwFmt& rFmt )
{
SfxItemSet aSet( GetAttrPool(), rAttr.Which(), rAttr.Which() );
@@ -1094,8 +1090,8 @@ void SwDoc::SetAttr( const SfxPoolItem& rAttr, SwFmt& rFmt )
}
- // Setze das Attribut im angegebenen Format. Ist Undo aktiv, wird
- // das alte in die Undo-History aufgenommen
+ // Set the attribute according to the stated format. If Undo is enabled, the old values is
+ // added to the Undo history.
void SwDoc::SetAttr( const SfxItemSet& rSet, SwFmt& rFmt )
{
if (GetIDocumentUndoRedo().DoesUndo())
@@ -1143,17 +1139,16 @@ void SwDoc::ResetAttrAtFormat( const sal_uInt16 nWhichId,
int lcl_SetNewDefTabStops( SwTwips nOldWidth, SwTwips nNewWidth,
SvxTabStopItem& rChgTabStop )
{
- // dann aender bei allen TabStop die default's auf den neuen Wert
- // !!! Achtung: hier wird immer auf dem PoolAttribut gearbeitet,
- // damit nicht in allen Sets die gleiche Berechnung
- // auf dem gleichen TabStop (gepoolt!) vorgenommen
- // wird. Als Modify wird ein FmtChg verschickt.
+ // Set the default values of all TabStops to the new value.
+ // Attention: we always work with the PoolAttribut here, so that
+ // we don't calculate the same value on the same TabStop (pooled!) for all sets.
+ // We send a FmtChg to modify.
sal_uInt16 nOldCnt = rChgTabStop.Count();
if( !nOldCnt || nOldWidth == nNewWidth )
return sal_False;
- // suche den Anfang der Defaults
+ // Find the default's beginning
SvxTabStop* pTabs = ((SvxTabStop*)rChgTabStop.GetStart())
+ (nOldCnt-1);
sal_uInt16 n;
@@ -1162,13 +1157,13 @@ int lcl_SetNewDefTabStops( SwTwips nOldWidth, SwTwips nNewWidth,
if( SVX_TAB_ADJUST_DEFAULT != pTabs->GetAdjustment() )
break;
++n;
- if( n < nOldCnt ) // die DefTabStops loeschen
+ if( n < nOldCnt ) // delete the DefTabStops
rChgTabStop.Remove( n, nOldCnt - n );
return sal_True;
}
-// Setze das Attribut als neues default Attribut in diesem Dokument.
-// Ist Undo aktiv, wird das alte in die Undo-History aufgenommen
+// Set the attribute as new default attribute in this document.
+// If Undi is enabled, the old value is added to the Undo history.
void SwDoc::SetDefault( const SfxPoolItem& rAttr )
{
SfxItemSet aSet( GetAttrPool(), rAttr.Which(), rAttr.Which() );
@@ -1223,7 +1218,7 @@ void SwDoc::SetDefault( const SfxItemSet& rSet )
aCallMod.Add( pDfltFrmFmt );
}
- // copy also the defaults
+ // also copy the defaults
if( bCheckSdrDflt )
{
sal_uInt16 nEdtWhich, nSlotId;
@@ -1256,12 +1251,10 @@ void SwDoc::SetDefault( const SfxItemSet& rSet )
aNew.GetItemState( RES_PARATR_TABSTOP, sal_False, &pTmpItem ) ) &&
((SvxTabStopItem*)pTmpItem)->Count() )
{
- // TabStop-Aenderungen behandeln wir erstmal anders:
- // dann aender bei allen TabStop die dafault's auf den neuen Wert
- // !!! Achtung: hier wird immer auf dem PoolAttribut gearbeitet,
- // damit nicht in allen Sets die gleiche Berechnung
- // auf dem gleichen TabStop (gepoolt!) vorgenommen
- // wird. Als Modify wird ein FmtChg verschickt.
+ // Set the default values of all TabStops to the new value.
+ // Attention: we always work with the PoolAttribut here, so that
+ // we don't calculate the same value on the same TabStop (pooled!) for all sets.
+ // We send a FmtChg to modify.
SwTwips nNewWidth = (*(SvxTabStopItem*)pTmpItem)[ 0 ].GetTabPos(),
nOldWidth = ((SvxTabStopItem&)aOld.Get(RES_PARATR_TABSTOP))[ 0 ].GetTabPos();
@@ -1277,7 +1270,7 @@ void SwDoc::SetDefault( const SfxItemSet& rSet )
if( bChg )
{
SwFmtChg aChgFmt( pDfltCharFmt );
- // dann sage mal den Frames bescheid
+ // notify the frames
aCallMod.ModifyNotification( &aChgFmt, &aChgFmt );
}
}
@@ -1287,10 +1280,10 @@ void SwDoc::SetDefault( const SfxItemSet& rSet )
{
SwAttrSetChg aChgOld( aOld, aOld );
SwAttrSetChg aChgNew( aNew, aNew );
- aCallMod.ModifyNotification( &aChgOld, &aChgNew ); // alle veraenderten werden verschickt
+ aCallMod.ModifyNotification( &aChgOld, &aChgNew ); // all changed are sent
}
- // und die default-Formate wieder beim Object austragen
+ // remove the default formats from the object again
SwClient* pDep;
while( 0 != ( pDep = (SwClient*)aCallMod.GetDepends()) )
aCallMod.Remove( pDep );
@@ -1298,14 +1291,14 @@ void SwDoc::SetDefault( const SfxItemSet& rSet )
SetModified();
}
- // Erfrage das Default Attribut in diesem Dokument.
+// Get the default attribute in this document
const SfxPoolItem& SwDoc::GetDefault( sal_uInt16 nFmtHint ) const
{
return GetAttrPool().GetDefaultItem( nFmtHint );
}
/*
- * Loeschen der Formate
+ * Delete the formats
*/
void SwDoc::DelCharFmt(sal_uInt16 nFmt, sal_Bool bBroadcast)
{
@@ -1340,15 +1333,14 @@ void SwDoc::DelFrmFmt( SwFrmFmt *pFmt, sal_Bool bBroadcast )
{
if( pFmt->ISA( SwTableBoxFmt ) || pFmt->ISA( SwTableLineFmt ))
{
- OSL_ENSURE( !this, "Format steht nicht mehr im DocArray, "
- "kann per delete geloescht werden" );
+ OSL_ENSURE( !this, "Format is not in the DocArray any more, "
+ "so it can be deleted with delete" );
delete pFmt;
}
else
{
- //Das Format muss in einem der beiden Arrays stehen, in welchem
- //werden wir schon merken.
+ // The format has to be in the one or the other, we'll see in which one.
sal_uInt16 nPos;
if ( USHRT_MAX != ( nPos = pFrmFmtTbl->GetPos( pFmt )) )
{
@@ -1384,7 +1376,7 @@ void SwDoc::DelTblFrmFmt( SwTableFmt *pFmt )
}
/*
- * Erzeugen der Formate
+ * Create the formats
*/
SwFlyFrmFmt *SwDoc::MakeFlyFrmFmt( const String &rFmtName,
SwFrmFmt *pDerivedFrom )
@@ -1525,7 +1517,7 @@ SwFmt *SwDoc::_MakeCharFmt(const String &rFmtName,
/*
- * Erzeugen der FormatCollections
+ * Create the FormatCollections
*/
// TXT
// #i40550# - add parameter <bAuto> - not relevant
@@ -1600,10 +1592,10 @@ void SwDoc::DelTxtFmtColl(sal_uInt16 nFmtColl, sal_Bool bBroadcast)
{
OSL_ENSURE( nFmtColl, "Remove fuer Coll 0." );
- // Wer hat die zu loeschende als Next
+ // Who has the to-be-deleted as their Next?
SwTxtFmtColl *pDel = (*pTxtFmtCollTbl)[nFmtColl];
if( pDfltTxtFmtColl == pDel )
- return; // default nie loeschen !!
+ return; // never delete default!
if (bBroadcast)
BroadcastStyleOperation(pDel->GetName(), SFX_STYLE_FAMILY_PARA,
@@ -1617,9 +1609,9 @@ void SwDoc::DelTxtFmtColl(sal_uInt16 nFmtColl, sal_Bool bBroadcast)
GetIDocumentUndoRedo().AppendUndo(pUndo);
}
- // Die FmtColl austragen
+ // Remove the FmtColl
pTxtFmtCollTbl->Remove(nFmtColl);
- // Next korrigieren
+ // Correct next
pTxtFmtCollTbl->ForEach( 1, pTxtFmtCollTbl->Count(),
&SetTxtFmtCollNext, pDel );
delete pDel;
@@ -1694,8 +1686,7 @@ sal_Bool lcl_SetTxtFmtColl( const SwNodePtr& rpNode, void* pArgs )
}
}
- // erst in die History aufnehmen, damit ggfs. alte Daten
- // gesichert werden koennen
+ // add to History so that old data is saved, if necessary
if( pPara->pHistory )
pPara->pHistory->Add( pCNd->GetFmtColl(), pCNd->GetIndex(),
ND_TEXTNODE );
@@ -1735,7 +1726,7 @@ sal_Bool SwDoc::SetTxtFmtColl( const SwPaM &rRg,
GetNodes().ForEach( pStt->nNode.GetIndex(), pEnd->nNode.GetIndex()+1,
lcl_SetTxtFmtColl, &aPara );
if( !aPara.nWhich )
- bRet = sal_False; // keinen gueltigen Node gefunden
+ bRet = sal_False; // didn't find a valid Node
if( bRet )
SetModified();
@@ -1743,45 +1734,45 @@ sal_Bool SwDoc::SetTxtFmtColl( const SwPaM &rRg,
}
-// ---- Kopiere die Formate in sich selbst (SwDoc) ----------------------
+// ---- Copy the formats to itself (SwDoc) ----------------------
SwFmt* SwDoc::CopyFmt( const SwFmt& rFmt,
const SvPtrarr& rFmtArr,
FNCopyFmt fnCopyFmt, const SwFmt& rDfltFmt )
{
- // kein-Autoformat || default Format || Collection-Format
- // dann suche danach.
+ // It's no autoformat, default format or collection format,
+ // then search for it.
if( !rFmt.IsAuto() || !rFmt.GetRegisteredIn() )
for( sal_uInt16 n = 0; n < rFmtArr.Count(); n++ )
{
- // ist die Vorlage schon im Doc vorhanden ??
+ // Does the Doc already contain the template?
if( ((SwFmt*)rFmtArr[n])->GetName().Equals( rFmt.GetName() ))
return (SwFmt*)rFmtArr[n];
}
- // suche erstmal nach dem "Parent"
+ // Search for the "parent" first
SwFmt* pParent = (SwFmt*)&rDfltFmt;
if( rFmt.DerivedFrom() && pParent != rFmt.DerivedFrom() )
pParent = CopyFmt( *rFmt.DerivedFrom(), rFmtArr,
fnCopyFmt, rDfltFmt );
- // erzeuge das Format und kopiere die Attribute
+ // Create the format and copy the attributes
// #i40550#
SwFmt* pNewFmt = (this->*fnCopyFmt)( rFmt.GetName(), pParent, sal_False, sal_True );
pNewFmt->SetAuto( rFmt.IsAuto() );
- pNewFmt->CopyAttrs( rFmt, sal_True ); // kopiere Attribute
+ pNewFmt->CopyAttrs( rFmt, sal_True ); // copy the attributes
pNewFmt->SetPoolFmtId( rFmt.GetPoolFmtId() );
pNewFmt->SetPoolHelpId( rFmt.GetPoolHelpId() );
- // HelpFile-Id immer auf dflt setzen !!
+ // Always set the HelpFile Id to dflt!
pNewFmt->SetPoolHlpFileId( UCHAR_MAX );
return pNewFmt;
}
-// ---- kopiere das Frame-Format --------
+// ---- copy the frame format --------
SwFrmFmt* SwDoc::CopyFrmFmt( const SwFrmFmt& rFmt )
{
@@ -1789,7 +1780,7 @@ SwFrmFmt* SwDoc::CopyFrmFmt( const SwFrmFmt& rFmt )
*GetDfltFrmFmt() );
}
-// ---- kopiere das Char-Format --------
+// ---- copy the char format --------
SwCharFmt* SwDoc::CopyCharFmt( const SwCharFmt& rFmt )
{
return (SwCharFmt*)CopyFmt( rFmt, *GetCharFmts(),
@@ -1798,7 +1789,7 @@ SwCharFmt* SwDoc::CopyCharFmt( const SwCharFmt& rFmt )
}
-// --- Kopiere TextNodes ----
+// --- copy TextNodes ----
SwTxtFmtColl* SwDoc::CopyTxtColl( const SwTxtFmtColl& rColl )
{
@@ -1806,7 +1797,7 @@ SwTxtFmtColl* SwDoc::CopyTxtColl( const SwTxtFmtColl& rColl )
if( pNewColl )
return pNewColl;
- // suche erstmal nach dem "Parent"
+ // search for the "parent" first
SwTxtFmtColl* pParent = pDfltTxtFmtColl;
if( pParent != rColl.DerivedFrom() )
pParent = CopyTxtColl( *(SwTxtFmtColl*)rColl.DerivedFrom() );
@@ -1821,7 +1812,7 @@ SwTxtFmtColl* SwDoc::CopyTxtColl( const SwTxtFmtColl& rColl )
pNewColl->SetAuto( sal_False );
SetModified();
- // Kopiere noch die Bedingungen
+ // copy the conditions
((SwConditionTxtFmtColl*)pNewColl)->SetConditions(
((SwConditionTxtFmtColl&)rColl).GetCondColls() );
}
@@ -1829,7 +1820,7 @@ SwTxtFmtColl* SwDoc::CopyTxtColl( const SwTxtFmtColl& rColl )
//FEATURE::CONDCOLL
pNewColl = MakeTxtFmtColl( rColl.GetName(), pParent );
- // kopiere jetzt noch die Auto-Formate oder kopiere die Attribute
+ // copy the auto formats or the attributes
pNewColl->CopyAttrs( rColl, sal_True );
if(rColl.IsAssignedToListLevelOfOutlineStyle())
@@ -1838,13 +1829,13 @@ SwTxtFmtColl* SwDoc::CopyTxtColl( const SwTxtFmtColl& rColl )
pNewColl->SetPoolFmtId( rColl.GetPoolFmtId() );
pNewColl->SetPoolHelpId( rColl.GetPoolHelpId() );
- // HelpFile-Id immer auf dflt setzen !!
+ // Always set the HelpFile Id to dflt!
pNewColl->SetPoolHlpFileId( UCHAR_MAX );
if( &rColl.GetNextTxtFmtColl() != &rColl )
pNewColl->SetNextTxtFmtColl( *CopyTxtColl( rColl.GetNextTxtFmtColl() ));
- // ggfs. die NumRule erzeugen
+ // create the NumRule if necessary
if( this != rColl.GetDoc() )
{
const SfxPoolItem* pItem;
@@ -1868,7 +1859,7 @@ SwTxtFmtColl* SwDoc::CopyTxtColl( const SwTxtFmtColl& rColl )
return pNewColl;
}
-// --- Kopiere GrafikNodes ----
+// --- copy the graphic nodes ----
SwGrfFmtColl* SwDoc::CopyGrfColl( const SwGrfFmtColl& rColl )
{
@@ -1876,21 +1867,21 @@ SwGrfFmtColl* SwDoc::CopyGrfColl( const SwGrfFmtColl& rColl )
if( pNewColl )
return pNewColl;
- // suche erstmal nach dem "Parent"
+ // Search for the "parent" first
SwGrfFmtColl* pParent = pDfltGrfFmtColl;
if( pParent != rColl.DerivedFrom() )
pParent = CopyGrfColl( *(SwGrfFmtColl*)rColl.DerivedFrom() );
- // falls nicht, so kopiere sie
+ // if not, copy them
pNewColl = MakeGrfFmtColl( rColl.GetName(), pParent );
- // noch die Attribute kopieren
+ // copy the attributes
pNewColl->CopyAttrs( rColl );
pNewColl->SetPoolFmtId( rColl.GetPoolFmtId() );
pNewColl->SetPoolHelpId( rColl.GetPoolHelpId() );
- // HelpFile-Id immer auf dflt setzen !!
+ // Always set the HelpFile Id to dflt!
pNewColl->SetPoolHlpFileId( UCHAR_MAX );
return pNewColl;
@@ -1915,7 +1906,7 @@ void SwDoc::CopyFmtArr( const SvPtrarr& rSourceArr,
sal_uInt16 nSrc;
SwFmt* pSrc, *pDest;
- // 1. Schritt alle Formate anlegen (das 0. ueberspringen - Default!)
+ // 1st step: Create all formats (skip the 0th - it's the default one)
for( nSrc = rSourceArr.Count(); nSrc > 1; )
{
pSrc = (SwFmt*)rSourceArr[ --nSrc ];
@@ -1932,7 +1923,7 @@ void SwDoc::CopyFmtArr( const SvPtrarr& rSourceArr,
}
}
- // 2. Schritt alle Attribute kopieren, richtige Parents setzen
+ // 2nd step: Copy all attributes, set the right parents
for( nSrc = rSourceArr.Count(); nSrc > 1; )
{
pSrc = (SwFmt*)rSourceArr[ --nSrc ];
@@ -1970,7 +1961,7 @@ void SwDoc::CopyFmtArr( const SvPtrarr& rSourceArr,
pDest->SetPoolFmtId( pSrc->GetPoolFmtId() );
pDest->SetPoolHelpId( pSrc->GetPoolHelpId() );
- // HelpFile-Id immer auf dflt setzen !!
+ // Always set the HelpFile Id to dflt!
pDest->SetPoolHlpFileId( UCHAR_MAX );
if( pSrc->DerivedFrom() )
@@ -1991,8 +1982,7 @@ void SwDoc::CopyFmtArr( const SvPtrarr& rSourceArr,
//FEATURE::CONDCOLL
if( RES_CONDTXTFMTCOLL == pSrc->Which() )
- // Kopiere noch die Bedingungen
- // aber erst die alten loeschen!
+ // Copy the conditions, but delete the old ones first!
((SwConditionTxtFmtColl*)pDstColl)->SetConditions(
((SwConditionTxtFmtColl*)pSrc)->GetCondColls() );
//FEATURE::CONDCOLL
@@ -2003,15 +1993,14 @@ void SwDoc::CopyFmtArr( const SvPtrarr& rSourceArr,
void SwDoc::CopyPageDescHeaderFooterImpl( bool bCpyHeader,
const SwFrmFmt& rSrcFmt, SwFrmFmt& rDestFmt )
{
- // jetzt noch Header-/Footer-Attribute richtig behandeln
- // Contenten Nodes Dokumentuebergreifend kopieren!
+ // Treat the header and footer attributes in the right way:
+ // Copy content nodes across documents!
sal_uInt16 nAttr = static_cast<sal_uInt16>( bCpyHeader ? RES_HEADER : RES_FOOTER );
const SfxPoolItem* pItem;
if( SFX_ITEM_SET != rSrcFmt.GetAttrSet().GetItemState( nAttr, sal_False, &pItem ))
return ;
- // Im Header steht noch der Verweis auf das Format aus dem
- // anderen Document!!
+ // The header only contains the reference to the format from the other document!
SfxPoolItem* pNewItem = pItem->Clone();
SwFrmFmt* pOldFmt;
@@ -2076,7 +2065,7 @@ void SwDoc::CopyPageDesc( const SwPageDesc& rSrcDesc, SwPageDesc& rDstDesc,
{
rDstDesc.SetPoolFmtId( rSrcDesc.GetPoolFmtId() );
rDstDesc.SetPoolHelpId( rSrcDesc.GetPoolHelpId() );
- // HelpFile-Id immer auf dflt setzen !!
+ // Always set the HelpFile Id to dflt!
rDstDesc.SetPoolHlpFileId( UCHAR_MAX );
}
@@ -2086,7 +2075,7 @@ void SwDoc::CopyPageDesc( const SwPageDesc& rSrcDesc, SwPageDesc& rDstDesc,
rSrcDesc.GetFollow()->GetName() );
if( !pFollow )
{
- // dann mal kopieren
+ // copy
sal_uInt16 nPos = MakePageDesc( rSrcDesc.GetFollow()->GetName() );
pFollow = aPageDescs[ nPos ];
CopyPageDesc( *rSrcDesc.GetFollow(), *pFollow );
@@ -2095,8 +2084,8 @@ void SwDoc::CopyPageDesc( const SwPageDesc& rSrcDesc, SwPageDesc& rDstDesc,
bNotifyLayout = sal_True;
}
- // die Header/Footer-Attribute werden gesondert kopiert, die Content-
- // Sections muessen vollstaendig mitgenommen werden!
+ // the header and footer attributes are copied seperately
+ // the content sections have to be copied in their entirety
{
SfxItemSet aAttrSet( rSrcDesc.GetMaster().GetAttrSet() );
aAttrSet.ClearItem( RES_HEADER );
@@ -2132,8 +2121,7 @@ void SwDoc::CopyPageDesc( const SwPageDesc& rSrcDesc, SwPageDesc& rDstDesc,
std::for_each( aAllLayouts.begin(), aAllLayouts.end(),std::mem_fun(&SwRootFrm::AllCheckPageDescs));//swmod 080226
}
- //Wenn sich FussnotenInfo veraendert, so werden die Seiten
- //angetriggert.
+ // If foot notes change the pages have to be triggered
if( !(rDstDesc.GetFtnInfo() == rSrcDesc.GetFtnInfo()) )
{
rDstDesc.SetFtnInfo( rSrcDesc.GetFtnInfo() );
@@ -2158,14 +2146,14 @@ void SwDoc::ReplaceStyles( const SwDoc& rSource )
CopyFmtArr( *rSource.pTxtFmtCollTbl, *pTxtFmtCollTbl,
&SwDoc::_MakeTxtFmtColl, *pDfltTxtFmtColl );
- // und jetzt noch die Seiten-Vorlagen
+ // and now the page templates
sal_uInt16 nCnt = rSource.aPageDescs.Count();
if( nCnt )
{
- // ein anderes Doc -> Numberformatter muessen gemergt werden
+ // a different Doc -> Number formatter needs to be merged
SwTblNumFmtMerge aTNFM( rSource, *this );
- // 1. Schritt alle Formate anlegen (das 0. ueberspringen - Default!)
+ // 1st step: Create all formats (skip the 0th - it's the default!)
while( nCnt )
{
SwPageDesc *pSrc = rSource.aPageDescs[ --nCnt ];
@@ -2173,7 +2161,7 @@ void SwDoc::ReplaceStyles( const SwDoc& rSource )
MakePageDesc( pSrc->GetName() );
}
- // 2. Schritt alle Attribute kopieren, richtige Parents setzen
+ // 2nd step: Copy all attributes, set the right parents
for( nCnt = rSource.aPageDescs.Count(); nCnt; )
{
SwPageDesc *pSrc = rSource.aPageDescs[ --nCnt ];
@@ -2181,7 +2169,7 @@ void SwDoc::ReplaceStyles( const SwDoc& rSource )
}
}
- //JP 08.04.99: und dann sind da noch die Numerierungs-Vorlagen
+ // then there are the numbering templates
nCnt = rSource.GetNumRuleTbl().Count();
if( nCnt )
{
@@ -2215,7 +2203,7 @@ SwFmt* SwDoc::FindFmtByName( const SvPtrarr& rFmtArr,
SwFmt* pFnd = 0;
for( sal_uInt16 n = 0; n < rFmtArr.Count(); n++ )
{
- // ist die Vorlage schon im Doc vorhanden ??
+ // Does the Doc already contain the template?
if( ((SwFmt*)rFmtArr[n])->GetName() == rName )
{
pFnd = (SwFmt*)rFmtArr[n];
@@ -2321,7 +2309,7 @@ void SwDoc::_CreateNumberFormatter()
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLog, "SW", "JP93722", "SwDoc::_CreateNumberFormatter" );
- OSL_ENSURE( !pNumberFormatter, "ist doch schon vorhanden" );
+ OSL_ENSURE( !pNumberFormatter, "is already there" );
LanguageType eLang = LANGUAGE_SYSTEM;
@@ -2336,7 +2324,7 @@ void SwDoc::_CreateNumberFormatter()
SwTblNumFmtMerge::SwTblNumFmtMerge( const SwDoc& rSrc, SwDoc& rDest )
: pNFmt( 0 )
{
- // ein anderes Doc -> Numberformatter muessen gemergt werden
+ // a different Doc -> Number formatter needs to be merged
SvNumberFormatter* pN;
if( &rSrc != &rDest && 0 != ( pN = ((SwDoc&)rSrc).GetNumberFormatter( sal_False ) ))
( pNFmt = rDest.GetNumberFormatter( sal_True ))->MergeFormatter( *pN );
@@ -2361,20 +2349,20 @@ void SwDoc::SetTxtFmtCollByAutoFmt( const SwPosition& rPos, sal_uInt16 nPoolId,
if( mbIsAutoFmtRedline && pTNd )
{
- // dann das Redline Object anlegen
+ // create the redline object
const SwTxtFmtColl& rColl = *pTNd->GetTxtColl();
SwRedline* pRedl = new SwRedline( nsRedlineType_t::REDLINE_FMTCOLL, aPam );
pRedl->SetMark();
- // interressant sind nur die Items, die vom Set NICHT wieder
- // in den Node gesetzt werden. Also muss man die Differenz nehmen
+ // Only those items that are not set by the Set again in the Node
+ // are of interest. Thus, we take the difference.
SwRedlineExtraData_FmtColl aExtraData( rColl.GetName(),
rColl.GetPoolFmtId() );
if( pSet && pTNd->HasSwAttrSet() )
{
SfxItemSet aTmp( *pTNd->GetpSwAttrSet() );
aTmp.Differentiate( *pSet );
- // das Adjust Item behalten wir extra
+ // we handle the adjust item seperately
const SfxPoolItem* pItem;
if( SFX_ITEM_SET == pTNd->GetpSwAttrSet()->GetItemState(
RES_PARATR_ADJUST, sal_False, &pItem ))
@@ -2383,7 +2371,7 @@ void SwDoc::SetTxtFmtCollByAutoFmt( const SwPosition& rPos, sal_uInt16 nPoolId,
}
pRedl->SetExtraData( &aExtraData );
-// !!!!!!!!! Undo fehlt noch !!!!!!!!!!!!!!!!!!
+ //TODO: Undo is still missing!
AppendRedline( pRedl, true );
}
@@ -2405,18 +2393,18 @@ void SwDoc::SetFmtItemByAutoFmt( const SwPaM& rPam, const SfxItemSet& rSet )
if( mbIsAutoFmtRedline && pTNd )
{
- // dann das Redline Object anlegen
+ // create the redline object
SwRedline* pRedl = new SwRedline( nsRedlineType_t::REDLINE_FORMAT, rPam );
if( !pRedl->HasMark() )
pRedl->SetMark();
- // interressant sind nur die Items, die vom Set NICHT wieder
- // in den Node gesetzt werden. Also muss man die Differenz nehmen
+ // Only those items that are not set by the Set again in the Node
+ // are of interest. Thus, we take the difference.
SwRedlineExtraData_Format aExtraData( rSet );
pRedl->SetExtraData( &aExtraData );
-// !!!!!!!!! Undo fehlt noch !!!!!!!!!!!!!!!!!!
+ //TODO: Undo is still missing!
AppendRedline( pRedl, true );
SetRedlineMode_intern( (RedlineMode_t)(eOld | nsRedlineMode_t::REDLINE_IGNORE));
commit b184d422893015e1c7086f7b31fe0a53814a2bb0
Author: Philipp Weissenbacher <p.weissenbacher at gmail.com>
Date: Mon Nov 28 18:53:42 2011 +0100
Translate German comments
diff --git a/sw/source/core/doc/docfly.cxx b/sw/source/core/doc/docfly.cxx
index b7f4da5..e867da1 100644
--- a/sw/source/core/doc/docfly.cxx
+++ b/sw/source/core/doc/docfly.cxx
@@ -216,16 +216,16 @@ Point lcl_FindAnchorLayPos( SwDoc& rDoc, const SwFmtAnchor& rAnch,
sal_Int8 SwDoc::SetFlyFrmAnchor( SwFrmFmt& rFmt, SfxItemSet& rSet, sal_Bool bNewFrms )
{
- //Ankerwechsel sind fast immer in alle 'Richtungen' erlaubt.
- //Ausnahme: Absatz- bzw. Zeichengebundene Rahmen duerfen wenn sie in
- //Kopf-/Fusszeilen stehen nicht Seitengebunden werden.
+ // Changing anchors is almost always allowed.
+ // Exception: Paragraph and character bound frames must not become
+ // page bound, if they are located in the header or footer.
const SwFmtAnchor &rOldAnch = rFmt.GetAnchor();
const RndStdIds nOld = rOldAnch.GetAnchorId();
SwFmtAnchor aNewAnch( (SwFmtAnchor&)rSet.Get( RES_ANCHOR ) );
RndStdIds nNew = aNewAnch.GetAnchorId();
- // ist der neue ein gueltiger Anker?
+ // Is the new anchor valid?
if( !aNewAnch.GetCntntAnchor() && (FLY_AT_FLY == nNew ||
(FLY_AT_PARA == nNew) || (FLY_AS_CHAR == nNew) ||
(FLY_AT_CHAR == nNew) ))
@@ -240,16 +240,17 @@ sal_Int8 SwDoc::SetFlyFrmAnchor( SwFrmFmt& rFmt, SfxItemSet& rSet, sal_Bool bNew
Point aOldAnchorPos( ::lcl_FindAnchorLayPos( *this, rOldAnch, &rFmt ));
Point aNewAnchorPos( ::lcl_FindAnchorLayPos( *this, aNewAnch, 0 ));
- //Die alten Frms vernichten. Dabei werden die Views implizit gehidet und
- //doppeltes hiden waere so eine art Show!
+ // Destroy the old Frames.
+ // The Views are hidden implicitly, so hiding them another time would be
+ // kind of a show!
rFmt.DelFrms();
if ( FLY_AS_CHAR == nOld )
{
- //Bei InCntnt's wird es spannend: Das TxtAttribut muss vernichtet
- //werden. Leider reisst dies neben den Frms auch noch das Format mit
- //in sein Grab. Um dass zu unterbinden loesen wir vorher die
- //Verbindung zwischen Attribut und Format.
+ // We need to handle InCntnts in a special way:
+ // The TxtAttribut needs to be destroyed which, unfortunately, also
+ // destroys the format. To avoid that, we disconnect the format from
+ // the attribute.
const SwPosition *pPos = rOldAnch.GetCntntAnchor();
SwTxtNode *pTxtNode = pPos->nNode.GetNode().GetTxtNode();
OSL_ENSURE( pTxtNode->HasHints(), "Missing FlyInCnt-Hint." );
@@ -262,27 +263,25 @@ sal_Int8 SwDoc::SetFlyFrmAnchor( SwFrmFmt& rFmt, SfxItemSet& rSet, sal_Bool bNew
"Wrong TxtFlyCnt-Hint." );
const_cast<SwFmtFlyCnt&>(pHnt->GetFlyCnt()).SetFlyFmt();
- //Die Verbindung ist geloest, jetzt muss noch das Attribut vernichtet
- //werden.
+ // They are disconnected. We now have to destroy the attribute.
pTxtNode->DeleteAttributes( RES_TXTATR_FLYCNT, nIdx, nIdx );
}
- //Endlich kann das Attribut gesetzt werden. Es muss das erste Attribut
- //sein; Undo depends on it!
+ // We can finally set the attribute. It needs to be the first one!
+ // Undo depends on it!
rFmt.SetFmtAttr( aNewAnch );
- //Positionskorrekturen
+ // Correct the position
const SfxPoolItem* pItem;
switch( nNew )
{
case FLY_AS_CHAR:
- //Wenn keine Positionsattribute hereinkommen, dann muss dafuer
- //gesorgt werden, das keine unerlaubte automatische Ausrichtung
- //bleibt.
+ // If no position attributes are received, we have to make sure
+ // that no forbidden automatic alignment is left.
{
const SwPosition *pPos = aNewAnch.GetCntntAnchor();
SwTxtNode *pNd = pPos->nNode.GetNode().GetTxtNode();
- OSL_ENSURE( pNd, "Crsr steht nicht auf TxtNode." );
+ OSL_ENSURE( pNd, "Crsr does not point to TxtNode." );
SwFmtFlyCnt aFmt( static_cast<SwFlyFrmFmt*>(&rFmt) );
pNd->InsertItem( aFmt, pPos->nContent.GetIndex(), 0 );
@@ -307,16 +306,14 @@ sal_Int8 SwDoc::SetFlyFrmAnchor( SwFrmFmt& rFmt, SfxItemSet& rSet, sal_Bool bNew
break;
case FLY_AT_PARA:
- case FLY_AT_CHAR: // LAYER_IMPL
- case FLY_AT_FLY: // LAYER_IMPL
+ case FLY_AT_CHAR: // LAYER_IMPL
+ case FLY_AT_FLY: // LAYER_IMPL
case FLY_AT_PAGE:
{
- //Wenn keine Positionsattribute hereinschneien korrigieren wir
- //die Position so, dass die Dokumentkoordinaten des Flys erhalten
- //bleiben.
- //Chg: Wenn sich in den Positionsattributen lediglich die
- //Ausrichtung veraendert (text::RelOrientation::FRAME vs. text::RelOrientation::PRTAREA), dann wird die
- //Position ebenfalls korrigiert.
+ // If no position attributes are coming in, we correct the position in a way
+ // such that the fly's document coordinates are preserved.
+ // If only the alignment changes in the position attributes (text::RelOrientation::FRAME
+ // vs. text::RelOrientation::PRTAREA), we also correct the position.
if( SFX_ITEM_SET != rSet.GetItemState( RES_HORI_ORIENT, sal_False, &pItem ))
pItem = 0;
@@ -379,9 +376,9 @@ lcl_SetFlyFrmAttr(SwDoc & rDoc,
// objects of type SwUndoFrmFmt on the undo stack. We don't want them.
::sw::UndoGuard const undoGuard(rDoc.GetIDocumentUndoRedo());
- //Ist das Ankerattribut dabei? Falls ja ueberlassen wir die Verarbeitung
- //desselben einer Spezialmethode. Sie Returnt sal_True wenn der Fly neu
- //erzeugt werden muss (z.B. weil ein Wechsel des FlyTyps vorliegt).
+ // Is the anchor attribute included?
+ // If so, we pass it to a special method, which returns sal_True
+ // if the Fly needs to be created anew, because we e.g change the FlyType.
sal_Int8 const nMakeFrms =
(SFX_ITEM_SET == rSet.GetItemState( RES_ANCHOR, sal_False ))
? (rDoc.*pSetFlyFrmAnchor)( rFlyFmt, rSet, sal_False )
@@ -399,8 +396,8 @@ lcl_SetFlyFrmAttr(SwDoc & rDoc,
case RES_PAGEDESC:
case RES_CNTNT:
case RES_FOOTER:
- OSL_FAIL( ":-) Unbekanntes Attribut fuer Fly." );
- // kein break;
+ OSL_FAIL( "Unknown Fly attribute." );
+ // no break;
case RES_CHAIN:
rSet.ClearItem( nWhich );
break;
@@ -527,8 +524,8 @@ sal_Bool SwDoc::SetFrmFmtToFly( SwFrmFmt& rFmt, SwFrmFmt& rNewFmt,
// 2 objects of type SwUndoFrmFmt on the undo stack. We don't want them.
::sw::UndoGuard const undoGuard(GetIDocumentUndoRedo());
- //Erstmal die Spalten setzen, sonst gibts nix als Aerger mit dem
- //Set/Reset/Abgleich usw.
+ // Set the column first, or we'll have trouble with
+ //Set/Reset/Synch. and so on
const SfxPoolItem* pItem;
if( SFX_ITEM_SET != rNewFmt.GetAttrSet().GetItemState( RES_COL ))
rFmt.ResetFmtAttr( RES_COL );
@@ -537,8 +534,8 @@ sal_Bool SwDoc::SetFrmFmtToFly( SwFrmFmt& rFmt, SwFrmFmt& rNewFmt,
{
rFmt.SetDerivedFrom( &rNewFmt );
- // 1. wenn nicht automatisch -> ignorieren, sonst -> wech
- // 2. wech damit, MB!
+ // 1. If not automatic = ignore; else = dispose
+ // 2. Dispose of it!
if( SFX_ITEM_SET == rNewFmt.GetAttrSet().GetItemState( RES_FRM_SIZE, sal_False ))
{
rFmt.ResetFmtAttr( RES_FRM_SIZE );
@@ -555,8 +552,8 @@ sal_Bool SwDoc::SetFrmFmtToFly( SwFrmFmt& rFmt, SwFrmFmt& rNewFmt,
bChgAnchor = MAKEFRMS == SetFlyFrmAnchor( rFmt, *pSet, sal_False );
else
{
- //JP 23.04.98: muss den FlyFmt-Range haben, denn im SetFlyFrmAnchor
- // werden Attribute in diesen gesetzt!
+ // Needs to have the FlyFmt range, because we set attributes in it,
+ // in SetFlyFrmAnchor.
SfxItemSet aFlySet( *rNewFmt.GetAttrSet().GetPool(),
rNewFmt.GetAttrSet().GetRanges() );
aFlySet.Put( *pItem );
@@ -565,11 +562,10 @@ sal_Bool SwDoc::SetFrmFmtToFly( SwFrmFmt& rFmt, SwFrmFmt& rNewFmt,
}
}
- //Hori und Vert nur dann resetten, wenn in der Vorlage eine
- //automatische Ausrichtung eingestellt ist, anderfalls den alten Wert
- //wieder hineinstopfen.
- // beim Update der RahmenVorlage sollte der Fly NICHT
- // seine Orientierng verlieren (diese wird nicht geupdatet!)
+ // Only reset vertical and horizontal orientation, if we have automatic alignment
+ // set in the template. Otherwise use the old value.
+ // If we update the frame template the Fly should NOT lose its orientation (which
+ // is not being updated!).
// text::HoriOrientation::NONE and text::VertOrientation::NONE are allowed now
if (!bKeepOrient)
{
@@ -610,7 +606,7 @@ sal_Bool SwDoc::ChgAnchor( const SdrMarkList& _rMrkList,
const sal_Bool _bSameOnly,
const sal_Bool _bPosCorr )
{
- OSL_ENSURE( GetCurrentLayout(), "Ohne Layout geht gar nichts" );
+ OSL_ENSURE( GetCurrentLayout(), "No layout!" );
if ( !_rMrkList.GetMarkCount() ||
_rMrkList.GetMark( 0 )->GetMarkedSdrObj()->GetUpGroup() )
@@ -698,8 +694,7 @@ sal_Bool SwDoc::ChgAnchor( const SdrMarkList& _rMrkList,
case FLY_AT_FLY: // LAYER_IMPL
{
- //Ausgehend von der linken oberen Ecke des Fly den
- //dichtesten SwFlyFrm suchen.
+ // Search the closest SwFlyFrm starting from the upper left corner.
SwFrm *pTxtFrm;
{
SwCrsrMoveState aState( MV_SETONLYTEXT );
@@ -738,7 +733,7 @@ sal_Bool SwDoc::ChgAnchor( const SdrMarkList& _rMrkList,
}
break;
case FLY_AS_CHAR:
- if( _bSameOnly ) // Positions/Groessenaenderung
+ if( _bSameOnly ) // Change of position/size
{
if( !pOldAnchorFrm )
{
@@ -747,7 +742,7 @@ sal_Bool SwDoc::ChgAnchor( const SdrMarkList& _rMrkList,
}
((SwTxtFrm*)pOldAnchorFrm)->Prepare();
}
- else // Ankerwechsel
+ else // Change of anchors
{
// allow drawing objects in header/footer
pNewAnchorFrm = ::FindAnchor( pOldAnchorFrm, aPt, false );
@@ -759,13 +754,13 @@ sal_Bool SwDoc::ChgAnchor( const SdrMarkList& _rMrkList,
bUnmark = ( 0 != i );
Point aPoint( aPt );
- aPoint.X() -= 1; // nicht im DrawObj landen!!
+ aPoint.X() -= 1; // Do not load in the DrawObj!
aNewAnch.SetType( FLY_AS_CHAR );
SwPosition aPos( *((SwCntntFrm*)pNewAnchorFrm)->GetNode() );
if ( pNewAnchorFrm->Frm().IsInside( aPoint ) )
{
- // es muss ein TextNode gefunden werden, denn nur dort
- // ist ein inhaltsgebundenes DrawObjekt zu verankern
+ // We need to find a TextNode, because only there we can anchor a
+ // content-bound DrawObject.
SwCrsrMoveState aState( MV_SETONLYTEXT );
GetCurrentLayout()->GetCrsrOfst( &aPos, aPoint, &aState ); //swmod 080218
}
@@ -826,10 +821,10 @@ sal_Bool SwDoc::ChgAnchor( const SdrMarkList& _rMrkList,
// #i54336#
if ( pNewAnchorFrm && pOldAsCharAnchorPos )
{
- //Bei InCntnt's wird es spannend: Das TxtAttribut muss vernichtet
- //werden. Leider reisst dies neben den Frms auch noch das Format mit
- //in sein Grab. Um dass zu unterbinden loesen wir vorher die
- //Verbindung zwischen Attribut und Format.
+ // We need to handle InCntnts in a special way:
+ // The TxtAttribut needs to be destroyed which, unfortunately, also
+ // destroys the format. To avoid that, we disconnect the format from
+ // the attribute.
const xub_StrLen nIndx( pOldAsCharAnchorPos->nContent.GetIndex() );
SwTxtNode* pTxtNode( pOldAsCharAnchorPos->nNode.GetNode().GetTxtNode() );
OSL_ENSURE( pTxtNode, "<SwDoc::ChgAnchor(..)> - missing previous anchor text node for as-character anchored object" );
@@ -838,8 +833,7 @@ sal_Bool SwDoc::ChgAnchor( const SdrMarkList& _rMrkList,
pTxtNode->GetTxtAttrForCharAt( nIndx, RES_TXTATR_FLYCNT );
const_cast<SwFmtFlyCnt&>(pHnt->GetFlyCnt()).SetFlyFmt();
- //Die Verbindung ist geloest, jetzt muss noch das Attribut vernichtet
- //werden.
+ // They are disconnected. We now have to destroy the attribute.
pTxtNode->DeleteAttributes( RES_TXTATR_FLYCNT, nIndx, nIndx );
delete pOldAsCharAnchorPos;
}
@@ -854,13 +848,12 @@ sal_Bool SwDoc::ChgAnchor( const SdrMarkList& _rMrkList,
int SwDoc::Chainable( const SwFrmFmt &rSource, const SwFrmFmt &rDest )
{
- //Die Source darf noch keinen Follow haben.
+ // The Source must not yet have a Follow.
const SwFmtChain &rOldChain = rSource.GetChain();
if ( rOldChain.GetNext() )
return SW_CHAIN_SOURCE_CHAINED;
- //Ziel darf natuerlich nicht gleich Source sein und es
- //darf keine geschlossene Kette entstehen.
+ // Target must not be equal to Source and we also must not have a closed chain.
const SwFrmFmt *pFmt = &rDest;
do {
if( pFmt == &rSource )
@@ -868,17 +861,16 @@ int SwDoc::Chainable( const SwFrmFmt &rSource, const SwFrmFmt &rDest )
pFmt = pFmt->GetChain().GetNext();
} while ( pFmt );
- //Auch eine Verkettung von Innen nach aussen oder von aussen
- //nach innen ist nicht zulaessig.
+ // There must not be a chaining from outside to inside or the other way around.
if( rDest.IsLowerOf( rSource ) || rSource .IsLowerOf( rDest ) )
return SW_CHAIN_SELF;
- //Das Ziel darf noch keinen Master haben.
+ // The Target must not yet have a Master.
const SwFmtChain &rChain = rDest.GetChain();
if( rChain.GetPrev() )
return SW_CHAIN_IS_IN_CHAIN;
- //Das Ziel muss leer sein.
+ // Target must be empty.
const SwNodeIndex* pCntIdx = rDest.GetCntnt().GetCntntIdx();
if( !pCntIdx )
return SW_CHAIN_NOT_FOUND;
@@ -910,11 +902,10 @@ int SwDoc::Chainable( const SwFrmFmt &rSource, const SwFrmFmt &rDest )
}
}
- //Auf die richtige Area muessen wir auch noch einen Blick werfen.
- //Beide Flys muessen im selben Bereich (Body, Head/Foot, Fly) sitzen
- //Wenn die Source nicht der selektierte Rahmen ist, so reicht es
- //Wenn ein passender gefunden wird (Der Wunsch kann z.B. von der API
- //kommen).
+ // We also need to consider the right area.
+ // Both Flys need to be located in the same area (Body, Header/Footer, Fly).
+ // If the Source is not the selected frame, it's enough to find a suitable
+ // one. e.g. if it's requested by the API.
// both in the same fly, header, footer or on the page?
const SwFmtAnchor &rSrcAnchor = rSource.GetAnchor(),
@@ -960,7 +951,7 @@ int SwDoc::Chain( SwFrmFmt &rSource, const SwFrmFmt &rDest )
SwFlyFrmFmt& rDestFmt = (SwFlyFrmFmt&)rDest;
- //Follow an den Master haengen.
+ // Attach Follow to the Master.
SwFmtChain aChain = rDestFmt.GetChain();
aChain.SetPrev( &(SwFlyFrmFmt&)rSource );
SetAttr( aChain, rDestFmt );
@@ -968,12 +959,12 @@ int SwDoc::Chain( SwFrmFmt &rSource, const SwFrmFmt &rDest )
SfxItemSet aSet( GetAttrPool(), RES_FRM_SIZE, RES_FRM_SIZE,
RES_CHAIN, RES_CHAIN, 0 );
- //Follow an den Master haengen.
+ // Attach Follow to the Master.
aChain.SetPrev( &(SwFlyFrmFmt&)rSource );
SetAttr( aChain, rDestFmt );
- //Master an den Follow haengen und dafuer sorgen, dass der Master
- //eine fixierte Hoehe hat.
+ // Attach Master to the Follow.
+ // Make sure that the Master has a fixed height.
aChain = rSource.GetChain();
aChain.SetNext( &rDestFmt );
aSet.Put( aChain );
More information about the Libreoffice-commits
mailing list