[Libreoffice-commits] core.git: 5 commits - dbaccess/source desktop/source extensions/source filter/source framework/source helpcompiler/source hwpfilter/source i18nlangtag/source idlc/source io/source jvmfwk/source l10ntools/source lingucomponent/source linguistic/source lotuswordpro/source oox/source scaddins/source sc/qa scripting/source sc/source sd/source

Noel Grandin (via logerrit) logerrit at kemper.freedesktop.org
Tue Oct 1 06:27:50 UTC 2019


 dbaccess/source/core/api/viewcontainer.cxx                   |    3 
 dbaccess/source/ui/browser/unodatbr.cxx                      |    3 
 dbaccess/source/ui/dlg/queryfilter.cxx                       |    3 
 desktop/source/app/officeipcthread.cxx                       |    3 
 desktop/source/app/opencl.cxx                                |    4 
 desktop/source/deployment/registry/help/dp_help.cxx          |   13 -
 desktop/source/migration/migration.cxx                       |    3 
 desktop/source/migration/services/oo3extensionmigration.cxx  |    4 
 extensions/source/abpilot/abpfinalpage.cxx                   |    3 
 extensions/source/bibliography/bibconfig.cxx                 |   20 -
 extensions/source/bibliography/bibview.cxx                   |    3 
 extensions/source/bibliography/datman.cxx                    |    9 
 extensions/source/propctrlr/formcomponenthandler.cxx         |    3 
 extensions/source/propctrlr/standardcontrol.cxx              |    9 
 extensions/source/update/check/download.cxx                  |    4 
 filter/source/msfilter/msdffimp.cxx                          |    3 
 filter/source/msfilter/mstoolbar.cxx                         |    3 
 filter/source/msfilter/svdfppt.cxx                           |    3 
 filter/source/svg/svgexport.cxx                              |   19 -
 filter/source/xsltdialog/typedetectionexport.cxx             |   75 +++---
 filter/source/xsltdialog/xmlfiltersettingsdialog.cxx         |   11 -
 framework/source/accelerators/presethandler.cxx              |   10 
 framework/source/fwe/xml/statusbardocumenthandler.cxx        |    6 
 framework/source/fwe/xml/toolboxdocumenthandler.cxx          |    6 
 framework/source/uielement/objectmenucontroller.cxx          |    3 
 helpcompiler/source/HelpLinker.cxx                           |    6 
 hwpfilter/source/hwpreader.cxx                               |   10 
 i18nlangtag/source/languagetag/languagetag.cxx               |    3 
 idlc/source/options.cxx                                      |   58 ++---
 io/source/acceptor/acceptor.cxx                              |   13 -
 io/source/connector/connector.cxx                            |   10 
 jvmfwk/source/fwkbase.cxx                                    |    3 
 l10ntools/source/helper.cxx                                  |    5 
 l10ntools/source/merge.cxx                                   |    7 
 lingucomponent/source/languageguessing/guesslang.cxx         |    3 
 linguistic/source/misc.cxx                                   |    4 
 lotuswordpro/source/filter/lwptblformula.cxx                 |    3 
 lotuswordpro/source/filter/xfilter/xffont.cxx                |    9 
 oox/source/ole/vbamodule.cxx                                 |    3 
 oox/source/ppt/pptimport.cxx                                 |    3 
 sc/qa/unit/ucalc.cxx                                         |    6 
 sc/qa/unit/ucalc_pivottable.cxx                              |    4 
 sc/source/core/data/conditio.cxx                             |    8 
 sc/source/core/data/docpool.cxx                              |    7 
 sc/source/core/data/global2.cxx                              |    3 
 sc/source/core/data/stlpool.cxx                              |    3 
 sc/source/core/data/table3.cxx                               |    3 
 sc/source/core/tool/addincol.cxx                             |   13 -
 sc/source/core/tool/formulalogger.cxx                        |    5 
 sc/source/core/tool/rangeutl.cxx                             |    3 
 sc/source/filter/excel/xechart.cxx                           |    3 
 sc/source/filter/lotus/lotform.cxx                           |    6 
 sc/source/filter/xml/XMLStylesExportHelper.cxx               |   13 -
 sc/source/filter/xml/xmlimprt.cxx                            |    7 
 sc/source/ui/Accessibility/AccessibleCell.cxx                |    4 
 sc/source/ui/Accessibility/AccessibleCellBase.cxx            |  120 +++++------
 sc/source/ui/Accessibility/AccessibleDocument.cxx            |    3 
 sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx |    3 
 sc/source/ui/miscdlgs/crnrdlg.cxx                            |    9 
 sc/source/ui/miscdlgs/mvtabdlg.cxx                           |    3 
 sc/source/ui/miscdlgs/sharedocdlg.cxx                        |    3 
 sc/source/ui/miscdlgs/solveroptions.cxx                      |    7 
 sc/source/ui/navipi/navipi.cxx                               |    3 
 sc/source/ui/pagedlg/scuitphfedit.cxx                        |    4 
 sc/source/ui/pagedlg/tphf.cxx                                |    4 
 sc/source/ui/sidebar/NumberFormatPropertyPanel.cxx           |   16 -
 sc/source/ui/unoobj/chart2uno.cxx                            |    3 
 sc/source/ui/unoobj/docuno.cxx                               |   11 -
 sc/source/ui/unoobj/fmtuno.cxx                               |    3 
 sc/source/ui/view/formatsh.cxx                               |   16 -
 sc/source/ui/view/tabview.cxx                                |   17 -
 sc/source/ui/view/tabvwsha.cxx                               |    3 
 sc/source/ui/view/viewfun2.cxx                               |   14 -
 sc/source/ui/view/viewfunc.cxx                               |    3 
 scaddins/source/datefunc/datefunc.cxx                        |    3 
 scaddins/source/pricing/pricing.cxx                          |    3 
 scripting/source/dlgprov/dlgevtatt.cxx                       |    4 
 scripting/source/stringresource/stringresource.cxx           |    9 
 sd/source/core/anminfo.cxx                                   |    3 
 sd/source/core/drawdoc2.cxx                                  |    3 
 sd/source/core/drawdoc3.cxx                                  |    4 
 sd/source/core/drawdoc4.cxx                                  |    3 
 sd/source/core/sdpage.cxx                                    |   46 +---
 sd/source/core/stlpool.cxx                                   |    8 
 sd/source/core/stlsheet.cxx                                  |    3 
 sd/source/filter/eppt/epptso.cxx                             |   20 -
 sd/source/filter/html/htmlex.cxx                             |    3 
 sd/source/filter/ppt/pptin.cxx                               |   13 -
 sd/source/filter/xml/sdxmlwrp.cxx                            |    5 
 sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx    |    3 
 sd/source/ui/animations/CustomAnimationList.cxx              |    3 
 sd/source/ui/func/fucopy.cxx                                 |    4 
 sd/source/ui/sidebar/RecentlyUsedMasterPages.cxx             |    3 
 sd/source/ui/unoidl/UnoDocumentSettings.cxx                  |    3 
 sd/source/ui/unoidl/unomodel.cxx                             |   18 -
 95 files changed, 340 insertions(+), 523 deletions(-)

