sw/inc/fesh.hxx | 2 +- sw/source/core/frmedt/fetab.cxx | 40 +++++++++++++++++----------------------- sw/source/ui/shells/tabsh.cxx | 2 +- 3 files changed, 19 insertions(+), 25 deletions(-)
New commits: commit abbf6b217970bf176da552f958d974de64952e2e Author: Matteo Casalin <matteo.casa...@yahoo.com> Date: Sun Oct 6 17:35:23 2013 +0200 String to OUString Change-Id: Ie0cdb4288cee10bca9c7ea94ba3745748f4e080f diff --git a/sw/inc/fesh.hxx b/sw/inc/fesh.hxx index 0e80c84..ebd979b 100644 --- a/sw/inc/fesh.hxx +++ b/sw/inc/fesh.hxx @@ -684,7 +684,7 @@ public: sal_Bool SetColRowWidthHeight( sal_uInt16 eType, sal_uInt16 nDiff = 283 ); - sal_Bool GetAutoSum( String& rFml ) const; + sal_Bool GetAutoSum( OUString& rFml ) const; /** Phy: real page count. Virt: consider offset that may have been set by user. */ diff --git a/sw/source/core/frmedt/fetab.cxx b/sw/source/core/frmedt/fetab.cxx index 08966bc..37da874 100644 --- a/sw/source/core/frmedt/fetab.cxx +++ b/sw/source/core/frmedt/fetab.cxx @@ -2346,19 +2346,18 @@ static bool lcl_IsFormulaSelBoxes( const SwTable& rTbl, const SwTblBoxFormula& r } // ask formula for auto-sum -sal_Bool SwFEShell::GetAutoSum( String& rFml ) const +sal_Bool SwFEShell::GetAutoSum( OUString& rFml ) const { SwFrm *pFrm = GetCurrFrm(); SwTabFrm *pTab = pFrm ? pFrm->ImplFindTabFrm() : 0; if( !pTab ) return sal_False; - rFml = OUString::createFromAscii( sCalc_Sum ); - SwCellFrms aCells; + OUString sFields; if( ::GetAutoSumSel( *this, aCells )) { - sal_uInt16 nW = 0, nInsPos = 0; + sal_uInt16 nW = 0; for( size_t n = aCells.size(); n; ) { SwCellFrm* pCFrm = aCells[ --n ]; @@ -2371,9 +2370,6 @@ sal_Bool SwFEShell::GetAutoSum( String& rFml ) const if( USHRT_MAX == nBoxW ) continue; // skip space at beginning - rFml += '('; - nInsPos = rFml.Len(); - // formula only if box is contained if( RES_BOXATR_FORMULA == nBoxW && !::lcl_IsFormulaSelBoxes( *pTab->GetTable(), pCFrm-> @@ -2383,10 +2379,8 @@ sal_Bool SwFEShell::GetAutoSum( String& rFml ) const // restore previous spaces! for( size_t i = aCells.size(); n+1 < i; ) { - String sTmp(OUString("|<")); - sTmp += aCells[ --i ]->GetTabBox()->GetName(); - sTmp += '>'; - rFml.Insert( sTmp, nInsPos ); + sFields = "|<" + aCells[--i]->GetTabBox()->GetName() + ">" + + sFields; } } else @@ -2400,7 +2394,7 @@ sal_Bool SwFEShell::GetAutoSum( String& rFml ) const GetTabBox()->GetFrmFmt()->GetTblBoxFormula(), aCells )) break; else if( USHRT_MAX != nBoxW ) - rFml.Insert( cListDelim, nInsPos ); + sFields = OUString(cListDelim) + sFields; else break; } @@ -2416,18 +2410,16 @@ sal_Bool SwFEShell::GetAutoSum( String& rFml ) const // redo only for values! nW = RES_BOXATR_VALUE; - rFml.Erase( nInsPos ); + sFields = OUString(); // restore previous spaces! for( size_t i = aCells.size(); n+1 < i; ) { - String sTmp(OUString("|<" )); - sTmp += aCells[ --i ]->GetTabBox()->GetName(); - sTmp += '>'; - rFml.Insert( sTmp, nInsPos ); + sFields = "|<" + aCells[--i]->GetTabBox()->GetName() + ">" + + sFields; } } else - rFml.Insert( cListDelim, nInsPos ); + sFields = OUString(cListDelim) + sFields; } else if( USHRT_MAX == nBoxW ) break; @@ -2439,14 +2431,16 @@ sal_Bool SwFEShell::GetAutoSum( String& rFml ) const // possibly allow texts?? break; - rFml.Insert( "<" + OUString(pCFrm->GetTabBox()->GetName()) + ">", nInsPos ); - } - if( nW ) - { - rFml += ')'; + sFields = "<" + pCFrm->GetTabBox()->GetName() + ">" + sFields; } } + rFml = OUString::createFromAscii( sCalc_Sum ); + if (!sFields.isEmpty()) + { + rFml += "(" + sFields + ")"; + } + return sal_True; } diff --git a/sw/source/ui/shells/tabsh.cxx b/sw/source/ui/shells/tabsh.cxx index 6b91fc7..68738b5 100644 --- a/sw/source/ui/shells/tabsh.cxx +++ b/sw/source/ui/shells/tabsh.cxx @@ -1018,7 +1018,7 @@ void SwTableShell::Execute(SfxRequest &rReq) const sal_uInt16 nId = SwInputChild::GetChildWindowId(); SwInputChild* pChildWin = (SwInputChild*)pVFrame-> GetChildWindow( nId ); - String sSum; + OUString sSum; GetShell().GetAutoSum(sSum); if( pChildWin ) pChildWin->SetFormula( sSum ); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits