[Libreoffice-commits] core.git: sw/source

Palenik Mihály palenik.mihaly at gmail.com
Mon Aug 12 12:08:22 PDT 2013


 sw/source/filter/html/htmlcss1.cxx |   27 ++--
 sw/source/filter/html/htmlctxt.cxx |    6 -
 sw/source/filter/html/htmldraw.cxx |    2 
 sw/source/filter/html/htmlfldw.cxx |   66 +++++------
 sw/source/filter/html/htmlfly.cxx  |   40 +++----
 sw/source/filter/html/htmlform.cxx |  125 ++++++++++------------
 sw/source/filter/html/htmlforw.cxx |   28 ++--
 sw/source/filter/html/htmlftn.cxx  |  105 ++++++++----------
 sw/source/filter/html/htmlgrin.cxx |    2 
 sw/source/filter/html/htmlnum.cxx  |    2 
 sw/source/filter/html/htmlplug.cxx |   20 +--
 sw/source/filter/html/htmlsect.cxx |   10 -
 sw/source/filter/html/htmltab.cxx  |   16 +-
 sw/source/filter/html/htmltabw.cxx |    8 -
 sw/source/filter/html/parcss1.cxx  |   91 +++++++---------
 sw/source/filter/html/parcss1.hxx  |   18 +--
 sw/source/filter/html/svxcss1.cxx  |  210 ++++++++++++++++++-------------------
 sw/source/filter/html/svxcss1.hxx  |   10 -
 sw/source/filter/html/swhtml.cxx   |    5 
 sw/source/filter/html/swhtml.hxx   |   10 -
 sw/source/filter/html/wrthtml.hxx  |    4 
 21 files changed, 388 insertions(+), 417 deletions(-)

New commits:
commit e09199e36c4d4fe7b409b80c6d58480705475602
Author: Palenik Mihály <palenik.mihaly at gmail.com>
Date:   Thu Aug 8 11:24:20 2013 +0200

    Change String to OUString in some class and functions.
    
    I changed String class to OUString class in the following:
    CSS1Selector, SvxCSS1PropertyInfo, SvxCSS1MapEntry, SwHTMLWrtTable,
    SwHTMLForm_Impl, HTMLTable classes, CSS1Expression,
    SwHTMLFootEndNote_Impl, HTMLTableOptions structs and function in these
    files htmldraw.cxx, htmlfldw.cxx, htmlfly.cxx, htmlform.cxx,
    htmlforw.cxx, htmlftn.cxx, htmlnum.cxx, htmlplug.cxx file's function.
    
    Change-Id: I5f3c3351157b8ba1c6b4fbb15d42acd61225f006
    Reviewed-on: https://gerrit.libreoffice.org/5311
    Reviewed-by: Norbert Thiebaud <nthiebaud at gmail.com>
    Tested-by: Norbert Thiebaud <nthiebaud at gmail.com>

diff --git a/sw/source/filter/html/htmlcss1.cxx b/sw/source/filter/html/htmlcss1.cxx
index ab80587..bc5a0bf 100644
--- a/sw/source/filter/html/htmlcss1.cxx
+++ b/sw/source/filter/html/htmlcss1.cxx
@@ -241,8 +241,7 @@ void SwCSS1Parser::SetLinkCharFmts()
         bBodyVLinkSet |= bColorSet;
     }
 
-    OUString sTmp = OUString( OOO_STRING_SVTOOLS_HTML_anchor ) + ":" +
-                        OUString( sCSS1_link, sizeof(sCSS1_link), RTL_TEXTENCODING_ASCII_US );
+    OUString sTmp = OUString( OOO_STRING_SVTOOLS_HTML_anchor ) + ":" + "link";
 
     pStyleEntry = GetTag( sTmp );
     if( pStyleEntry )
@@ -256,8 +255,7 @@ void SwCSS1Parser::SetLinkCharFmts()
         bBodyLinkSet |= bColorSet;
     }
 
-    sTmp = OUString( OOO_STRING_SVTOOLS_HTML_anchor ) + ":" +
-            OUString( sCSS1_visited, sizeof(sCSS1_visited) ,RTL_TEXTENCODING_ASCII_US );
+    sTmp = OUString( OOO_STRING_SVTOOLS_HTML_anchor ) + ":" + "visited";
 
     pStyleEntry = GetTag( sTmp );
     if( pStyleEntry )