New commits:
commit 1182f2a579646c9721320c339ff39b1ef55683e9
Author:     Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Mon Sep 30 15:11:55 2019 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Tue Oct 1 08:26:59 2019 +0200

    loplugin:stringadd in sd
    
    Change-Id: If83625845d8687f2749fce9699cb9bd6b8825be0
    Reviewed-on: https://gerrit.libreoffice.org/79892
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/sd/source/core/anminfo.cxx b/sd/source/core/anminfo.cxx
index f2159cd0307a..d54a318d67d4 100644
--- a/sd/source/core/anminfo.cxx
+++ b/sd/source/core/anminfo.cxx
@@ -96,8 +96,7 @@ void SdAnimationInfo::SetBookmark( const OUString& rBookmark )
 {
     if( meClickAction == css::presentation::ClickAction_BOOKMARK )
     {
-        OUString sURL("#");
-        sURL += rBookmark;
+        OUString sURL = "#" + rBookmark;
         SvxFieldItem aURLItem( SvxURLField( sURL, sURL ), EE_FEATURE_FIELD );
         mrObject.SetMergedItem( aURLItem );
     }
diff --git a/sd/source/core/drawdoc2.cxx b/sd/source/core/drawdoc2.cxx
index d50e9ad56457..c4a776605a30 100644
--- a/sd/source/core/drawdoc2.cxx
+++ b/sd/source/core/drawdoc2.cxx
@@ -328,8 +328,7 @@ void SdDrawDocument::UpdatePageRelativeURLs(SdPage const * pPage, sal_uInt16 nPo
 
                 if (!aURL.isEmpty() && (aURL[0] == 35))
                 {
-                    OUString aHashSlide("#");
-                    aHashSlide += SdResId(STR_PAGE);
+                    OUString aHashSlide = "#" + SdResId(STR_PAGE);
 
                     if (aURL.startsWith(aHashSlide))
                     {
diff --git a/sd/source/core/drawdoc3.cxx b/sd/source/core/drawdoc3.cxx
index d206a03a1c4a..626a7dfd79d0 100644
--- a/sd/source/core/drawdoc3.cxx
+++ b/sd/source/core/drawdoc3.cxx
@@ -1480,9 +1480,7 @@ void SdDrawDocument::SetMasterPage(sal_uInt16 nSdPageNum,
             {
                 aTargetNewLayoutName = createNewMasterPageLayoutName(*this);
 
-                OUString aTemp(aTargetNewLayoutName);
-                aTemp += SD_LT_SEPARATOR;
-                aTemp += STR_LAYOUT_OUTLINE;
+                OUString aTemp = aTargetNewLayoutName + SD_LT_SEPARATOR STR_LAYOUT_OUTLINE;
 
                 pMaster->SetName(aTargetNewLayoutName);
                 pMaster->SetLayoutName(aTemp);
diff --git a/sd/source/core/drawdoc4.cxx b/sd/source/core/drawdoc4.cxx
index 76f94d3e5845..9edf91062a16 100644
--- a/sd/source/core/drawdoc4.cxx
+++ b/sd/source/core/drawdoc4.cxx
@@ -1137,8 +1137,7 @@ void SdDrawDocument::RenameLayoutTemplate(const OUString& rOldLayoutName, const
 
     // Now set the layout name of the drawing and the notes page, as well as
     // their master pages.
-    OUString aPageLayoutName(rNewName);
-    aPageLayoutName += aSep + STR_LAYOUT_OUTLINE;
+    OUString aPageLayoutName = rNewName + aSep + STR_LAYOUT_OUTLINE;
 
     // Inform all text objects on pages that use the renamed layout and set the
     // new name.
diff --git a/sd/source/core/sdpage.cxx b/sd/source/core/sdpage.cxx
index 667fb7ed57d7..098bd4b821ae 100644
--- a/sd/source/core/sdpage.cxx
+++ b/sd/source/core/sdpage.cxx
@@ -691,8 +691,8 @@ SdStyleSheet* SdPage::getPresentationStyle( sal_uInt32 nHelpId ) const
     aStyleName += OUString::createFromAscii(pNameId);
     if (bOutline)
     {
-        aStyleName += " ";
-        aStyleName += OUString::number( sal_Int32( nHelpId - HID_PSEUDOSHEET_OUTLINE ));
+        aStyleName += " " +
+            OUString::number( sal_Int32( nHelpId - HID_PSEUDOSHEET_OUTLINE ));
     }
 
     SfxStyleSheetBasePool* pStShPool = getSdrModelFromSdrPage().GetStyleSheetPool();
@@ -2400,29 +2400,23 @@ void SdPage::SetObjText(SdrTextObj* pObj, SdrOutliner* pOutliner, PresObjKind eO
         {
             pOutl->Init( OutlinerMode::OutlineObject );
 
-            aString += "\t";
-            aString += rString;
+            aString += "\t" + rString;
 
             if (mbMaster)
             {
                 pOutl->SetStyleSheet( 0, GetStyleSheetForPresObj(eObjKind) );
-                aString += "\n\t\t";
-                aString += SdResId(STR_PRESOBJ_MPOUTLLAYER2);
-
-                aString += "\n\t\t\t";
-                aString += SdResId(STR_PRESOBJ_MPOUTLLAYER3);
-
-                aString += "\n\t\t\t\t";
-                aString += SdResId(STR_PRESOBJ_MPOUTLLAYER4);
-
-                aString += "\n\t\t\t\t\t";
-                aString += SdResId(STR_PRESOBJ_MPOUTLLAYER5);
-
-                aString += "\n\t\t\t\t\t\t";
-                aString += SdResId(STR_PRESOBJ_MPOUTLLAYER6);
-
-                aString += "\n\t\t\t\t\t\t\t";
-                aString += SdResId(STR_PRESOBJ_MPOUTLLAYER7);
+                aString += "\n\t\t" +
+                    SdResId(STR_PRESOBJ_MPOUTLLAYER2) +
+                    "\n\t\t\t" +
+                    SdResId(STR_PRESOBJ_MPOUTLLAYER3) +
+                    "\n\t\t\t\t" +
+                    SdResId(STR_PRESOBJ_MPOUTLLAYER4) +
+                    "\n\t\t\t\t\t" +
+                    SdResId(STR_PRESOBJ_MPOUTLLAYER5) +
+                    "\n\t\t\t\t\t\t" +
+                    SdResId(STR_PRESOBJ_MPOUTLLAYER6) +
+                    "\n\t\t\t\t\t\t\t" +
+                    SdResId(STR_PRESOBJ_MPOUTLLAYER7);
 
             }
         }
@@ -2526,8 +2520,7 @@ const OUString& SdPage::GetName() const
             // default name for handout pages
             sal_uInt16  nNum = (GetPageNum() + 1) / 2;
 
-            aCreatedPageName = SdResId(STR_PAGE);
-            aCreatedPageName += " ";
+            aCreatedPageName = SdResId(STR_PAGE) + " ";
             if( getSdrModelFromSdrPage().GetPageNumType() == css::style::NumberingType::NUMBER_NONE )
             {
                 // if the document has number none as a formatting
@@ -2555,14 +2548,11 @@ const OUString& SdPage::GetName() const
 
     if (mePageKind == PageKind::Notes)
     {
-        aCreatedPageName += " ";
-        aCreatedPageName += SdResId(STR_NOTES);
+        aCreatedPageName += " " + SdResId(STR_NOTES);
     }
     else if (mePageKind == PageKind::Handout && mbMaster)
     {
-        aCreatedPageName += " (";
-        aCreatedPageName += SdResId(STR_HANDOUT);
-        aCreatedPageName += ")";
+        aCreatedPageName += " (" + SdResId(STR_HANDOUT) + ")";
     }
 
     const_cast< SdPage* >(this)->maCreatedPageName = aCreatedPageName;
diff --git a/sd/source/core/stlpool.cxx b/sd/source/core/stlpool.cxx
index 1004b8e6f988..4562a27df981 100644
--- a/sd/source/core/stlpool.cxx
+++ b/sd/source/core/stlpool.cxx
@@ -135,9 +135,7 @@ SfxStyleSheetBase* SdStyleSheetPool::Create(const OUString& rName, SfxStyleFamil
 
 SfxStyleSheetBase* SdStyleSheetPool::GetTitleSheet(const OUString& rLayoutName)
 {
-    OUString aName(rLayoutName);
-    aName += SD_LT_SEPARATOR;
-    aName += STR_LAYOUT_TITLE;
+    OUString aName = rLayoutName + SD_LT_SEPARATOR STR_LAYOUT_TITLE;
     SfxStyleSheetBase* pResult = Find(aName, SfxStyleFamily::Page);
     return pResult;
 }
@@ -151,9 +149,7 @@ SfxStyleSheetBase* SdStyleSheetPool::GetTitleSheet(const OUString& rLayoutName)
 
 void SdStyleSheetPool::CreateOutlineSheetList (const OUString& rLayoutName, std::vector<SfxStyleSheetBase*> &rOutlineStyles)
 {
-    OUString aName(rLayoutName);
-    aName += SD_LT_SEPARATOR;
-    aName += STR_LAYOUT_OUTLINE;
+    OUString aName = rLayoutName + SD_LT_SEPARATOR STR_LAYOUT_OUTLINE;
 
     for (sal_Int32 nSheet = 1; nSheet < 10; nSheet++)
     {
diff --git a/sd/source/core/stlsheet.cxx b/sd/source/core/stlsheet.cxx
index 95b8facb6389..99fdd72c6940 100644
--- a/sd/source/core/stlsheet.cxx
+++ b/sd/source/core/stlsheet.cxx
@@ -464,8 +464,7 @@ SdStyleSheet* SdStyleSheet::GetPseudoStyleSheet() const
         if (nPos != -1)
         {
             OUString aNumStr(aStyleName.copy(aOutlineStr.getLength()));
-            aStyleName = SdResId(STR_PSEUDOSHEET_OUTLINE);
-            aStyleName += aNumStr;
+            aStyleName = SdResId(STR_PSEUDOSHEET_OUTLINE) + aNumStr;
         }
     }
 
diff --git a/sd/source/filter/eppt/epptso.cxx b/sd/source/filter/eppt/epptso.cxx
index ff614afe9999..e03db4c9ddd3 100644
--- a/sd/source/filter/eppt/epptso.cxx
+++ b/sd/source/filter/eppt/epptso.cxx
@@ -1119,11 +1119,11 @@ void PPTWriter::ImplWriteTextStyleAtom( SvStream& rOut, int nTextInstance, sal_u
                             if ( pIter != maSlideNameList.end() )
                             {
                                 nPageIndex = pIter - maSlideNameList.begin();
-                                aPageUrl = OUString::number(256 + nPageIndex);
-                                aPageUrl += ",";
-                                aPageUrl += OUString::number(nPageIndex + 1);
-                                aPageUrl += ",Slide ";
-                                aPageUrl += OUString::number(nPageIndex + 1);
+                                aPageUrl = OUString::number(256 + nPageIndex) +
+                                    "," +
+                                    OUString::number(nPageIndex + 1) +
+                                    ",Slide " +
+                                    OUString::number(nPageIndex + 1);
                             }
                         }
                         sal_uInt32 nHyperId(0);
@@ -1440,11 +1440,11 @@ void PPTWriter::ImplWriteClickAction( SvStream& rSt, css::presentation::ClickAct
                         nAction = 4;
                         nHyperLinkType = 7;
 
-                        OUString aHyperString = OUString::number(256 + nIndex);
-                        aHyperString += ",";
-                        aHyperString += OUString::number(nIndex + 1);
-                        aHyperString += ",Slide ";
-                        aHyperString += OUString::number(nIndex + 1);
+                        OUString aHyperString = OUString::number(256 + nIndex) +
+                            "," +
+                            OUString::number(nIndex + 1) +
+                            ",Slide " +
+                            OUString::number(nIndex + 1);
                         nHyperLinkID = ImplInsertBookmarkURL( aHyperString, 1 | ( nIndex << 8 ) | ( 1U << 31 ), aBookmark, "", "", aHyperString );
                     }
                     nIndex++;
diff --git a/sd/source/filter/html/htmlex.cxx b/sd/source/filter/html/htmlex.cxx
index 622278de70c2..ac9db8f6ed66 100644
--- a/sd/source/filter/html/htmlex.cxx
+++ b/sd/source/filter/html/htmlex.cxx
@@ -3029,8 +3029,7 @@ bool HtmlExport::checkFileExists( Reference< css::ucb::XSimpleFileAccess3 > cons
 {
     try
     {
-        OUString url( maExportPath );
-        url += aFileName;
+        OUString url = maExportPath + aFileName;
         return xFileAccess->exists( url );
     }
     catch( css::uno::Exception& )
diff --git a/sd/source/filter/ppt/pptin.cxx b/sd/source/filter/ppt/pptin.cxx
index 6a1e57ed40ce..606bb18a8025 100644
--- a/sd/source/filter/ppt/pptin.cxx
+++ b/sd/source/filter/ppt/pptin.cxx
@@ -619,16 +619,15 @@ bool ImplSdPPTImport::Import()
                     {
                         if ( ePgKind == PageKind::Standard )
                         {   // standard page: create new presentation layout
-                            aLayoutName = SdResId( STR_LAYOUT_DEFAULT_TITLE_NAME );
-                            aLayoutName += OUString::number( static_cast<sal_Int32>( ( nMasterNum + 1 ) / 2 - 1 ) );
+                            aLayoutName = SdResId( STR_LAYOUT_DEFAULT_TITLE_NAME ) +
+                                OUString::number( static_cast<sal_Int32>( ( nMasterNum + 1 ) / 2 - 1 ) );
                             static_cast<SdStyleSheetPool*>( mpDoc->GetStyleSheetPool() )->CreateLayoutStyleSheets( aLayoutName );
                         }
                         else    // note page: use presentation layout of standard page
                             aLayoutName = static_cast<SdPage*>( mpDoc->GetMasterPage( nMasterNum - 1 ) )->GetName();
                     }
                     pPage->SetName( aLayoutName );
-                    aLayoutName += SD_LT_SEPARATOR;
-                    aLayoutName += STR_LAYOUT_OUTLINE;
+                    aLayoutName += SD_LT_SEPARATOR STR_LAYOUT_OUTLINE;
                     pPage->SetLayoutName( aLayoutName );
 
                     // set stylesheets
@@ -663,8 +662,7 @@ bool ImplSdPPTImport::Import()
                         for ( nLevel = 0; nLevel < 9; nLevel++ )
                         {
                             OUString aName( pPage->GetLayoutName() );
-                            aName += " ";
-                            aName += OUString::number( nLevel + 1 );
+                            aName += " " + OUString::number( nLevel + 1 );
                             SfxStyleSheet* pOutlineSheet = static_cast<SfxStyleSheet*>( mpDoc->GetStyleSheetPool()->Find( aName, SfxStyleFamily::Page ) );
                             DBG_ASSERT( pOutlineSheet, "Template for outline object not found" );
                             if ( pOutlineSheet )
@@ -2231,8 +2229,7 @@ SdrObject* ImplSdPPTImport::ApplyTextObj( PPTTextObj* pTextObj, SdrTextObj* pObj
             for ( sal_uInt16 nLevel = 9; nLevel; nLevel-- )
             {
                 OUString aName( pPage->GetLayoutName() );
-                aName += " ";
-                aName += OUString::number( nLevel );
+                aName += " " + OUString::number( nLevel );
                 pSheet = static_cast<SfxStyleSheet*>(mpDoc->GetStyleSheetPool()->Find( aName, SfxStyleFamily::Page ));
                 if ( pSheet )
                     pText->StartListening( *pSheet );
diff --git a/sd/source/filter/xml/sdxmlwrp.cxx b/sd/source/filter/xml/sdxmlwrp.cxx
index e11578a4c7fb..f23eabd0f6c8 100644
--- a/sd/source/filter/xml/sdxmlwrp.cxx
+++ b/sd/source/filter/xml/sdxmlwrp.cxx
@@ -253,9 +253,8 @@ ErrCode ReadThroughComponent(
 
         SAL_WARN( "sd.filter", "SAX parse exception caught while importing: " << exceptionToString(ex));
 
-        OUString sErr( OUString::number( r.LineNumber ));
-        sErr += ",";
-        sErr += OUString::number( r.ColumnNumber );
+        OUString sErr =  OUString::number( r.LineNumber ) +
+            "," + OUString::number( r.ColumnNumber );
 
         if (!rStreamName.isEmpty())
         {
diff --git a/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx b/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx
index fe808039929e..c3004e7c1d61 100644
--- a/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx
+++ b/sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx
@@ -691,8 +691,7 @@ uno::Any SAL_CALL AccessibleDocumentViewBase::getExtendedAttributes()
                     if (!layerAltText.isEmpty())
                     {
                         sName = " ";
-                        sDisplay = sDisplay + sName;
-                        sDisplay += layerAltText;
+                        sDisplay = sDisplay + sName + layerAltText;
                     }
                 }
             }
diff --git a/sd/source/ui/animations/CustomAnimationList.cxx b/sd/source/ui/animations/CustomAnimationList.cxx
index 275575e64cf9..83def14415df 100644
--- a/sd/source/ui/animations/CustomAnimationList.cxx
+++ b/sd/source/ui/animations/CustomAnimationList.cxx
@@ -915,8 +915,7 @@ void CustomAnimationList::update()
             {
                 SvTreeListEntry* pLBoxEntry = new CustomAnimationListEntry;
                 pLBoxEntry->AddItem(std::make_unique<SvLBoxContextBmp>(Image(), Image(), false));
-                OUString aDescription = SdResId(STR_CUSTOMANIMATION_TRIGGER);
-                aDescription += ": ";
+                OUString aDescription = SdResId(STR_CUSTOMANIMATION_TRIGGER) + ": ";
                 aDescription += getShapeDescription( xShape, false );
                 pLBoxEntry->AddItem(std::make_unique<CustomAnimationTriggerEntryItem>(aDescription));
                 Insert( pLBoxEntry );
diff --git a/sd/source/ui/func/fucopy.cxx b/sd/source/ui/func/fucopy.cxx
index 32b682e01db0..ea9d0f139b46 100644
--- a/sd/source/ui/func/fucopy.cxx
+++ b/sd/source/ui/func/fucopy.cxx
@@ -166,8 +166,8 @@ void FuCopy::DoExecute( SfxRequest& rReq )
 
     if( nNumber > 1 )
     {
-        OUString aStr( SdResId( STR_OBJECTS ) );
-        aStr += " " + SdResId( STR_UNDO_COPYOBJECTS );
+        OUString aStr = SdResId( STR_OBJECTS ) +
+            " " + SdResId( STR_UNDO_COPYOBJECTS );
 
         pProgress.reset(new SfxProgress( mpDocSh, aStr, nNumber ));
         mpDocSh->SetWaitCursor( true );
diff --git a/sd/source/ui/sidebar/RecentlyUsedMasterPages.cxx b/sd/source/ui/sidebar/RecentlyUsedMasterPages.cxx
index 9065a27e76cd..c6f0b02b07a4 100644
--- a/sd/source/ui/sidebar/RecentlyUsedMasterPages.cxx
+++ b/sd/source/ui/sidebar/RecentlyUsedMasterPages.cxx
@@ -200,8 +200,7 @@ void RecentlyUsedMasterPages::SavePersistentValues()
         for (const auto& rDescriptor : mvMasterPages)
         {
             // Create new child.
-            OUString sKey ("index_");
-            sKey += OUString::number(nIndex);
+            OUString sKey = "index_" + OUString::number(nIndex);
             Reference<container::XNameReplace> xChild(
                 xChildFactory->createInstance(), UNO_QUERY);
             if (xChild.is())
diff --git a/sd/source/ui/unoidl/UnoDocumentSettings.cxx b/sd/source/ui/unoidl/UnoDocumentSettings.cxx
index 77970bb24df1..666122868a57 100644
--- a/sd/source/ui/unoidl/UnoDocumentSettings.cxx
+++ b/sd/source/ui/unoidl/UnoDocumentSettings.cxx
@@ -366,8 +366,7 @@ uno::Sequence<beans::PropertyValue>
                     OUString aResult;
                     if( pList->SaveTo( xSubStorage, aName.makeStringAndClear(), &aResult ) )
                     {
-                        OUString aRealPath( "Settings/" );
-                        aRealPath += aResult;
+                        OUString aRealPath = "Settings/" + aResult;
                         aRet[i].Value <<= aRealPath;
                     }
                 }
diff --git a/sd/source/ui/unoidl/unomodel.cxx b/sd/source/ui/unoidl/unomodel.cxx
index eeda330cc569..c7f8113a0513 100644
--- a/sd/source/ui/unoidl/unomodel.cxx
+++ b/sd/source/ui/unoidl/unomodel.cxx
@@ -1563,8 +1563,7 @@ static void ImplPDFExportComments( const uno::Reference< drawing::XDrawPage >& x
 
             vcl::PDFNote aNote;
             OUString sTitle( xAnnotation->getAuthor() );
-            sTitle += ", ";
-            sTitle += aStr;
+            sTitle += ", " + aStr;
             aNote.Title = sTitle;
             aNote.Contents = xText->getString();
             rPDFExtOutDevData.CreateNote( ::tools::Rectangle( Point( static_cast< long >( aRealPoint2D.X * 100 ),
@@ -2271,15 +2270,14 @@ OUString SdXImpressDocument::getPartInfo(int nPart)
     if (!pViewSh)
         return OUString();
 
-    OUString aPartInfo;
     const bool bIsVisible = pViewSh->IsVisible(nPart);
     const bool bIsSelected = pViewSh->IsSelected(nPart);
 
-    aPartInfo += "{ \"visible\": \"";
-    aPartInfo += OUString::number(static_cast<unsigned int>(bIsVisible));
-    aPartInfo += "\", \"selected\": \"";
-    aPartInfo += OUString::number(static_cast<unsigned int>(bIsSelected));
-    aPartInfo += "\" }";
+    OUString aPartInfo = "{ \"visible\": \"" +
+        OUString::number(static_cast<unsigned int>(bIsVisible)) +
+        "\", \"selected\": \"" +
+        OUString::number(static_cast<unsigned int>(bIsSelected)) +
+        "\" }";
     return aPartInfo;
 }
 
@@ -3121,9 +3119,7 @@ uno::Reference< drawing::XDrawPage > SAL_CALL SdMasterPagesAccess::insertNewByIn
             bUnique = std::find(aPageNames.begin(), aPageNames.end(), aPrefix) == aPageNames.end();
         }
 
-        OUString aLayoutName( aPrefix );
-        aLayoutName += SD_LT_SEPARATOR;
-        aLayoutName += STR_LAYOUT_OUTLINE;
+        OUString aLayoutName = aPrefix + SD_LT_SEPARATOR STR_LAYOUT_OUTLINE;
 
         // create styles
         static_cast<SdStyleSheetPool*>(pDoc->GetStyleSheetPool())->CreateLayoutStyleSheets( aPrefix );
commit 6eb7870aa10144281ccbc4702770d8ce1ceb3e9a
Author:     Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Mon Sep 30 15:11:41 2019 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Tue Oct 1 08:26:52 2019 +0200

    loplugin:stringadd in sc
    
    Change-Id: Idab16f785ca5e8954f8e50132938f6329106c927
    Reviewed-on: https://gerrit.libreoffice.org/79891
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx
index 98a1a45a03dd..0daed452d103 100644
--- a/sc/qa/unit/ucalc.cxx
+++ b/sc/qa/unit/ucalc.cxx
@@ -6793,9 +6793,9 @@ void Test::checkPrecisionAsShown( OUString& rCode, double fValue, double fExpect
         CPPUNIT_ASSERT_EQUAL( sal_Int32(0), nCheckPos );
     }
     double fRoundValue = m_pDoc->RoundValueAsShown( fValue, nFormat );
-    OString aMessage = "Format \"";
-    aMessage += OUStringToOString( rCode, RTL_TEXTENCODING_ASCII_US );
-    aMessage += "\" is not correctly rounded";
+    OString aMessage = "Format \"" +
+        OUStringToOString( rCode, RTL_TEXTENCODING_ASCII_US ) +
+        "\" is not correctly rounded";
     CPPUNIT_ASSERT_EQUAL_MESSAGE( aMessage.getStr(), fExpectedRoundVal, fRoundValue );
 }
 
diff --git a/sc/qa/unit/ucalc_pivottable.cxx b/sc/qa/unit/ucalc_pivottable.cxx
index 3d200f1d4b16..7c92556bb1e8 100644
--- a/sc/qa/unit/ucalc_pivottable.cxx
+++ b/sc/qa/unit/ucalc_pivottable.cxx
@@ -2111,9 +2111,7 @@ void Test::testFuncGETPIVOTDATA()
     sc::AutoCalcSwitch aSwitch(*m_pDoc, true); // turn autocalc on.
 
     // First, get the grand total.
-    OUString aFormula("=GETPIVOTDATA(\"Value\";");
-    aFormula += aPivotPosStr;
-    aFormula += ")";
+    OUString aFormula = "=GETPIVOTDATA(\"Value\";" + aPivotPosStr + ")";
     m_pDoc->SetString(aPos, aFormula);
     double fVal = m_pDoc->GetValue(aPos);
     CPPUNIT_ASSERT_EQUAL(21.0, fVal);
diff --git a/sc/source/core/data/conditio.cxx b/sc/source/core/data/conditio.cxx
index 9a7be21f3a7c..97626a397e87 100644
--- a/sc/source/core/data/conditio.cxx
+++ b/sc/source/core/data/conditio.cxx
@@ -1253,9 +1253,7 @@ OUString ScConditionEntry::GetExpression( const ScAddress& rCursor, sal_uInt16 n
         }
         else if (bIsStr1)
         {
-            aRet = "\"";
-            aRet += aStrVal1;
-            aRet += "\"";
+            aRet = "\"" + aStrVal1 + "\"";
         }
         else
             mpDoc->GetFormatTable()->GetInputLineString(nVal1, nNumFmt, aRet);
@@ -1271,9 +1269,7 @@ OUString ScConditionEntry::GetExpression( const ScAddress& rCursor, sal_uInt16 n
         }
         else if (bIsStr2)
         {
-            aRet = "\"";
-            aRet += aStrVal2;
-            aRet += "\"";
+            aRet = "\"" + aStrVal2 + "\"";
         }
         else
             mpDoc->GetFormatTable()->GetInputLineString(nVal2, nNumFmt, aRet);
diff --git a/sc/source/core/data/docpool.cxx b/sc/source/core/data/docpool.cxx
index d9515f6214b6..95597eb2a61b 100644
--- a/sc/source/core/data/docpool.cxx
+++ b/sc/source/core/data/docpool.cxx
@@ -438,10 +438,9 @@ static bool lcl_HFPresentation
                                            eCoreMetric, ePresentationMetric, &rIntl );
                     aText += " " + EditResId(GetMetricId(ePresentationMetric));
                 }
-                aText += cpDelim;
-
-                // We don't have a nPropFirstLineOfst
-                aText += EditResId(RID_SVXITEMS_LRSPACE_RIGHT);
+                aText += cpDelim +
+                    // We don't have a nPropFirstLineOfst
+                    EditResId(RID_SVXITEMS_LRSPACE_RIGHT);
                 if ( 100 != nPropRightMargin )
                 {
                     aText = aText + unicode::formatPercent(nPropLeftMargin,
diff --git a/sc/source/core/data/global2.cxx b/sc/source/core/data/global2.cxx
index 04687ebf7ab0..228c6f422104 100644
--- a/sc/source/core/data/global2.cxx
+++ b/sc/source/core/data/global2.cxx
@@ -321,8 +321,7 @@ OUString ScGlobal::GetAbsDocName( const OUString& rFileName,
 OUString ScGlobal::GetDocTabName( const OUString& rFileName,
                                 const OUString& rTabName )
 {
-    OUString  aDocTab('\'');
-    aDocTab += rFileName;
+    OUString  aDocTab = "'" + rFileName;
     sal_Int32 nPos = 1;
     while( (nPos = aDocTab.indexOf( '\'', nPos )) != -1 )
     {   // escape Quotes
diff --git a/sc/source/core/data/stlpool.cxx b/sc/source/core/data/stlpool.cxx
index d8a06a60069b..2a701c1b26e8 100644
--- a/sc/source/core/data/stlpool.cxx
+++ b/sc/source/core/data/stlpool.cxx
@@ -83,8 +83,7 @@ SfxStyleSheetBase& ScStyleSheetPool::Make( const OUString& rName,
         sal_uInt32 nCount = GetIndexedStyleSheets().GetNumberOfStyleSheets();
         for ( sal_uInt32 nAdd = 1; nAdd <= nCount; nAdd++ )
         {
-            OUString aNewName = ScResId(STR_STYLENAME_STANDARD);
-            aNewName += OUString::number( nAdd );
+            OUString aNewName = ScResId(STR_STYLENAME_STANDARD) + OUString::number( nAdd );
             if ( Find( aNewName, eFam ) == nullptr )
                 return SfxStyleSheetPool::Make(aNewName, eFam, mask);
         }
diff --git a/sc/source/core/data/table3.cxx b/sc/source/core/data/table3.cxx
index 64596e2c3101..ec92abad27e4 100644
--- a/sc/source/core/data/table3.cxx
+++ b/sc/source/core/data/table3.cxx
@@ -2133,8 +2133,7 @@ bool ScTable::DoSubTotals( ScSubTotalParam& rParam )
                 DBShowRow(aRowEntry.nDestRow, true);
 
                 // insert label
-                OUString label = ScResId(STR_TABLE_GRAND);
-                label += " ";
+                OUString label = ScResId(STR_TABLE_GRAND) + " ";
                 label += ScResId(lcl_GetSubTotalStrId(pResFunc[0]));
                 SetString(nGroupCol[aRowEntry.nGroupNo], aRowEntry.nDestRow, nTab, label);
                 ApplyStyle(nGroupCol[aRowEntry.nGroupNo], aRowEntry.nDestRow, pStyle);
diff --git a/sc/source/core/tool/addincol.cxx b/sc/source/core/tool/addincol.cxx
index ceeb156a0a31..59a7cb6bb648 100644
--- a/sc/source/core/tool/addincol.cxx
+++ b/sc/source/core/tool/addincol.cxx
@@ -405,10 +405,7 @@ void ScUnoAddInCollection::ReadConfiguration()
 
                 // get direct information on the function
 
-                OUString aFuncPropPath = aFunctionsPath;
-                aFuncPropPath += sSlash;
-                aFuncPropPath += pFuncNameArray[nFuncPos];
-                aFuncPropPath += sSlash;
+                OUString aFuncPropPath = aFunctionsPath + sSlash + pFuncNameArray[nFuncPos] + sSlash;
 
                 uno::Sequence<OUString> aFuncPropNames{
                     (aFuncPropPath + CFGSTR_DISPLAYNAME), // CFG_FUNCPROP_DISPLAYNAME
@@ -470,10 +467,7 @@ void ScUnoAddInCollection::ReadConfiguration()
                     sal_Int32 nIndex = 0;
                     for ( const OUString& rArgName : aArgumentNames )
                     {
-                        OUString aOneArgPath = aArgumentsPath;
-                        aOneArgPath += sSlash;
-                        aOneArgPath += rArgName;
-                        aOneArgPath += sSlash;
+                        OUString aOneArgPath = aArgumentsPath + sSlash + rArgName + sSlash;
 
                         pPropNameArray[nIndex++] = aOneArgPath
                             + CFGSTR_DISPLAYNAME;
@@ -1229,8 +1223,7 @@ bool ScUnoAddInCollection::FillFunctionDescFromData( const ScUnoAddInFuncData& r
             // no empty names...
             if ( rDesc.maDefArgNames[nArg].isEmpty() )
             {
-                OUString aDefName("arg");
-                aDefName += OUString::number( nArg+1 );
+                OUString aDefName = "arg" + OUString::number( nArg+1 );
                 rDesc.maDefArgNames[nArg] = aDefName;
             }
 
diff --git a/sc/source/core/tool/formulalogger.cxx b/sc/source/core/tool/formulalogger.cxx
index 06d42f48f407..31b3fe9f6072 100644
--- a/sc/source/core/tool/formulalogger.cxx
+++ b/sc/source/core/tool/formulalogger.cxx
@@ -343,9 +343,8 @@ FormulaLogger::GroupScope FormulaLogger::enterGroup(
     if (aName.isEmpty())
         aName = "-"; // unsaved document.
 
-    OUString aGroupPrefix = aName;
-
-    aGroupPrefix += ": formula-group: ";
+    OUString aGroupPrefix = aName +
+        ": formula-group: ";
     aGroupPrefix += rCell.aPos.Format(ScRefFlags::VALID | ScRefFlags::TAB_3D, &rDoc, rDoc.GetAddressConvention());
     aGroupPrefix += ": ";
 
diff --git a/sc/source/core/tool/rangeutl.cxx b/sc/source/core/tool/rangeutl.cxx
index a2058a3023fd..968b2d7ddd49 100644
--- a/sc/source/core/tool/rangeutl.cxx
+++ b/sc/source/core/tool/rangeutl.cxx
@@ -115,8 +115,7 @@ bool ScRangeUtil::IsAbsTabArea( const OUString&   rAreaStr,
 
     if ( -1 == aTempAreaStr.indexOf(':') )
     {
-        aTempAreaStr += ":";
-        aTempAreaStr += rAreaStr;
+        aTempAreaStr += ":" + rAreaStr;
     }
 
     sal_Int32   nColonPos = aTempAreaStr.indexOf(':');
diff --git a/sc/source/filter/excel/xechart.cxx b/sc/source/filter/excel/xechart.cxx
index fbaeb04ba3b3..0f66e40409de 100644
--- a/sc/source/filter/excel/xechart.cxx
+++ b/sc/source/filter/excel/xechart.cxx
@@ -1192,8 +1192,7 @@ void XclExpChText::ConvertTitle( Reference< XTitle > const & xTitle, sal_uInt16
         if (pSubTitle)
         {
             // append subtitle as the 2nd line of the title.
-            OUString aSubTitle("\n");
-            aSubTitle += *pSubTitle;
+            OUString aSubTitle = "\n" + *pSubTitle;
             mxSrcLink->AppendString(aSubTitle);
         }
 
diff --git a/sc/source/filter/lotus/lotform.cxx b/sc/source/filter/lotus/lotform.cxx
index 3ed086462173..360b5da2d40d 100644
--- a/sc/source/filter/lotus/lotform.cxx
+++ b/sc/source/filter/lotus/lotform.cxx
@@ -566,8 +566,7 @@ void LotusToSc::Convert( std::unique_ptr<ScTokenArray>& rpErg, sal_Int32& rRest
                     aStack << aPool.Store( nRngIndex );
                 else
             {
-                    OUString  aText( "NRREF ");
-                    aText += aTmp;
+                    OUString aText = "NRREF " + aTmp;
                     aStack << aPool.Store( aText );
             }
             }
@@ -579,8 +578,7 @@ void LotusToSc::Convert( std::unique_ptr<ScTokenArray>& rpErg, sal_Int32& rRest
                     aStack << aPool.Store( nRngIndex );
                 else
                 {
-                    OUString  aText( "ABSNREF " );
-                    aText += aTmp;
+                    OUString aText = "ABSNREF " + aTmp;
                     aStack << aPool.Store( aText );
                 }
             }
diff --git a/sc/source/filter/xml/XMLStylesExportHelper.cxx b/sc/source/filter/xml/XMLStylesExportHelper.cxx
index 1dfa16ee8f9a..dac67e964272 100644
--- a/sc/source/filter/xml/XMLStylesExportHelper.cxx
+++ b/sc/source/filter/xml/XMLStylesExportHelper.cxx
@@ -183,9 +183,7 @@ OUString ScMyValidationsContainer::GetCondition(ScXMLExport& rExport, const ScMy
                 sCondition += "cell-content-is-decimal-number()";
             break;
             case sheet::ValidationType_LIST :
-                sCondition += "cell-content-is-in-list(";
-                sCondition += aValidation.sFormula1;
-                sCondition += ")";
+                sCondition += "cell-content-is-in-list(" + aValidation.sFormula1 + ")";
             break;
             case sheet::ValidationType_TEXT_LEN :
                 if (aValidation.aOperator != sheet::ConditionOperator_BETWEEN &&
@@ -199,9 +197,7 @@ OUString ScMyValidationsContainer::GetCondition(ScXMLExport& rExport, const ScMy
                 sCondition += "cell-content-is-whole-number()";
             break;
             case sheet::ValidationType_CUSTOM :
-                sCondition += "is-true-formula(";
-                sCondition += aValidation.sFormula1;
-                sCondition += ")";
+                sCondition += "is-true-formula(" + aValidation.sFormula1 + ")";
             break;
             default:
             {
@@ -265,10 +261,7 @@ OUString ScMyValidationsContainer::GetCondition(ScXMLExport& rExport, const ScMy
                     else
                         sCondition += "cell-content-is-not-between(";
                 }
-                sCondition += aValidation.sFormula1;
-                sCondition += ",";
-                sCondition += aValidation.sFormula2;
-                sCondition += ")";
+                sCondition += aValidation.sFormula1 + "," + aValidation.sFormula2 + ")";
             }
         }
         else
diff --git a/sc/source/filter/xml/xmlimprt.cxx b/sc/source/filter/xml/xmlimprt.cxx
index cfb1babc12f4..f97b06884261 100644
--- a/sc/source/filter/xml/xmlimprt.cxx
+++ b/sc/source/filter/xml/xmlimprt.cxx
@@ -1170,10 +1170,9 @@ sal_Int32 ScXMLImport::SetCurrencySymbol(const sal_Int32 nKey, const OUString& r
             }
             catch ( const util::MalformedNumberFormatException& rException )
             {
-                OUString sErrorMessage("Error in Formatstring ");
-                sErrorMessage += sFormatString;
-                sErrorMessage += " at position ";
-                sErrorMessage += OUString::number(rException.CheckPos);
+                OUString sErrorMessage ="Error in Formatstring " +
+                    sFormatString + " at position " +
+                    OUString::number(rException.CheckPos);
                 uno::Sequence<OUString> aSeq { sErrorMessage };
                 uno::Reference<xml::sax::XLocator> xLocator;
                 SetError(XMLERROR_API | XMLERROR_FLAG_ERROR, aSeq, rException.Message, xLocator);
diff --git a/sc/source/ui/Accessibility/AccessibleCell.cxx b/sc/source/ui/Accessibility/AccessibleCell.cxx
index 010bcb101030..0ad187384d93 100644
--- a/sc/source/ui/Accessibility/AccessibleCell.cxx
+++ b/sc/source/ui/Accessibility/AccessibleCell.cxx
@@ -493,8 +493,8 @@ uno::Any SAL_CALL ScAccessibleCell::getExtendedAttributes()
         OUString strFor = mpViewShell->GetFormula(maCellAddress) ;
         strFor = strFor.replaceAt(0,1,"");
         strFor = ReplaceFourChar(strFor);
-        strFor = "Formula:" + strFor;
-        strFor += ";Note:";
+        strFor = "Formula:" + strFor +
+            ";Note:";
         strFor += ReplaceFourChar(GetAllDisplayNote());
         strFor += ";";
         strFor += getShadowAttrs();//the string returned contains the spliter ";"
diff --git a/sc/source/ui/Accessibility/AccessibleCellBase.cxx b/sc/source/ui/Accessibility/AccessibleCellBase.cxx
index 1cd9c0ff91f0..551311ad0654 100644
--- a/sc/source/ui/Accessibility/AccessibleCellBase.cxx
+++ b/sc/source/ui/Accessibility/AccessibleCellBase.cxx
@@ -401,18 +401,18 @@ OUString ScAccessibleCellBase::getShadowAttrs() const
         return sShadowAttrs;
     }
     //else return all the shadow properties
-    sShadowAttrs += "Location=";
-    sShadowAttrs += OUString::number( nLocationVal );
-    sShadowAttrs += sInnerSplit;
-    sShadowAttrs += "ShadowWidth=";
-    sShadowAttrs += OUString::number( static_cast<sal_Int32>(aShadowFmt.ShadowWidth) ) ;
-    sShadowAttrs += sInnerSplit;
-    sShadowAttrs += "IsTransparent=";
-    sShadowAttrs += OUString::number( static_cast<int>(aShadowFmt.IsTransparent) ) ;
-    sShadowAttrs += sInnerSplit;
-    sShadowAttrs += "Color=";
-    sShadowAttrs += OUString::number( static_cast<sal_Int32>(aShadowFmt.Color) );
-    sShadowAttrs += sOuterSplit;
+    sShadowAttrs += "Location=" +
+        OUString::number( nLocationVal ) +
+        sInnerSplit +
+        "ShadowWidth=" +
+        OUString::number( static_cast<sal_Int32>(aShadowFmt.ShadowWidth) ) +
+        sInnerSplit +
+        "IsTransparent=" +
+        OUString::number( static_cast<int>(aShadowFmt.IsTransparent) ) +
+        sInnerSplit +
+        "Color=" +
+        OUString::number( static_cast<sal_Int32>(aShadowFmt.Color) ) +
+        sOuterSplit;
     return sShadowAttrs;
 }
 
@@ -488,18 +488,18 @@ OUString ScAccessibleCellBase::getBorderAttrs()
     }
     else//add all the border properties to the return string.
     {
-        sBorderAttrs += "TopBorder:Color=";
-        sBorderAttrs += OUString::number( static_cast<sal_Int32>(aTopBorder.Color) );
-        sBorderAttrs += sInnerSplit;
-        sBorderAttrs += "InnerLineWidth=";
-        sBorderAttrs += OUString::number( static_cast<sal_Int32>(aTopBorder.InnerLineWidth) );
-        sBorderAttrs += sInnerSplit;
-        sBorderAttrs += "OuterLineWidth=";
-        sBorderAttrs += OUString::number( static_cast<sal_Int32>(aTopBorder.OuterLineWidth) );
-        sBorderAttrs += sInnerSplit;
-        sBorderAttrs += "LineDistance=";
-        sBorderAttrs += OUString::number( static_cast<sal_Int32>(aTopBorder.LineDistance) );
-        sBorderAttrs += sOuterSplit;
+        sBorderAttrs += "TopBorder:Color=" +
+            OUString::number( static_cast<sal_Int32>(aTopBorder.Color) ) +
+            sInnerSplit +
+            "InnerLineWidth=" +
+            OUString::number( static_cast<sal_Int32>(aTopBorder.InnerLineWidth) ) +
+            sInnerSplit +
+            "OuterLineWidth=" +
+            OUString::number( static_cast<sal_Int32>(aTopBorder.OuterLineWidth) ) +
+            sInnerSplit +
+            "LineDistance=" +
+            OUString::number( static_cast<sal_Int32>(aTopBorder.LineDistance) ) +
+            sOuterSplit;
     }
     //bottom border
     if ( aBottomBorder.InnerLineWidth == 0 && aBottomBorder.OuterLineWidth == 0 )
@@ -508,18 +508,18 @@ OUString ScAccessibleCellBase::getBorderAttrs()
     }
     else
     {
-        sBorderAttrs += "BottomBorder:Color=";
-        sBorderAttrs += OUString::number( static_cast<sal_Int32>(aBottomBorder.Color) );
-        sBorderAttrs += sInnerSplit;
-        sBorderAttrs += "InnerLineWidth=";
-        sBorderAttrs += OUString::number( static_cast<sal_Int32>(aBottomBorder.InnerLineWidth) );
-        sBorderAttrs += sInnerSplit;
-        sBorderAttrs += "OuterLineWidth=";
-        sBorderAttrs += OUString::number( static_cast<sal_Int32>(aBottomBorder.OuterLineWidth) );
-        sBorderAttrs += sInnerSplit;
-        sBorderAttrs += "LineDistance=";
-        sBorderAttrs += OUString::number( static_cast<sal_Int32>(aBottomBorder.LineDistance) );
-        sBorderAttrs += sOuterSplit;
+        sBorderAttrs += "BottomBorder:Color=" +
+            OUString::number( static_cast<sal_Int32>(aBottomBorder.Color) ) +
+            sInnerSplit +
+            "InnerLineWidth=" +
+            OUString::number( static_cast<sal_Int32>(aBottomBorder.InnerLineWidth) ) +
+            sInnerSplit +
+            "OuterLineWidth=" +
+            OUString::number( static_cast<sal_Int32>(aBottomBorder.OuterLineWidth) ) +
+            sInnerSplit +
+            "LineDistance=" +
+            OUString::number( static_cast<sal_Int32>(aBottomBorder.LineDistance) ) +
+            sOuterSplit;
     }
     //left border
     if ( aLeftBorder.InnerLineWidth == 0 && aLeftBorder.OuterLineWidth == 0 )
@@ -528,18 +528,18 @@ OUString ScAccessibleCellBase::getBorderAttrs()
     }
     else
     {
-        sBorderAttrs += "LeftBorder:Color=";
-        sBorderAttrs += OUString::number( static_cast<sal_Int32>(aLeftBorder.Color) );
-        sBorderAttrs += sInnerSplit;
-        sBorderAttrs += "InnerLineWidth=";
-        sBorderAttrs += OUString::number( static_cast<sal_Int32>(aLeftBorder.InnerLineWidth) );
-        sBorderAttrs += sInnerSplit;
-        sBorderAttrs += "OuterLineWidth=";
-        sBorderAttrs += OUString::number( static_cast<sal_Int32>(aLeftBorder.OuterLineWidth) );
-        sBorderAttrs += sInnerSplit;
-        sBorderAttrs += "LineDistance=";
-        sBorderAttrs += OUString::number( static_cast<sal_Int32>(aLeftBorder.LineDistance) );
-        sBorderAttrs += sOuterSplit;
+        sBorderAttrs += "LeftBorder:Color=" +
+            OUString::number( static_cast<sal_Int32>(aLeftBorder.Color) ) +
+            sInnerSplit +
+            "InnerLineWidth=" +
+            OUString::number( static_cast<sal_Int32>(aLeftBorder.InnerLineWidth) ) +
+            sInnerSplit +
+            "OuterLineWidth=" +
+            OUString::number( static_cast<sal_Int32>(aLeftBorder.OuterLineWidth) ) +
+            sInnerSplit +
+            "LineDistance=" +
+            OUString::number( static_cast<sal_Int32>(aLeftBorder.LineDistance) ) +
+            sOuterSplit;
     }
     //right border
     if ( aRightBorder.InnerLineWidth == 0 && aRightBorder.OuterLineWidth == 0 )
@@ -548,18 +548,18 @@ OUString ScAccessibleCellBase::getBorderAttrs()
     }
     else
     {
-        sBorderAttrs += "RightBorder:Color=";
-        sBorderAttrs += OUString::number( static_cast<sal_Int32>(aRightBorder.Color) );
-        sBorderAttrs += sInnerSplit;
-        sBorderAttrs += "InnerLineWidth=";
-        sBorderAttrs += OUString::number( static_cast<sal_Int32>(aRightBorder.InnerLineWidth) );
-        sBorderAttrs += sInnerSplit;
-        sBorderAttrs += "OuterLineWidth=";
-        sBorderAttrs += OUString::number( static_cast<sal_Int32>(aRightBorder.OuterLineWidth) );
-        sBorderAttrs += sInnerSplit;
-        sBorderAttrs += "LineDistance=";
-        sBorderAttrs += OUString::number( static_cast<sal_Int32>(aRightBorder.LineDistance) );
-        sBorderAttrs += sOuterSplit;
+        sBorderAttrs += "RightBorder:Color=" +
+            OUString::number( static_cast<sal_Int32>(aRightBorder.Color) ) +
+            sInnerSplit +
+            "InnerLineWidth=" +
+            OUString::number( static_cast<sal_Int32>(aRightBorder.InnerLineWidth) ) +
+            sInnerSplit +
+            "OuterLineWidth=" +
+            OUString::number( static_cast<sal_Int32>(aRightBorder.OuterLineWidth) ) +
+            sInnerSplit +
+            "LineDistance=" +
+            OUString::number( static_cast<sal_Int32>(aRightBorder.LineDistance) ) +
+            sOuterSplit;
     }
     return sBorderAttrs;
 }
diff --git a/sc/source/ui/Accessibility/AccessibleDocument.cxx b/sc/source/ui/Accessibility/AccessibleDocument.cxx
index af2312c18e3a..85a626ac6c91 100644
--- a/sc/source/ui/Accessibility/AccessibleDocument.cxx
+++ b/sc/source/ui/Accessibility/AccessibleDocument.cxx
@@ -2224,8 +2224,7 @@ uno::Any SAL_CALL ScAccessibleDocument::getExtendedAttributes()
     sName = "page-name:";
     sValue = sName + sSheetName ;
     sName = ";page-number:";
-    sValue += sName;
-    sValue += OUString::number(sheetIndex+1) ;
+    sValue += sName + OUString::number(sheetIndex+1) ;
     sName = ";total-pages:";
     sValue += sName;
     sValue += OUString::number(GetDocument()->GetTableCount());
diff --git a/sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx b/sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx
index 5d8764469b83..a6d7f5f08169 100644
--- a/sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx
+++ b/sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx
@@ -1502,8 +1502,7 @@ OUString ScAccessibleDocumentPagePreview::getAccessibleName()
 
     if (!aFileName.isEmpty())
     {
-        aName = aFileName + " - " + aName;
-        aName += ScResId(STR_ACC_DOC_PREVIEW_SUFFIX);
+        aName = aFileName + " - " + aName + ScResId(STR_ACC_DOC_PREVIEW_SUFFIX);
 
     }
 
diff --git a/sc/source/ui/miscdlgs/crnrdlg.cxx b/sc/source/ui/miscdlgs/crnrdlg.cxx
index ccd9076570a4..32d1d591b35a 100644
--- a/sc/source/ui/miscdlgs/crnrdlg.cxx
+++ b/sc/source/ui/miscdlgs/crnrdlg.cxx
@@ -364,11 +364,8 @@ void ScColRowNameRangesDlg::UpdateNames()
     OUString rString;
     const ScAddress::Details aDetails(pDoc->GetAddressConvention());
 
-    OUString aString;
     OUString strDelim(" --- ");
-    aString = strDelim;
-    aString += ScResId( STR_COLUMN );
-    aString += strDelim;
+    OUString aString = strDelim + ScResId( STR_COLUMN ) + strDelim;
     m_xLbRange->append(OUString::number(nEntryDataDelim), aString);
     if ( (nCount = xColNameRanges->size()) > 0 )
     {
@@ -407,9 +404,7 @@ void ScColRowNameRangesDlg::UpdateNames()
             m_xLbRange->append(OUString::number(nEntryDataDelim), aInsStr);
         }
     }
-    aString = strDelim;
-    aString += ScResId( STR_ROW );
-    aString += strDelim;
+    aString = strDelim + ScResId( STR_ROW ) + strDelim;
     m_xLbRange->append(OUString::number(nEntryDataDelim), aString);
     if ( (nCount = xRowNameRanges->size()) > 0 )
     {
diff --git a/sc/source/ui/miscdlgs/mvtabdlg.cxx b/sc/source/ui/miscdlgs/mvtabdlg.cxx
index 12652b6b7e9c..05ad987fa64b 100644
--- a/sc/source/ui/miscdlgs/mvtabdlg.cxx
+++ b/sc/source/ui/miscdlgs/mvtabdlg.cxx
@@ -215,8 +215,7 @@ void ScMoveTableDlg::InitDocListBox()
             if ( pScSh == SfxObjectShell::Current() )
             {
                 mnCurrentDocPos = nSelPos = i;
-                aEntryName += " ";
-                aEntryName += msCurrentDoc;
+                aEntryName += " " + msCurrentDoc;
             }
 
             OUString sId(OUString::number(reinterpret_cast<sal_uInt64>(&pScSh->GetDocument())));
diff --git a/sc/source/ui/miscdlgs/sharedocdlg.cxx b/sc/source/ui/miscdlgs/sharedocdlg.cxx
index 42fce41bff06..34d104f37c22 100644
--- a/sc/source/ui/miscdlgs/sharedocdlg.cxx
+++ b/sc/source/ui/miscdlgs/sharedocdlg.cxx
@@ -188,8 +188,7 @@ void ScShareDocumentDlg::UpdateView()
             // unknown user name
             aUser = m_aStrUnknownUser;
         }
-        aUser += " ";
-        aUser += m_aStrExclusiveAccess;
+        aUser += " " + m_aStrExclusiveAccess;
 
         uno::Reference<document::XDocumentPropertiesSupplier> xDPS(mpDocShell->GetModel(), uno::UNO_QUERY_THROW);
         uno::Reference<document::XDocumentProperties> xDocProps = xDPS->getDocumentProperties();
diff --git a/sc/source/ui/miscdlgs/solveroptions.cxx b/sc/source/ui/miscdlgs/solveroptions.cxx
index 66115e8eeca2..33cfc826fd06 100644
--- a/sc/source/ui/miscdlgs/solveroptions.cxx
+++ b/sc/source/ui/miscdlgs/solveroptions.cxx
@@ -198,8 +198,7 @@ void ScSolverOptionsDialog::FillListBox()
                 if (aValue >>= fDoubleValue)
                     m_aOptions.back()->SetDoubleValue(fDoubleValue);
 
-                OUString sTxt(aVisName);
-                sTxt += ": ";
+                OUString sTxt = aVisName + ": ";
                 sTxt += rtl::math::doubleToUString(fDoubleValue,
                     rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max,
                     ScGlobal::GetpLocaleData()->getNumDecimalSep()[0], true );
@@ -212,9 +211,7 @@ void ScSolverOptionsDialog::FillListBox()
                 if (aValue >>= nIntValue)
                     m_aOptions.back()->SetIntValue(nIntValue);
 
-                OUString sTxt(aVisName);
-                sTxt += ": ";
-                sTxt += OUString::number(nIntValue);
+                OUString sTxt = aVisName + ": " + OUString::number(nIntValue);
 
                 m_xLbSettings->set_text(nPos, sTxt, 1);
             }
diff --git a/sc/source/ui/navipi/navipi.cxx b/sc/source/ui/navipi/navipi.cxx
index 755856c6a961..3b27a6b4ad5c 100644
--- a/sc/source/ui/navipi/navipi.cxx
+++ b/sc/source/ui/navipi/navipi.cxx
@@ -981,8 +981,7 @@ void ScNavigatorDlg::GetDocNames( const OUString* pManualSel )
     OUString aHidden =  aLbEntries->GetHiddenTitle();
     if (!aHidden.isEmpty())
     {
-        OUString aEntry = aHidden;
-        aEntry += aStrHidden;
+        OUString aEntry = aHidden + aStrHidden;
         aLbDocuments->InsertEntry( aEntry );
 
         if ( pManualSel && aHidden == *pManualSel )
diff --git a/sc/source/ui/pagedlg/scuitphfedit.cxx b/sc/source/ui/pagedlg/scuitphfedit.cxx
index 539aa5955a1c..2d22892668b9 100644
--- a/sc/source/ui/pagedlg/scuitphfedit.cxx
+++ b/sc/source/ui/pagedlg/scuitphfedit.cxx
@@ -226,8 +226,8 @@ void ScHFEditPage::InitPreDefinedList()
     OUString aUserNameEntry(aUserOpt.GetFirstName() + " " + aUserOpt.GetLastName() + ", " + aPageEntry + ", " + aDateFieldValue);
     m_xLbDefined->append_text( aUserNameEntry);
 
-    OUString aCreatedByEntry( m_xFtCreatedBy->get_label() + " " + aUserOpt.GetFirstName() + " " + aUserOpt.GetLastName() + ", ");
-    aCreatedByEntry += aDateFieldValue + ", " + aPageEntry;
+    OUString aCreatedByEntry = m_xFtCreatedBy->get_label() + " " + aUserOpt.GetFirstName() + " " + aUserOpt.GetLastName() + ", " +
+        aDateFieldValue + ", " + aPageEntry;
     m_xLbDefined->append_text( aCreatedByEntry);
 }
 
diff --git a/sc/source/ui/pagedlg/tphf.cxx b/sc/source/ui/pagedlg/tphf.cxx
index dc3d2083ed73..f63d7e884726 100644
--- a/sc/source/ui/pagedlg/tphf.cxx
+++ b/sc/source/ui/pagedlg/tphf.cxx
@@ -193,8 +193,8 @@ IMPL_LINK_NOARG(ScHFPage, BtnHdl, weld::Button&, void)
         SvxNumType eNumType = aDataSet.Get(ATTR_PAGE).GetNumType();
         static_cast<ScHFEditPage*>(aDlg.GetTabPage())->SetNumType(eNumType);
 
-        aText += " (" + ScResId( STR_PAGESTYLE );
-        aText += ": " + aStrPageStyle + ")";
+        aText += " (" + ScResId( STR_PAGESTYLE ) +
+            ": " + aStrPageStyle + ")";
 
         aDlg.set_title(aText);
 
diff --git a/sc/source/ui/sidebar/NumberFormatPropertyPanel.cxx b/sc/source/ui/sidebar/NumberFormatPropertyPanel.cxx
index 6fbe5d3d579d..f97bba82783c 100644
--- a/sc/source/ui/sidebar/NumberFormatPropertyPanel.cxx
+++ b/sc/source/ui/sidebar/NumberFormatPropertyPanel.cxx
@@ -140,14 +140,14 @@ IMPL_LINK_NOARG( NumberFormatPropertyPanel, NumFormatValueHdl, Edit&, void )
     OUString sPrecision = OUString::number(nPrecision);
     OUString sLeadZeroes = OUString::number(nLeadZeroes);
 
-    aFormat += sThousand;
-    aFormat += sBreak;
-    aFormat += sNegRed;
-    aFormat += sBreak;
-    aFormat += sPrecision;
-    aFormat += sBreak;
-    aFormat += sLeadZeroes;
-    aFormat += sBreak;
+    aFormat += sThousand +
+        sBreak +
+        sNegRed +
+        sBreak +
+        sPrecision +
+        sBreak +
+        sLeadZeroes +
+        sBreak;
 
     SfxStringItem aItem( SID_NUMBER_FORMAT,  aFormat );
     GetBindings()->GetDispatcher()->ExecuteList(SID_NUMBER_FORMAT,
diff --git a/sc/source/ui/unoobj/chart2uno.cxx b/sc/source/ui/unoobj/chart2uno.cxx
index 2aa0fb870c19..68bdd4e86ce4 100644
--- a/sc/source/ui/unoobj/chart2uno.cxx
+++ b/sc/source/ui/unoobj/chart2uno.cxx
@@ -3019,8 +3019,7 @@ public:
             {
                 if ( meOrigin != chart2::data::LabelOrigin_LONG_SIDE)
                 {
-                    OUString aString = ScResId(STR_COLUMN);
-                    aString += " ";
+                    OUString aString = ScResId(STR_COLUMN) + " ";
                     ScAddress aPos( nCol, 0, 0 );
                     OUString aColStr(aPos.Format(ScRefFlags::COL_VALID));
                     aString += aColStr;
diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx
index 46599d873f71..58fdad8890f2 100644
--- a/sc/source/ui/unoobj/docuno.cxx
+++ b/sc/source/ui/unoobj/docuno.cxx
@@ -544,17 +544,16 @@ int ScModelObj::getPart()
 
 OUString ScModelObj::getPartInfo( int nPart )
 {
-    OUString aPartInfo;
     ScViewData* pViewData = ScDocShell::GetViewData();
     const bool bIsVisible = pViewData->GetDocument()->IsVisible(nPart);
     //FIXME: Implement IsSelected().
     const bool bIsSelected = false; //pViewData->GetDocument()->IsSelected(nPart);
 
-    aPartInfo += "{ \"visible\": \"";
-    aPartInfo += OUString::number(static_cast<unsigned int>(bIsVisible));
-    aPartInfo += "\", \"selected\": \"";
-    aPartInfo += OUString::number(static_cast<unsigned int>(bIsSelected));
-    aPartInfo += "\" }";
+    OUString aPartInfo = "{ \"visible\": \"" +
+        OUString::number(static_cast<unsigned int>(bIsVisible)) +
+        "\", \"selected\": \"" +
+        OUString::number(static_cast<unsigned int>(bIsSelected)) +
+        "\" }";
     return aPartInfo;
 }
 
diff --git a/sc/source/ui/unoobj/fmtuno.cxx b/sc/source/ui/unoobj/fmtuno.cxx
index f198c75f09e3..2d0dc66b29cd 100644
--- a/sc/source/ui/unoobj/fmtuno.cxx
+++ b/sc/source/ui/unoobj/fmtuno.cxx
@@ -397,8 +397,7 @@ sal_Bool SAL_CALL ScTableConditionalFormat::hasElements()
 
 static OUString lcl_GetEntryNameFromIndex( sal_Int32 nIndex )
 {
-    OUString aRet( "Entry" );
-    aRet += OUString::number( nIndex );
+    OUString aRet = "Entry" + OUString::number( nIndex );
     return aRet;
 }
 
diff --git a/sc/source/ui/view/formatsh.cxx b/sc/source/ui/view/formatsh.cxx
index a28f95f4d2cb..79576bede62a 100644
--- a/sc/source/ui/view/formatsh.cxx
+++ b/sc/source/ui/view/formatsh.cxx
@@ -2550,14 +2550,14 @@ void ScFormatShell::GetNumFormatState( SfxItemSet& rSet )
                         const OUString sPrecision = OUString::number(nPrecision);
                         const OUString sLeadZeroes = OUString::number(nLeadZeroes);
 
-                        aFormat += sThousand;
-                        aFormat += sBreak;
-                        aFormat += sNegRed;
-                        aFormat += sBreak;
-                        aFormat += sPrecision;
-                        aFormat += sBreak;
-                        aFormat += sLeadZeroes;
-                        aFormat += sBreak;
+                        aFormat += sThousand +
+                            sBreak +
+                            sNegRed +
+                            sBreak +
+                            sPrecision +
+                            sBreak +
+                            sLeadZeroes +
+                            sBreak;
 
                         rSet.Put(SfxStringItem(nWhich, aFormat));
                     }
diff --git a/sc/source/ui/view/tabview.cxx b/sc/source/ui/view/tabview.cxx
index 50a026eb8007..baf486d514a5 100644
--- a/sc/source/ui/view/tabview.cxx
+++ b/sc/source/ui/view/tabview.cxx
@@ -2424,12 +2424,11 @@ void lcl_createGroupsData(
 
                 bool bGroupHidden = pEntry->IsHidden();
 
-                OUString aGroupData;
-                aGroupData += "{ \"level\": \"" + OUString::number(nLevel + 1) + "\", ";
-                aGroupData += "\"index\": \"" + OUString::number(nIndex) + "\", ";
-                aGroupData += "\"startPos\": \"" + OUString::number(rGroupStartPositions[nLevel]) + "\", ";
-                aGroupData += "\"endPos\": \"" + OUString::number(nTotalTwips) + "\", ";
-                aGroupData += "\"hidden\": \"" + OUString::number(bGroupHidden ? 1 : 0) + "\" }";
+                OUString aGroupData = "{ \"level\": \"" + OUString::number(nLevel + 1) + "\", "
+                    "\"index\": \"" + OUString::number(nIndex) + "\", "
+                    "\"startPos\": \"" + OUString::number(rGroupStartPositions[nLevel]) + "\", "
+                    "\"endPos\": \"" + OUString::number(nTotalTwips) + "\", "
+                    "\"hidden\": \"" + OUString::number(bGroupHidden ? 1 : 0) + "\" }";
 
                 rGroupsBuffer += aGroupData;
 
@@ -2593,8 +2592,7 @@ OUString ScTabView::getRowColumnHeaders(const tools::Rectangle& rRectangle)
         aBuffer.append("\"groupLevels\": \"").append(OUString::number(nRowGroupDepth)).append("\" }");
     }
 
-    OUString aRowGroupsBuffer;
-    aRowGroupsBuffer += "\"rowGroups\": [\n";
+    OUString aRowGroupsBuffer = "\"rowGroups\": [\n";
     std::vector<long> aRowGroupStartPositions(nRowGroupDepth, -nTotalPixels);
     long nPrevSizePx = -1;
     for (SCROW nRow = nStartRow + 1; nRow <= nEndRow; ++nRow)
@@ -2737,8 +2735,7 @@ OUString ScTabView::getRowColumnHeaders(const tools::Rectangle& rRectangle)
         aBuffer.append("\"groupLevels\": \"").append(OUString::number(nColGroupDepth)).append("\" }");
     }
 
-    OUString aColGroupsBuffer;
-    aColGroupsBuffer += "\"columnGroups\": [\n";
+    OUString aColGroupsBuffer = "\"columnGroups\": [\n";
     std::vector<long> aColGroupStartPositions(nColGroupDepth, -nTotalPixels);
     nPrevSizePx = -1;
     for (SCCOL nCol = nStartCol + 1; nCol <= nEndCol; ++nCol)
diff --git a/sc/source/ui/view/tabvwsha.cxx b/sc/source/ui/view/tabvwsha.cxx
index 4d7b021af7c0..76b7e288c803 100644
--- a/sc/source/ui/view/tabvwsha.cxx
+++ b/sc/source/ui/view/tabvwsha.cxx
@@ -111,8 +111,7 @@ bool ScTabViewShell::GetFunction( OUString& rFuncStr, FormulaError nErrCode )
             SCROW       nPosY       = rViewData.GetCurY();
             SCTAB       nTab        = rViewData.GetTabNo();
 
-            OUString aStr = ScResId(pGlobStrId);
-            aStr += ": ";
+            OUString aStr = ScResId(pGlobStrId) + ": ";
 
             ScAddress aCursor( nPosX, nPosY, nTab );
             double nVal;
diff --git a/sc/source/ui/view/viewfun2.cxx b/sc/source/ui/view/viewfun2.cxx
index ac926e722bb5..e997d63b11af 100644
--- a/sc/source/ui/view/viewfun2.cxx
+++ b/sc/source/ui/view/viewfun2.cxx
@@ -2138,16 +2138,16 @@ void ScViewFunc::Solve( const ScSolveParam& rParam )
 
         if ( bExact )
         {
-            aMsgStr += ScResId( STR_MSSG_SOLVE_0 );
-            aMsgStr += aResStr;
-            aMsgStr += ScResId( STR_MSSG_SOLVE_1 );
+            aMsgStr += ScResId( STR_MSSG_SOLVE_0 ) +
+                aResStr +
+                ScResId( STR_MSSG_SOLVE_1 );
         }
         else
         {
-            aMsgStr  = ScResId( STR_MSSG_SOLVE_2 );
-            aMsgStr += ScResId( STR_MSSG_SOLVE_3 );
-            aMsgStr += aResStr ;
-            aMsgStr += ScResId( STR_MSSG_SOLVE_4 );
+            aMsgStr  = ScResId( STR_MSSG_SOLVE_2 ) +
+                ScResId( STR_MSSG_SOLVE_3 ) +
+                aResStr +
+                ScResId( STR_MSSG_SOLVE_4 );
         }
 
         std::unique_ptr<weld::MessageDialog> xBox(Application::CreateMessageDialog(GetViewData().GetDialogParent(),
diff --git a/sc/source/ui/view/viewfunc.cxx b/sc/source/ui/view/viewfunc.cxx
index 129f791039dc..5c3d28ad871f 100644
--- a/sc/source/ui/view/viewfunc.cxx
+++ b/sc/source/ui/view/viewfunc.cxx
@@ -451,8 +451,7 @@ void ScViewFunc::EnterData( SCCOL nCol, SCROW nRow, SCTAB nTab,
                     nResult = RET_NO;   // empty formula, just '='
                 else
                 {
-                    OUString aMessage( ScResId( SCSTR_FORMULA_AUTOCORRECTION ) );
-                    aMessage += aCorrectedFormula;
+                    OUString aMessage = ScResId( SCSTR_FORMULA_AUTOCORRECTION ) + aCorrectedFormula;
 
                     std::unique_ptr<weld::MessageDialog> xQueryBox(Application::CreateMessageDialog(GetViewData().GetDialogParent(),
                                                                    VclMessageType::Question, VclButtonsType::YesNo,
diff --git a/scaddins/source/datefunc/datefunc.cxx b/scaddins/source/datefunc/datefunc.cxx
index 8f3832869266..595ae5dd279a 100644
--- a/scaddins/source/datefunc/datefunc.cxx
+++ b/scaddins/source/datefunc/datefunc.cxx
@@ -236,8 +236,7 @@ OUString SAL_CALL ScaDateAddIn::getDisplayFunctionName( const OUString& aProgram
     }
     else
     {
-        aRet = "UNKNOWNFUNC_";
-        aRet += aProgrammaticName;
+        aRet = "UNKNOWNFUNC_" + aProgrammaticName;
     }
 
     return aRet;
diff --git a/scaddins/source/pricing/pricing.cxx b/scaddins/source/pricing/pricing.cxx
index 1d0fb69a1011..1b698fd0ec49 100644
--- a/scaddins/source/pricing/pricing.cxx
+++ b/scaddins/source/pricing/pricing.cxx
@@ -238,8 +238,7 @@ OUString SAL_CALL ScaPricingAddIn::getDisplayFunctionName( const OUString& aProg
     }
     else
     {
-        aRet = "UNKNOWNFUNC_";
-        aRet += aProgrammaticName;
+        aRet = "UNKNOWNFUNC_" + aProgrammaticName;
     }
 
     return aRet;
diff --git a/scripting/source/dlgprov/dlgevtatt.cxx b/scripting/source/dlgprov/dlgevtatt.cxx
index 5ec4f6fb4d8b..5523881fd59f 100644
--- a/scripting/source/dlgprov/dlgevtatt.cxx
+++ b/scripting/source/dlgprov/dlgevtatt.cxx
@@ -613,9 +613,7 @@ namespace dlgprov
 
             OUString aOUFinal;
             aOUFinal += aRes.copy( 0, nIndex );
-            aOUFinal += aQuoteChar;
-            aOUFinal += aMethodName;
-            aOUFinal += aQuoteChar;
+            aOUFinal += aQuoteChar + aMethodName + aQuoteChar;
             aOUFinal += aRes.copy( nIndex + 2 );
 
             std::unique_ptr<weld::MessageDialog> xBox(Application::CreateMessageDialog(nullptr,
diff --git a/scripting/source/stringresource/stringresource.cxx b/scripting/source/stringresource/stringresource.cxx
index 0387890474fa..58a4bf3da3dd 100644
--- a/scripting/source/stringresource/stringresource.cxx
+++ b/scripting/source/stringresource/stringresource.cxx
@@ -1628,21 +1628,18 @@ static OUString implGetNameScemeForLocaleItem( const LocaleItem* pLocaleItem )
         "StringResourcePersistenceImpl::implGetNameScemeForLocaleItem(): pLocaleItem == NULL" );
     Locale aLocale = pLocaleItem->m_locale;
 
-    OUString aRetStr = aUnder;
-    aRetStr += aLocale.Language;
+    OUString aRetStr = aUnder + aLocale.Language;
 
     OUString aCountry  = aLocale.Country;
     if( !aCountry.isEmpty() )
     {
-        aRetStr += aUnder;
-        aRetStr += aCountry;
+        aRetStr += aUnder + aCountry;
     }
 
     OUString aVariant  = aLocale.Variant;
     if( !aVariant.isEmpty() )
     {
-        aRetStr += aUnder;
-        aRetStr += aVariant;
+        aRetStr += aUnder + aVariant;
     }
     return aRetStr;
 }
commit 03516c505eced337149782a67b2ad98c246929b3
Author:     Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Mon Sep 30 15:10:42 2019 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Tue Oct 1 08:26:49 2019 +0200

    loplugin:stringadd in helpcompiler..oox
    
    Change-Id: I858870d883de10a673d7ce2798bda8c8f511cee5
    Reviewed-on: https://gerrit.libreoffice.org/79889
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/helpcompiler/source/HelpLinker.cxx b/helpcompiler/source/HelpLinker.cxx
index b5a488f3dbc0..44444902eb71 100644
--- a/helpcompiler/source/HelpLinker.cxx
+++ b/helpcompiler/source/HelpLinker.cxx
@@ -737,8 +737,7 @@ void HelpLinker::main( std::vector<std::string> &args,
     {
         //This part is used when compileExtensionHelp is called from the extensions manager.
         //If extension help is compiled using helplinker in the build process
-        OUString aIdxCaptionPathFileURL( *pOfficeHelpPath );
-        aIdxCaptionPathFileURL += "/idxcaption.xsl";
+        OUString aIdxCaptionPathFileURL = *pOfficeHelpPath + "/idxcaption.xsl";
 
         OString aOStr_IdxCaptionPathFileURL( OUStringToOString
             ( aIdxCaptionPathFileURL, fs::getThreadTextEncoding() ) );
@@ -762,8 +761,7 @@ void HelpLinker::main( std::vector<std::string> &args,
         //If extension help is compiled using helplinker in the build process
         //then  -idxcontent must be supplied
         //This part is used when compileExtensionHelp is called from the extensions manager.
-        OUString aIdxContentPathFileURL( *pOfficeHelpPath );
-        aIdxContentPathFileURL += "/idxcontent.xsl";
+        OUString aIdxContentPathFileURL = *pOfficeHelpPath + "/idxcontent.xsl";
 
         OString aOStr_IdxContentPathFileURL( OUStringToOString
             ( aIdxContentPathFileURL, fs::getThreadTextEncoding() ) );
diff --git a/hwpfilter/source/hwpreader.cxx b/hwpfilter/source/hwpreader.cxx
index b7978a201936..4144d20e0bde 100644
--- a/hwpfilter/source/hwpreader.cxx
+++ b/hwpfilter/source/hwpreader.cxx
@@ -2656,11 +2656,11 @@ void HwpReader::makeFStyle(FBoxStyle * fstyle)
     else if( fstyle->boxtype == 'G' )
     {
         if( fstyle->margin[1][0] || fstyle->margin[1][1] || fstyle->margin[1][2] || fstyle->margin[1][3] ){
-             OUString clip = "rect(";
-             clip += Double2Str(WTMM(-fstyle->margin[1][0]) ) + "mm ";
-             clip += Double2Str(WTMM(-fstyle->margin[1][1]) ) + "mm ";
-             clip += Double2Str(WTMM(-fstyle->margin[1][2]) ) + "mm ";
-             clip += Double2Str(WTMM(-fstyle->margin[1][3]) ) + "mm)";
+             OUString clip = "rect(" +
+                Double2Str(WTMM(-fstyle->margin[1][0]) ) + "mm " +
+                Double2Str(WTMM(-fstyle->margin[1][1]) ) + "mm " +
+                Double2Str(WTMM(-fstyle->margin[1][2]) ) + "mm " +
+                Double2Str(WTMM(-fstyle->margin[1][3]) ) + "mm)";
              padd("style:mirror", sXML_CDATA, "none");
              padd("fo:clip", sXML_CDATA, clip);
         }
diff --git a/i18nlangtag/source/languagetag/languagetag.cxx b/i18nlangtag/source/languagetag/languagetag.cxx
index d0ffdb58cd81..7f580dfc9dd3 100644
--- a/i18nlangtag/source/languagetag/languagetag.cxx
+++ b/i18nlangtag/source/languagetag/languagetag.cxx
@@ -204,8 +204,7 @@ void LiblangtagDataRef::setupDataPath()
 
     // Check if data is in our own installation, else assume system
     // installation.
-    OUString aData( aURL);
-    aData += "/language-subtag-registry.xml";
+    OUString aData = aURL + "/language-subtag-registry.xml";
     osl::DirectoryItem aDirItem;
     if (osl::DirectoryItem::get( aData, aDirItem) == osl::DirectoryItem::E_None)
     {
diff --git a/idlc/source/options.cxx b/idlc/source/options.cxx
index 4f49cd202de4..bfd273ace1ba 100644
--- a/idlc/source/options.cxx
+++ b/idlc/source/options.cxx
@@ -371,33 +371,33 @@ bool Options::initOptions(std::vector< std::string > & rArgs)
 
 OString Options::prepareHelp() const
 {
-    OString help("\nusing: ");
-    help += m_program + " [-options] <file_1> ... <file_n> | @<filename> | -stdin\n";
-    help += "    <file_n>    = file_n specifies one or more idl files.\n";
-    help += "                  Only files with the extension '.idl' are valid.\n";
-    help += "    @<filename> = filename specifies the name of a command file.\n";
-    help += "    -stdin      = read idl file from standard input.\n";
-    help += "  Options:\n";
-    help += "    -O<path>    = path specifies the output directory.\n";
-    help += "                  The generated output is a registry file with\n";
-    help += "                  the same name as the idl input file (or 'stdin'\n";
-    help += "                  for -stdin).\n";
-    help += "    -M<path>    = path specifies the output directory for deps.\n";
-    help += "                  Generate GNU make dependency files with the\n";
-    help += "                  same name as the idl input file.\n";
-    help += "    -I<path>    = path specifies a directory where include\n";
-    help += "                  files will be searched by the preprocessor.\n";
-    help += "                  Multiple directories can be combined with ';'.\n";
-    help += "    -D<name>    = name defines a macro for the preprocessor.\n";
-    help += "    -C          = generate complete type information, including\n";
-    help += "                  documentation.\n";
-    help += "    -cid        = check if identifiers fulfill the UNO naming\n";
-    help += "                  requirements.\n";
-    help += "    -quiet      = no output.\n";
-    help += "    -verbose    = verbose output.\n";
-    help += "    -w          = display warning messages.\n";
-    help += "    -we         = treat warnings as errors.\n";
-    help += "    -h|-?       = print this help message and exit.\n\n";
+    OString help = "\nusing: " +
+        m_program + " [-options] <file_1> ... <file_n> | @<filename> | -stdin\n"
+         "    <file_n>    = file_n specifies one or more idl files.\n"
+         "                  Only files with the extension '.idl' are valid.\n"
+         "    @<filename> = filename specifies the name of a command file.\n"
+         "    -stdin      = read idl file from standard input.\n"
+         "  Options:\n"
+         "    -O<path>    = path specifies the output directory.\n"
+         "                  The generated output is a registry file with\n"
+         "                  the same name as the idl input file (or 'stdin'\n"
+         "                  for -stdin).\n"
+         "    -M<path>    = path specifies the output directory for deps.\n"
+         "                  Generate GNU make dependency files with the\n"
+         "                  same name as the idl input file.\n"
+         "    -I<path>    = path specifies a directory where include\n"
+         "                  files will be searched by the preprocessor.\n"
+         "                  Multiple directories can be combined with ';'.\n"
+         "    -D<name>    = name defines a macro for the preprocessor.\n"
+         "    -C          = generate complete type information, including\n"
+         "                  documentation.\n"
+         "    -cid        = check if identifiers fulfill the UNO naming\n"
+         "                  requirements.\n"
+         "    -quiet      = no output.\n"
+         "    -verbose    = verbose output.\n"
+         "    -w          = display warning messages.\n"
+         "    -we         = treat warnings as errors.\n"
+         "    -h|-?       = print this help message and exit.\n\n";
     help += prepareVersion();
 
     return help;
@@ -405,9 +405,7 @@ OString Options::prepareHelp() const
 
 OString Options::prepareVersion() const
 {
-    OString version(m_program);
-    version += " Version 1.1\n\n";
-    return version;
+    return m_program + " Version 1.1\n\n";
 }
 
 
diff --git a/io/source/acceptor/acceptor.cxx b/io/source/acceptor/acceptor.cxx
index 0606c4f1f248..217c23b9a845 100644
--- a/io/source/acceptor/acceptor.cxx
+++ b/io/source/acceptor/acceptor.cxx
@@ -92,11 +92,7 @@ namespace io_acceptor
             : m_pFlag( pFlag )
             {
                   if( *m_pFlag )
-                  {
-                      OUString sMessage( "AlreadyAcceptingException :" );
-                      sMessage += sConnectionDescription;
-                      throw AlreadyAcceptingException( sMessage );
-                  }
+                      throw AlreadyAcceptingException( "AlreadyAcceptingException :" + sConnectionDescription );
                   *m_pFlag = true;
             }
         ~BeingInAccept()
@@ -186,12 +182,7 @@ namespace io_acceptor
                     _xAcceptor.set(_xSMgr->createInstanceWithContext(delegatee, _xCtx), UNO_QUERY);
 
                     if(!_xAcceptor.is())
-                    {
-                        OUString message("Acceptor: unknown delegatee ");
-                        message += delegatee;
-
-                        throw ConnectionSetupException(message);
-                    }
+                        throw ConnectionSetupException("Acceptor: unknown delegatee " + delegatee);
                 }
             }
             catch (const rtl::MalformedUriException & rEx)
diff --git a/io/source/connector/connector.cxx b/io/source/connector/connector.cxx
index 1c9619c26352..c21a34d17eac 100644
--- a/io/source/connector/connector.cxx
+++ b/io/source/connector/connector.cxx
@@ -114,8 +114,7 @@ namespace stoc_connector
                 {
                     OUString sMessage("Connector : couldn't connect to socket (");
                     OUString sError = pConn->m_socket.getErrorAsString();
-                    sMessage += sError;
-                    sMessage += ")";
+                    sMessage += sError + ")";
                     throw NoConnectException( sMessage );
                 }
                 // we enable tcpNoDelay for loopback connections because
@@ -137,12 +136,7 @@ namespace stoc_connector
                     _xSMgr->createInstanceWithContext(delegatee, _xCtx), UNO_QUERY );
 
                 if(!xConnector.is())
-                {
-                    OUString message("Connector: unknown delegatee ");
-                    message += delegatee;
-
-                    throw ConnectionSetupException(message);
-                }
+                    throw ConnectionSetupException("Connector: unknown delegatee " + delegatee);
 
                 sal_Int32 index = sConnectionDescription.indexOf(',');
 
diff --git a/jvmfwk/source/fwkbase.cxx b/jvmfwk/source/fwkbase.cxx
index 221e2bef9766..3e17431ebc1c 100644
--- a/jvmfwk/source/fwkbase.cxx
+++ b/jvmfwk/source/fwkbase.cxx
@@ -461,8 +461,7 @@ OString makeClassPathOption(OUString const & sUserClassPath)
     sPaths = OUStringToOString(
         sBufCP.makeStringAndClear(), osl_getThreadTextEncoding());
 
-    OString sOptionClassPath("-Djava.class.path=");
-    sOptionClassPath += sPaths;
+    OString sOptionClassPath = "-Djava.class.path=" + sPaths;
     return sOptionClassPath;
 }
 
diff --git a/l10ntools/source/helper.cxx b/l10ntools/source/helper.cxx
index e84b029869a7..84b454bde587 100644
--- a/l10ntools/source/helper.cxx
+++ b/l10ntools/source/helper.cxx
@@ -121,12 +121,9 @@ OString UnQuotHTML( const OString& rString )
 bool isWellFormedXML( OString const & text )
 {
     xmlDocPtr doc;
-    OString content;
     bool result = true;
 
-    content = "<root>";
-    content += text;
-    content += "</root>";
+    OString content = "<root>" + text + "</root>";
     doc = xmlParseMemory(content.getStr(),static_cast<int>(content.getLength()));
     if (doc == nullptr) {
         result = false;
diff --git a/l10ntools/source/merge.cxx b/l10ntools/source/merge.cxx
index aff23bafdd07..aad0388bd23d 100644
--- a/l10ntools/source/merge.cxx
+++ b/l10ntools/source/merge.cxx
@@ -322,12 +322,7 @@ OString MergeDataFile::CreateKey(const OString& rTYP, const OString& rGID,
     const OString& rLID, const OString& rFilename, bool bCaseSensitive)
 {
     static const char sStroke[] = "-";
-    OString sKey( rTYP );
-    sKey += sStroke;
-    sKey += rGID;
-    sKey += sStroke;
-    sKey += rLID;
-    sKey += sStroke;
+    OString sKey = rTYP + sStroke + rGID + sStroke + rLID + sStroke;
     sKey += lcl_NormalizeFilename(rFilename);
     if(bCaseSensitive)
         return sKey;         // officecfg case sensitive identifier
diff --git a/lingucomponent/source/languageguessing/guesslang.cxx b/lingucomponent/source/languageguessing/guesslang.cxx
index e25d51a413fa..89e16dcfd19b 100644
--- a/lingucomponent/source/languageguessing/guesslang.cxx
+++ b/lingucomponent/source/languageguessing/guesslang.cxx
@@ -191,8 +191,7 @@ void LangGuess_Impl::SetFingerPrintsDB(
 {
     //! text encoding for file name / path needs to be in the same encoding the OS uses
     OString path = OUStringToOString( filePath, osl_getThreadTextEncoding() );
-    OString conf_file_path(path);
-    conf_file_path += DEFAULT_CONF_FILE_NAME;
+    OString conf_file_path = path + DEFAULT_CONF_FILE_NAME;
 
     m_aGuesser.SetDBPath(conf_file_path.getStr(), path.getStr());
 }
diff --git a/linguistic/source/misc.cxx b/linguistic/source/misc.cxx
index a8ba9b99c3bc..3702af806e17 100644
--- a/linguistic/source/misc.cxx
+++ b/linguistic/source/misc.cxx
@@ -542,9 +542,7 @@ uno::Reference< XHyphenatedWord > RebuildHyphensAndControlChars(
             aLeft = rOrigWord.copy( 0, nPos );
             aRight = rOrigWord.copy( nPos ); // FIXME: changes at the right side
 
-            aOrigHyphenatedWord =  aLeft;
-            aOrigHyphenatedWord += aRplc;
-            aOrigHyphenatedWord += aRight;
+            aOrigHyphenatedWord =  aLeft + aRplc + aRight;
 
             nOrigHyphenPos      = sal::static_int_cast< sal_Int16 >(aLeft.getLength() +
                                   rxHyphWord->getHyphenPos() - nChgPos);
diff --git a/lotuswordpro/source/filter/lwptblformula.cxx b/lotuswordpro/source/filter/lwptblformula.cxx
index 10193e7c5d00..c6af01f6e34f 100644
--- a/lotuswordpro/source/filter/lwptblformula.cxx
+++ b/lotuswordpro/source/filter/lwptblformula.cxx
@@ -101,8 +101,7 @@ void LwpFormulaInfo::ReadText()
     std::vector<char> aBuf(nStrLen + 1);
     m_pObjStrm->QuickRead(aBuf.data(), nStrLen);
     aBuf[nStrLen]= '\0';
-    OUString aText;
-    aText += "\"";
+    OUString aText = "\"";
     aText += OUString(aBuf.data(), nStrLen, osl_getThreadTextEncoding());
     aText += "\"";
 
diff --git a/lotuswordpro/source/filter/xfilter/xffont.cxx b/lotuswordpro/source/filter/xfilter/xffont.cxx
index 96259c5dafa8..8e906af25a47 100644
--- a/lotuswordpro/source/filter/xfilter/xffont.cxx
+++ b/lotuswordpro/source/filter/xfilter/xffont.cxx
@@ -209,20 +209,17 @@ void XFFont::ToXml(IXFStream *pStrm)
     //font size:
     if( (m_nFlag & XFFONT_FLAG_SIZE) && m_nFontSize != 0 )
     {
-        OUString strSize = OUString::number(m_nFontSize);
-        strSize += "pt";
+        OUString strSize = OUString::number(m_nFontSize) + "pt";
         pAttrList->AddAttribute("fo:font-size",strSize);
     }
     if( (m_nFlag & XFFONT_FLAG_SIZE_ASIA) && m_nFontSizeAsia )
     {
-        OUString strSize = OUString::number(m_nFontSizeAsia);
-        strSize += "pt";
+        OUString strSize = OUString::number(m_nFontSizeAsia) + "pt";
         pAttrList->AddAttribute("style:font-size-asian",strSize);
     }
     if( (m_nFlag & XFFONT_FLAG_SIZE_COMPLEX) && m_nFontSizeComplex )
     {
-        OUString strSize = OUString::number(m_nFontSizeComplex);
-        strSize += "pt";
+        OUString strSize = OUString::number(m_nFontSizeComplex) + "pt";
         pAttrList->AddAttribute("style:font-size-complex",strSize);
     }
 
diff --git a/oox/source/ole/vbamodule.cxx b/oox/source/ole/vbamodule.cxx
index 889398ccfae6..b7ff5edb7aec 100644
--- a/oox/source/ole/vbamodule.cxx
+++ b/oox/source/ole/vbamodule.cxx
@@ -190,8 +190,7 @@ OUString VbaModule::readSourceCode( StorageBase& rVbaStrg ) const
                         {
                             // cntrl modifier is explicit ( but could be cntrl+shift ), parseKeyEvent
                             // will handle and uppercase letter appropriately
-                            OUString sApiKey = "^";
-                            sApiKey += sKey;
+                            OUString sApiKey = "^" + sKey;
                             try
                             {
                                 KeyEvent aKeyEvent = ooo::vba::parseKeyEvent( sApiKey );
diff --git a/oox/source/ppt/pptimport.cxx b/oox/source/ppt/pptimport.cxx
index efc10c69af97..b154196de2ac 100644
--- a/oox/source/ppt/pptimport.cxx
+++ b/oox/source/ppt/pptimport.cxx
@@ -155,8 +155,7 @@ bool PowerPointImport::importDocument()
         SfxErrorContext aContext(ERRCTX_SFX_OPENDOC, aURL.getName(INetURLObject::LAST_SEGMENT, true, INetURLObject::DecodeMechanism::WithCharset), nullptr, RID_ERRCTX);
         OUString aWarning;
         aContext.GetString(ERRCODE_NONE.MakeWarning(), aWarning);
-        aWarning += ":\n";
-        aWarning += SvxResId(RID_SVXSTR_WARN_MISSING_SMARTART);
+        aWarning += ":\n" + SvxResId(RID_SVXSTR_WARN_MISSING_SMARTART);
 
         // Show it.
         std::unique_ptr<weld::MessageDialog> xWarn(Application::CreateMessageDialog(nullptr,
commit 9b3643820bf821c8be728ed20a8cb7ed05cabef2
Author:     Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Mon Sep 30 15:10:05 2019 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Tue Oct 1 08:26:43 2019 +0200

    loplugin:stringadd in extensions..framework
    
    Change-Id: I0a0788cdbde292cae582982b0000ee6d5a2056d7
    Reviewed-on: https://gerrit.libreoffice.org/79888
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/extensions/source/abpilot/abpfinalpage.cxx b/extensions/source/abpilot/abpfinalpage.cxx
index d420a3658791..685592f8c739 100644
--- a/extensions/source/abpilot/abpfinalpage.cxx
+++ b/extensions/source/abpilot/abpfinalpage.cxx
@@ -96,8 +96,7 @@ namespace abp
         if( aURL.GetProtocol() == INetProtocol::NotValid )
         {
             OUString sPath = SvtPathOptions().GetWorkPath();
-            sPath += "/";
-            sPath += rSettings.sDataSourceName;
+            sPath += "/" + rSettings.sDataSourceName;
 
             std::shared_ptr<const SfxFilter> pFilter = lcl_getBaseFilter();
             if ( pFilter )
diff --git a/extensions/source/bibliography/bibconfig.cxx b/extensions/source/bibliography/bibconfig.cxx
index daaa3702b03b..986b9f700eae 100644
--- a/extensions/source/bibliography/bibconfig.cxx
+++ b/extensions/source/bibliography/bibconfig.cxx
@@ -35,7 +35,7 @@ using namespace ::com::sun::star::lang;
 using namespace ::com::sun::star::sdb;
 
 
-const char cDataSourceHistory[] = "DataSourceHistory";
+static const char cDataSourceHistory[] = "DataSourceHistory";
 
 Sequence<OUString> const & BibConfig::GetPropertyNames()
 {
@@ -126,10 +126,7 @@ BibConfig::BibConfig()
         Sequence<OUString> aHistoryNames(3);
         OUString* pHistoryNames = aHistoryNames.getArray();
 
-        OUString sPrefix(cDataSourceHistory);
-        sPrefix += "/";
-        sPrefix += pNodeNames[nNode];
-        sPrefix += "/";
+        OUString sPrefix = OUStringLiteral(cDataSourceHistory) + "/" + pNodeNames[nNode] + "/";
         pHistoryNames[0] = sPrefix + "DataSourceName";
         pHistoryNames[1] = sPrefix + "Command";
         pHistoryNames[2] = sPrefix + "CommandType";
@@ -152,9 +149,7 @@ BibConfig::BibConfig()
             sal_Int16 nFieldIdx = 0;
             for(sal_Int32 nField = 0; nField < aAssignmentNodeNames.getLength(); nField++)
             {
-                OUString sSubPrefix(sPrefix);
-                sSubPrefix += "/";
-                sSubPrefix += pAssignmentNodeNames[nField];
+                OUString sSubPrefix = sPrefix + "/" + pAssignmentNodeNames[nField];
                 pAssignmentPropertyNames[nFieldIdx] = sSubPrefix;
                 pAssignmentPropertyNames[nFieldIdx++] += "/ProgrammaticFieldName";
                 pAssignmentPropertyNames[nFieldIdx] = sSubPrefix;
@@ -224,10 +219,7 @@ void    BibConfig::ImplCommit()
     for(sal_Int32 i = 0; i < static_cast<sal_Int32>(mvMappings.size()); i++)
     {
         const Mapping* pMapping = mvMappings[i].get();
-        OUString sPrefix(cDataSourceHistory);
-        sPrefix += "/_";
-        sPrefix += OUString::number(i);
-        sPrefix += "/";
+        OUString sPrefix = OUStringLiteral(cDataSourceHistory) + "/_" + OUString::number(i) + "/";
         pNodeValues[nIndex].Name    = sPrefix + "DataSourceName";
         pNodeValues[nIndex++].Value <<= pMapping->sURL;
         pNodeValues[nIndex].Name    = sPrefix + "Command";
@@ -245,9 +237,7 @@ void    BibConfig::ImplCommit()
         while(nFieldAssignment < COLUMN_COUNT &&
             !pMapping->aColumnPairs[nFieldAssignment].sLogicalColumnName.isEmpty())
         {
-            OUString sSubPrefix(sPrefix);
-            sSubPrefix += "/_";
-            sSubPrefix += OUString::number(nFieldAssignment);
+            OUString sSubPrefix = sPrefix + "/_" + OUString::number(nFieldAssignment);
             Sequence< PropertyValue > aAssignmentValues(2);
             PropertyValue* pAssignmentValues = aAssignmentValues.getArray();
             pAssignmentValues[0].Name   = sSubPrefix;
diff --git a/extensions/source/bibliography/bibview.cxx b/extensions/source/bibliography/bibview.cxx
index 1664b9f3c249..4f6af6e86415 100644
--- a/extensions/source/bibliography/bibview.cxx
+++ b/extensions/source/bibliography/bibview.cxx
@@ -148,8 +148,7 @@ namespace bib
             }
             else if(bExecute)
             {
-                sErrorString += "\n";
-                sErrorString += BibResId(RID_MAP_QUESTION);
+                sErrorString += "\n" + BibResId(RID_MAP_QUESTION);
 
                 MessageWithCheck aQueryBox(GetFrameWeld());
                 aQueryBox.set_primary_text(sErrorString);
diff --git a/extensions/source/bibliography/datman.cxx b/extensions/source/bibliography/datman.cxx
index be9de7ee0866..d5d97729cfd4 100644
--- a/extensions/source/bibliography/datman.cxx
+++ b/extensions/source/bibliography/datman.cxx
@@ -849,11 +849,9 @@ void BibDataManager::startQueryWith(const OUString& rQuery)
     {
         aQueryString=aQuoteChar;
         aQueryString+=getQueryField();
-        aQueryString+=aQuoteChar;
-        aQueryString+=" like '";
+        aQueryString+=aQuoteChar + " like '";
         OUString sQuery = rQuery.replaceAll("?","_").replaceAll("*","%");
-        aQueryString += sQuery;
-        aQueryString+="%'";
+        aQueryString += sQuery + "%'";
     }
     setFilter(aQueryString);
 }
@@ -1173,8 +1171,7 @@ Reference< awt::XControlModel > BibDataManager::loadControlModel(
                     const OUString& rName, bool bForceListBox)
 {
     Reference< awt::XControlModel > xModel;
-    OUString aName("View_");
-    aName += rName;
+    OUString aName = "View_" + rName;
 
     try
     {
diff --git a/extensions/source/propctrlr/formcomponenthandler.cxx b/extensions/source/propctrlr/formcomponenthandler.cxx
index 220e915f4d24..b4eada0786fb 100644
--- a/extensions/source/propctrlr/formcomponenthandler.cxx
+++ b/extensions/source/propctrlr/formcomponenthandler.cxx
@@ -384,8 +384,7 @@ namespace pcr
                         for ( i = 0; i < nNewCount; ++i )
                         {
                             sal_Int32 nUniqueId = xStringResourceManager->getUniqueNumericId();
-                            OUString aPureIdStr = OUString::number( nUniqueId );
-                            aPureIdStr += aIdStrBase;
+                            OUString aPureIdStr = OUString::number( nUniqueId ) + aIdStrBase;
                             pNewPureIds[i] = aPureIdStr;
                             // Force usage of next Unique Id
                             xStringResourceManager->setString( aPureIdStr, OUString() );
diff --git a/extensions/source/propctrlr/standardcontrol.cxx b/extensions/source/propctrlr/standardcontrol.cxx
index b5654c89eb11..7d79231e1ecd 100644
--- a/extensions/source/propctrlr/standardcontrol.cxx
+++ b/extensions/source/propctrlr/standardcontrol.cxx
@@ -1168,10 +1168,8 @@ namespace pcr
 
             if (!aInput.isEmpty())
             {
-                aOutput += "\"";
+                aOutput += "\"" + aInput + "\"";
                 nDiff++;
-                aOutput += aInput;
-                aOutput += "\"";
             }
 
             if (nSinglePos <= aOutput.getLength())
@@ -1185,11 +1183,8 @@ namespace pcr
                     aInput=aStr.getToken(0, '\n', nIdx);
                     if (!aInput.isEmpty())
                     {
-                        aOutput += ";";
-                        aOutput += "\"";
+                        aOutput += ";\"" + aInput + "\"";
                         nDiff += 2;
-                        aOutput += aInput;
-                        aOutput += "\"";
 
                         if (nSinglePos <= aOutput.getLength())
                         {
diff --git a/extensions/source/update/check/download.cxx b/extensions/source/update/check/download.cxx
index de8b4cc8747e..73e79bcf851d 100644
--- a/extensions/source/update/check/download.cxx
+++ b/extensions/source/update/check/download.cxx
@@ -306,9 +306,7 @@ static bool curl_run(const OUString& rURL, OutData& out, const OString& aProxyHo
                 }
                 else
                 {
-                    aMessage += ":error code = ";
-                    aMessage += OString::number( nError );
-                    aMessage += " !";
+                    aMessage += ":error code = " + OString::number( nError ) + " !";
                 }
             }
             if ( !ret )
diff --git a/filter/source/msfilter/msdffimp.cxx b/filter/source/msfilter/msdffimp.cxx
index 9e303d876cf8..a6651c9d66b8 100644
--- a/filter/source/msfilter/msdffimp.cxx
+++ b/filter/source/msfilter/msdffimp.cxx
@@ -7177,8 +7177,7 @@ css::uno::Reference < css::embed::XEmbeddedObject >  SvxMSDffManager::CheckForCo
         if ( pName || pFilter )
         {
             //Reuse current ole name
-            OUString aDstStgName(MSO_OLE_Obj);
-            aDstStgName += OUString::number(nMSOleObjCntr);
+            OUString aDstStgName = MSO_OLE_Obj + OUString::number(nMSOleObjCntr);
 
             OUString aFilterName;
             if ( pFilter )
diff --git a/filter/source/msfilter/mstoolbar.cxx b/filter/source/msfilter/mstoolbar.cxx
index 7d8e25cbdeed..42ed5ee2df77 100644
--- a/filter/source/msfilter/mstoolbar.cxx
+++ b/filter/source/msfilter/mstoolbar.cxx
@@ -128,8 +128,7 @@ CustomToolBarImportHelper::createMenu( const OUString& rName, const uno::Referen
     try
     {
         uno::Reference< ui::XUIConfigurationManager > xCfgManager( getCfgManager() );
-        OUString sMenuBar("private:resource/menubar/");
-        sMenuBar += rName;
+        OUString sMenuBar = "private:resource/menubar/" + rName;
         uno::Reference< container::XIndexContainer > xPopup( xCfgManager->createSettings(), uno::UNO_SET_THROW );
         uno::Reference< beans::XPropertySet > xProps( xPopup, uno::UNO_QUERY_THROW );
         // set name for menubar
diff --git a/filter/source/msfilter/svdfppt.cxx b/filter/source/msfilter/svdfppt.cxx
index 92b8a7392dcd..9b5e83596f05 100644
--- a/filter/source/msfilter/svdfppt.cxx
+++ b/filter/source/msfilter/svdfppt.cxx
@@ -6897,8 +6897,7 @@ PPTTextObj::PPTTextObj( SvStream& rIn, SdrPowerPointImport& rSdrPowerPointImport
                                                             OUString aTarget( rHyperlink.aTarget );
                                                             if ( !rHyperlink.aConvSubString.isEmpty() )
                                                             {
-                                                                aTarget += "#";
-                                                                aTarget += rHyperlink.aConvSubString;
+                                                                aTarget += "#" + rHyperlink.aConvSubString;
                                                             }
                                                             xEntry->xField1.reset(new SvxFieldItem( SvxURLField( aTarget, OUString(), SvxURLFormat::Repr ), EE_FEATURE_FIELD ));
                                                         }
diff --git a/filter/source/svg/svgexport.cxx b/filter/source/svg/svgexport.cxx
index cce3c3abd45d..7adb1d04e9ca 100644
--- a/filter/source/svg/svgexport.cxx
+++ b/filter/source/svg/svgexport.cxx
@@ -984,8 +984,8 @@ void SVGFilter::implExportDocumentHeaderWriterOrCalc(sal_Int32 nDocX, sal_Int32
     aAttr = OUString::number( nDocHeight * 0.01 ) + "mm";
     mpSVGExport->AddAttribute( XML_NAMESPACE_NONE, "height", aAttr );
 
-    aAttr = OUString::number(nDocX) + " " + OUString::number(nDocY) + " ";
-    aAttr += OUString::number(nDocWidth) + " " + OUString::number(nDocHeight);
+    aAttr = OUString::number(nDocX) + " " + OUString::number(nDocY) + " " +
+        OUString::number(nDocWidth) + " " + OUString::number(nDocHeight);
 
     mpSVGExport->AddAttribute( XML_NAMESPACE_NONE, "viewBox", aAttr );
     mpSVGExport->AddAttribute( XML_NAMESPACE_NONE, "preserveAspectRatio", "xMidYMid" );
@@ -1651,8 +1651,7 @@ void SVGFilter::implExportDrawPages( const std::vector< Reference< css::drawing:
                     // inserted before or after a slide: that is used for some
                     // when switching from the last to the first slide.
                     const OUString & sPageId = implGetValidIDFromInterface( rxPages[i] );
-                    OUString sContainerId = "container-";
-                    sContainerId += sPageId;
+                    OUString sContainerId = "container-" + sPageId;
                     mpSVGExport->AddAttribute( XML_NAMESPACE_NONE, "id", sContainerId );
                     SvXMLElementExport aContainerExp( *mpSVGExport, XML_NAMESPACE_NONE, "g", true, true );
 
@@ -1725,8 +1724,7 @@ bool SVGFilter::implExportPage( const OUString & sPageId,
             if( rMtf.GetActionSize() )
             {
                 // background id = "bg-" + page id
-                OUString sBackgroundId = "bg-";
-                sBackgroundId += sPageId;
+                OUString sBackgroundId = "bg-" + sPageId;
                 mpSVGExport->AddAttribute( XML_NAMESPACE_NONE, "id", sBackgroundId );
 
                 // At present (LibreOffice 3.4.0) the 'IsBackgroundVisible' property is not handled
@@ -1760,8 +1758,7 @@ bool SVGFilter::implExportPage( const OUString & sPageId,
         if( bMaster )
         {
             // background objects id = "bo-" + page id
-            OUString sBackgroundObjectsId = "bo-";
-            sBackgroundObjectsId += sPageId;
+            OUString sBackgroundObjectsId = "bo-" + sPageId;
             mpSVGExport->AddAttribute( XML_NAMESPACE_NONE, "id", sBackgroundObjectsId );
             if( !mbPresentation )
             {
@@ -2473,12 +2470,10 @@ void SVGExport::writeMtf( const GDIMetaFile& rMtf )
     if( xExtDocHandler.is() && IsUseDTDString() )
         xExtDocHandler->unknown( SVG_DTD_STRING );
 
-    aAttr = OUString::number( aSize.Width() );
-    aAttr += "mm";
+    aAttr = OUString::number( aSize.Width() ) + "mm";
     AddAttribute( XML_NAMESPACE_NONE, "width", aAttr );
 
-    aAttr = OUString::number( aSize.Height() );
-    aAttr += "mm";
+    aAttr = OUString::number( aSize.Height() ) + "mm";
     AddAttribute( XML_NAMESPACE_NONE, "height", aAttr );
 
     aAttr = "0 0 ";
diff --git a/filter/source/xsltdialog/typedetectionexport.cxx b/filter/source/xsltdialog/typedetectionexport.cxx
index 65cd250790c3..7d53a7db8726 100644
--- a/filter/source/xsltdialog/typedetectionexport.cxx
+++ b/filter/source/xsltdialog/typedetectionexport.cxx
@@ -119,20 +119,13 @@ void TypeDetectionExporter::doExport( const Reference< XOutputStream >& xOS,  co
                 pAttrList->AddAttribute( sName, sCdataAttribute, filter->maType );
                 xHandler->ignorableWhitespace ( sWhiteSpace );
                 xHandler->startElement( sNode, xAttrList );
-                OUString sValue("0");
-                sValue += sComma;
-                sValue += sComma;
+                OUString sValue = "0" + sComma + sComma;
                 if( !filter->maDocType.isEmpty() )
                 {
-                    sValue += sDocTypePrefix;
-                    sValue += filter->maDocType;
+                    sValue += sDocTypePrefix + filter->maDocType;
                 }
-                sValue += sComma;
-                sValue += sComma;
-                sValue += filter->maExtension;
-                sValue += sComma;
-                sValue += OUString::number( filter->mnDocumentIconID );
-                sValue += sComma;
+                sValue += sComma + sComma + filter->maExtension + sComma +
+                    OUString::number( filter->mnDocumentIconID ) + sComma;
 
                 addProperty( xHandler, sData, sValue );
                 addLocaleProperty( xHandler, sUIName, filter->maInterfaceName );
@@ -159,39 +152,39 @@ void TypeDetectionExporter::doExport( const Reference< XOutputStream >& xOS,  co
                 xHandler->startElement( sNode, xAttrList );
                 addLocaleProperty( xHandler, sUIName, filter->maInterfaceName );
 
-                OUString sValue("0");
-                sValue += sComma;
-                sValue += filter->maType;
-                sValue += sComma;
-                sValue += filter->maDocumentService;
-                sValue += sComma;
-                sValue += sFilterAdaptorService;
-                sValue += sComma;
-                sValue += OUString::number( filter->maFlags );
-                sValue += sComma;
-                sValue += sXSLTFilterService;
-                sValue += sDelim;
-                sValue += OUString::boolean( filter->mbNeedsXSLT2 );
-                sValue += sDelim;
+                OUStringBuffer sValue("0" +
+                    sComma +
+                    filter->maType +
+                    sComma +
+                    filter->maDocumentService +
+                    sComma +
+                    sFilterAdaptorService +
+                    sComma +
+                    OUString::number( filter->maFlags ) +
+                    sComma +
+                    sXSLTFilterService +
+                    sDelim +
+                    OUString::boolean( filter->mbNeedsXSLT2 ) +
+                    sDelim);
 
                 const application_info_impl* pAppInfo = getApplicationInfo( filter->maExportService );
-                sValue += pAppInfo->maXMLImporter;
-                sValue += sDelim;
-                sValue += pAppInfo->maXMLExporter;
-                sValue += sDelim;
-
-                sValue += createRelativeURL( filter->maFilterName, filter->maImportXSLT );
-                sValue += sDelim;
-                sValue += createRelativeURL( filter->maFilterName, filter->maExportXSLT );
-                sValue += sDelim;
+                sValue.append(pAppInfo->maXMLImporter +
+                    sDelim +
+                    pAppInfo->maXMLExporter +
+                    sDelim);
+
+                sValue.append(createRelativeURL( filter->maFilterName, filter->maImportXSLT ));
+                sValue.append(sDelim);
+                sValue.append(createRelativeURL( filter->maFilterName, filter->maExportXSLT ));
+                sValue.append(sDelim);
                 // entry DTD obsolete and removed, but delimiter kept
-                sValue += sDelim;
-                sValue += filter->maComment;
-                sValue += sComma;
-                sValue += "0";
-                sValue += sComma;
-                sValue += createRelativeURL( filter->maFilterName, filter->maImportTemplate );
-                addProperty( xHandler, sData, sValue );
+                sValue.append(sDelim);
+                sValue.append(filter->maComment);
+                sValue.append(sComma);
+                sValue.append("0");
+                sValue.append(sComma);
+                sValue.append(createRelativeURL( filter->maFilterName, filter->maImportTemplate ));
+                addProperty( xHandler, sData, sValue.makeStringAndClear() );
                 xHandler->ignorableWhitespace ( sWhiteSpace );
                 xHandler->endElement( sNode );
             }
diff --git a/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx b/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
index 5f7dcc7b9039..6f81c821f113 100644
--- a/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
+++ b/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx
@@ -449,8 +449,7 @@ bool XMLFilterSettingsDialog::insertOrEdit( filter_info_impl* pNewInfo, const fi
             INetURLObject aSourceURL( pFilterEntry->maImportTemplate );
             if (!aSourceURL.GetLastName().isEmpty())
             {
-                OUString aDestURL( m_sTemplatePath );
-                aDestURL += pFilterEntry->maFilterName + "/";
+                OUString aDestURL = m_sTemplatePath + pFilterEntry->maFilterName + "/";
                 if( createDirectory( aDestURL ) )
                 {
                     aDestURL += aSourceURL.GetLastName();
@@ -851,8 +850,8 @@ void XMLFilterSettingsDialog::onSave()
         FileDialogFlags::NONE, m_xDialog.get());
 
     OUString aExtensions( "*.jar" );
-    OUString aFilterName(XsltResId(STR_FILTER_PACKAGE));
-    aFilterName += " (" + aExtensions + ")";
+    OUString aFilterName = XsltResId(STR_FILTER_PACKAGE) +
+        " (" + aExtensions + ")";
 
     aDlg.AddFilter( aFilterName, aExtensions );
 
@@ -896,8 +895,8 @@ void XMLFilterSettingsDialog::onOpen()
     FileDialogFlags::NONE, m_xDialog.get());
 
     OUString aExtensions( "*.jar" );
-    OUString aFilterName(XsltResId(STR_FILTER_PACKAGE));
-    aFilterName += " (" + aExtensions + ")";
+    OUString aFilterName = XsltResId(STR_FILTER_PACKAGE) +
+        " (" + aExtensions + ")";
 
     aDlg.AddFilter( aFilterName, aExtensions );
 
diff --git a/framework/source/accelerators/presethandler.cxx b/framework/source/accelerators/presethandler.cxx
index b81abece09c1..3b4aa1704ed7 100644
--- a/framework/source/accelerators/presethandler.cxx
+++ b/framework/source/accelerators/presethandler.cxx
@@ -479,11 +479,8 @@ void PresetHandler::copyPresetToTarget(const OUString& sPreset,
        return;
     }
 
-    OUString sPresetFile(sPreset);
-    sPresetFile += ".xml";
-
-    OUString sTargetFile(sTarget);
-    sTargetFile += ".xml";
+    OUString sPresetFile = sPreset + ".xml";
+    OUString sTargetFile = sTarget + ".xml";
 
     // remove existing elements before you try to copy the preset to that location ...
     // Otherwise w will get an ElementExistException inside copyElementTo()!

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list