Hi,
I have submitted a patch for review:
https://gerrit.libreoffice.org/2871
To pull it, you can do:
git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/71/2871/1
fdo#39468: Translated German comments
I am not shure how to translate the german word "band" in this
context (bar/row/line/...) and decided for bar.
Change-Id: I85c8675881db9facdd543c02c846ec64642f8449
---
M sw/source/filter/ww8/ww8par2.cxx
1 file changed, 237 insertions(+), 253 deletions(-)
diff --git a/sw/source/filter/ww8/ww8par2.cxx b/sw/source/filter/ww8/ww8par2.cxx
index e9a7f7e..2f83910 100644
--- a/sw/source/filter/ww8/ww8par2.cxx
+++ b/sw/source/filter/ww8/ww8par2.cxx
@@ -52,7 +52,7 @@
#include <fmtftn.hxx>
#include <charfmt.hxx>
#include <SwStyleNameMapper.hxx>
-#include <fltshell.hxx> // fuer den Attribut Stack
+#include <fltshell.hxx> // for the attribute stack
#include <fmtanchr.hxx>
#include <fmtrowsplt.hxx>
#include <fmtfollowtextflow.hxx> // #i33818#
@@ -67,7 +67,7 @@
#include <iostream>
-#define MAX_COL 64 // WW6-Beschreibung: 32, WW6-UI: 31 & WW8-UI: 63!
+#define MAX_COL 64 // WW6-description: 32, WW6-UI: 31 & WW8-UI: 63!
using namespace ::com::sun::star;
@@ -102,12 +102,12 @@
short nLineHeight;
short nRows;
sal_uInt16 maDirections[MAX_COL + 1];
- short nCenter[MAX_COL + 1]; // X-Rand aller Zellen dieses Bandes
- short nWidth[MAX_COL + 1]; // Laenge aller Zellen dieses Bandes
- short nWwCols; // sal_uInt8 wuerde reichen, alignment -> short
- short nSwCols; // SW: so viele Spalten fuer den Writer
- bool bLEmptyCol; // SW: Links eine leere Zusatz-Spalte
- bool bREmptyCol; // SW: dito rechts
+ short nCenter[MAX_COL + 1]; // X-edge of all cells of this bar
+ short nWidth[MAX_COL + 1]; // length of all cells of this bar
+ short nWwCols; // sal_uInt8 would be sufficient, alignment -> short
+ short nSwCols; // SW: number of columns for the writer
+ bool bLEmptyCol; // SW: an additional empty column at the left
+ bool bREmptyCol; // SW: same at the right
bool bCantSplit;
bool bCantSplit90;
WW8_TCell* pTCs;
@@ -117,8 +117,8 @@
sal_uInt32* pNewSHDs;
WW8_BRC aDefBrcs[6];
- bool bExist[MAX_COL]; // Existiert diese Zelle ?
- sal_uInt8 nTransCell[MAX_COL + 2]; // UEbersetzung WW-Index -> SW-Index
+ bool bExist[MAX_COL]; // does this cell exist ?
+ sal_uInt8 nTransCell[MAX_COL + 2]; // translation WW-Index -> SW-Index
sal_uInt8 transCell(sal_uInt8 nWwCol) const
{
@@ -126,7 +126,7 @@
}
WW8TabBandDesc();
- WW8TabBandDesc(WW8TabBandDesc& rBand); // tief kopieren
+ WW8TabBandDesc(WW8TabBandDesc& rBand); // deep copy
~WW8TabBandDesc();
static void setcelldefaults(WW8_TCell *pCells, short nCells);
void ReadDef(bool bVer67, const sal_uInt8* pS);
@@ -170,13 +170,13 @@
SwPosition* pTmpPos;
- SwTableNode* pTblNd; // Tabellen-Node
- const SwTableLines* pTabLines; // Zeilen-Array davon
- SwTableLine* pTabLine; // akt. Zeile
- SwTableBoxes* pTabBoxes; // Boxen-Array in akt. Zeile
- SwTableBox* pTabBox; // akt. Zelle
+ SwTableNode* pTblNd; // table node
+ const SwTableLines* pTabLines; // row array of node
+ SwTableLine* pTabLine; // current row
+ SwTableBoxes* pTabBoxes; // boxes array in current row
+ SwTableBox* pTabBox; // current cell
- WW8MergeGroups aMergeGroups; // Listen aller zu verknuepfenden Zellen
+ WW8MergeGroups aMergeGroups; // list of all cells to be merged
WW8_TCell* pAktWWCell;
@@ -194,15 +194,15 @@
bool bClaimLineFmt;
sal_Int16 eOri;
bool bIsBiDi;
- // 2. allgemeine Verwaltungsinfo
+ // 2. common admin info
short nAktRow;
- short nAktBandRow; // SW: in dieser Zeile des akt. Bandes bin ich
- // 3. Verwaltungsinfo fuer Writer
+ short nAktBandRow; // SW: row of current bar
+ // 3. admin info for writer
short nAktCol;
sal_uInt16 nRowsToRepeat;
- // 4. Methoden
+ // 4. methods
sal_uInt16 GetLogicalWWCol() const;
void SetTabBorders( SwTableBox* pBox, short nIdx );
@@ -216,8 +216,8 @@
WW8SelBoxInfo* FindMergeGroup(short nX1, short nWidth, bool bExact);
- // einzelne Box ggfs. in eine Merge-Gruppe aufnehmen
- // (die Merge-Gruppen werden dann spaeter auf einen Schlag abgearbeitet)
+ // single box - maybe used in a merge group
+ // (the merge groups are processed later at once)
SwTableBox* UpdateTableMergeGroup(WW8_TCell& rCell,
WW8SelBoxInfo* pActGroup, SwTableBox* pActBox, sal_uInt16 nCol );
void StartMiserableHackForUnsupportedDirection(short nWwCol);
@@ -226,7 +226,7 @@
WW8TabDesc(const WW8TabDesc&);
WW8TabDesc &operator=(const WW8TabDesc&);
public:
- const SwTable* pTable; // Tabelle
+ const SwTable* pTable; // table
SwPosition* pParentPos;
SwFlyFrmFmt* pFlyFmt;
SfxItemSet aItemSet;
@@ -366,7 +366,7 @@
if (pFN)
{
- SwPosition aTmpPos( *pPaM->GetPoint() ); // merke alte Cursorposition
+ SwPosition aTmpPos( *pPaM->GetPoint() ); // remember old cursor position
WW8PLCFxSaveAll aSave;
pPlcxMan->SaveAllPLCFx( aSave );
WW8PLCFMan* pOldPlcxMan = pPlcxMan;
@@ -612,7 +612,7 @@
return aRet;
}
//---------------------------------------------------------------------
-// Hilfroutinen fuer Kapitelnummerierung und Aufzaehlung / Gliederung
+// helper methods for outline, numbering and bullets
//---------------------------------------------------------------------
static void SetBaseAnlv(SwNumFmt &rNum, WW8_ANLV &rAV, sal_uInt8 nSwLevel )
@@ -623,7 +623,7 @@
static SvxAdjust eAdjA[4] = { SVX_ADJUST_LEFT,
SVX_ADJUST_RIGHT, SVX_ADJUST_LEFT, SVX_ADJUST_LEFT };
-// eigentlich folgende 2, aber Writer-UI bietet es nicht an
+// in fact the following 2, but writer UI does not provide
// SVX_ADJUST_CENTER, SVX_ADJUST_BLOCKLINE };
rNum.SetNumberingType( static_cast< sal_Int16 >(( SVBT8ToByte( rAV.nfc ) < 8 ) ?
@@ -642,13 +642,13 @@
rNum.SetAbsLSpace( nIndent );
}
else
- rNum.SetCharTextDistance( nIndent ); // Breite der Nummer fehlt
+ rNum.SetCharTextDistance( nIndent ); // width of number is missing
if( SVBT8ToByte( rAV.nfc ) == 5 || SVBT8ToByte( rAV.nfc ) == 7 )
{
String sP( rNum.GetSuffix() );
sP.Insert( '.', 0 );
- rNum.SetSuffix( sP ); // Ordinalzahlen
+ rNum.SetSuffix( sP ); // ordinal number
}
}
@@ -677,17 +677,17 @@
}
if( bOutline )
- { // Gliederung
- if( !rNum.GetIncludeUpperLevels() // es sind <= 1 Nummern anzuzeigen
- || rNum.GetNumberingType() == SVX_NUM_NUMBER_NONE ) // oder dieser Level hat keine
+ { // outline
+ if( !rNum.GetIncludeUpperLevels() // there are <= 1 number to
show
+ || rNum.GetNumberingType() == SVX_NUM_NUMBER_NONE ) // or this level has none
{
- // eigenen Ziffern
- bInsert = true; // -> dann uebernehme Zeichen
+ // if self defined digits
+ bInsert = true; // then apply character
// replace by simple Bullet ?
if( bListSymbol )
{
- //cBulletChar benutzen, damit auf dem MAC richtig gemappt wird
+ // use cBulletChar for correct mapping on MAC
OUStringBuffer aBuf;
comphelper::string::padToLength(aBuf, SVBT8ToByte(rAV.cbTextBefore)
+ SVBT8ToByte(rAV.cbTextAfter), cBulletChar);
@@ -696,7 +696,7 @@
}
}
else
- { // Nummerierung / Aufzaehlung
+ { // numbering / bullets
bInsert = true;
if( bListSymbol )
{
@@ -738,38 +738,38 @@
SVBT8ToByte( rAV.cbTextAfter ) ) );
rNum.SetSuffix( sP );
}
-// Die Zeichen vor und hinter mehreren Ziffern koennen leider nicht uebernommen
-// werden, da sie der Writer ganz anders behandelt und das Ergebnis i.A.
-// schlechter als ohne waere.
+// The characters before and after multipe digits do not apply because
+// those are handled different by the writer and the result is in most
+// cases worse than without.
}
}
-// SetAnld bekommt einen WW-ANLD-Descriptor und einen Level und modifiziert
-// die durch pNumR anggebeben NumRules. Wird benutzt fuer alles ausser
-// Gliederung im Text
+// SetAnld gets a WW-ANLD-Descriptor and a Level and modifies the NumRules
+// which are provided by pNumR. This is used for everything beside
+// outline inside the text.
void SwWW8ImplReader::SetAnld(SwNumRule* pNumR, WW8_ANLD* pAD, sal_uInt8 nSwLevel,
bool bOutLine)
{
SwNumFmt aNF;
if (pAD)
- { // Es gibt einen Anld-Sprm
+ { // there is a Anld-Sprm
bAktAND_fNumberAcross = 0 != SVBT8ToByte( pAD->fNumberAcross );
WW8_ANLV &rAV = pAD->eAnlv;
- SetBaseAnlv(aNF, rAV, nSwLevel); // Setze Basis-Format
- SetAnlvStrings(aNF, rAV, pAD->rgchAnld, bOutLine );// und Rest
+ SetBaseAnlv(aNF, rAV, nSwLevel); // set the base format
+ SetAnlvStrings(aNF, rAV, pAD->rgchAnld, bOutLine ); // set the rest
}
pNumR->Set(nSwLevel, aNF);
}
//-------------------------------------------------------
-// Kapitelnummerierung und Kapitelbullets
+// chapter numbering and bullets
//-------------------------------------------------------
-// Kapitelnummerierung findet in Styledefinionen statt. Sprm 13 gibt den Level
-// an, Sprm 12 den Inhalt
+// Chapter numbering happens in the style definition.
+// Sprm 13 provides the level, Sprm 12 the content.
SwNumRule* SwWW8ImplReader::GetStyRule()
{
- if( pStyles->pStyRule ) // Bullet-Style bereits vorhanden
+ if( pStyles->pStyRule ) // Bullet-Style already present
return pStyles->pStyRule;
const String aBaseName(rtl::OUString("WW8StyleNum"));
@@ -788,7 +788,7 @@
// Sprm 13
void SwWW8ImplReader::Read_ANLevelNo( sal_uInt16, const sal_uInt8* pData, short nLen )
{
- nSwNumLevel = 0xff; // Default: ungueltig
+ nSwNumLevel = 0xff; // Default: invalid
if( nLen <= 0 )
return;
@@ -796,27 +796,27 @@
// StyleDef ?
if( pAktColl )
{
- // nur fuer SwTxtFmtColl, nicht CharFmt
+ // only for SwTxtFmtColl, not CharFmt
// WW: 0 = no Numbering
SwWW8StyInf * pColl = GetStyle(nAktColl);
if (pColl != NULL && pColl->bColl && *pData)
{
- // Bereich WW:1..9 -> SW:0..8 keine Aufzaehlung / Nummerierung
+ // Range WW:1..9 -> SW:0..8 no bullets / numbering
if (*pData <= MAXLEVEL && *pData <= 9)
{
nSwNumLevel = *pData - 1;
if (!bNoAttrImport)
((SwTxtFmtColl*)pAktColl)->AssignToListLevelOfOutlineStyle( nSwNumLevel );
//<-end,zhaojianwei
- // Bei WW-NoNumbering koennte auch NO_NUMBERING gesetzt
- // werden. ( Bei normaler Nummerierung muss NO_NUM gesetzt
- // werden: NO_NUM : Nummerierungs-Pause,
- // NO_NUMBERING : ueberhaupt keine Nummerierung )
+ // For WW-NoNumbering also NO_NUMBERING could be used.
+ // ( For normal numberierung NO_NUM has to be used:
+ // NO_NUM : pauses numbering,
+ // NO_NUMBERING : no numbering at all )
}
else if( *pData == 10 || *pData == 11 )
{
- // Typ merken, der Rest geschieht bei Sprm 12
+ // remember type, the rest happens at Sprm 12
pStyles->nWwNumLevel = *pData;
}
}
@@ -825,7 +825,7 @@
{
//Not StyleDef
if (!bAnl)
- StartAnl(pData); // Anfang der Gliederung / Aufzaehlung
+ StartAnl(pData); // begin of outline / bullets
NextAnlLine(pData);
}
}
@@ -870,19 +870,18 @@
}
//-----------------------------------------
-// Nummerierung / Aufzaehlung
+// Numbering / Bullets
//-----------------------------------------
-// SetNumOlst() traegt die Numrules fuer diese Zeile ins SwNumFmt ein
-// ( nur fuer Gliederungen im Text; Aufzaehlungen / Nummerierungen laufen
-// ueber ANLDs )
-// dabei wird die Info aus dem OLST geholt und nicht aus dem ANLD ( s.u. )
+// SetNumOlst() carries the Numrules for this cell to SwNumFmt.
+// For this the info is fetched from OLST and not from ANLD ( see later )
+// ( only for outline inside text; Bullets / numbering use ANLDs )
void SwWW8ImplReader::SetNumOlst(SwNumRule* pNumR, WW8_OLST* pO, sal_uInt8 nSwLevel)
{
SwNumFmt aNF;
WW8_ANLV &rAV = pO->rganlv[nSwLevel];
SetBaseAnlv(aNF, rAV, nSwLevel);
- // ... und then the Strings
+ // ... and then the Strings
int nTxtOfs = 0;
sal_uInt8 i;
WW8_ANLV* pAV1; // search String-Positions
@@ -894,14 +893,14 @@
if (!bVer67)
nTxtOfs *= 2;
- SetAnlvStrings(aNF, rAV, pO->rgch + nTxtOfs, true); // und rein
+ SetAnlvStrings(aNF, rAV, pO->rgch + nTxtOfs, true); // and apply
pNumR->Set(nSwLevel, aNF);
}
-// der OLST kommt am Anfang jeder Section, die Gliederungen enthaelt. Die ANLDs,
-// die an jeder Gliederungszeile haengen, enthalten nur Stuss, also werden die
-// OLSTs waehrend der Section gemerkt, damit die Informationen beim Auftreten
-// von Gliederungsabsaetzen zugreifbar ist.
+// The OLST is at the beginning of each section that contains outlines.
+// The ANLDs that are connected to each outline-line contain only nonsense,
+// so the OLSTs are remembered for the section to have usable information
+// when outline-paragraphs occur.
void SwWW8ImplReader::Read_OLST( sal_uInt16, const sal_uInt8* pData, short nLen )
{
delete pNumOlst;
@@ -911,7 +910,7 @@
return;
}
pNumOlst = new WW8_OLST;
- if( nLen < sal::static_int_cast< sal_Int32 >(sizeof( WW8_OLST )) ) // auffuellen,
falls zu kurz
+ if( nLen < sal::static_int_cast< sal_Int32 >(sizeof( WW8_OLST )) ) // fill if to short
memset( pNumOlst, 0, sizeof( *pNumOlst ) );
*pNumOlst = *(WW8_OLST*)pData;
}
@@ -944,8 +943,8 @@
}
-// StartAnl wird am Anfang eines Zeilenbereichs gerufen,
-// der Gliederung / Nummerierung / Aufzaehlung enthaelt
+// StartAnl is called at the beginning of a row area that contains
+// outline / numbering / bullets
void SwWW8ImplReader::StartAnl(const sal_uInt8* pSprm13)
{
bAktAND_fNumberAcross = false;
@@ -1008,15 +1007,15 @@
bAnl = true;
- // NumRules ueber Stack setzen
+ // set NumRules via stack
pCtrlStck->NewAttr(*pPaM->GetPoint(),
SfxStringItem(RES_FLTR_NUMRULE, pNumRule->GetName()));
maANLDRules.SetNumRule(pNumRule, nWwNumType);
}
-// NextAnlLine() wird fuer jede Zeile einer
-// Gliederung / Nummerierung / Aufzaehlung einmal gerufen
+// NextAnlLine() is called once for every row of a
+// outline / numbering / bullet
void SwWW8ImplReader::NextAnlLine(const sal_uInt8* pSprm13)
{
if (!bAnl)
@@ -1027,25 +1026,25 @@
// pNd->UpdateNum ohne Regelwerk gibt GPF spaetestens beim Speichern als
// sdw3
- // WW:10 = Nummerierung -> SW:0 & WW:11 = Auffzaehlung -> SW:0
+ // WW:10 = numberierung -> SW:0 & WW:11 = bullets -> SW:0
if (*pSprm13 == 10 || *pSprm13 == 11)
{
nSwNumLevel = 0;
if (!pNumRule->GetNumFmt(nSwNumLevel))
{
- // noch nicht definiert
+ // not defined yet
// sprmAnld o. 0
const sal_uInt8* pS12 = pPlcxMan->HasParaSprm(bVer67 ? 12 : 0xC63E);
SetAnld(pNumRule, (WW8_ANLD*)pS12, nSwNumLevel, false);
}
}
- else if( *pSprm13 > 0 && *pSprm13 <= MAXLEVEL ) // Bereich WW:1..9 -> SW:0..8
+ else if( *pSprm13 > 0 && *pSprm13 <= MAXLEVEL ) // range WW:1..9 -> SW:0..8
{
- nSwNumLevel = *pSprm13 - 1; // Gliederung
- // noch nicht definiert
+ nSwNumLevel = *pSprm13 - 1; // outline
+ // undefined
if (!pNumRule->GetNumFmt(nSwNumLevel))
{
- if (pNumOlst) // es gab ein OLST
+ if (pNumOlst) // there was a OLST
{
//Assure upper levels are set, #i9556#
for (sal_uInt8 nI = 0; nI < nSwNumLevel; ++nI)
@@ -1056,7 +1055,7 @@
SetNumOlst(pNumRule, pNumOlst , nSwNumLevel);
}
- else // kein Olst, nimm Anld
+ else // no Olst -> use Anld
{
// sprmAnld
const sal_uInt8* pS12 = pPlcxMan->HasParaSprm(bVer67 ? 12 : 0xC63E);
@@ -1065,7 +1064,7 @@
}
}
else
- nSwNumLevel = 0xff; // keine Nummer
+ nSwNumLevel = 0xff; // no number
SwTxtNode* pNd = pPaM->GetNode()->GetTxtNode();
if (nSwNumLevel < MAXLEVEL)
@@ -1134,15 +1133,15 @@
memcpy(aDefBrcs, rBand.aDefBrcs, sizeof(aDefBrcs));
}
-// ReadDef liest die Zellenpositionen und ggfs die Umrandungen eines Bandes ein
+// ReadDef reads the cell position and the borders of a bar
void WW8TabBandDesc::ReadDef(bool bVer67, const sal_uInt8* pS)
{
if (!bVer67)
pS++;
- short nLen = (sal_Int16)SVBT16ToShort( pS - 2 ); // nicht schoen
+ short nLen = (sal_Int16)SVBT16ToShort( pS - 2 ); // not beautiful
- sal_uInt8 nCols = *pS; // Anzahl der Zellen
+ sal_uInt8 nCols = *pS; // number of cells
short nOldCols = nWwCols;
if( nCols > MAX_COL )
@@ -1154,20 +1153,20 @@
nLen --;
int i;
for(i=0; i<=nCols; i++, pT+=2 )
- nCenter[i] = (sal_Int16)SVBT16ToShort( pT ); // X-Raender
+ nCenter[i] = (sal_Int16)SVBT16ToShort( pT ); // X-borders
nLen -= 2 * ( nCols + 1 );
- if( nCols != nOldCols ) // andere Spaltenzahl
+ if( nCols != nOldCols ) // different column count
{
delete[] pTCs, pTCs = 0;
delete[] pSHDs, pSHDs = 0;
delete[] pNewSHDs, pNewSHDs = 0;
}
- short nFileCols = nLen / ( bVer67 ? 10 : 20 ); // wirklich abgespeichert
+ short nFileCols = nLen / ( bVer67 ? 10 : 20 ); // realy saved
if (!pTCs && nCols)
{
- // lege leere TCs an
+ // create empty TCs
pTCs = new WW8_TCell[nCols];
setcelldefaults(pTCs,nCols);
}
@@ -1178,15 +1177,15 @@
if( nColsToRead )
{
- // lies TCs ein
+ // read TCs
/*
- Achtung: ab Ver8 ist ein reserve-ushort je TC eingefuegt und auch
- der Border-Code ist doppelt so gross, daher ist hier
- kein simples kopieren moeglich,
- d.h.: pTCs[i] = *pTc; geht leider nicht.
+ Attention: Beginning with Ver8 there is an extra ushort per TC
+ added and the size of the border code is doubled.
+ Because of this a simple copy (pTCs[i] = *pTc;)
+ is not possible.
---
- Vorteil: Arbeitstruktur ist jetzt viel bequemer zu handhaben!
+ Advantage: The work structure suits better.
*/
WW8_TCell* pAktTC = pTCs;
if( bVer67 )
@@ -1195,7 +1194,7 @@
for(i=0; i<nColsToRead; i++, ++pAktTC,++pTc)
{
if( i < nColsToRead )
- { // TC aus File ?
+ { // TC from file ?
sal_uInt8 aBits1 = SVBT8ToByte( pTc->aBits1Ver6 );
pAktTC->bFirstMerged = ( ( aBits1 & 0x01 ) != 0 );
pAktTC->bMerged = ( ( aBits1 & 0x02 ) != 0 );
@@ -1210,13 +1209,13 @@
if( ( pAktTC->bMerged )
&& ( i > 0 ) )
{
- // Cell gemerged -> merken
+ // Cell gemerged -> remember
//bWWMergedVer6[i] = true;
memcpy( pTCs[i-1].rgbrc[ WW8_RIGHT ].aBits1,
pTc->rgbrcVer6[ WW8_RIGHT ].aBits1, sizeof( SVBT16 ) );
- // right Border in vorige Zelle uebernehmen
- // Hier darf bExist nicht auf false gesetzt werden, da WW
- // in den Textboxen diese Zellen nicht mitzaehlt....
+ // apply right border to previous cell
+ // bExist must not be set to false, because WW
+ // does not count this cells in text boxes....
}
}
}
@@ -1235,10 +1234,10 @@
pAktTC->bVertMerge = ( ( aBits1 & 0x0020 ) != 0 );
pAktTC->bVertRestart = ( ( aBits1 & 0x0040 ) != 0 );
pAktTC->nVertAlign = ( ( aBits1 & 0x0180 ) >> 7 );
- // am Rande: im aBits1 verstecken sich noch 7 Reserve-Bits,
- // anschliessend folgen noch 16 weitere Reserve-Bits
+ // note: in aBits1 there are 7 bits unused,
+ // followed by another 16 unused bits
- // In Version 8 koennen wir alle Bordercodes auf einmal kopieren!
+ // In Version 8 koennen we can copy all border codes at once!
memcpy( pAktTC->rgbrc, pTc->rgbrcVer8, 4 * sizeof( WW8_BRC ) );
}
}
@@ -1610,8 +1609,8 @@
}
}
-// ReadShd liest ggfs die Hintergrundfarben einer Zeile ein.
-// Es muss vorher ReadDef aufgerufen worden sein
+// ReadShd reads the background color of a cell
+// ReadDef must be called before
void WW8TabBandDesc::ReadShd(const sal_uInt8* pS )
{
sal_uInt8 nLen = pS ? *(pS - 1) : 0;
@@ -1857,7 +1856,7 @@
const sal_uInt8* pNewShadeSprm = 0;
WW8_TablePos *pTabPos = 0;
- // Suche Ende einer TabZeile
+ // search end of a tab row
if(!(pIo->SearchRowEnd(pPap, nStartCp, pIo->nInTable)))
{
bOk = false;
@@ -1978,10 +1977,10 @@
}
}
- // WW-Tabellen koennen Fly-Wechsel beinhalten daher hier
- // Tabellen abbrechen und neu beginnen noch steht *pPap noch vor
- // TabRowEnd, daher kann TestApo() mit letztem Parameter false und
- // damit wirksam gerufen werden.
+ // WW-Tables can contain Fly-changes. For this abort tables here
+ // and start again. *pPap is still before TabRowEnd, so TestApo()
+ // can be called with the last parameter set to false and therefore
+ // take effect.
if (bTabRowJustRead)
{
@@ -2102,14 +2101,14 @@
{
if( pActBand->nRows > 1 )
{
- // Letztes Band hat mehr als 1 Zeile
+ // last bar has more than 1 cell
delete pNewBand;
- pNewBand = new WW8TabBandDesc( *pActBand ); // neues machen
+ pNewBand = new WW8TabBandDesc( *pActBand ); // create new
pActBand->nRows--; // wegen Sonderbehandlung Raender-Defaults
pNewBand->nRows = 1;
pActBand->pNextBand = pNewBand; // am Ende einschleifen
nBands++;
- pNewBand = 0; // nicht loeschen
+ pNewBand = 0; // do not delete
}
CalcDefaults();
}
@@ -2201,13 +2200,12 @@
}
}
- // 2. Durchlauf: Zahl der Writer-Spalten feststellen Die Zahl der Writer
- // Spalten kann um bis zu 2 hoeher sein als im WW, da der SW im Gegensatz
- // zu WW keine ausgefransten linken und rechten Raender kann und diese
- // durch leere Boxen aufgefuellt werden. Durch nichtexistente Zellen
- // koennen auch Zellen wegfallen
+ // 2. pass: Detect number of writer columns. This can exceed the count
+ // of columns in WW by 2, because SW in constrast to WW does not provide
+ // fringed left and right borders and has to fill with empty boxes.
+ // Non exisitent cells can reduce the number of columns.
- // 3. Durchlauf: Wo noetig die Umrandungen durch die Defaults ersetzen
+ // 3. pass: Replace border with defaults if needed
nConvertedLeft = nMinLeft;
short nLeftMaxThickness = 0, nRightMaxThickness=0;
@@ -2231,19 +2229,19 @@
switch( i )
{
case 0:
- // Aussen oben / Innen waagerecht
+ // table outer top / horizontally inside (between cells)
j = (pR == pFirstBand) ? 0 : 4;
break;
case 1:
- // Aussen links / Innen senkrecht
+ // table outer left / vertically inside (between cells)
j = k ? 5 : 1;
break;
case 2:
- // Aussen unten / Innen waagerecht
+ // table outer bottom / horizontally inside (between cells)
j = pR->pNextBand ? 4 : 2;
break;
case 3:
- // Aussen rechts/ Innen senkrecht
+ // table outer right / vertically inside (between cells)
j = (k == pR->nWwCols - 1) ? 3 : 5;
break;
}
@@ -2336,8 +2334,8 @@
pR->nTransCell[n] = pR->nTransCell[k];
}
- pR->nTransCell[i++] = (sal_Int8)(j++); // Wird u.a. wegen bREmptyCol um
- pR->nTransCell[i] = (sal_Int8)j; // max. 2 ueberindiziert
+ pR->nTransCell[i++] = (sal_Int8)(j++); // Can exceed by 2 among other
+ pR->nTransCell[i] = (sal_Int8)j; // things because of bREmptyCol
pR->nSwCols = pR->nSwCols + nAddCols;
if( pR->nSwCols < nMinCols )
@@ -2355,7 +2353,7 @@
(nMinLeft != -108 && bIsBiDi && text::HoriOrientation::RIGHT == eOri)) // Word sets the
first nCenter value to -108 when no indent is used
eOri = text::HoriOrientation::LEFT_AND_WIDTH; // absolutely positioned
- nDefaultSwCols = nMinCols; // da Zellen einfuegen billiger ist als Mergen
+ nDefaultSwCols = nMinCols; // because inserting cells is cheaper than merging
if( nDefaultSwCols == 0 )
bOk = false;
pActBand = pFirstBand;
@@ -2433,10 +2431,10 @@
pTmpPos = new SwPosition( *pIo->pPaM->GetPoint() );
- // Die Tabelle ist beim Einfuegen noch recht klein: Zahl der Spalten ist
- // die kleinste Spaltenanzahl des Originals, da Spalten einfuegen
- // schneller geht als Loeschen Zahl der Zeilen ist die Zahl der Baender,
- // da sich die (identischen) Zeilen eines Bandes prima duplizieren lassen
+ // The table is small: The number of columns is the lowest count of
+ // columns of the origin, because inserting is faster than deleting.
+ // The number of rows is the count of bars because (identically)
+ // rows of a bar can be duplicated easy.
pTable = pIo->rDoc.InsertTable(
SwInsertTableOptions( tabopts::HEADLINE_NO_BORDER, 0 ),
*pTmpPos, nBands, nDefaultSwCols, eOri, 0, 0, sal_False, sal_True );
@@ -2453,10 +2451,10 @@
*pTableNode);
}
- // Abfrage, ob im Node, in dem die Tabelle eingefuegt werden soll, bereits
- // ein Pagedesc steht. Dann wuerde der PageDesc in die naechste Zeile
- // hinter der Tabelle rutschen, wo er nichts zu suchen hat. -> loeschen
- // und spaeter an das Tabellenformat setzen
+ // Check if the node into which the table should be inserted already
+ // contains a Pagedesc. If so that Pagedesc would be moved to the
+ // row after the table, whats wrong. So delete and
+ // set later to the table format.
if (SwTxtNode *const pNd = pTmpPos->nNode.GetNode().GetTxtNode())
{
if (const SfxItemSet* pSet = pNd->GetpSwAttrSet())
@@ -2469,7 +2467,7 @@
pNd->ResetAttr( RES_BREAK );
}
- // evtl den PageDesc/Break jetzt an der Tabelle setzen
+ // eventually set the PageDesc/Break now to the table
if (pSetAttr)
{
aItemSet.Put(*pSetAttr);
@@ -2478,7 +2476,7 @@
}
}
- // Gesamtbreite der Tabelle
+ // total width of table
if( nMaxRight - nMinLeft > MINLAY * nDefaultSwCols )
{
pTable->GetFrmFmt()->SetFmtAttr(SwFmtFrmSize(ATT_FIX_SIZE, nSwWidth));
@@ -2545,7 +2543,7 @@
void WW8TabDesc::UseSwTable()
{
- // globale Varis initialisieren
+ // init global Vars
pTabLines = &pTable->GetTabLines();
nAktRow = nAktCol = nAktBandRow = 0;
@@ -2558,13 +2556,13 @@
nRowsToRepeat = 1;
pTblNd->GetTable().SetRowsToRepeat( nRowsToRepeat );
- // ggfs. Zusatz-Zellen einfuegen u.dgl.
+ // insert extra cells if needed and something like this
AdjustNewBand();
WW8DupProperties aDup(pIo->rDoc,pIo->pCtrlStck);
pIo->pCtrlStck->SetAttr(*pIo->pPaM->GetPoint(), 0, false);
- // jetzt den PaM korrekt setzen und ggfs. erste Mergegruppe vorbereiten...
+ // now set the correct PaM and prepare first merger group if any
SetPamInCell(nAktCol, true);
aDup.Insert(*pIo->pPaM->GetPoint());
@@ -2578,9 +2576,7 @@
for (pActBand=pFirstBand, nRow=0; pActBand; pActBand=pActBand->pNextBand)
{
- //
- // ggfs. aktuelle Box in entsprechende Merge-Gruppe eintragen
- //
+ // insert current box into merge group if appropriate
if( pActBand->pTCs )
{
for( short j = 0; j < pActBand->nRows; j++, nRow++ )
@@ -2588,7 +2584,7 @@
{
WW8SelBoxInfo* pActMGroup = 0;
//
- // ggfs. eine neue Merge-Gruppe beginnen
+ // start a new merge group if appropriate
//
OSL_ENSURE(nRow < (sal_uInt16)pTabLines->size(),
"Too few lines, table ended early");
@@ -2606,7 +2602,7 @@
return;
pTabBox = (*pTabBoxes)[nCol];
WW8_TCell& rCell = pActBand->pTCs[ i ];
- // ist dies die obere, linke-Zelle einer Merge-Gruppe ?
+ // is this the left upper cell of a merge group ?
bool bMerge = false;
if ( rCell.bVertRestart && !rCell.bMerged )
@@ -2646,13 +2642,13 @@
short nX1 = pActBand->nCenter[ i ];
short nWidth = pActBand->nWidth[ i ];
- // 2. aktuelle Merge-Gruppe anlegen
+ // 2. create current merge group
pActMGroup = new WW8SelBoxInfo( nX1, nWidth );
// determine size of new merge group
// before inserted the new merge group.
// Needed to correctly locked previously created merge groups.
- // Gesamtbreite ermitteln und zuweisen
+ // Calculate total width and set
short nSizCell = pActBand->nWidth[ i ];
for (sal_uInt16 i2 = i+1; i2 < pActBand->nWwCols; i2++ )
if (pActBand->pTCs[ i2 ].bMerged &&
@@ -2666,9 +2662,8 @@
// locked previously created merge groups,
// after determining the size for the new merge group.
- // 1. ggfs. alte Mergegruppe(n) schliessen, die
- // den von unserer neuen Gruppe betroffenen
- // X-Bereich ueberdecken
+ // 1. If necessary close old merge group(s) that overlap
+ // the X-area of the new group
for (;;)
{
WW8SelBoxInfo* p = FindMergeGroup(
@@ -2680,13 +2675,12 @@
p->bGroupLocked = true;
}
- // 3. und in Gruppen-Array eintragen
+ // 3. push to group array
aMergeGroups.push_back(pActMGroup);
}
- // ggfs. akt. Box zu einer Merge-Gruppe hinzufuegen (dies
- // kann eine soeben angelegte, oder eine andere Gruppe
- // sein)
+ // if necessary add the current box to a merge group
+ // (that can be a newly created or another group)
UpdateTableMergeGroup( rCell, pActMGroup, pTabBox, i );
}
}
@@ -2753,10 +2747,10 @@
MergeCells();
- // falls noetig, zu mergende Zellen gruppenweise zusammenfassen
+ // if needed group cells together that should be merged
if( !aMergeGroups.empty() )
{
- // bearbeite alle Merge-Gruppen nacheinander
+ // process all merge groups one by one
for (
WW8MergeGroups::iterator groupIt = aMergeGroups.begin();
groupIt != aMergeGroups.end();
@@ -2783,54 +2777,54 @@
}
-// durchsucht aMergeGroups, meldet Index der ersten, passenden Gruppe bzw. -1
+// browse aMergeGroups, detect the index of the first fitting group or -1 otherwise
//
-// Parameter: nXcenter = Mittenposition der anfragenden Box
-// nWidth = Breite der anfragenden Box
-// bExact = Flag, ob Box in dieser Gruppe passen muss,
-// oder diese nur zu tangieren braucht
+// Parameter: nXcenter = center position of asking box
+// nWidth = width of asking box
+// bExact = flag, if box has to fit into group
+// or only has to touch
//
WW8SelBoxInfo* WW8TabDesc::FindMergeGroup(short nX1, short nWidth, bool bExact)
{
if( !aMergeGroups.empty() )
{
- // noch als gueltig angesehener Bereich in der Naehe der Grenzen
+ // still valid area near the boundery
const short nToleranz = 4;
- // Boxgrenzen
+ // box boundery
short nX2 = nX1 + nWidth;
- // ungefaehre Gruppengrenzen
+ // approximate group boundery
short nGrX1;
short nGrX2;
// improvement: search backwards
for ( short iGr = aMergeGroups.size() - 1; iGr >= 0; --iGr )
{
- // die aktuell untersuchte Gruppe
+ // the currently inspected group
WW8SelBoxInfo& rActGroup = aMergeGroups[ iGr ];
if (!rActGroup.bGroupLocked)
{
- // ungefaehre Gruppengrenzen mit Toleranz nach *aussen* hin
+ // approximate group boundery with room (tolerance) to the *outside*
nGrX1 = rActGroup.nGroupXStart - nToleranz;
nGrX2 = rActGroup.nGroupXStart
+rActGroup.nGroupWidth + nToleranz;
//
- // Falls Box reinpasst, melde auf jeden Fall den Erfolg
+ // If box fits report success
//
if( ( nX1 > nGrX1 ) && ( nX2 < nGrX2 ) )
{
return &rActGroup;
}
//
- // hat die Box Bereiche mit der Gruppe gemeinsam?
+ // does the box share areas with the group?
//
if( !bExact )
{
- // melde Erfolg, wenn nX1 *oder* nX2 innerhalb der Gruppe liegen
+ // successful if nX1 *or* nX2 are inside the group
if( ( ( nX1 > nGrX1 )
&& ( nX1 < nGrX2 - 2*nToleranz ) )
|| ( ( nX2 > nGrX1 + 2*nToleranz )
&& ( nX2 < nGrX2 ) )
- // oder nX1 und nX2 die Gruppe umfassen
+ // or nX1 and nX2 surround the group
|| ( ( nX1 <=nGrX1 )
&& ( nX2 >=nGrX2 ) ) )
{
@@ -2953,14 +2947,11 @@
{
pIo->pPaM->GetPoint()->nNode = pTabBox->GetSttIdx() + 1;
pIo->pPaM->GetPoint()->nContent.Assign(pIo->pPaM->GetCntntNode(), 0);
- // Zur Sicherheit schon jetzt setzen, da bei den Zellen, die
- // zum Randausgleich eingefuegt werden, sonst der Style
- // nicht gesetzt wird.
+ // Precautionally set now, otherwise the style is not set for cells
+ // that are inserted for margin balancing.
pIo->rDoc.SetTxtFmtColl(*pIo->pPaM, (SwTxtFmtColl*)pIo->pDfltTxtFmtColl);
- // uebrigens: da diese Zellen unsichtbare Hilfskonstruktionen sind,
- // und nur dazu dienen, zerfranste Aussehen der WW-Tabelle
- // nachzuahmen, braucht NICHT SetTxtFmtCollAndListLevel()
- // verwendet zu werden.
+ // because this cells are invisible helper constructions only to simulate
+ // the frayed view of WW-tables we do NOT need SetTxtFmtCollAndListLevel()
}
// Better to turn Snap to Grid off for all paragraphs in tables
@@ -2997,14 +2988,14 @@
pIo->rDoc.GetNodes().InsBoxen( pTblNd, pTabLine, (SwTableBoxFmt*)pTabBox->GetFrmFmt(),
(SwTxtFmtColl*)pIo->pDfltTxtFmtColl, 0, pTabBoxes->size(), nIns );
- // mit dem Dritten Parameter wird das FrmFmt der Boxen angegeben.
- // hier kann man auch noch optimieren, um FrmFmts zu sparen
+ // The third parameter contains the FrmFmt of the boxes.
+ // Here it is possible to optimize to save (reduce) FrmFmts.
}
void WW8TabDesc::SetTabBorders(SwTableBox* pBox, short nWwIdx)
{
if( nWwIdx < 0 || nWwIdx >= pActBand->nWwCols )
- return; // kuenstlich erzeugte Zellen -> Kein Rand
+ return; // faked cells -> no border
SvxBoxItem aFmtBox( RES_BOX );
@@ -3032,8 +3023,7 @@
else
aFmtBox.SetDistance(pActBand->mnDefaultBottom,BOX_LINE_BOTTOM);
- // nGapHalf bedeutet bei WW ein *horizontaler* Abstand zwischen
- // Tabellenzelle und -Inhalt
+ // nGapHalf for WW is a *horizontal* gap between table cell and content.
short nLeftDist =
pActBand->mbHasSpacing ? pActBand->mnDefaultLeft : pActBand->nGapHalf;
short nRightDist =
@@ -3061,7 +3051,7 @@
void WW8TabDesc::SetTabShades( SwTableBox* pBox, short nWwIdx )
{
if( nWwIdx < 0 || nWwIdx >= pActBand->nWwCols )
- return; // kuenstlich erzeugte Zellen -> Keine Farbe
+ return; // faked cells -> no color
bool bFound=false;
if (pActBand->pNewSHDs && pActBand->pNewSHDs[nWwIdx] != COL_AUTO)
@@ -3148,7 +3138,7 @@
void WW8TabDesc::AdjustNewBand()
{
- if( pActBand->nSwCols > nDefaultSwCols ) // Zellen splitten
+ if( pActBand->nSwCols > nDefaultSwCols ) // split cells
InsertCells( pActBand->nSwCols - nDefaultSwCols );
SetPamInCell( 0, false);
@@ -3157,22 +3147,22 @@
if( bClaimLineFmt )
{
- pTabLine->ClaimFrmFmt(); // noetig wg. Zeilenhoehe
+ pTabLine->ClaimFrmFmt(); // necessary becaus of cell height
SwFmtFrmSize aF( ATT_MIN_SIZE, 0, 0 ); // default
if (pActBand->nLineHeight == 0) // 0 = Auto
aF.SetHeightSizeType( ATT_VAR_SIZE );
else
{
- if (pActBand->nLineHeight < 0) // Pos = min, Neg = exakt
+ if (pActBand->nLineHeight < 0) // positive = min, negative = exact
{
aF.SetHeightSizeType(ATT_FIX_SIZE);
pActBand->nLineHeight = -pActBand->nLineHeight;
}
- if (pActBand->nLineHeight < MINLAY) // nicht erlaubte Zeilenhoehe
+ if (pActBand->nLineHeight < MINLAY) // invalid cell height
pActBand->nLineHeight = MINLAY;
- aF.SetHeight(pActBand->nLineHeight);// Min- / Exakt-Hoehe setzen
+ aF.SetHeight(pActBand->nLineHeight);// set min/exact height
}
pTabLine->GetFrmFmt()->SetFmtAttr(aF);
}
@@ -3190,13 +3180,13 @@
short i; // SW-Index
short j; // WW-Index
- short nW; // Breite
+ short nW; // Width
SwFmtFrmSize aFS( ATT_FIX_SIZE );
j = pActBand->bLEmptyCol ? -1 : 0;
for( i = 0; i < pActBand->nSwCols; i++ )
{
- // setze Zellenbreite
+ // set cell width
if( j < 0 )
nW = pActBand->nCenter[0] - nMinLeft;
else
@@ -3213,8 +3203,7 @@
}
SwTableBox* pBox = (*pTabBoxes)[i];
- // liesse sich durch intelligentes Umhaengen der FrmFmts noch weiter
- // verringern
+ // could be reduced further by intelligent moving of FrmFmts
pBox->ClaimFrmFmt();
SetTabBorders(pBox, j);
@@ -3255,7 +3244,7 @@
aFS.SetWidth( nW );
pBox->GetFrmFmt()->SetFmtAttr( aFS );
- // ueberspringe nicht existente Zellen
+ // skip non existing cells
while( ( j < pActBand->nWwCols ) && !pActBand->bExist[j] )
{
pActBand->nWidth[j] = pActBand->nCenter[j+1] - pActBand->nCenter[j];
@@ -3270,7 +3259,7 @@
EndMiserableHackForUnsupportedDirection(nAktCol);
- // neue Zeile
+ // new line/row
if( pIo->bWasTabRowEnd )
{
// bWasTabRowEnd will be deactivated in
@@ -3289,13 +3278,13 @@
OSL_ENSURE( pActBand , "pActBand ist 0" );
if( pActBand )
{
- if( nAktRow >= nRows ) // am Tabellenende gibt's nichts sinnvolles
- return; // mehr zu tun
+ if( nAktRow >= nRows ) // nothing to at end of table
+ return;
bool bNewBand = nAktBandRow >= pActBand->nRows;
if( bNewBand )
- { // neues Band noetig ?
- pActBand = pActBand->pNextBand; //
+ { // new bar needed ?
+ pActBand = pActBand->pNextBand;
nAktBandRow = 0;
OSL_ENSURE( pActBand, "pActBand ist 0" );
AdjustNewBand();
@@ -3309,7 +3298,7 @@
}
}
else
- { // neue Spalte ( Zelle )
+ { // new column ( cell )
nAktCol++;
}
SetPamInCell(nAktCol, true);
@@ -3319,16 +3308,16 @@
pIo->StopAllAnl(IsValidCell(nAktCol));
}
-// ggfs. die Box in fuer diese Col offene Merge-Gruppe eintragen
+// if necessary register the box for the merge group for this column
SwTableBox* WW8TabDesc::UpdateTableMergeGroup( WW8_TCell& rCell,
WW8SelBoxInfo* pActGroup,
SwTableBox* pActBox,
sal_uInt16 nCol )
{
- // Rueckgabewert defaulten
+ // set default for return
SwTableBox* pResult = 0;
- // pruefen, ob die Box zu mergen ist
+ // check if the box has to be merged
// If cell is the first one to be merged, a new merge group has to be provided.
// E.g., it could be that a cell is the first one to be merged, but no
// new merge group is provided, because the potential other cell to be merged
@@ -3339,14 +3328,14 @@
rCell.bVertMerge ||
rCell.bVertRestart ) )
{
- // passende Merge-Gruppe ermitteln
+ // detect appropriate merge group
WW8SelBoxInfo* pTheMergeGroup = 0;
if( pActGroup )
- // Gruppe uebernehmen
+ // assign group
pTheMergeGroup = pActGroup;
else
{
- // Gruppe finden
+ // find group
pTheMergeGroup = FindMergeGroup(
pActBand->nCenter[ nCol ], pActBand->nWidth[ nCol ], true );
}
@@ -3574,10 +3563,9 @@
}
}
-// GetTableLeft() wird fuer absatzgebundene Grafikobjekte in Tabellen
-// gebraucht.
-// WW nimmt bei eingerueckten Tabellen den Absatzrand, der ohne Tabelle
-// gueltig waere, als Basis; SW benutzt den linken Tabellenrand.
+// GetTableLeft() is needed for graphic objects bound to paragraphs in tables.
+// For indented tables the base for WW is the margin that would be used without
+// the table; SW uses the left table margin.
short SwWW8ImplReader::GetTableLeft()
{
return (pTableDesc) ? pTableDesc->GetMinLeft() : 0;
@@ -3650,7 +3638,7 @@
if( bPap )
{
- pParaSprms = pSprms; // fuer HasParaSprms()
+ pParaSprms = pSprms; // for HasParaSprms()
nSprmsLen = nLen;
}
@@ -3714,7 +3702,7 @@
nLen-=2;
if ( cbUPX > nLen )
- cbUPX = nLen; // !cbUPX auf nLen verkleinert!
+ cbUPX = nLen; // shrink cbUPX to nLen
if( (1 < cbUPX) || ( (0 < cbUPX) && !bPAP ) )
{
@@ -3729,8 +3717,8 @@
if( 0 < cbUPX )
{
- sal_Size nPos = pStStrm->Tell(); // falls etwas falsch interpretiert
- // wird, gehts danach wieder richtig
+ sal_Size nPos = pStStrm->Tell(); // if something is interpreted wrong,
+ // this should make it work again
ImportSprms( nPos, cbUPX, bPAP );
if ( pStStrm->Tell() != nPos + cbUPX )
@@ -3830,7 +3818,7 @@
bStyExist = aResult.second;
}
- bool bImport = !bStyExist || pIo->mbNewDoc; // Inhalte Importieren ?
+ bool bImport = !bStyExist || pIo->mbNewDoc; // import content ?
bool bOldNoImp = pIo->bNoAttrImport;
rSI.bImportSkipped = !bImport;
@@ -3842,10 +3830,10 @@
{
pColl->ResetAllFmtAttr(); // #i73790# - method renamed
}
- pColl->SetAuto(false); // nach Empfehlung JP
- } // macht die UI aber anders
+ pColl->SetAuto(false); // suggested by JP
+ } // but changes the UI
pIo->pAktColl = pColl;
- rSI.pFmt = pColl; // UEbersetzung WW->SW merken
+ rSI.pFmt = pColl; // remember translation WW->SW
rSI.bImportSkipped = !bImport;
// Set Based on style
@@ -3855,7 +3843,7 @@
SwWW8StyInf* pj = &pIo->vColl[j];
if (rSI.pFmt && pj->pFmt && rSI.bColl == pj->bColl)
{
- rSI.pFmt->SetDerivedFrom( pj->pFmt ); // ok, Based on eintragen
+ rSI.pFmt->SetDerivedFrom( pj->pFmt ); // ok, set Based on
rSI.eLTRFontSrcCharSet = pj->eLTRFontSrcCharSet;
rSI.eRTLFontSrcCharSet = pj->eRTLFontSrcCharSet;
rSI.eCJKFontSrcCharSet = pj->eCJKFontSrcCharSet;
@@ -3872,9 +3860,9 @@
else if( pIo->mbNewDoc && bStyExist )
rSI.pFmt->SetDerivedFrom(0);
- rSI.nFollow = nNextStyle; // Follow merken
+ rSI.nFollow = nNextStyle; // remember Follow
- pStyRule = 0; // falls noetig, neu anlegen
+ pStyRule = 0; // recreate if necessary
bTxtColChanged = bFontChanged = bCJKFontChanged = bCTLFontChanged =
bFSizeChanged = bFCTLSizeChanged = bWidowsChanged = false;
pIo->SetNAktColl( nThisStyle );
@@ -3884,8 +3872,7 @@
void WW8RStyle::PostStyle(SwWW8StyInf &rSI, bool bOldNoImp)
{
- // Alle moeglichen Attribut-Flags zuruecksetzen,
- // da es in Styles keine Attr-Enden gibt
+ // Reset attribute flags, because there are no style-ends.
pIo->bHasBorder = pIo->bShdTxtCol = pIo->bCharShdTxtCol
= pIo->bSpec = pIo->bObj = pIo->bSymbol = false;
@@ -3894,19 +3881,16 @@
// If Style basiert auf Nichts oder Basis ignoriert
if ((rSI.nBase >= cstd || pIo->vColl[rSI.nBase].bImportSkipped) && rSI.bColl)
{
- //! Char-Styles funktionieren aus
- // unerfindlichen Gruenden nicht
- // -> dann evtl. harte WW-Defaults
- // reinsetzen
+ // If Char-Styles does not work
+ // -> set hard WW-Defaults
Set1StyleDefaults();
}
- pStyRule = 0; // zur Sicherheit
+ pStyRule = 0; // to be on the safe side
pIo->bStyNormal = false;
pIo->SetNAktColl( 0 );
pIo->bNoAttrImport = bOldNoImp;
- // rasch nochmal die Listen-Merk-Felder zuruecksetzen,
- // fuer den Fall dass sie beim einlesen des Styles verwendet wurden
+ // reset the list-remember-fields, if used when reading styles
pIo->nLFOPosition = USHRT_MAX;
pIo->nListLevel = WW8ListManager::nMaxLevel;
}
@@ -3921,10 +3905,9 @@
if( rSI.bImported || !rSI.bValid )
return;
- rSI.bImported = true; // jetzt schon Flag setzen
- // verhindert endlose Rekursion
+ rSI.bImported = true; // set flag now to avoid endless loops
//
- // gueltig und nicht NIL und noch nicht Importiert
+ // valid and not NUL and not yet imported
if( rSI.nBase < cstd && !pIo->vColl[rSI.nBase].bImported )
Import1Style( rSI.nBase );
@@ -3934,7 +3917,7 @@
short nSkip, cbStd;
String sName;
- boost::scoped_ptr<WW8_STD> xStd(Read1Style(nSkip, &sName, &cbStd));// lies Style
+ boost::scoped_ptr<WW8_STD> xStd(Read1Style(nSkip, &sName, &cbStd));// read Style
if (xStd)
rSI.SetOrgWWIdent( sName, xStd->sti );
@@ -3949,7 +3932,7 @@
bool bOldNoImp = PrepareStyle(rSI, static_cast<ww::sti>(xStd->sti), nNr, xStd->istdNext);
- // falls etwas falsch interpretiert wird, gehts danach wieder richtig
+ // if something is interpreted wrong, this should make it work again
long nPos = pStStrm->Tell();
//Variable parts of the STD start at even byte offsets, but "inside
@@ -4019,26 +4002,26 @@
}
}
-void WW8RStyle::ScanStyles() // untersucht Style-Abhaengigkeiten
-{ // und ermittelt die Filepos fuer jeden Style
+void WW8RStyle::ScanStyles() // investigate style dependencies
+{ // and detect Filepos for each Style
for (sal_uInt16 i = 0; i < cstd; ++i)
{
short nSkip;
SwWW8StyInf &rSI = pIo->vColl[i];
- rSI.nFilePos = pStStrm->Tell(); // merke FilePos
+ rSI.nFilePos = pStStrm->Tell(); // remember FilePos
WW8_STD* pStd = Read1Style( nSkip, 0, 0 ); // read STD
rSI.bValid = (0 != pStd);
if (rSI.bValid)
{
- rSI.nBase = pStd->istdBase; // merke Basis
+ rSI.nBase = pStd->istdBase; // remember Basis
rSI.bColl = ( pStd->sgc == 1 ); // Para-Style
}
else
rSI = SwWW8StyInf();
delete pStd;
- pStStrm->SeekRel( nSkip ); // ueberlese Namen und Sprms
+ pStStrm->SeekRel( nSkip ); // skip Names and Sprms
}
}
@@ -4465,7 +4448,7 @@
void WW8RStyle::ImportNewFormatStyles()
{
- ScanStyles(); // Scanne Based On
+ ScanStyles(); // Scan Based On
for (sal_uInt16 i = 0; i < cstd; ++i) // import Styles
if (pIo->vColl[i].bValid)
@@ -4499,24 +4482,25 @@
if( j < cstd )
{
SwWW8StyInf* pj = &pIo->vColl[j];
- if ( j != i // sinnvoller Index ?
+ if ( j != i // rational Index ?
&& pi->pFmt // Format ok ?
&& pj->pFmt // Derived-Format ok ?
- && pi->bColl // geht nur bei Absatz-Vorlagen (WW)
- && pj->bColl ){ // beides gleicher Typ ?
+ && pi->bColl // only possible for paragraph templates (WW)
+ && pj->bColl ){ // identical Typ ?
( (SwTxtFmtColl*)pi->pFmt )->SetNextTxtFmtColl(
- *(SwTxtFmtColl*)pj->pFmt ); // ok, eintragen
+ *(SwTxtFmtColl*)pj->pFmt ); // ok, register
}
}
}
-// Die Sonderbehandlung zur Setzen der
-// Default-Zeichenvorlage "Absatz-Standardschriftart" ( Style-ID 65 ) fehlt
-// Sie ist aber defaultmaessig leer ( WW6 dt und US ) und von der
-// WW-UI nicht zu veraendern, so dass das nicht stoert.
-// Der Mechanismus waere folgender:
-// if( bNew ) rDoc.SetDefault( pDefCharFmt->GetAttrSet() );
-//
- // fuer z.B. Tabellen wird ein immer gueltiger Std-Style gebraucht
+
+ // Missing special handling for default character template
+ // "Absatz-Standardschriftart" ( Style-ID 65 ).
+ // That is empty by default ( WW6 dt and US ) and not changeable
+ // via WW-UI so this does not matter.
+ // This could be done by:
+ // if( bNew ) rDoc.SetDefault( pDefCharFmt->GetAttrSet() );
+ //
+ // for e.g. tables an always valid Std-Style is necessary
if( pIo->StyleExists(0) && !pIo->vColl.empty() &&
pIo->vColl[0].pFmt && pIo->vColl[0].bColl && pIo->vColl[0].bValid )
@@ -4553,7 +4537,7 @@
}
}
- // wir sind jetzt nicht mehr beim Style einlesen:
+ // we do not read styles anymore:
pIo->pAktColl = 0;
}
--
To view, visit https://gerrit.libreoffice.org/2871
To unsubscribe, visit https://gerrit.libreoffice.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I85c8675881db9facdd543c02c846ec64642f8449
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: master
Gerrit-Owner: gerhard öttl <lodev@ogersoft.at>
Context
- [PATCH] fdo#39468: Translated German comments · via Code Review
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.