@@ -738,9 +736,9 @@ sal_Bool SwCSS1Parser::StyleParsed( const CSS1Selector *pSelector,
     {
         if( !pNext ||
             (CSS1_SELTYPE_PSEUDO == pNext->GetType() &&
-            (pNext->GetString().EqualsIgnoreCaseAscii(sCSS1_left) ||
-             pNext->GetString().EqualsIgnoreCaseAscii(sCSS1_right) ||
-             pNext->GetString().EqualsIgnoreCaseAscii(sCSS1_first)) ) )
+            (pNext->GetString().equalsIgnoreAsciiCase( "left" ) ||
+             pNext->GetString().equalsIgnoreAsciiCase( "right" ) ||
+             pNext->GetString().equalsIgnoreAsciiCase( "first" ) ) ) )
         {
             OUString aName;
             if( pNext )
@@ -787,13 +785,13 @@ sal_Bool SwCSS1Parser::StyleParsed( const CSS1Selector *pSelector,
                 switch( aPseudo[0] )
                 {
                     case 'l':
-                        if( aPseudo.equalsAscii( sCSS1_link ) )
+                        if( aPseudo == "link" )
                         {
                             bInsert = sal_True;
                         }
                         break;
                     case 'v':
-                        if( aPseudo.equalsAscii( sCSS1_visited ) )
+                        if( aPseudo == "visited" )
                         {
                             bInsert = sal_True;
                         }
@@ -994,7 +992,7 @@ sal_Bool SwCSS1Parser::StyleParsed( const CSS1Selector *pSelector,
     {
         if( !pNext ||
             (CSS1_SELTYPE_PSEUDO==eNextType &&
-             pNext->GetString().EqualsIgnoreCaseAscii(sCSS1_first_letter) &&
+             pNext->GetString().equalsIgnoreAsciiCase( "first-letter" ) &&
              SVX_ADJUST_LEFT == rPropInfo.eFloat) )
         {
             // Entweder kein zusammengesetzter Selektor oder
@@ -1545,8 +1543,7 @@ void SwCSS1Parser::FillDropCap( SwFmtDrop& rDrop,
         {
             do
             {
-                aName = OUString( sCSS1_first_letter, sizeof(sCSS1_first_letter) ,RTL_TEXTENCODING_ASCII_US ) +
-                        " " + OUString::number( (sal_Int32)(++nDropCapCnt) );
+                aName = OUString( "first-letter" ) + " " + OUString::number( (sal_Int32)(++nDropCapCnt) );
             }
             while( pDoc->FindCharFmtByName(aName) );
         }
@@ -1867,7 +1864,7 @@ sal_Bool SwCSS1Parser::ParseStyleSheet( const OUString& rIn )
 
     }
 
-    pPageEntry = GetPage( OUString::createFromAscii(sCSS1_first), sal_True );
+    pPageEntry = GetPage( "first", sal_True );
     if( pPageEntry )
     {
         SetPageDescAttrs( GetFirstPageDesc(sal_True), pPageEntry->GetItemSet(),
@@ -1875,7 +1872,7 @@ sal_Bool SwCSS1Parser::ParseStyleSheet( const OUString& rIn )
         bSetFirstPageDesc = sal_True;
     }
 
-    pPageEntry = GetPage( OUString::createFromAscii(sCSS1_right), sal_True );
+    pPageEntry = GetPage( "right", sal_True );
     if( pPageEntry )
     {
         SetPageDescAttrs( GetRightPageDesc(sal_True), pPageEntry->GetItemSet(),
@@ -1883,7 +1880,7 @@ sal_Bool SwCSS1Parser::ParseStyleSheet( const OUString& rIn )
         bSetRightPageDesc = sal_True;
     }
 
-    pPageEntry = GetPage( OUString::createFromAscii(sCSS1_left), sal_True );
+    pPageEntry = GetPage( "left", sal_True );
     if( pPageEntry )
         SetPageDescAttrs( GetLeftPageDesc(sal_True), pPageEntry->GetItemSet(),
                           pPageEntry->GetPropertyInfo() );
diff --git a/sw/source/filter/html/htmlctxt.cxx b/sw/source/filter/html/htmlctxt.cxx
index 6e40751..423c0b5 100644
--- a/sw/source/filter/html/htmlctxt.cxx
+++ b/sw/source/filter/html/htmlctxt.cxx
@@ -454,7 +454,7 @@ sal_Bool SwHTMLParser::DoPositioning( SfxItemSet &rItemSet,
         InsertFlyFrame( aFrmItemSet, pContext, rPropInfo.aId,
                         CONTEXT_FLAGS_ABSPOS );
         pContext->SetPopStack( sal_True );
-        rPropInfo.aId.Erase();
+        rPropInfo.aId = "";
         bRet = sal_True;
     }
 
@@ -467,7 +467,7 @@ sal_Bool SwHTMLParser::CreateContainer( const OUString& rClass,
                                     _HTMLAttrContext *pContext )
 {
     sal_Bool bRet = sal_False;
-    if( rClass.equalsIgnoreAsciiCaseAscii(sCSS1_class_abs_pos) &&
+    if( rClass.equalsIgnoreAsciiCase( "sd-abs-pos" ) &&
         pCSS1Parser->MayBePositioned( rPropInfo ) )
     {
         // Container-Klasse
@@ -686,7 +686,7 @@ void SwHTMLParser::InsertAttrs( SfxItemSet &rItemSet,
         pItem = aIter.NextItem();
     }
 
-    if( rPropInfo.aId.Len() )
+    if( !rPropInfo.aId.isEmpty() )
         InsertBookmark( rPropInfo.aId );
 }
 
diff --git a/sw/source/filter/html/htmldraw.cxx b/sw/source/filter/html/htmldraw.cxx
index 7b950c5..022d18d 100644
--- a/sw/source/filter/html/htmldraw.cxx
+++ b/sw/source/filter/html/htmldraw.cxx
@@ -834,7 +834,7 @@ Writer& OutHTML_DrawFrmFmtAsMarquee( Writer& rWrt,
     Outliner aOutliner(0, OUTLINERMODE_TEXTOBJECT);
     aOutliner.SetUpdateMode( sal_False );
     aOutliner.SetText( *pOutlinerParaObj );
-    String aText( aOutliner.GetText( aOutliner.GetParagraph(0),
+    OUString aText( aOutliner.GetText( aOutliner.GetParagraph(0),
                                      aOutliner.GetParagraphCount() ) );
     HTMLOutFuncs::Out_String( rWrt.Strm(), aText,
                                 rHTMLWrt.eDestEnc, &rHTMLWrt.aNonConvertableCharacters );
diff --git a/sw/source/filter/html/htmlfldw.cxx b/sw/source/filter/html/htmlfldw.cxx
index b850fba..b44c21c 100644
--- a/sw/source/filter/html/htmlfldw.cxx
+++ b/sw/source/filter/html/htmlfldw.cxx
@@ -62,7 +62,7 @@ const sal_Char *SwHTMLWriter::GetNumFormat( sal_uInt16 nFmt )
 
 extern bool swhtml_css1atr_equalFontItems( const SfxPoolItem& r1, const SfxPoolItem& r2 );
 static Writer& OutHTML_SwField( Writer& rWrt, const SwField* pFld,
-                                 const SwTxtNode& rTxtNd, xub_StrLen nFldPos )
+                                 const SwTxtNode& rTxtNd, sal_Int32 nFldPos )
 {
     SwHTMLWriter & rHTMLWrt = (SwHTMLWriter&)rWrt;
 
@@ -73,12 +73,12 @@ static Writer& OutHTML_SwField( Writer& rWrt, const SwField* pFld,
     const sal_Char *pTypeStr=0, // TYPE
                       *pSubStr=0,   // SUBTYPE
                    *pFmtStr=0;  // FORMAT (SW)
-    String aValue;              // VALUE (SW)
+    OUString aValue;              // VALUE (SW)
     sal_Bool bNumFmt=sal_False;         // SDNUM (Number-Formatter-Format)
     sal_Bool bNumValue=sal_False;       // SDVAL (Number-Formatter-Value)
     double dNumValue = 0.0;     // SDVAL (Number-Formatter-Value)
     sal_Bool bFixed=sal_False;          // SDFIXED
-    String aName;               // NAME (CUSTOM)
+    OUString aName;               // NAME (CUSTOM)
 
     switch( nField )
     {
@@ -148,8 +148,8 @@ static Writer& OutHTML_SwField( Writer& rWrt, const SwField* pFld,
                 }
                 else
                 {
-                    const String& rValue = pFld->GetPar2();
-                    short nValue = (short)rValue.ToInt32();
+                    const OUString& rValue = pFld->GetPar2();
+                    short nValue = (short)rValue.toInt32();
                     if( (eSubType == PG_NEXT && nValue!=1) ||
                         (eSubType == PG_PREV && nValue!=-1) ||
                         (eSubType == PG_RANDOM && nValue!=0) )
@@ -273,7 +273,7 @@ static Writer& OutHTML_SwField( Writer& rWrt, const SwField* pFld,
             sOut.append(' ').append(OOO_STRING_SVTOOLS_HTML_O_format).
                 append('=').append(pFmtStr);
         }
-        if( aName.Len() )
+        if( !aName.isEmpty() )
         {
             sOut.append(' ').append(OOO_STRING_SVTOOLS_HTML_O_name).
                 append(RTL_CONSTASCII_STRINGPARAM("=\""));
@@ -281,7 +281,7 @@ static Writer& OutHTML_SwField( Writer& rWrt, const SwField* pFld,
             HTMLOutFuncs::Out_String( rWrt.Strm(), aName, rHTMLWrt.eDestEnc, &rHTMLWrt.aNonConvertableCharacters );
             sOut.append('\"');
         }
-        if( aValue.Len() )
+        if( !aValue.isEmpty() )
         {
             sOut.append(' ').append(OOO_STRING_SVTOOLS_HTML_O_value).
                 append(RTL_CONSTASCII_STRINGPARAM("=\""));
@@ -306,17 +306,17 @@ static Writer& OutHTML_SwField( Writer& rWrt, const SwField* pFld,
     }
 
     // Inhalt des Feldes ausgeben
-    String const sExpand( pFld->ExpandField(true) );
+    OUString const sExpand( pFld->ExpandField(true) );
     sal_Bool bNeedsCJKProcessing = sal_False;
-    if( sExpand.Len() )
+    if( !sExpand.isEmpty() )
     {
         sal_uInt16 nScriptType = g_pBreakIt->GetBreakIter()->getScriptType( sExpand, 0 );
-        xub_StrLen nPos = (xub_StrLen)g_pBreakIt->GetBreakIter()->endOfScript( sExpand, 0,
+        sal_Int32 nPos = g_pBreakIt->GetBreakIter()->endOfScript( sExpand, 0,
                                                           nScriptType );
 
         sal_uInt16 nScript =
             SwHTMLWriter::GetCSS1ScriptForScriptType( nScriptType );
-        if( nPos < sExpand.Len() || nScript != rHTMLWrt.nCSS1Script )
+        if( nPos < sExpand.getLength() || nScript != rHTMLWrt.nCSS1Script )
         {
             bNeedsCJKProcessing = sal_True;
         }
@@ -358,15 +358,15 @@ static Writer& OutHTML_SwField( Writer& rWrt, const SwField* pFld,
             break;
         }
 
-        xub_StrLen nPos = 0;
+        sal_Int32 nPos = 0;
         do
         {
             sal_uInt16 nScriptType = g_pBreakIt->GetBreakIter()->getScriptType( sExpand, nPos );
             sal_uInt16 nScript =
                 SwHTMLWriter::GetCSS1ScriptForScriptType( nScriptType );
-            xub_StrLen nEndPos = (xub_StrLen)g_pBreakIt->GetBreakIter()->endOfScript(
+            sal_Int32 nEndPos = g_pBreakIt->GetBreakIter()->endOfScript(
                                     sExpand, nPos, nScriptType );
-            xub_StrLen nChunkLen = nEndPos - nPos;
+            sal_Int32 nChunkLen = nEndPos - nPos;
             if( nScript != CSS1_OUTMODE_ANY_SCRIPT &&
                 /* #108791# */ nScript != rHTMLWrt.nCSS1Script )
             {
@@ -396,7 +396,7 @@ static Writer& OutHTML_SwField( Writer& rWrt, const SwField* pFld,
                     }
                 }
 
-                HTMLOutFuncs::Out_String( rWrt.Strm(), sExpand.Copy( nPos, nChunkLen ),
+                HTMLOutFuncs::Out_String( rWrt.Strm(), sExpand.copy( nPos, nChunkLen ),
                     rHTMLWrt.eDestEnc, &rHTMLWrt.aNonConvertableCharacters );
 
                 rHTMLWrt.bTagOn = sal_False;
@@ -406,12 +406,12 @@ static Writer& OutHTML_SwField( Writer& rWrt, const SwField* pFld,
             }
             else
             {
-                HTMLOutFuncs::Out_String( rWrt.Strm(), sExpand.Copy( nPos, nChunkLen ),
+                HTMLOutFuncs::Out_String( rWrt.Strm(), sExpand.copy( nPos, nChunkLen ),
                     rHTMLWrt.eDestEnc, &rHTMLWrt.aNonConvertableCharacters );
             }
             nPos = nEndPos;
         }
-        while( nPos < sExpand.Len() );
+        while( nPos < sExpand.getLength() );
     }
     else
     {
@@ -442,7 +442,7 @@ Writer& OutHTML_SwFmtFld( Writer& rWrt, const SfxPoolItem& rHt )
         else if (pFldTyp->GetName() != "HTML_OFF")
             return rWrt;
 
-        String rTxt(comphelper::string::strip(pFld->GetPar2(), ' '));
+        OUString rTxt(comphelper::string::strip(pFld->GetPar2(), ' '));
         rWrt.Strm() << '<';
         if( !bOn )
             rWrt.Strm() << '/';
@@ -456,18 +456,18 @@ Writer& OutHTML_SwFmtFld( Writer& rWrt, const SfxPoolItem& rHt )
     {
         // Kommentare werden im ANSI-Zeichensetz, aber mit System-Zeilen-
         // Umbruechen gesschrieben.
-        const String& rComment = pFld->GetPar2();
+        const OUString& rComment = pFld->GetPar2();
         sal_Bool bWritten = sal_False;
 
-        if( (rComment.Len() >= 6 && '<' == rComment.GetChar(0) &&
-            '>' == rComment.GetChar(rComment.Len()-1) &&
-            rComment.Copy( 1, 4 ).EqualsIgnoreCaseAscii(OOO_STRING_SVTOOLS_HTML_meta)) ||
-              (rComment.Len() >= 7 &&
-             rComment.Copy( 0, 4 ).EqualsAscii( "<!--" ) &&
-             rComment.Copy( rComment.Len()-3, 3 ).EqualsAscii( "-->" )) )
+        if( (rComment.getLength() >= 6 && '<' == rComment[0] &&
+            '>' == rComment[rComment.getLength()-1] &&
+            rComment.copy( 1, 4 ).equalsIgnoreAsciiCase( OOO_STRING_SVTOOLS_HTML_meta) ) ||
+              (rComment.getLength() >= 7 &&
+             rComment.startsWith( "<!--" ) &&
+             rComment.endsWith( "-->" )) )
         {
             // META-Tags direkt ausgeben
-            String sComment(convertLineEnd(rComment, GetSystemLineEnd()));
+            OUString sComment(convertLineEnd(rComment, GetSystemLineEnd()));
             // TODO: HTML-Tags are written without entitities, that for,
             // characters not contained in the destination encoding are lost!
             OString sTmp(OUStringToOString(sComment,
@@ -475,12 +475,12 @@ Writer& OutHTML_SwFmtFld( Writer& rWrt, const SfxPoolItem& rHt )
             rWrt.Strm() << sTmp.getStr();
             bWritten = sal_True;
         }
-        else if( rComment.Len() >= 7 &&
-                 '>' == rComment.GetChar(rComment.Len()-1) &&
-                 rComment.Copy(0,5).EqualsIgnoreCaseAscii("HTML:") )
+        else if( rComment.getLength() >= 7 &&
+                 '>' == rComment[rComment.getLength()-1] &&
+                 rComment.startsWithIgnoreAsciiCase( "HTML:" ) )
         {
-            String sComment(comphelper::string::stripStart(rComment.Copy(5), ' '));
-            if( '<' == sComment.GetChar(0) )
+            OUString sComment(comphelper::string::stripStart(rComment.copy(5), ' '));
+            if( '<' == sComment[0] )
             {
                 sComment = convertLineEnd(sComment, GetSystemLineEnd());
                 // TODO: HTML-Tags are written without entitities, that for,
@@ -496,7 +496,7 @@ Writer& OutHTML_SwFmtFld( Writer& rWrt, const SfxPoolItem& rHt )
 
         if( !bWritten )
         {
-            String sComment(convertLineEnd(rComment, GetSystemLineEnd()));
+            OUString sComment(convertLineEnd(rComment, GetSystemLineEnd()));
             OStringBuffer sOut;
             // TODO: ???
             sOut.append('<').append(OOO_STRING_SVTOOLS_HTML_comment)
@@ -513,7 +513,7 @@ Writer& OutHTML_SwFmtFld( Writer& rWrt, const SfxPoolItem& rHt )
 
         sal_Bool bURL = ((const SwScriptField *)pFld)->IsCodeURL();
         const OUString& rType = pFld->GetPar1();
-        String aContents, aURL;
+        OUString aContents, aURL;
         if(bURL)
             aURL = pFld->GetPar2();
         else
diff --git a/sw/source/filter/html/htmlfly.cxx b/sw/source/filter/html/htmlfly.cxx
index 2251fc2..dabdd9c 100644
--- a/sw/source/filter/html/htmlfly.cxx
+++ b/sw/source/filter/html/htmlfly.cxx
@@ -446,7 +446,7 @@ void SwHTMLWriter::OutFrmFmt( sal_uInt8 nMode, const SwFrmFmt& rFrmFmt,
                             : OOO_STRING_SVTOOLS_HTML_span;
         sOut.append('<').append(pCntnrStr).append(' ')
             .append(OOO_STRING_SVTOOLS_HTML_O_class).append("=\"")
-            .append(sCSS1_class_abs_pos).append('\"');
+            .append("sd-abs-pos").append('\"');
         Strm() << sOut.makeStringAndClear().getStr();
 
         // Fuer Nicht-Zeichenobekte eine Breite ausgeben
@@ -813,7 +813,7 @@ OString SwHTMLWriter::OutFrmFmtOptions( const SwFrmFmt &rFrmFmt,
 }
 
 Writer& OutHTML_Image( Writer& rWrt, const SwFrmFmt &rFrmFmt,
-                       Graphic& rGraphic, const String& rAlternateTxt,
+                       Graphic& rGraphic, const OUString& rAlternateTxt,
                        const Size &rRealSize, sal_uInt32 nFrmOpts,
                        const sal_Char *pMarkType,
                        const ImageMap *pAltImgMap )
@@ -847,19 +847,18 @@ Writer& OutHTML_Image( Writer& rWrt, const SwFrmFmt &rFrmFmt,
         pIMap = pURLItem->GetMap();
     }
 
-    String aIMapName;
+    OUString aIMapName;
     if( pIMap )
     {
         // den Namen eindeutig machen
         aIMapName = pIMap->GetName();
-        String aNameBase;
-        if( aIMapName.Len() )
+        OUString aNameBase;
+        if( !aIMapName.isEmpty() )
             aNameBase = aIMapName;
         else
-            aNameBase.AssignAscii( OOO_STRING_SVTOOLS_HTML_map );
-        if( !aIMapName.Len() )
-            (aIMapName = aNameBase)
-                += OUString::number( rHTMLWrt.nImgMapCnt );
+            aNameBase = OOO_STRING_SVTOOLS_HTML_map;
+        if( aIMapName.isEmpty() )
+            aIMapName = aNameBase + OUString::number( rHTMLWrt.nImgMapCnt );
 
         sal_Bool bFound;
         do
@@ -869,7 +868,7 @@ Writer& OutHTML_Image( Writer& rWrt, const SwFrmFmt &rFrmFmt,
             {
                 // TODO: Unicode: Comparison is case insensitive for ASCII
                 // characters only now!
-                if( aIMapName.EqualsIgnoreCaseAscii(rHTMLWrt.aImgMapNames[i]) )
+                if( aIMapName.equalsIgnoreAsciiCase( rHTMLWrt.aImgMapNames[i] ) )
                 {
                     bFound = sal_True;
                     break;
@@ -878,8 +877,7 @@ Writer& OutHTML_Image( Writer& rWrt, const SwFrmFmt &rFrmFmt,
             if( bFound )
             {
                 rHTMLWrt.nImgMapCnt++;
-                (aIMapName = aNameBase)
-                    += OUString::number( rHTMLWrt.nImgMapCnt );
+                aIMapName = aNameBase + OUString::number( rHTMLWrt.nImgMapCnt );
             }
 
         } while( bFound );
@@ -988,9 +986,9 @@ Writer& OutHTML_Image( Writer& rWrt, const SwFrmFmt &rFrmFmt,
 
     if( pURLItem || pMacItem )
     {
-        String aMapURL;
-        String aName;
-        String aTarget;
+        OUString aMapURL;
+        OUString aName;
+        OUString aTarget;
         if( pURLItem )
         {
             aMapURL = pURLItem->GetURL();
@@ -999,12 +997,12 @@ Writer& OutHTML_Image( Writer& rWrt, const SwFrmFmt &rFrmFmt,
         }
         sal_Bool bEvents = pMacItem && !pMacItem->GetMacroTable().empty();
 
-        if( aMapURL.Len() || aName.Len() || aTarget.Len() || bEvents )
+        if( !aMapURL.isEmpty() || !aName.isEmpty() || !aTarget.isEmpty() || bEvents )
         {
             sOut.append('<').append(OOO_STRING_SVTOOLS_HTML_anchor);
 
             // Ein HREF nur Ausgaben, wenn es einen Link oder Makros gibt
-            if( aMapURL.Len() || bEvents )
+            if( !aMapURL.isEmpty() || bEvents )
             {
                 sOut.append(' ').append(OOO_STRING_SVTOOLS_HTML_O_href).
                     append("=\"");
@@ -1013,7 +1011,7 @@ Writer& OutHTML_Image( Writer& rWrt, const SwFrmFmt &rFrmFmt,
                 sOut.append('\"');
             }
 
-            if( aName.Len() )
+            if( !aName.isEmpty() )
             {
                 sOut.append(' ').append(OOO_STRING_SVTOOLS_HTML_O_name).
                     append("=\"");
@@ -1023,7 +1021,7 @@ Writer& OutHTML_Image( Writer& rWrt, const SwFrmFmt &rFrmFmt,
                 sOut.append('\"');
             }
 
-            if( aTarget.Len() )
+            if( !aTarget.isEmpty() )
             {
                 sOut.append(' ').append(OOO_STRING_SVTOOLS_HTML_O_target).
                     append("=\"");
@@ -1172,7 +1170,7 @@ Writer& OutHTML_Image( Writer& rWrt, const SwFrmFmt &rFrmFmt,
         sOut.append(' ').append(OOO_STRING_SVTOOLS_HTML_O_ismap);
         rWrt.Strm() << sOut.makeStringAndClear().getStr();
     }
-    if( aIMapName.Len() )
+    if( !aIMapName.isEmpty() )
     {
         sOut.append(' ').append(OOO_STRING_SVTOOLS_HTML_O_usemap).
             append("=\"#");
@@ -1295,7 +1293,7 @@ static Writer& OutHTML_FrmFmtTableNode( Writer& rWrt, const SwFrmFmt& rFrmFmt )
     sal_uLong nStt = rFlyCntnt.GetCntntIdx()->GetIndex()+1;
     sal_uLong nEnd = rHTMLWrt.pDoc->GetNodes()[nStt-1]->EndOfSectionIndex();
 
-    String aCaption;
+    OUString aCaption;
     sal_Bool bTopCaption = sal_False;
 
     // Nicht const, weil GetTable spater mal nicht const ist
diff --git a/sw/source/filter/html/htmlform.cxx b/sw/source/filter/html/htmlform.cxx
index 1f55361..1470596 100644
--- a/sw/source/filter/html/htmlform.cxx
+++ b/sw/source/filter/html/htmlform.cxx
@@ -192,9 +192,9 @@ class SwHTMLForm_Impl
     uno::Reference< beans::XPropertySet >           xFCompPropSet;
     uno::Reference< drawing::XShape >               xShape;
 
-    String                      sText;
-    std::vector<String>         aStringList;
-    std::vector<String>         aValueList;
+    OUString                    sText;
+    std::vector<OUString>         aStringList;
+    std::vector<OUString>         aValueList;
     std::vector<sal_uInt16>     aSelectedList;
 
 public:
@@ -241,16 +241,16 @@ public:
     void SetShape( const uno::Reference< drawing::XShape >& r ) { xShape = r; }
     void ReleaseShape() { xShape = 0; }
 
-    String& GetText() { return sText; }
+    OUString& GetText() { return sText; }
     void EraseText() { sText = aEmptyStr; }
 
-    std::vector<String>& GetStringList() { return aStringList; }
+    std::vector<OUString>& GetStringList() { return aStringList; }
     void EraseStringList()
     {
         aStringList.clear();
     }
 
-    std::vector<String>& GetValueList() { return aValueList; }
+    std::vector<OUString>& GetValueList() { return aValueList; }
     void EraseValueList()
     {
         aValueList.clear();
@@ -806,9 +806,9 @@ void SwHTMLParser::SetControlSize( const uno::Reference< drawing::XShape >& rSha
 static void lcl_html_setEvents(
         const uno::Reference< script::XEventAttacherManager > & rEvtMn,
         sal_uInt32 nPos, const SvxMacroTableDtor& rMacroTbl,
-        const std::vector<String>& rUnoMacroTbl,
-        const std::vector<String>& rUnoMacroParamTbl,
-        const String& rType )
+        const std::vector<OUString>& rUnoMacroTbl,
+        const std::vector<OUString>& rUnoMacroParamTbl,
+        const OUString& rType )
 {
     // Erstmal muss die Anzahl der Events ermittelt werden ...
     sal_Int32 nEvents = 0;
@@ -824,13 +824,13 @@ static void lcl_html_setEvents(
     }
     for( i=0; i< rUnoMacroTbl.size(); i++ )
     {
-        const String& rStr(rUnoMacroTbl[i]);
+        const OUString& rStr(rUnoMacroTbl[i]);
         sal_Int32 nIndex = 0;
-        if( !rStr.GetToken( 0, '-', nIndex ).Len() || -1 == nIndex )
+        if( rStr.getToken( 0, '-', nIndex ).isEmpty() || -1 == nIndex )
             continue;
-        if( !rStr.GetToken( 0, '-', nIndex ).Len() || -1 == nIndex )
+        if( rStr.getToken( 0, '-', nIndex ).isEmpty() || -1 == nIndex )
             continue;
-        if( nIndex < rStr.Len() )
+        if( nIndex < rStr.getLength() )
             nEvents++;
     }
 
@@ -857,18 +857,18 @@ static void lcl_html_setEvents(
 
     for( i=0; i< rUnoMacroTbl.size(); ++i )
     {
-        const String& rStr = rUnoMacroTbl[i];
+        const OUString& rStr = rUnoMacroTbl[i];
         sal_Int32 nIndex = 0;
-        String sListener( rStr.GetToken( 0, '-', nIndex ) );
-        if( !sListener.Len() || -1 == nIndex )
+        OUString sListener( rStr.getToken( 0, '-', nIndex ) );
+        if( sListener.isEmpty() || -1 == nIndex )
             continue;
 
-        String sMethod( rStr.GetToken( 0, '-', nIndex ) );
-        if( !sMethod.Len() || -1 == nIndex )
+        OUString sMethod( rStr.getToken( 0, '-', nIndex ) );
+        if( sMethod.isEmpty() || -1 == nIndex )
             continue;
 
-        String sCode( rStr.Copy( nIndex ) );
-        if( !sCode.Len() )
+        OUString sCode( rStr.copy( nIndex ) );
+        if( sCode.isEmpty() )
             continue;
 
         script::ScriptEventDescriptor& rDesc = pDescs[nEvent++];
@@ -880,18 +880,15 @@ static void lcl_html_setEvents(
 
         if(!rUnoMacroParamTbl.empty())
         {
-            String sSearch( sListener );
-            sSearch += '-';
-            sSearch += sMethod;
-            sSearch += '-';
-            xub_StrLen nLen = sSearch.Len();
+            OUString sSearch( sListener );
+            sSearch += "-" +sMethod + "-";
+            sal_Int32 nLen = sSearch.getLength();
             for(size_t j = 0; j < rUnoMacroParamTbl.size(); ++j)
             {
-                const String& rParam = rUnoMacroParamTbl[j];
-                if( rParam.CompareTo( sSearch, nLen ) == COMPARE_EQUAL &&
-                    rParam.Len() > nLen )
+                const OUString& rParam = rUnoMacroParamTbl[j];
+                if( rParam.startsWith( sSearch ) && rParam.getLength() > nLen )
                 {
-                    rDesc.AddListenerParam = rParam.Copy(nLen);
+                    rDesc.AddListenerParam = rParam.copy(nLen);
                     break;
                 }
             }
@@ -900,24 +897,20 @@ static void lcl_html_setEvents(
     rEvtMn->registerScriptEvents( nPos, aDescs );
 }
 
-static void lcl_html_getEvents( const String& rOption, const String& rValue,
-                                std::vector<String>& rUnoMacroTbl,
-                                std::vector<String>& rUnoMacroParamTbl )
+static void lcl_html_getEvents( const OUString& rOption, const OUString& rValue,
+                                std::vector<OUString>& rUnoMacroTbl,
+                                std::vector<OUString>& rUnoMacroParamTbl )
 {
-    if( rOption.CompareIgnoreCaseToAscii( OOO_STRING_SVTOOLS_HTML_O_sdevent,
-                            sizeof(OOO_STRING_SVTOOLS_HTML_O_sdevent)-1 ) == COMPARE_EQUAL )
+    if( rOption.startsWithIgnoreAsciiCase( OOO_STRING_SVTOOLS_HTML_O_sdevent ) )
     {
-        String aEvent(rOption.Copy(sizeof(OOO_STRING_SVTOOLS_HTML_O_sdevent)-1));
-        aEvent += '-';
-        aEvent += rValue;
+        OUString aEvent( rOption.copy( strlen( OOO_STRING_SVTOOLS_HTML_O_sdevent ) ) );
+        aEvent += "-" + rValue;
         rUnoMacroTbl.push_back(aEvent);
     }
-    else if( rOption.CompareIgnoreCaseToAscii( OOO_STRING_SVTOOLS_HTML_O_sdaddparam,
-                            sizeof(OOO_STRING_SVTOOLS_HTML_O_sdaddparam)-1 ) == COMPARE_EQUAL )
+    else if( rOption.startsWithIgnoreAsciiCase( OOO_STRING_SVTOOLS_HTML_O_sdaddparam ) )
     {
-        String aParam(rOption.Copy( sizeof(OOO_STRING_SVTOOLS_HTML_O_sdaddparam)-1 ) );
-        aParam += '-';
-        aParam += rValue;
+        OUString aParam( rOption.copy( strlen( OOO_STRING_SVTOOLS_HTML_O_sdaddparam ) ) );
+        aParam += "-" + rValue;
         rUnoMacroParamTbl.push_back(aParam);
     }
 }
@@ -927,8 +920,8 @@ uno::Reference< drawing::XShape > SwHTMLParser::InsertControl(
         const uno::Reference< beans::XPropertySet > & rFCompPropSet,
         const Size& rSize, sal_Int16 eVertOri, sal_Int16 eHoriOri,
         SfxItemSet& rCSS1ItemSet, SvxCSS1PropertyInfo& rCSS1PropInfo,
-        const SvxMacroTableDtor& rMacroTbl, const std::vector<String>& rUnoMacroTbl,
-        const std::vector<String>& rUnoMacroParamTbl, sal_Bool bSetFCompPropSet,
+        const SvxMacroTableDtor& rMacroTbl, const std::vector<OUString>& rUnoMacroTbl,
+        const std::vector<OUString>& rUnoMacroParamTbl, sal_Bool bSetFCompPropSet,
         sal_Bool bHidden )
 {
     uno::Reference< drawing::XShape >  xShape;
@@ -1321,11 +1314,11 @@ void SwHTMLParser::NewForm( sal_Bool bAppend )
     sal_uInt16 nEncType = FormSubmitEncoding_URL;
     sal_uInt16 nMethod = FormSubmitMethod_GET;
     SvxMacroTableDtor aMacroTbl;
-    std::vector<String> aUnoMacroTbl;
-    std::vector<String> aUnoMacroParamTbl;
+    std::vector<OUString> aUnoMacroTbl;
+    std::vector<OUString> aUnoMacroParamTbl;
     SvKeyValueIterator *pHeaderAttrs = pFormImpl->GetHeaderAttrs();
     ScriptType eDfltScriptType = GetScriptType( pHeaderAttrs );
-    const String& rDfltScriptType = GetScriptTypeString( pHeaderAttrs );
+    const OUString& rDfltScriptType = GetScriptTypeString( pHeaderAttrs );
 
     const HTMLOptions& rHTMLOptions = GetOptions();
     for (size_t i = rHTMLOptions.size(); i; )
@@ -1482,8 +1475,8 @@ void SwHTMLParser::InsertInput()
     String sImgSrc, aId, aClass, aStyle, sText;
     String sName;
     SvxMacroTableDtor aMacroTbl;
-    std::vector<String> aUnoMacroTbl;
-    std::vector<String> aUnoMacroParamTbl;
+    std::vector<OUString> aUnoMacroTbl;
+    std::vector<OUString> aUnoMacroParamTbl;
     sal_uInt16 nSize = 0;
     sal_Int16 nMaxLen = 0;
     sal_Int16 nChecked = STATE_NOCHECK;
@@ -1981,8 +1974,8 @@ void SwHTMLParser::NewTextArea()
     String sName;
     sal_Int32 nTabIndex = TABINDEX_MAX + 1;
     SvxMacroTableDtor aMacroTbl;
-    std::vector<String> aUnoMacroTbl;
-    std::vector<String> aUnoMacroParamTbl;
+    std::vector<OUString> aUnoMacroTbl;
+    std::vector<OUString> aUnoMacroParamTbl;
     sal_uInt16 nRows = 0, nCols = 0;
     sal_uInt16 nWrap = HTML_WM_OFF;
     sal_Bool bDisabled = sal_False;
@@ -2138,7 +2131,7 @@ void SwHTMLParser::NewTextArea()
                                     aTmp );
     }
 
-    OSL_ENSURE( !pFormImpl->GetText().Len(), "Text ist nicht leer!" );
+    OSL_ENSURE( pFormImpl->GetText().isEmpty(), "Text ist nicht leer!" );
 
     if( !nCols )
         nCols = 20;
@@ -2201,7 +2194,7 @@ void SwHTMLParser::EndTextArea()
         pFormImpl->GetFCompPropSet();
 
     Any aTmp;
-    aTmp <<= OUString(pFormImpl->GetText());
+    aTmp <<= pFormImpl->GetText();
     rPropSet->setPropertyValue("DefaultText",
                                 aTmp );
     pFormImpl->EraseText();
@@ -2227,7 +2220,7 @@ void SwHTMLParser::InsertTextAreaText( sal_uInt16 nToken )
     OSL_ENSURE( pFormImpl && pFormImpl->GetFCompPropSet().is(),
             "TextArea fehlt" );
 
-    String& rText = pFormImpl->GetText();
+    OUString& rText = pFormImpl->GetText();
     switch( nToken)
     {
     case HTML_TEXTTOKEN:
@@ -2235,17 +2228,17 @@ void SwHTMLParser::InsertTextAreaText( sal_uInt16 nToken )
         break;
     case HTML_NEWPARA:
         if( !bTAIgnoreNewPara )
-            rText += '\n';    // das ist hier richtig!!!
+            rText += "\n";    // das ist hier richtig!!!
         break;
     default:
-        rText += '<';
+        rText += "<";
         rText += sSaveToken;
         if( aToken.Len() )
         {
-            rText += ' ';
+            rText += " ";
             rText += aToken;
         }
-        rText += '>';
+        rText += ">";
     }
 
     bTAIgnoreNewPara = sal_False;
@@ -2270,8 +2263,8 @@ void SwHTMLParser::NewSelect()
     String sName;
     sal_Int32 nTabIndex = TABINDEX_MAX + 1;
     SvxMacroTableDtor aMacroTbl;
-    std::vector<String> aUnoMacroTbl;
-    std::vector<String> aUnoMacroParamTbl;
+    std::vector<OUString> aUnoMacroTbl;
+    std::vector<OUString> aUnoMacroParamTbl;
     sal_Bool bMultiple = sal_False;
     sal_Bool bDisabled = sal_False;
     nSelectEntryCnt = 1;
@@ -2576,7 +2569,7 @@ void SwHTMLParser::InsertSelectOption()
             "kein Select-Control" );
 
     bLBEntrySelected = sal_False;
-    String aValue;
+    OUString aValue;
 
     const HTMLOptions& rHTMLOptions = GetOptions();
     for (size_t i = rHTMLOptions.size(); i; )
@@ -2592,8 +2585,8 @@ void SwHTMLParser::InsertSelectOption()
             break;
         case HTML_O_VALUE:
             aValue = rOption.GetString();
-            if( !aValue.Len() )
-                aValue.AssignAscii( "$$$empty$$$" );
+            if( aValue.isEmpty() )
+                aValue = "$$$empty$$$";
             break;
         }
     }
@@ -2615,12 +2608,12 @@ void SwHTMLParser::InsertSelectText()
 
     if(!pFormImpl->GetStringList().empty())
     {
-        String& rText = pFormImpl->GetStringList().back();
+        OUString& rText = pFormImpl->GetStringList().back();
 
         if( aToken.Len() && ' '==aToken.GetChar( 0 ) )
         {
-            xub_StrLen nLen = rText.Len();
-            if( !nLen || ' '==rText.GetChar( nLen-1 ))
+            sal_Int32 nLen = rText.getLength();
+            if( !nLen || ' '==rText[nLen-1])
                 aToken.Erase( 0, 1 );
         }
         if( aToken.Len() )
diff --git a/sw/source/filter/html/htmlforw.cxx b/sw/source/filter/html/htmlforw.cxx
index d976e1a..8ed4041 100644
--- a/sw/source/filter/html/htmlforw.cxx
+++ b/sw/source/filter/html/htmlforw.cxx
@@ -138,25 +138,25 @@ static void lcl_html_outEvents( SvStream& rStrm,
     for( sal_Int32 i = 0; i < nCount; i++ )
     {
         ScriptType eScriptType = EXTENDED_STYPE;
-        String aScriptType( pDescs[i].ScriptType );
-        if( aScriptType.EqualsIgnoreCaseAscii(SVX_MACRO_LANGUAGE_JAVASCRIPT) )
+        OUString aScriptType( pDescs[i].ScriptType );
+        if( aScriptType.equalsIgnoreAsciiCase(SVX_MACRO_LANGUAGE_JAVASCRIPT) )
             eScriptType = JAVASCRIPT;
-        else if( aScriptType.EqualsIgnoreCaseAscii(SVX_MACRO_LANGUAGE_STARBASIC ) )
+        else if( aScriptType.equalsIgnoreAsciiCase(SVX_MACRO_LANGUAGE_STARBASIC ) )
             eScriptType = STARBASIC;
         if( JAVASCRIPT != eScriptType && !bCfgStarBasic )
             continue;
 
-        String sListener( pDescs[i].ListenerType );
-        xub_StrLen nTok = comphelper::string::getTokenCount(sListener, '.');
+        OUString sListener( pDescs[i].ListenerType );
+        sal_Int32 nTok = comphelper::string::getTokenCount(sListener, '.');
         if( nTok )
-            sListener = sListener.GetToken( nTok-1, '.' );
-        String sMethod( pDescs[i].EventMethod );
+            sListener = sListener.getToken( nTok-1, '.' );
+        OUString sMethod( pDescs[i].EventMethod );
 
         const sal_Char *pOpt = 0;
         for( sal_uInt16 j=0; aEventListenerTable[j]; j++ )
         {
-            if( sListener.EqualsAscii( aEventListenerTable[j] ) &&
-                sMethod.EqualsAscii( aEventMethodTable[j] ) )
+            if( sListener.equalsAscii( aEventListenerTable[j] ) &&
+                sMethod.equalsAscii( aEventMethodTable[j] ) )
             {
                 pOpt = (STARBASIC==eScriptType ? aEventSDOptionTable
                                                : aEventOptionTable)[j];
@@ -1128,7 +1128,7 @@ Writer& OutHTML_DrawFrmFmtAsControl( Writer& rWrt,
                 Font aFixedFont( OutputDevice::GetDefaultFont(
                                     DEFAULTFONT_FIXED, LANGUAGE_ENGLISH_US,
                                     DEFAULTFONT_FLAGS_ONLYONE ) );
-                String aFName( *(OUString*)aTmp.getValue() );
+                OUString aFName( *(OUString*)aTmp.getValue() );
                 if( !bEdit || aFName != aFixedFont.GetName() )
                 {
                     FontFamily eFamily = FAMILY_DONTKNOW;
@@ -1289,15 +1289,15 @@ Writer& OutHTML_DrawFrmFmtAsControl( Writer& rWrt,
     {
         // In TextAreas duerfen keine zusaetzlichen Spaces oder LF exportiert
         // werden!
-        String sVal;
+        OUString sVal;
         aTmp = xPropSet->getPropertyValue(
         OUString("DefaultText") );
         if( aTmp.getValueType() == ::getCppuType((const OUString*)0)&&
             !((OUString*)aTmp.getValue())->isEmpty() )
         {
-            sVal = String( *(OUString*)aTmp.getValue() );
+            sVal = *(OUString*)aTmp.getValue();
         }
-        if( sVal.Len() )
+        if( !sVal.isEmpty() )
         {
             sVal = convertLineEnd(sVal, LINEEND_LF);
             sal_Int32 nPos = 0;
@@ -1305,7 +1305,7 @@ Writer& OutHTML_DrawFrmFmtAsControl( Writer& rWrt,
             {
                 if( nPos )
                     rWrt.Strm() << SwHTMLWriter::sNewLine;
-                String aLine = sVal.GetToken( 0, 0x0A, nPos );
+                OUString aLine = sVal.getToken( 0, 0x0A, nPos );
                 HTMLOutFuncs::Out_String( rWrt.Strm(), aLine,
                                         rHTMLWrt.eDestEnc, &rHTMLWrt.aNonConvertableCharacters );
             }
diff --git a/sw/source/filter/html/htmlftn.cxx b/sw/source/filter/html/htmlftn.cxx
index 00a8479..b6278fd 100644
--- a/sw/source/filter/html/htmlftn.cxx
+++ b/sw/source/filter/html/htmlftn.cxx
@@ -34,48 +34,48 @@
 struct SwHTMLFootEndNote_Impl
 {
     SwHTMLTxtFtns aTxtFtns;
-    std::vector<String> aNames;
+    std::vector<OUString> aNames;
 
-    String sName;
-    String sContent;            // Infos fuer die letzte Fussnote
+    OUString sName;
+    OUString sContent;            // Infos fuer die letzte Fussnote
     sal_Bool bEndNote;
     sal_Bool bFixed;
 };
 
 
-xub_StrLen lcl_html_getNextPart( String& rPart, const String& rContent,
-                             xub_StrLen nPos )
+sal_Int32 lcl_html_getNextPart( OUString& rPart, const OUString& rContent,
+                             sal_Int32 nPos )
 {
     rPart = aEmptyStr;
-    xub_StrLen nLen = rContent.Len();
+    sal_Int32 nLen = rContent.getLength();
     if( nPos >= nLen )
     {
-        nPos = STRING_MAXLEN;
+        nPos = -1;
     }
     else
     {
         sal_Bool bQuoted = sal_False, bDone = sal_False;
         for( ; nPos < nLen && !bDone; nPos++ )
         {
-            sal_Unicode c = rContent.GetChar( nPos );
+            sal_Unicode c = rContent[nPos];
             switch( c )
             {
             case '\\':
                 if( bQuoted )
-                    rPart += c;
+                    rPart += OUString( c );
                 bQuoted = !bQuoted;
                 break;
 
             case ';':
                 if( bQuoted )
-                    rPart += c;
+                    rPart += OUString( c );
                 else
                     bDone = sal_True;
                 bQuoted = sal_False;
                 break;
 
             default:
-                rPart += c;
+                rPart += OUString( c );
                 bQuoted = sal_False;
                 break;
             }
@@ -85,28 +85,28 @@ xub_StrLen lcl_html_getNextPart( String& rPart, const String& rContent,
     return nPos;
 }
 
-xub_StrLen lcl_html_getEndNoteInfo( SwEndNoteInfo& rInfo,
-                                    const String& rContent,
+sal_Int32 lcl_html_getEndNoteInfo( SwEndNoteInfo& rInfo,
+                                    const OUString& rContent,
                                     sal_Bool bEndNote )
 {
-    xub_StrLen nStrPos = 0;
+    sal_Int32 nStrPos = 0;
     for( sal_uInt16 nPart = 0; nPart < 4; nPart++ )
     {
-        String aPart;
-        if( STRING_MAXLEN != nStrPos )
+        OUString aPart;
+        if( -1 != nStrPos )
             nStrPos = lcl_html_getNextPart( aPart, rContent, nStrPos );
 
         switch( nPart )
         {
         case 0:
             rInfo.aFmt.SetNumberingType( static_cast< sal_Int16 >(bEndNote ? SVX_NUM_ROMAN_LOWER : SVX_NUM_ARABIC));
-            if( aPart.Len() )
+            if( !aPart.isEmpty() )
                 rInfo.aFmt.SetNumberingType(SwHTMLParser::GetNumType( aPart,
                                                              rInfo.aFmt.GetNumberingType() ));
             break;
 
         case 1:
-            rInfo.nFtnOffset = aPart.Len() == 0 ? 0 : (sal_uInt16)aPart.ToInt32();
+            rInfo.nFtnOffset = aPart.isEmpty() ? 0 : (sal_uInt16)aPart.toInt32();
             break;
 
         case 2:
@@ -122,32 +122,32 @@ xub_StrLen lcl_html_getEndNoteInfo( SwEndNoteInfo& rInfo,
     return nStrPos;
 }
 
-void SwHTMLParser::FillEndNoteInfo( const String& rContent )
+void SwHTMLParser::FillEndNoteInfo( const OUString& rContent )
 {
     SwEndNoteInfo aInfo( pDoc->GetEndNoteInfo() );
     lcl_html_getEndNoteInfo( aInfo, rContent, sal_True );
     pDoc->SetEndNoteInfo( aInfo );
 }
 
-void SwHTMLParser::FillFootNoteInfo( const String& rContent )
+void SwHTMLParser::FillFootNoteInfo( const OUString& rContent )
 {
     SwFtnInfo aInfo( pDoc->GetFtnInfo() );
 
-    xub_StrLen nStrPos = lcl_html_getEndNoteInfo( aInfo, rContent, sal_False );
+    sal_Int32 nStrPos = lcl_html_getEndNoteInfo( aInfo, rContent, sal_False );
 
     for( sal_uInt16 nPart = 4; nPart < 8; nPart++ )
     {
-        String aPart;
-        if( STRING_MAXLEN != nStrPos )
+        OUString aPart;
+        if( -1 != nStrPos )
             nStrPos = lcl_html_getNextPart( aPart, rContent, nStrPos );
 
         switch( nPart )
         {
         case 4:
             aInfo.eNum = FTNNUM_DOC;
-            if( aPart.Len() )
+            if( !aPart.isEmpty() )
             {
-                switch( aPart.GetChar(0) )
+                switch( aPart[0] )
                 {
                 case 'D': aInfo.eNum = FTNNUM_DOC; break;
                 case 'C': aInfo.eNum = FTNNUM_CHAPTER; break;
@@ -158,9 +158,9 @@ void SwHTMLParser::FillFootNoteInfo( const String& rContent )
 
         case 5:
             aInfo.ePos = FTNPOS_PAGE;
-            if( aPart.Len() )
+            if( !aPart.isEmpty() )
             {
-                switch( aPart.GetChar(0) )
+                switch( aPart[0] )
                 {
                 case 'C': aInfo.ePos = FTNPOS_CHAPTER; break;
                 case 'P': aInfo.ePos = FTNPOS_PAGE; break;
@@ -181,18 +181,17 @@ void SwHTMLParser::FillFootNoteInfo( const String& rContent )
     pDoc->SetFtnInfo( aInfo );
 }
 
-void SwHTMLParser::InsertFootEndNote( const String& rName, sal_Bool bEndNote,
+void SwHTMLParser::InsertFootEndNote( const OUString& rName, sal_Bool bEndNote,
                                       sal_Bool bFixed )
 {
     if( !pFootEndNoteImpl )
         pFootEndNoteImpl = new SwHTMLFootEndNote_Impl;
 
     pFootEndNoteImpl->sName = rName;
-    if( pFootEndNoteImpl->sName.Len() > 3 )
-        pFootEndNoteImpl->sName.Erase( pFootEndNoteImpl->sName.Len() - 3 );
+    if( pFootEndNoteImpl->sName.getLength() > 3 )
+        pFootEndNoteImpl->sName = pFootEndNoteImpl->sName.copy( 0, pFootEndNoteImpl->sName.getLength() - 3 );
     // TODO: ToUpperAscii???
-    pFootEndNoteImpl->sName.ToUpperAscii();
-
+    pFootEndNoteImpl->sName = pFootEndNoteImpl->sName.toAsciiUpperCase();
     pFootEndNoteImpl->bEndNote = bEndNote;
     pFootEndNoteImpl->bFixed = bFixed;
     pFootEndNoteImpl->sContent = aEmptyStr;
@@ -274,23 +273,21 @@ Writer& OutHTML_SwFmtFtn( Writer& rWrt, const SfxPoolItem& rHt )
     if( !pTxtFtn )
         return rWrt;
 
-    String sFtnName, sClass;
+    OUString sFtnName, sClass;
     sal_uInt16 nPos;
     if( rFmtFtn.IsEndNote() )
     {
         nPos = rHTMLWrt.pFootEndNotes ? rHTMLWrt.pFootEndNotes->size() : 0;
         OSL_ENSURE( nPos == rHTMLWrt.nFootNote + rHTMLWrt.nEndNote,
                 "OutHTML_SwFmtFtn: Position falsch" );
-        sClass.AssignAscii( OOO_STRING_SVTOOLS_HTML_sdendnote_anc );
-        sFtnName.AssignAscii( OOO_STRING_SVTOOLS_HTML_sdendnote );
-        sFtnName += OUString::number( (sal_Int32)(++rHTMLWrt.nEndNote) );
+        sClass = OOO_STRING_SVTOOLS_HTML_sdendnote_anc;
+        sFtnName = OOO_STRING_SVTOOLS_HTML_sdendnote + OUString::number( (sal_Int32)(++rHTMLWrt.nEndNote) );
     }
     else
     {
         nPos = rHTMLWrt.nFootNote;
-        sClass.AssignAscii( OOO_STRING_SVTOOLS_HTML_sdfootnote_anc );
-        sFtnName.AssignAscii( OOO_STRING_SVTOOLS_HTML_sdfootnote);
-        sFtnName += OUString::number( (sal_Int32)(++rHTMLWrt.nFootNote));
+        sClass = OOO_STRING_SVTOOLS_HTML_sdfootnote_anc;
+        sFtnName = OOO_STRING_SVTOOLS_HTML_sdfootnote + OUString::number( (sal_Int32)(++rHTMLWrt.nFootNote));
     }
 
     if( !rHTMLWrt.pFootEndNotes )
@@ -485,7 +482,7 @@ void SwHTMLWriter::OutFootEndNoteSym( const SwFmtFtn& rFmtFtn,
 }
 
 static sal_uInt16 lcl_html_fillEndNoteInfo( const SwEndNoteInfo& rInfo,
-                                 String *pParts,
+                                 OUString *pParts,
                                  sal_Bool bEndNote  )
 {
     sal_uInt16 nParts = 0;
@@ -518,27 +515,19 @@ static sal_uInt16 lcl_html_fillEndNoteInfo( const SwEndNoteInfo& rInfo,
     return nParts;
 }
 
-static void lcl_html_outFootEndNoteInfo( Writer& rWrt, String *pParts,
+static void lcl_html_outFootEndNoteInfo( Writer& rWrt, OUString *pParts,
                                   sal_uInt16 nParts, const sal_Char *pName )
 {
     SwHTMLWriter& rHTMLWrt = (SwHTMLWriter&)rWrt;
 
-    String aContent;
+    OUString aContent;
     for( sal_uInt16 i=0; i<nParts; i++ )
     {
-        xub_StrLen nPos = 0;
-        String aTmp( pParts[i] );
-        OUString aRep("\\\\");
-        while( STRING_NOTFOUND != (nPos = aTmp.SearchAndReplaceAscii( "\\",
-                                                     aRep, nPos ) ) )
-            nPos += 2;
-        nPos = 0;
-        aRep = OUString("\\;");
-        while( STRING_NOTFOUND != (nPos = aTmp.SearchAndReplaceAscii( ";",
-                                                     aRep, nPos ) ) )
-            nPos += 2;
+        OUString aTmp( pParts[i] );
+        aTmp = aTmp.replaceAll( "\\", "\\\\" );
+        aTmp = aTmp.replaceAll( ";", "\\;" );
         if( i > 0 )
-            aContent += ';';
+            aContent += ";";
         aContent += aTmp;
     }
 
@@ -565,16 +554,16 @@ void SwHTMLWriter::OutFootEndNoteInfo()
 
     {
         const SwFtnInfo& rInfo = pDoc->GetFtnInfo();
-        String aParts[8];
+        OUString aParts[8];
         sal_uInt16 nParts = lcl_html_fillEndNoteInfo( rInfo, aParts, sal_False );
         if( rInfo.eNum != FTNNUM_DOC )
         {
-            aParts[4] = rInfo.eNum == FTNNUM_CHAPTER ? 'C' : 'P';
+            aParts[4] = rInfo.eNum == FTNNUM_CHAPTER ? OUString( "C" ) : OUString( "P" );
             nParts = 5;
         }
         if( rInfo.ePos != FTNPOS_PAGE)
         {
-            aParts[5] = 'C';
+            aParts[5] = "C";
             nParts = 6;
         }
         if( rInfo.aQuoVadis.Len() > 0 )
@@ -594,7 +583,7 @@ void SwHTMLWriter::OutFootEndNoteInfo()
 
     {
         const SwEndNoteInfo& rInfo = pDoc->GetEndNoteInfo();
-        String aParts[4];
+        OUString aParts[4];
         sal_uInt16 nParts = lcl_html_fillEndNoteInfo( rInfo, aParts, sal_True );
         if( nParts > 0 )
             lcl_html_outFootEndNoteInfo( *this, aParts, nParts,
diff --git a/sw/source/filter/html/htmlgrin.cxx b/sw/source/filter/html/htmlgrin.cxx
index bf5163c..01aacc0 100644
--- a/sw/source/filter/html/htmlgrin.cxx
+++ b/sw/source/filter/html/htmlgrin.cxx
@@ -1143,7 +1143,7 @@ ANCHOR_SETEVENT:
     _HTMLAttrContext *pCntxt = new _HTMLAttrContext( HTML_ANCHOR_ON );
 
     sal_Bool bEnAnchor = sal_False, bFtnAnchor = sal_False, bFtnEnSymbol = sal_False;
-    String aFtnName;
+    OUString aFtnName;
     OUString aStrippedClass( aClass );
     SwCSS1Parser::GetScriptFromClass( aStrippedClass, sal_False );
     if( aStrippedClass.getLength() >=9  && bHasHRef && sHRef.Len() > 1 &&
diff --git a/sw/source/filter/html/htmlnum.cxx b/sw/source/filter/html/htmlnum.cxx
index dbb24ce..3e75698 100644
--- a/sw/source/filter/html/htmlnum.cxx
+++ b/sw/source/filter/html/htmlnum.cxx
@@ -715,7 +715,7 @@ Writer& OutHTML_NumBulListStart( SwHTMLWriter& rWrt,
     sal_Bool bStartValue = sal_False;
     if( !bSameRule && rInfo.GetDepth() )
     {
-        String aName( rInfo.GetNumRule()->GetName() );
+        OUString aName( rInfo.GetNumRule()->GetName() );
         if( 0 != rWrt.aNumRuleNames.count( aName ) )
         {
             // The rule has been applied before
diff --git a/sw/source/filter/html/htmlplug.cxx b/sw/source/filter/html/htmlplug.cxx
index 23ddcbd..14bd504 100644
--- a/sw/source/filter/html/htmlplug.cxx
+++ b/sw/source/filter/html/htmlplug.cxx
@@ -1022,7 +1022,7 @@ Writer& OutHTML_FrmFmtOLENode( Writer& rWrt, const SwFrmFmt& rFrmFmt,
         sOut.append(OOO_STRING_SVTOOLS_HTML_embed);
 
         OUString aStr;
-        String aURL;
+        OUString aURL;
         aAny = xSet->getPropertyValue("PluginURL");
         if( (aAny >>= aStr) && !aStr.isEmpty() )
         {
@@ -1030,7 +1030,7 @@ Writer& OutHTML_FrmFmtOLENode( Writer& rWrt, const SwFrmFmt& rFrmFmt,
                       aStr);
         }
 
-        if( aURL.Len() )
+        if( !aURL.isEmpty() )
         {
             sOut.append(' ').append(OOO_STRING_SVTOOLS_HTML_O_src)
                 .append("=\"");
@@ -1075,8 +1075,8 @@ Writer& OutHTML_FrmFmtOLENode( Writer& rWrt, const SwFrmFmt& rFrmFmt,
         aAny = xSet->getPropertyValue("AppletCodeBase");
         if( (aAny >>= aCd) && !aCd.isEmpty() )
         {
-            String sCodeBase( URIHelper::simpleNormalizedMakeRelative(rWrt.GetBaseURL(), aCd) );
-            if( sCodeBase.Len() )
+            OUString sCodeBase( URIHelper::simpleNormalizedMakeRelative(rWrt.GetBaseURL(), aCd) );
+            if( !sCodeBase.isEmpty() )
             {
                 sOut.append(' ').append(OOO_STRING_SVTOOLS_HTML_O_codebase)
                     .append("=\"");
@@ -1159,11 +1159,11 @@ Writer& OutHTML_FrmFmtOLENode( Writer& rWrt, const SwFrmFmt& rFrmFmt,
         while( i > 0 )
         {
             const SvCommand& rCommand = aCommands[ --i ];
-            const String& rName = rCommand.GetCommand();
+            const OUString& rName = rCommand.GetCommand();
             sal_uInt16 nType = SwApplet_Impl::GetOptionType( rName, sal_True );
             if( SWHTML_OPTTYPE_TAG == nType )
             {
-                const String& rValue = rCommand.GetArgument();
+                const OUString& rValue = rCommand.GetArgument();
                 rWrt.Strm() << ' ';
                 HTMLOutFuncs::Out_String( rWrt.Strm(), rName, rHTMLWrt.eDestEnc, &rHTMLWrt.aNonConvertableCharacters );
                 rWrt.Strm() << "=\"";
@@ -1183,8 +1183,8 @@ Writer& OutHTML_FrmFmtOLENode( Writer& rWrt, const SwFrmFmt& rFrmFmt,
         while( ii > 0  )
         {
             const SvCommand& rCommand = aCommands[ aParams[--ii] ];
-            const String& rName = rCommand.GetCommand();
-            const String& rValue = rCommand.GetArgument();
+            const OUString& rName = rCommand.GetCommand();
+            const OUString& rValue = rCommand.GetArgument();
             rHTMLWrt.OutNewLine();
             OStringBuffer sBuf;
             sBuf.append('<').append(OOO_STRING_SVTOOLS_HTML_param)
@@ -1216,11 +1216,11 @@ Writer& OutHTML_FrmFmtOLENode( Writer& rWrt, const SwFrmFmt& rFrmFmt,
         for( size_t i = 0; i < aCommands.size(); i++ )
         {
             const SvCommand& rCommand = aCommands[ i ];
-            const String& rName = rCommand.GetCommand();
+            const OUString& rName = rCommand.GetCommand();
 
             if( SwApplet_Impl::GetOptionType( rName, sal_False ) == SWHTML_OPTTYPE_TAG )
             {
-                const String& rValue = rCommand.GetArgument();
+                const OUString& rValue = rCommand.GetArgument();
                 rWrt.Strm() << ' ';
                 HTMLOutFuncs::Out_String( rWrt.Strm(), rName, rHTMLWrt.eDestEnc, &rHTMLWrt.aNonConvertableCharacters );
                 rWrt.Strm() << "=\"";
diff --git a/sw/source/filter/html/htmlsect.cxx b/sw/source/filter/html/htmlsect.cxx
index ceb0d80..30de1bd 100644
--- a/sw/source/filter/html/htmlsect.cxx
+++ b/sw/source/filter/html/htmlsect.cxx
@@ -364,8 +364,8 @@ void SwHTMLParser::NewDivision( int nToken )
         pCntxt->SetSpansSection( sal_True );
 
         // keine text::Bookmarks mit dem gleichen Namen wie Bereiche einfuegen
-        if( aPropInfo.aId.Len() && aPropInfo.aId==aName )
-            aPropInfo.aId.Erase();
+        if( !aPropInfo.aId.isEmpty() && aPropInfo.aId==aName )
+            aPropInfo.aId = "";
     }
     else
     {
@@ -644,7 +644,7 @@ void SwHTMLParser::NewMultiCol( sal_uInt16 columnsFromCss )
         if( nCols < 2 )
         {
             aFlyName = aId;
-            aPropInfo.aId.Erase();
+            aPropInfo.aId = "";
         }
 
         InsertFlyFrame( aFrmItemSet, pCntxt, aFlyName, CONTEXT_FLAGS_ABSPOS );
@@ -753,8 +753,8 @@ void SwHTMLParser::NewMultiCol( sal_uInt16 columnsFromCss )
         pCntxt->SetSpansSection( sal_True );
 
         // Insert a bookmark if its name differs from the section's name only.
-        if( aPropInfo.aId.Len() && aPropInfo.aId==aName )
-            aPropInfo.aId.Erase();
+        if( !aPropInfo.aId.isEmpty() && aPropInfo.aId==aName )
+            aPropInfo.aId = "";
     }
 
     // Additional attributes must be set as hard ones.
diff --git a/sw/source/filter/html/htmltab.cxx b/sw/source/filter/html/htmltab.cxx
index e0198ae..0f32618 100644
--- a/sw/source/filter/html/htmltab.cxx
+++ b/sw/source/filter/html/htmltab.cxx
@@ -97,7 +97,7 @@ struct HTMLTableOptions
     Color aBorderColor;
     Color aBGColor;
 
-    String aBGImage, aStyle, aId, aClass, aDir;
+    OUString aBGImage, aStyle, aId, aClass, aDir;
 
     HTMLTableOptions( const HTMLOptions& rOptions, SvxAdjust eParentAdjust );
 };
@@ -378,9 +378,9 @@ typedef std::vector<SdrObject *> SdrObjects;
 
 class HTMLTable
 {
-    String aId;
-    String aStyle;
-    String aClass;
+    OUString aId;
+    OUString aStyle;
+    OUString aClass;
     String aDir;
 
     SdrObjects *pResizeDrawObjs;// SDR objects
@@ -642,9 +642,9 @@ public:
 
     void SetBGBrush( const SvxBrushItem& rBrush ) { delete pBGBrush; pBGBrush = new SvxBrushItem( rBrush ); }
 
-    const String& GetId() const { return aId; }
-    const String& GetClass() const { return aClass; }
-    const String& GetStyle() const { return aStyle; }
+    const OUString& GetId() const { return aId; }
+    const OUString& GetClass() const { return aClass; }
+    const OUString& GetStyle() const { return aStyle; }
     const String& GetDirection() const { return aDir; }
 
     void IncBoxCount() { nBoxes++; }
@@ -5246,7 +5246,7 @@ HTMLTable *SwHTMLParser::BuildTable( SvxAdjust eParentAdjust,
         HTMLTableOptions *pTblOptions =
             new HTMLTableOptions( GetOptions(), eParentAdjust );
 
-        if( pTblOptions->aId.Len() )
+        if( !pTblOptions->aId.isEmpty() )
             InsertBookmark( pTblOptions->aId );
 
         HTMLTable *pCurTable = new HTMLTable( this, pTable,
diff --git a/sw/source/filter/html/htmltabw.cxx b/sw/source/filter/html/htmltabw.cxx
index eb48608..bc016c6 100644
--- a/sw/source/filter/html/htmltabw.cxx
+++ b/sw/source/filter/html/htmltabw.cxx
@@ -90,7 +90,7 @@ public:
 
     void Write( SwHTMLWriter& rWrt, sal_Int16 eAlign=text::HoriOrientation::NONE,
                 sal_Bool bTHead=sal_False, const SwFrmFmt *pFrmFmt=0,
-                const String *pCaption=0, sal_Bool bTopCaption=sal_False,
+                const OUString *pCaption=0, sal_Bool bTopCaption=sal_False,
                 sal_uInt16 nHSpace=0, sal_uInt16 nVSpace=0 ) const;
 };
 
@@ -570,7 +570,7 @@ void SwHTMLWrtTable::OutTableCells( SwHTMLWriter& rWrt,
 
 void SwHTMLWrtTable::Write( SwHTMLWriter& rWrt, sal_Int16 eAlign,
                             sal_Bool bTHead, const SwFrmFmt *pFrmFmt,
-                            const String *pCaption, sal_Bool bTopCaption,
+                            const OUString *pCaption, sal_Bool bTopCaption,
                             sal_uInt16 nHSpace, sal_uInt16 nVSpace ) const
 {
     sal_uInt16 nRow;
@@ -739,7 +739,7 @@ void SwHTMLWrtTable::Write( SwHTMLWriter& rWrt, sal_Int16 eAlign,
     rWrt.IncIndentLevel(); // Inhalte von Table einruecken
 
     // Ueberschrift ausgeben
-    if( pCaption && pCaption->Len() )
+    if( pCaption && !pCaption->isEmpty() )
     {
         rWrt.OutNewLine(); // <CAPTION> in neue Zeile
         OStringBuffer sOutStr(RTL_CONSTASCII_STRINGPARAM(OOO_STRING_SVTOOLS_HTML_caption));
@@ -899,7 +899,7 @@ void SwHTMLWrtTable::Write( SwHTMLWriter& rWrt, sal_Int16 eAlign,
 
 Writer& OutHTML_SwTblNode( Writer& rWrt, SwTableNode & rNode,
                            const SwFrmFmt *pFlyFrmFmt,
-                           const String *pCaption, sal_Bool bTopCaption )
+                           const OUString *pCaption, sal_Bool bTopCaption )
 {
 
     SwTable& rTbl = rNode.GetTable();
diff --git a/sw/source/filter/html/parcss1.cxx b/sw/source/filter/html/parcss1.cxx
index dbee105..b294979 100644
--- a/sw/source/filter/html/parcss1.cxx
+++ b/sw/source/filter/html/parcss1.cxx
@@ -163,13 +163,13 @@ CSS1Token CSS1Parser::GetNextToken()
                     {
                     case 'i':
                     case 'I':
-                        if( aToken.equalsIgnoreAsciiCaseAscii( sCSS1_import ) )
+                        if( aToken.equalsIgnoreAsciiCase( "import" ) )
                             nRet = CSS1_IMPORT_SYM;
                         break;
 // /Feature: PrintExt
                     case 'p':
                     case 'P':
-                        if( aToken.equalsIgnoreAsciiCaseAscii( sCSS1_page ) )
+                        if( aToken.equalsIgnoreAsciiCase( "page" ) )
                             nRet = CSS1_PAGE_SYM;
                         break;
 // /Feature: PrintExt
@@ -255,7 +255,7 @@ CSS1Token CSS1Parser::GetNextToken()
                     aToken += sTmpBuffer.makeStringAndClear();
 
                     if( ( 'i'==aToken[0] || 'I'==aToken[0] ) &&
-                        aToken.equalsIgnoreAsciiCaseAscii( sCSS1_important ) )
+                        aToken.equalsIgnoreAsciiCaseAscii( "important" ) )
                     {
                         // '!' 'important'
                         nRet = CSS1_IMPORTANT_SYM;
@@ -408,36 +408,36 @@ CSS1Token CSS1Parser::GetNextToken()
                         {
                         case 'c':
                         case 'C':
-                            pCmp1 = sCSS1_UNIT_cm;
+                            pCmp1 = "cm";
                             nScale1 = (72.*20.)/2.54; // twip
                             break;
                         case 'e':
                         case 'E':
-                            pCmp1 = sCSS1_UNIT_em;
+                            pCmp1 = "em";
                             nToken1 = CSS1_EMS;
 
-                            pCmp2 = sCSS1_UNIT_ex;
+                            pCmp2 = "ex";
                             nToken2 = CSS1_EMX;
                             break;
                         case 'i':
                         case 'I':
-                            pCmp1 = sCSS1_UNIT_inch;
+                            pCmp1 = "in";
                             nScale1 = 72.*20.; // twip
                             break;
                         case 'm':
                         case 'M':
-                            pCmp1 = sCSS1_UNIT_mm;
+                            pCmp1 = "mm";
                             nScale1 = (72.*20.)/25.4; // twip
                             break;
                         case 'p':
                         case 'P':
-                            pCmp1 = sCSS1_UNIT_pt;
+                            pCmp1 = "pt";
                             nScale1 = 20.; // twip
 
-                            pCmp2 = sCSS1_UNIT_pc;
+                            pCmp2 = "pc";
                             nScale2 = 12.*20.; // twip
 
-                            pCmp3 = sCSS1_UNIT_px;
+                            pCmp3 = "px";
                             nToken3 = CSS1_PIXLENGTH;
                             break;
                         }
@@ -620,9 +620,9 @@ CSS1Token CSS1Parser::GetNextToken()
                 }
                 if( '('==cNextCh &&
                     ( (('u'==aToken[0] || 'U'==aToken[0]) &&
-                       aToken.equalsIgnoreAsciiCaseAscii( sCSS1_url )) ||
+                       aToken.equalsIgnoreAsciiCase( "url" )) ||
                       (('r'==aToken[0] || 'R'==aToken[0]) &&
-                       aToken.equalsIgnoreAsciiCaseAscii( sCSS1_rgb )) ) )
+                       aToken.equalsIgnoreAsciiCase( "rgb" )) ) )
                 {
                     sal_uInt16 nNestCnt = 0;
                     OUStringBuffer sTmpBuffer2( 64L );
@@ -1236,22 +1236,21 @@ CSS1Expression::~CSS1Expression()
     delete pNext;
 }
 
-sal_Bool CSS1Expression::GetURL( String& rURL  ) const
+sal_Bool CSS1Expression::GetURL( OUString& rURL  ) const
 {
     OSL_ENSURE( CSS1_URL==eType, "CSS1-Ausruck ist keine Farbe URL" );
 
-    OSL_ENSURE( aValue.CompareIgnoreCaseToAscii( sCSS1_url, 3 ) ==
-                                        COMPARE_EQUAL &&
-                aValue.Len() > 5 &&
-                '(' == aValue.GetChar(3) &&
-                ')' == aValue.GetChar(aValue.Len()-1),
+    OSL_ENSURE( aValue.startsWithIgnoreAsciiCase( "url" ) &&
+                aValue.getLength() > 5 &&
+                '(' == aValue[3] &&
+                ')' == aValue[aValue.getLength()-1],
                 "keine gueltiges URL(...)" );
 
     sal_Bool bRet = sal_False;
 
-    if( aValue.Len() > 5 )
+    if( aValue.getLength() > 5 )
     {
-        rURL = aValue.Copy( 4, aValue.Len()-5 );
+        rURL = aValue.copy( 4, aValue.getLength() - 5 );
         rURL = comphelper::string::strip(rURL, ' ');
         bRet = sal_True;
     }
@@ -1274,41 +1273,40 @@ sal_Bool CSS1Expression::GetColor( Color &rColor ) const
         {
             sal_uInt8 aColors[3] = { 0, 0, 0 };
 
-            OSL_ENSURE( aValue.CompareIgnoreCaseToAscii( sCSS1_rgb, 3 )
-                                            == COMPARE_EQUAL &&
-                        aValue.Len() > 5 &&
-                        '(' == aValue.GetChar( 3 ) &&
-                        ')' == aValue.GetChar( aValue.Len()-1),
+            OSL_ENSURE( aValue.startsWithIgnoreAsciiCase( "rgb" ) &&
+                        aValue.getLength() > 5 &&
+                        '(' == aValue[3] &&
+                        ')' == aValue[aValue.getLength()-1],
                         "keine gueltiges RGB(...)" );
 
-            String aColorStr( aValue.Copy( 4, aValue.Len()-1 ) );
+            OUString aColorStr( aValue.copy( 4, aValue.getLength()-1 ) );
 
-            xub_StrLen nPos = 0;
+            sal_Int32 nPos = 0;
             sal_uInt16 nCol = 0;
 
-            while( nCol < 3 && nPos < aColorStr.Len() )
+            while( nCol < 3 && nPos < aColorStr.getLength() )
             {
                 sal_Unicode c;
-                while( nPos < aColorStr.Len() &&
-                        ((c=aColorStr.GetChar(nPos)) == ' ' || c == '\t' ||
+                while( nPos < aColorStr.getLength() &&
+                        ((c=aColorStr[nPos]) == ' ' || c == '\t' ||
                         c == '\n' || c== '\r' ) )
                     nPos++;
 
-                xub_StrLen nEnd = aColorStr.Search( ',', nPos );
-                String aNumber;
-                if( STRING_NOTFOUND==nEnd )
+                sal_Int32 nEnd = aColorStr.indexOf( ',', nPos );
+                OUString aNumber;
+                if( nEnd == -1 )
                 {
-                    aNumber = aColorStr.Copy(nPos);
-                    nPos = aColorStr.Len();
+                    aNumber = aColorStr.copy(nPos);
+                    nPos = aColorStr.getLength();
                 }
                 else
                 {
-                    aNumber = aColorStr.Copy( nPos, nEnd-nPos );
+                    aNumber = aColorStr.copy( nPos, nEnd-nPos );
                     nPos = nEnd+1;
                 }
 
-                sal_uInt16 nNumber = (sal_uInt16)aNumber.ToInt32();
-                if( aNumber.Search('%') != STRING_NOTFOUND )
+                sal_uInt16 nNumber = (sal_uInt16)aNumber.toInt32();
+                if( aNumber.indexOf('%') >= 0 )
                 {
                     if( nNumber > 100 )
                         nNumber = 100;
@@ -1333,26 +1331,25 @@ sal_Bool CSS1Expression::GetColor( Color &rColor ) const
     case CSS1_IDENT:
     case CSS1_STRING:
         {
-            String aTmp( aValue );
-            aTmp.ToUpperAscii();
+            OUString aTmp( aValue.toAsciiUpperCase() );
             nColor = GetHTMLColor( aTmp );
             bRet = nColor != SAL_MAX_UINT32;
         }
-        if( bRet || CSS1_STRING != eType || !aValue.Len() ||
-            aValue.GetChar( 0 )!='#' )
+        if( bRet || CSS1_STRING != eType || aValue.isEmpty() ||
+            aValue[0] != '#' )
             break;
 
     case CSS1_HEXCOLOR:
         {
             // HACK fuer MS-IE: DIe Farbe kann auch in einem String stehen
-            xub_StrLen nOffset = CSS1_STRING==eType ? 1 : 0;
-            sal_Bool bDouble = aValue.Len()-nOffset == 3;
-            xub_StrLen i = nOffset, nEnd = (bDouble ? 3 : 6) + nOffset;
+            sal_Int32 nOffset = CSS1_STRING==eType ? 1 : 0;
+            sal_Bool bDouble = aValue.getLength()-nOffset == 3;
+            sal_Int32 i = nOffset, nEnd = (bDouble ? 3 : 6) + nOffset;
 
             nColor = 0;
             for( ; i<nEnd; i++ )
             {
-                sal_Unicode c = (i<aValue.Len() ? aValue.GetChar(i)
+                sal_Unicode c = (i<aValue.getLength() ? aValue[i]
                                                          : '0' );
                 if( c >= '0' && c <= '9' )
                     c -= 48;
diff --git a/sw/source/filter/html/parcss1.hxx b/sw/source/filter/html/parcss1.hxx
index f1d3528..040037d 100644
--- a/sw/source/filter/html/parcss1.hxx
+++ b/sw/source/filter/html/parcss1.hxx
@@ -93,19 +93,19 @@ enum CSS1SelectorType
 class CSS1Selector
 {
     CSS1SelectorType eType;     // Art des Selektors
-    String aSelector;           // der Selektor selbst
+    OUString aSelector;           // der Selektor selbst
     CSS1Selector *pNext;        // die naechste Komponente
 
 public:
 
-    CSS1Selector( CSS1SelectorType eTyp, const String &rSel )
+    CSS1Selector( CSS1SelectorType eTyp, const OUString &rSel )
         : eType(eTyp), aSelector( rSel ), pNext( 0 )
     {}
 
     ~CSS1Selector();
 
     CSS1SelectorType GetType() const { return eType; }
-    const String& GetString() const { return aSelector; }
+    const OUString& GetString() const { return aSelector; }
 
     void SetNext( CSS1Selector *pNxt ) { pNext = pNxt; }
     const CSS1Selector *GetNext() const { return pNext; }
@@ -124,38 +124,38 @@ struct CSS1Expression
 {
     sal_Unicode cOp;        // Art der Verkuepfung mit dem Vorgaenger
     CSS1Token eType;        // der Typ des Wertes
-    String aValue;          // und sein Wert als String
+    OUString aValue;          // und sein Wert als String
     double nValue;          // und als Zahl (TWIPs fuer LENGTH)
     CSS1Expression *pNext;  // die naechste Komponente
 
 public:
 
-    CSS1Expression( CSS1Token eTyp, const String &rVal,
+    CSS1Expression( CSS1Token eTyp, const OUString &rVal,
                     double nVal, sal_Unicode cO = 0 )
         : cOp(cO), eType(eTyp), aValue(rVal), nValue(nVal), pNext(0)
     {}
 
     ~CSS1Expression();
 
-    inline void Set( CSS1Token eTyp, const String &rVal, double nVal,
+    inline void Set( CSS1Token eTyp, const OUString &rVal, double nVal,
                      sal_Unicode cO = 0 );
 
     CSS1Token GetType() const { return eType; }
-    const String& GetString() const { return aValue; }
+    const OUString& GetString() const { return aValue; }
     double GetNumber() const { return nValue; }
     inline sal_uInt32 GetULength() const;
     inline sal_Int32 GetSLength() const;
     sal_Unicode GetOp() const { return cOp; }
 
 
-    sal_Bool GetURL( String& rURL ) const;
+    sal_Bool GetURL( OUString& rURL ) const;
     sal_Bool GetColor( Color &rRGB ) const;
 
     void SetNext( CSS1Expression *pNxt ) { pNext = pNxt; }
     const CSS1Expression *GetNext() const { return pNext; }
 };
 
-inline void CSS1Expression::Set( CSS1Token eTyp, const String &rVal,
+inline void CSS1Expression::Set( CSS1Token eTyp, const OUString &rVal,
                                  double nVal, sal_Unicode cO )
 {
     cOp = cO; eType = eTyp; aValue = rVal; nValue = nVal; pNext = 0;
diff --git a/sw/source/filter/html/svxcss1.cxx b/sw/source/filter/html/svxcss1.cxx
index 006227a..14d881d 100644
--- a/sw/source/filter/html/svxcss1.cxx
+++ b/sw/source/filter/html/svxcss1.cxx
@@ -65,111 +65,111 @@ typedef void (*FnParseCSS1Prop)( const CSS1Expression *pExpr,
 
 static CSS1PropertyEnum const aFontSizeTable[] =
 {
-    { sCSS1_PV_xx_small,    0                   },
-    { sCSS1_PV_x_small,     1                   },
-    { sCSS1_PV_small,       2                   },
-    { sCSS1_PV_medium,      3                   },
-    { sCSS1_PV_large,       4                   },
-    { sCSS1_PV_x_large,     5                   },
-    { sCSS1_PV_xx_large,    6                   },
+    { "xx-small",    0                   },
+    { "x-small",     1                   },
+    { "small",       2                   },
+    { "medium",      3                   },
+    { "large",       4                   },
+    { "x-large",     5                   },
+    { "xx-large",    6                   },
     { 0,                    0                   }
 };
 
 static CSS1PropertyEnum const aFontFamilyTable[] =
 {
-    { sCSS1_PV_serif,       FAMILY_ROMAN        },
-    { sCSS1_PV_sans_serif,  FAMILY_SWISS        },
-    { sCSS1_PV_cursive,     FAMILY_SCRIPT       },
-    { sCSS1_PV_fantasy,     FAMILY_DECORATIVE   },
-    { sCSS1_PV_monospace,   FAMILY_MODERN       },
+    { "serif",       FAMILY_ROMAN        },
+    { "sans-serif",  FAMILY_SWISS        },
+    { "cursive",     FAMILY_SCRIPT       },
+    { "fantasy",     FAMILY_DECORATIVE   },
+    { "monospace",   FAMILY_MODERN       },
     { 0,                    0                   }
 };
 
 static CSS1PropertyEnum const aFontWeightTable[] =
 {
-    { sCSS1_PV_extra_light, WEIGHT_NORMAL       }, // WEIGHT_ULTRALIGHT (OBS)
-    { sCSS1_PV_light,       WEIGHT_NORMAL       }, // WEIGHT_LIGHT (OBSOLETE)
-    { sCSS1_PV_demi_light,  WEIGHT_NORMAL       }, // WEIGHT_SEMILIGHT (OBS)
-    { sCSS1_PV_medium,      WEIGHT_NORMAL       }, // WEIGHT_MEDIUM (OBS)
-    { sCSS1_PV_normal,      WEIGHT_NORMAL       }, // WEIGHT_MEDIUM
-    { sCSS1_PV_demi_bold,   WEIGHT_NORMAL       }, // WEIGHT_SEMIBOLD (OBS)
-    { sCSS1_PV_bold,        WEIGHT_BOLD         }, // WEIGHT_BOLD (OBSOLETE)
-    { sCSS1_PV_extra_bold,  WEIGHT_BOLD         }, // WEIGHT_ULTRABOLD (OBS)
-    { sCSS1_PV_bolder,      WEIGHT_BOLD         },
-    { sCSS1_PV_lighter,     WEIGHT_NORMAL       },
+    { "extra-light", WEIGHT_NORMAL       }, // WEIGHT_ULTRALIGHT (OBS)
+    { "light",       WEIGHT_NORMAL       }, // WEIGHT_LIGHT (OBSOLETE)
+    { "demi-light",  WEIGHT_NORMAL       }, // WEIGHT_SEMILIGHT (OBS)
+    { "medium",      WEIGHT_NORMAL       }, // WEIGHT_MEDIUM (OBS)
+    { "normal",      WEIGHT_NORMAL       }, // WEIGHT_MEDIUM
+    { "demi-bold",   WEIGHT_NORMAL       }, // WEIGHT_SEMIBOLD (OBS)
+    { "bold",        WEIGHT_BOLD         }, // WEIGHT_BOLD (OBSOLETE)
+    { "extra-bold",  WEIGHT_BOLD         }, // WEIGHT_ULTRABOLD (OBS)
+    { "bolder",      WEIGHT_BOLD         },
+    { "lighter",     WEIGHT_NORMAL       },
     { 0,                    0                   }
 };
 
 static CSS1PropertyEnum const aFontStyleTable[] =
 {
-    { sCSS1_PV_normal,      ITALIC_NONE         },
-    { sCSS1_PV_italic,      ITALIC_NORMAL       },
-    { sCSS1_PV_oblique,     ITALIC_NORMAL       },
+    { "normal",      ITALIC_NONE         },
+    { "italic",      ITALIC_NORMAL       },
+    { "oblique",     ITALIC_NORMAL       },
     { 0,                    0                   }
 };
 
 static CSS1PropertyEnum const aFontVariantTable[] =
 {
-    { sCSS1_PV_normal,      SVX_CASEMAP_NOT_MAPPED      },
-    { sCSS1_PV_small_caps,  SVX_CASEMAP_KAPITAELCHEN    },
+    { "normal",      SVX_CASEMAP_NOT_MAPPED      },
+    { "small-caps",  SVX_CASEMAP_KAPITAELCHEN    },
     { 0,                    0                   }
 };
 
 static CSS1PropertyEnum const aTextTransformTable[] =
 {
-    { sCSS1_PV_uppercase,  SVX_CASEMAP_VERSALIEN },
-    { sCSS1_PV_lowercase,  SVX_CASEMAP_GEMEINE   },
-    { sCSS1_PV_capitalize, SVX_CASEMAP_TITEL     },
+    { "uppercase",  SVX_CASEMAP_VERSALIEN },
+    { "lowercase",  SVX_CASEMAP_GEMEINE   },
+    { "capitalize", SVX_CASEMAP_TITEL     },
     { 0,                   0                     }
 };
 
 static CSS1PropertyEnum const aDirectionTable[] =
 {
-    { sCSS1_PV_ltr,         FRMDIR_HORI_LEFT_TOP        },
-    { sCSS1_PV_rtl,         FRMDIR_HORI_RIGHT_TOP       },
-    { sCSS1_PV_inherit,     FRMDIR_ENVIRONMENT          },
+    { "ltr",         FRMDIR_HORI_LEFT_TOP        },
+    { "rtl",         FRMDIR_HORI_RIGHT_TOP       },
+    { "inherit",     FRMDIR_ENVIRONMENT          },
     { 0,                    0                   }
 };
 
 static CSS1PropertyEnum const aBGRepeatTable[] =
 {
-    { sCSS1_PV_repeat,      GPOS_TILED                  },
-    { sCSS1_PV_repeat_x,    GPOS_TILED                  },
-    { sCSS1_PV_repeat_y,    GPOS_TILED                  },
-    { sCSS1_PV_no_repeat,   GPOS_NONE                   },
+    { "repeat",      GPOS_TILED                  },
+    { "repeat-x",    GPOS_TILED                  },
+    { "repeat-y",    GPOS_TILED                  },
+    { "no-repeat",   GPOS_NONE                   },
     { 0,                    0                           }
 };
 
 static CSS1PropertyEnum const aBGHoriPosTable[] =
 {
-    { sCSS1_PV_left,        GPOS_LT                 },
-    { sCSS1_PV_center,      GPOS_MT                 },
-    { sCSS1_PV_right,       GPOS_RT                 },
+    { "left",        GPOS_LT                 },
+    { "center",      GPOS_MT                 },
+    { "right",       GPOS_RT                 },
     { 0,                    0                       }
 };
 
 static CSS1PropertyEnum const aBGVertPosTable[] =
 {
-    { sCSS1_PV_top,         GPOS_LT                 },
-    { sCSS1_PV_middle,      GPOS_LM                 },
-    { sCSS1_PV_bottom,      GPOS_LB                 },
+    { "top",         GPOS_LT                 },
+    { "middle",      GPOS_LM                 },
+    { "bottom",      GPOS_LB                 },
     { 0,                    0                       }
 };
 
 static CSS1PropertyEnum const aTextAlignTable[] =
 {
-    { sCSS1_PV_left,        SVX_ADJUST_LEFT     },
-    { sCSS1_PV_center,      SVX_ADJUST_CENTER   },
-    { sCSS1_PV_right,       SVX_ADJUST_RIGHT    },
-    { sCSS1_PV_justify,     SVX_ADJUST_BLOCK    },
+    { "left",        SVX_ADJUST_LEFT     },
+    { "center",      SVX_ADJUST_CENTER   },
+    { "right",       SVX_ADJUST_RIGHT    },
+    { "justify",     SVX_ADJUST_BLOCK    },
     { 0,                    0                   }
 };
 
 static CSS1PropertyEnum const aBorderWidthTable[] =
 {
-    { sCSS1_PV_thin,        0   },  // DEF_LINE_WIDTH_0 / DEF_DOUBLE_LINE0
-    { sCSS1_PV_medium,      1   },  // DEF_LINE_WIDTH_1 / DEF_DOUBLE_LINE1
-    { sCSS1_PV_thick,       2   },  // DEF_LINE_WIDTH_2 / DEF_DOUBLE_LINE2
+    { "thin",        0   },  // DEF_LINE_WIDTH_0 / DEF_DOUBLE_LINE0
+    { "medium",      1   },  // DEF_LINE_WIDTH_1 / DEF_DOUBLE_LINE1
+    { "thick",       2   },  // DEF_LINE_WIDTH_2 / DEF_DOUBLE_LINE2
     { 0,                    0   }
 };
 
@@ -177,50 +177,50 @@ enum CSS1BorderStyle { CSS1_BS_NONE, CSS1_BS_SINGLE, CSS1_BS_DOUBLE, CSS1_BS_DOT
 
 static CSS1PropertyEnum const aBorderStyleTable[] =
 {
-    { sCSS1_PV_none,        CSS1_BS_NONE        },
-    { sCSS1_PV_dotted,      CSS1_BS_DOTTED      },
-    { sCSS1_PV_dashed,      CSS1_BS_DASHED      },
-    { sCSS1_PV_solid,       CSS1_BS_SINGLE      },
-    { sCSS1_PV_double,      CSS1_BS_DOUBLE      },
-    { sCSS1_PV_groove,      CSS1_BS_GROOVE      },
-    { sCSS1_PV_ridge,       CSS1_BS_RIDGE       },
-    { sCSS1_PV_inset,       CSS1_BS_INSET       },
-    { sCSS1_PV_outset,      CSS1_BS_OUTSET      },
+    { "none",        CSS1_BS_NONE        },
+    { "dotted",      CSS1_BS_DOTTED      },
+    { "dashed",      CSS1_BS_DASHED      },
+    { "solid",       CSS1_BS_SINGLE      },
+    { "double",      CSS1_BS_DOUBLE      },
+    { "groove",      CSS1_BS_GROOVE      },
+    { "ridge",       CSS1_BS_RIDGE       },
+    { "inset",       CSS1_BS_INSET       },
+    { "inset",      CSS1_BS_OUTSET      },
     { 0,                    0                   }
 };
 
 static CSS1PropertyEnum const aFloatTable[] =
 {
-    { sCSS1_PV_left,    SVX_ADJUST_LEFT         },
-    { sCSS1_PV_right,   SVX_ADJUST_RIGHT        },
-    { sCSS1_PV_none,    SVX_ADJUST_END          },
+    { "left",    SVX_ADJUST_LEFT         },
+    { "right",   SVX_ADJUST_RIGHT        },
+    { "none",    SVX_ADJUST_END          },
     { 0,                0                       }
 };
 
 static CSS1PropertyEnum const aPositionTable[] =
 {
-    { sCSS1_PV_absolute,    SVX_CSS1_POS_ABSOLUTE   },
-    { sCSS1_PV_relative,    SVX_CSS1_POS_RELATIVE   },
-    { sCSS1_PV_static,      SVX_CSS1_POS_STATIC     },
+    { "absolute",    SVX_CSS1_POS_ABSOLUTE   },
+    { "relative",    SVX_CSS1_POS_RELATIVE   },
+    { "static",      SVX_CSS1_POS_STATIC     },
     { 0,                    0                       }
 };
 
 // Feature: PrintExt
 static CSS1PropertyEnum const aSizeTable[] =
 {
-    { sCSS1_PV_auto,        SVX_CSS1_STYPE_AUTO         },
-    { sCSS1_PV_landscape,   SVX_CSS1_STYPE_LANDSCAPE    },
-    { sCSS1_PV_portrait,    SVX_CSS1_STYPE_PORTRAIT     },
+    { "auto",        SVX_CSS1_STYPE_AUTO         },
+    { "landscape",   SVX_CSS1_STYPE_LANDSCAPE    },
+    { "portrait",    SVX_CSS1_STYPE_PORTRAIT     },
     { 0,                    0                           }
 };
 
 static CSS1PropertyEnum const aPageBreakTable[] =
 {
-    { sCSS1_PV_auto,        SVX_CSS1_PBREAK_AUTO        },
-    { sCSS1_PV_always,      SVX_CSS1_PBREAK_ALWAYS      },
-    { sCSS1_PV_avoid,       SVX_CSS1_PBREAK_AVOID       },
-    { sCSS1_PV_left,        SVX_CSS1_PBREAK_LEFT        },
-    { sCSS1_PV_right,       SVX_CSS1_PBREAK_RIGHT       },
+    { "auto",        SVX_CSS1_PBREAK_AUTO        },
+    { "always",      SVX_CSS1_PBREAK_ALWAYS      },
+    { "avoid",       SVX_CSS1_PBREAK_AVOID       },
+    { "left",        SVX_CSS1_PBREAK_LEFT        },
+    { "right",       SVX_CSS1_PBREAK_RIGHT       },
     { 0,                    0                           }
 };
 
@@ -412,7 +412,7 @@ void SvxCSS1PropertyInfo::DestroyBorderInfos()
 
 void SvxCSS1PropertyInfo::Clear()
 {
-    aId.Erase();
+    aId = "";
     bTopMargin = bBottomMargin = sal_False;
     bLeftMargin = bRightMargin = bTextIndent = sal_False;
     nLeftMargin = nRightMargin = 0;
@@ -662,15 +662,12 @@ void SvxCSS1PropertyInfo::SetBoxItem( SfxItemSet& rItemSet,
     DestroyBorderInfos();
 }
 
-SvxCSS1MapEntry::SvxCSS1MapEntry( const String& rKey, const SfxItemSet& rItemSet,
+SvxCSS1MapEntry::SvxCSS1MapEntry( const OUString& rKey, const SfxItemSet& rItemSet,
                                   const SvxCSS1PropertyInfo& rProp ) :
-    aKey( rKey ),
+    aKey( rKey.toAsciiUpperCase() ),
     aItemSet( rItemSet ),
     aPropInfo( rProp )
-{
-    // TODO: ToUpperAscii
-    aKey.ToUpperAscii();
-}
+{}
 
 sal_Bool SvxCSS1Parser::StyleParsed( const CSS1Selector * /*pSelector*/,
                                  SfxItemSet& /*rItemSet*/,
@@ -1086,7 +1083,7 @@ static void ParseCSS1_font_family( const CSS1Expression *pExpr,
 {
     OSL_ENSURE( pExpr, "no expression" );
 
-    String aName, aStyleName;
+    OUString aName, aStyleName;
     FontFamily eFamily = FAMILY_DONTKNOW;
     FontPitch ePitch = PITCH_DONTKNOW;
     rtl_TextEncoding eEnc = rParser.GetDfltEncoding();
@@ -1098,7 +1095,7 @@ static void ParseCSS1_font_family( const CSS1Expression *pExpr,
         CSS1Token eType = pExpr->GetType();
         if( CSS1_IDENT==eType || CSS1_STRING==eType )
         {
-            String aIdent( pExpr->GetString() );
+            OUString aIdent( pExpr->GetString() );
 
             if( CSS1_IDENT==eType )
             {
@@ -1108,12 +1105,12 @@ static void ParseCSS1_font_family( const CSS1Expression *pExpr,
                 while( pNext && !pNext->GetOp() &&
                        CSS1_IDENT==pNext->GetType() )
                 {
-                    (aIdent += ' ') += pNext->GetString();
+                    aIdent += " " + pNext->GetString();
                     pExpr = pNext;
                     pNext = pExpr->GetNext();
                 }
             }
-            if( aIdent.Len() )
+            if( !aIdent.isEmpty() )
             {
                 if( !bFound && pFList )
                 {
@@ -1130,7 +1127,7 @@ static void ParseCSS1_font_family( const CSS1Expression *pExpr,
                     }
                 }
                 if( !bFirst )
-                    aName += ';';
+                    aName += ";";
                 aName += aIdent;
             }
         }
@@ -1139,7 +1136,7 @@ static void ParseCSS1_font_family( const CSS1Expression *pExpr,
         bFirst = sal_False;
     }
 
-    if( aName.Len() && !rParser.IsIgnoreFontFamily() )
+    if( !aName.isEmpty() && !rParser.IsIgnoreFontFamily() )
     {
         SvxFontItem aFont( eFamily, aName, aStyleName, ePitch,
                             eEnc, aItemIds.nFont );
@@ -1239,7 +1236,7 @@ static void ParseCSS1_font_style( const CSS1Expression *pExpr,
         if( (CSS1_IDENT==pExpr->GetType() || CSS1_STRING==pExpr->GetType()) &&
             !pExpr->GetOp() )
         {
-            const String& rValue = pExpr->GetString();
+            const OUString& rValue = pExpr->GetString();
             // erstmal pruefen, ob es ein Italic-Wert oder 'normal' ist
             sal_uInt16 nItalic;
             if( SvxCSS1Parser::GetEnum( aFontStyleTable, rValue, nItalic ) )
@@ -1254,7 +1251,7 @@ static void ParseCSS1_font_style( const CSS1Expression *pExpr,
                 bPosture = sal_True;
             }
             else if( !bCaseMap &&
-                     rValue.EqualsIgnoreCaseAscii(sCSS1_PV_small_caps) )
+                     rValue.equalsIgnoreAsciiCase( "small-caps" ) )
             {
                 eCaseMap = SVX_CASEMAP_KAPITAELCHEN;
                 bCaseMap = sal_True;
@@ -1477,7 +1474,7 @@ static void ParseCSS1_background( const CSS1Expression *pExpr,
     OSL_ENSURE( pExpr, "no expression" );
 
     Color aColor;
-    String aURL;
+    OUString aURL;
 
     sal_Bool bColor = sal_False, bTransparent = sal_False;
     SvxGraphicPosition eRepeat = GPOS_TILED;
@@ -1544,8 +1541,8 @@ static void ParseCSS1_background( const CSS1Expression *pExpr,
         case CSS1_STRING:       // Wegen MS-IE
             {
                 sal_uInt16 nEnum;
-                const String &rValue = pExpr->GetString();
-                if( rValue.EqualsIgnoreCaseAscii( sCSS1_PV_transparent ) )
+                const OUString &rValue = pExpr->GetString();
+                if( rValue.equalsIgnoreAsciiCase( "transparent" ) )
                 {
                     bTransparent = sal_True;
                 }
@@ -1583,14 +1580,14 @@ static void ParseCSS1_background( const CSS1Expression *pExpr,
     if( bTransparent )
     {
         bColor = sal_False;
-        aURL.Erase();
+        aURL = "";
     }
 
     // repeat hat prio gegenueber einer Position
     if( GPOS_NONE == eRepeat )
         eRepeat = ePos;
 
-    if( bTransparent || bColor || aURL.Len() )
+    if( bTransparent || bColor || !aURL.isEmpty() )
     {
         SvxBrushItem aBrushItem( aItemIds.nBrush );
 
@@ -1599,7 +1596,7 @@ static void ParseCSS1_background( const CSS1Expression *pExpr,
         else if( bColor )
             aBrushItem.SetColor( aColor );
 
-        if( aURL.Len() )
+        if( !aURL.isEmpty() )
         {
             aBrushItem.SetGraphicLink( URIHelper::SmartRel2Abs( INetURLObject( rParser.GetBaseURL()), aURL, Link(), false ) );
             aBrushItem.SetGraphicPos( eRepeat );
@@ -1628,7 +1625,7 @@ static void ParseCSS1_background_color( const CSS1Expression *pExpr,
     case CSS1_IDENT:
     case CSS1_HEXCOLOR:
     case CSS1_STRING:       // Wegen MS-IE
-        if( pExpr->GetString().EqualsIgnoreCaseAscii( sCSS1_PV_transparent ) )
+        if( pExpr->GetString().equalsIgnoreAsciiCase( "transparent" ) )
         {
             bTransparent = sal_True;
         }
@@ -1740,7 +1737,7 @@ static void ParseCSS1_font( const CSS1Expression *pExpr,
         if( CSS1_IDENT==pExpr->GetType() ||
             CSS1_STRING==pExpr->GetType() )
         {
-            const String& rValue = pExpr->GetString();
+            const OUString& rValue = pExpr->GetString();
 
             sal_uInt16 nEnum;
 
@@ -1862,7 +1859,7 @@ static void ParseCSS1_letter_spacing( const CSS1Expression *pExpr,
 
     case CSS1_IDENT:
     case CSS1_STRING: // Vorschtshalber auch MS-IE
-        if( pExpr->GetString().EqualsIgnoreCaseAscii(sCSS1_PV_normal) )
+        if( pExpr->GetString().equalsIgnoreAsciiCase( "normal" ) )
         {
             rItemSet.Put( SvxKerningItem( (short)0, aItemIds.nKerning ) );
         }
@@ -1893,14 +1890,13 @@ static void ParseCSS1_text_decoration( const CSS1Expression *pExpr,
     while( pExpr && (pExpr->GetType() == CSS1_IDENT ||
                      pExpr->GetType() == CSS1_STRING) && !pExpr->GetOp() )
     {
-        String aValue = pExpr->GetString();
-        aValue.ToLowerAscii();
+        OUString aValue = pExpr->GetString().toAsciiLowerCase();
         sal_Bool bKnown = sal_False;
 
-        switch( aValue.GetChar( 0 ) )
+        switch( aValue[0] )
         {
         case 'n':
-            if( aValue.EqualsAscii( sCSS1_PV_none ) )
+            if( aValue == "none" )
             {
                 bUnderline = sal_True;
                 eUnderline = UNDERLINE_NONE;
@@ -1919,7 +1915,7 @@ static void ParseCSS1_text_decoration( const CSS1Expression *pExpr,
             break;
 
         case 'u':
-            if( aValue.EqualsAscii( sCSS1_PV_underline ) )
+            if( aValue == "underline" )
             {
                 bUnderline = sal_True;
                 eUnderline = UNDERLINE_SINGLE;
@@ -1929,7 +1925,7 @@ static void ParseCSS1_text_decoration( const CSS1Expression *pExpr,
             break;
 
         case 'o':
-            if( aValue.EqualsAscii( sCSS1_PV_overline ) )
+            if( aValue == "overline" )
             {
                 bOverline = sal_True;
                 eOverline = UNDERLINE_SINGLE;
@@ -1939,7 +1935,7 @@ static void ParseCSS1_text_decoration( const CSS1Expression *pExpr,
             break;
 
         case 'l':
-            if( aValue.EqualsAscii( sCSS1_PV_line_through ) )
+            if( aValue == "line-through" )
             {
                 bCrossedOut = sal_True;
                 eCrossedOut = STRIKEOUT_SINGLE;
@@ -1949,7 +1945,7 @@ static void ParseCSS1_text_decoration( const CSS1Expression *pExpr,
             break;
 
         case 'b':
-            if( aValue.EqualsAscii( sCSS1_PV_blink ) )
+            if( aValue == "blink" )
             {
                 bBlink = sal_True;
                 bBlinkOn = sal_True;
@@ -2572,7 +2568,7 @@ static void ParseCSS1_border_xxx( const CSS1Expression *pExpr,
 
         case CSS1_IDENT:
             {
-                const String& rValue = pExpr->GetString();
+                const OUString& rValue = pExpr->GetString();
                 sal_uInt16 nValue;
                 if( SvxCSS1Parser::GetEnum( aBorderWidthTable, rValue, nValue ) )
                 {
@@ -2873,7 +2869,7 @@ static void ParseCSS1_length( const CSS1Expression *pExpr,
     switch( pExpr->GetType() )
     {
     case CSS1_IDENT:
-        if( pExpr->GetString().EqualsIgnoreCaseAscii( sCSS1_PV_auto ) )
+        if( pExpr->GetString().equalsIgnoreAsciiCase( "auto" ) )
         {
             rLength = 0;
             rLengthType = SVX_CSS1_LTYPE_AUTO;
diff --git a/sw/source/filter/html/svxcss1.hxx b/sw/source/filter/html/svxcss1.hxx
index 9ec2a94..4139034 100644
--- a/sw/source/filter/html/svxcss1.hxx
+++ b/sw/source/filter/html/svxcss1.hxx
@@ -101,7 +101,7 @@ class SvxCSS1PropertyInfo
 
 public:
 
-    String aId;             // ID fuer Bookmarks, Rahmen etc.
+    OUString aId;             // ID fuer Bookmarks, Rahmen etc.
 
     sal_Bool bTopMargin : 1;
     sal_Bool bBottomMargin : 1;
@@ -154,7 +154,7 @@ public:
 
 class SvxCSS1MapEntry
 {
-    String aKey;
+    OUString aKey;
     SfxItemSet aItemSet;
     SvxCSS1PropertyInfo aPropInfo;
 
@@ -164,7 +164,7 @@ public:
         aItemSet( rPool, pWhichMap )
     {}
 
-    SvxCSS1MapEntry( const String& rKey, const SfxItemSet& rItemSet,
+    SvxCSS1MapEntry( const OUString& rKey, const SfxItemSet& rItemSet,
                      const SvxCSS1PropertyInfo& rProp );
 
 
@@ -174,9 +174,9 @@ public:
     const SvxCSS1PropertyInfo& GetPropertyInfo() const { return aPropInfo; }
     SvxCSS1PropertyInfo& GetPropertyInfo() { return aPropInfo; }
 
-    const String& GetKey()  const { return aKey; }
+    const OUString& GetKey()  const { return aKey; }
     // TODO: ToUpperAscii -> ???
-    void SetKey( const String& rKey ) { aKey = rKey; aKey.ToUpperAscii(); }
+    void SetKey( const OUString& rKey ) { aKey = rKey.toAsciiUpperCase(); }
 
     friend sal_Bool operator==( const SvxCSS1MapEntry& rE1,
                             const SvxCSS1MapEntry& rE2 );
diff --git a/sw/source/filter/html/swhtml.cxx b/sw/source/filter/html/swhtml.cxx
index 5d63e08..26d7e88 100644
--- a/sw/source/filter/html/swhtml.cxx
+++ b/sw/source/filter/html/swhtml.cxx
@@ -5196,7 +5196,7 @@ void SwHTMLParser::InsertLineBreak()
                 aBreakItem = (const SvxFmtBreakItem &)aItemSet.Get( RES_BREAK );
                 bBreakItem = sal_True;
             }
-            if( aPropInfo.aId.Len() )
+            if( !aPropInfo.aId.isEmpty() )
                 InsertBookmark( aPropInfo.aId );
         }
     }
@@ -5395,7 +5395,8 @@ void SwHTMLParser::InsertHorzRule()
 
 void SwHTMLParser::ParseMoreMetaOptions()
 {
-    String aName, aContent;
+    String aName;
+    OUString aContent;
     sal_Bool bHTTPEquiv = sal_False;
 
     const HTMLOptions& rHTMLOptions = GetOptions();
diff --git a/sw/source/filter/html/swhtml.hxx b/sw/source/filter/html/swhtml.hxx
index 7f59049..6aed36d 100644
--- a/sw/source/filter/html/swhtml.hxx
+++ b/sw/source/filter/html/swhtml.hxx
@@ -786,8 +786,8 @@ private:
                         SfxItemSet& rCSS1ItemSet,
                         SvxCSS1PropertyInfo& rCSS1PropInfo,
                         const SvxMacroTableDtor& rMacroTbl,
-                        const std::vector<String>& rUnoMacroTbl,
-                        const std::vector<String>& rUnoMacroParamTbl,
+                        const std::vector<OUString>& rUnoMacroTbl,
+                        const std::vector<OUString>& rUnoMacroParamTbl,
                         sal_Bool bSetPropSet = sal_True,
                         sal_Bool bHidden = sal_False );
     void SetControlSize( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > & rShape, const Size& rTextSz,
@@ -856,9 +856,9 @@ private:
     void InsertLineBreak();
     void InsertHorzRule();
 
-    void FillEndNoteInfo( const String& rContent );
-    void FillFootNoteInfo( const String& rContent );
-    void InsertFootEndNote( const String& rName, sal_Bool bEndNote, sal_Bool bFixed );
+    void FillEndNoteInfo( const OUString& rContent );
+    void FillFootNoteInfo( const OUString& rContent );
+    void InsertFootEndNote( const OUString& rName, sal_Bool bEndNote, sal_Bool bFixed );
     void FinishFootEndNote();
     void InsertFootEndNoteText();
     SwNodeIndex *GetFootEndNoteSection( const String& rName );
diff --git a/sw/source/filter/html/wrthtml.hxx b/sw/source/filter/html/wrthtml.hxx
index 214f8d4..b2d1901 100644
--- a/sw/source/filter/html/wrthtml.hxx
+++ b/sw/source/filter/html/wrthtml.hxx
@@ -619,7 +619,7 @@ Writer& OutHTML_FrmFmtOLENodeGrf( Writer& rWrt, const SwFrmFmt& rFmt,
 
 Writer& OutHTML_SwTxtNode( Writer&, const SwCntntNode& );
 Writer& OutHTML_SwTblNode( Writer& , SwTableNode &, const SwFrmFmt *,
-                           const String* pCaption=0, sal_Bool bTopCaption=sal_False );
+                           const OUString* pCaption=0, sal_Bool bTopCaption=sal_False );
 
 Writer& OutHTML_DrawFrmFmtAsControl( Writer& rWrt, const SwDrawFrmFmt& rFmt,
                                      const SdrObject& rSdrObj, sal_Bool bInCntnr );
@@ -630,7 +630,7 @@ Writer& OutHTML_HeaderFooter( Writer& rWrt, const SwFrmFmt& rFrmFmt,
                               sal_Bool bHeader );
 
 Writer& OutHTML_Image( Writer&, const SwFrmFmt& rFmt,
-                       Graphic& rGraphic, const String& rAlternateTxt,
+                       Graphic& rGraphic, const OUString& rAlternateTxt,
                        const Size& rRealSize, sal_uInt32 nFrmOpts,
                        const sal_Char *pMarkType = 0,
                        const ImageMap *pGenImgMap = 0 );


More information about the Libreoffice-commits mailing list