[Libreoffice-commits] core.git: sw/source
Matteo Casalin
matteo.casalin at yahoo.com
Wed Oct 2 09:20:25 PDT 2013
sw/source/core/doc/doctxm.cxx | 24 +---
sw/source/core/inc/txmsrt.hxx | 68 +++++++-----
sw/source/core/tox/txmsrt.cxx | 227 ++++++++++++++++--------------------------
3 files changed, 134 insertions(+), 185 deletions(-)
New commits:
commit 0cce823df1b37387e778636f69b8f92309fd63e7
Author: Matteo Casalin <matteo.casalin at yahoo.com>
Date: Mon Sep 30 23:06:21 2013 +0200
String to OUString + drop reference args for struct return
Change-Id: I985edaffb24ba3ec7265761c857a791e34d4f417
Reviewed-on: https://gerrit.libreoffice.org/6096
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/sw/source/core/doc/doctxm.cxx b/sw/source/core/doc/doctxm.cxx
index 45cc16d..0dbe245 100644
--- a/sw/source/core/doc/doctxm.cxx
+++ b/sw/source/core/doc/doctxm.cxx
@@ -1033,10 +1033,7 @@ void SwTOXBaseSection::InsertAlphaDelimitter( const SwTOXInternational& rIntl )
if( nLevel == FORM_ALPHA_DELIMITTER )
continue;
- String sMyString, sMyStringReading;
- aSortArr[i]->GetTxt( sMyString, sMyStringReading );
-
- sDeli = rIntl.GetIndexKey( sMyString, sMyStringReading,
+ sDeli = rIntl.GetIndexKey( aSortArr[i]->GetTxt(),
aSortArr[i]->GetLocale() );
// Do we already have a Delimitter?
@@ -1045,7 +1042,8 @@ void SwTOXBaseSection::InsertAlphaDelimitter( const SwTOXInternational& rIntl )
// We skip all that are less than a small Blank (these are special characters)
if( ' ' <= sDeli.GetChar( 0 ) )
{
- SwTOXCustom* pCst = new SwTOXCustom( sDeli, aEmptyStr, FORM_ALPHA_DELIMITTER,
+ SwTOXCustom* pCst = new SwTOXCustom( TextAndReading(sDeli, OUString()),
+ FORM_ALPHA_DELIMITTER,
rIntl, aSortArr[i]->GetLocale() );
aSortArr.insert( aSortArr.begin() + i, pCst);
i++;
@@ -2235,13 +2233,12 @@ Range SwTOXBaseSection::GetKeyRange(const String& rStr, const String& rStrReadin
sal_uInt16 nLevel, const Range& rRange )
{
const SwTOXInternational& rIntl = *rNew.pTOXIntl;
- String sToCompare(rStr);
- String sToCompareReading(rStrReading);
+ TextAndReading aToCompare(rStr, rStrReading);
if( 0 != (nsSwTOIOptions::TOI_INITIAL_CAPS & GetOptions()) )
{
- String sUpper( rIntl.ToUpper( sToCompare, 0 ));
- sToCompare.Erase( 0, 1 ).Insert( sUpper, 0 );
+ aToCompare.sText = rIntl.ToUpper( aToCompare.sText, 0 )
+ + aToCompare.sText.copy(1);
}
OSL_ENSURE(rRange.Min() >= 0 && rRange.Max() >= 0, "Min Max < 0");
@@ -2255,17 +2252,14 @@ Range SwTOXBaseSection::GetKeyRange(const String& rStr, const String& rStrReadin
{
SwTOXSortTabBase* pBase = aSortArr[i];
- String sMyString, sMyStringReading;
- pBase->GetTxt( sMyString, sMyStringReading );
-
- if( rIntl.IsEqual( sMyString, sMyStringReading, pBase->GetLocale(),
- sToCompare, sToCompareReading, rNew.GetLocale() ) &&
+ if( rIntl.IsEqual( pBase->GetTxt(), pBase->GetLocale(),
+ aToCompare, rNew.GetLocale() ) &&
pBase->GetLevel() == nLevel )
break;
}
if(i == nMax)
{ // If not already present, create and insert
- SwTOXCustom* pKey = new SwTOXCustom( sToCompare, sToCompareReading, nLevel, rIntl,
+ SwTOXCustom* pKey = new SwTOXCustom( aToCompare, nLevel, rIntl,
rNew.GetLocale() );
for(i = nMin; i < nMax; ++i)
{
diff --git a/sw/source/core/inc/txmsrt.hxx b/sw/source/core/inc/txmsrt.hxx
index 356f49d..bb79804 100644
--- a/sw/source/core/inc/txmsrt.hxx
+++ b/sw/source/core/inc/txmsrt.hxx
@@ -57,6 +57,21 @@ struct SwTOXSource
typedef std::vector<SwTOXSource> SwTOXSources;
+
+struct TextAndReading
+{
+ OUString sText;
+ OUString sReading;
+
+ TextAndReading() {}
+
+ TextAndReading(OUString sTxt, OUString sRdng)
+ : sText(sTxt)
+ , sReading(sRdng)
+ {}
+};
+
+
class SwTOXInternational
{
IndexEntrySupplierWrapper* pIndexWrapper;
@@ -73,30 +88,28 @@ public:
SwTOXInternational( const SwTOXInternational& );
~SwTOXInternational();
- sal_Int32 Compare( const String& rTxt1, const String& rTxtReading1,
+ sal_Int32 Compare( const TextAndReading& rTaR1,
const ::com::sun::star::lang::Locale& rLocale1,
- const String& rTxt2, const String& rTxtReading2,
+ const TextAndReading& rTaR2,
const ::com::sun::star::lang::Locale& rLocale2 ) const;
- inline bool IsEqual( const String& rTxt1, const String& rTxtReading1,
+ inline bool IsEqual( const TextAndReading& rTaR1,
const ::com::sun::star::lang::Locale& rLocale1,
- const String& rTxt2, const String& rTxtReading2,
+ const TextAndReading& rTaR2,
const ::com::sun::star::lang::Locale& rLocale2 ) const
{
- return 0 == Compare( rTxt1, rTxtReading1, rLocale1,
- rTxt2, rTxtReading2, rLocale2 );
+ return 0 == Compare( rTaR1, rLocale1, rTaR2, rLocale2 );
}
- inline bool IsLess( const String& rTxt1, const String& rTxtReading1,
+ inline bool IsLess( const TextAndReading& rTaR1,
const ::com::sun::star::lang::Locale& rLocale1,
- const String& rTxt2, const String& rTxtReading2,
+ const TextAndReading& rTaR2,
const ::com::sun::star::lang::Locale& rLocale2 ) const
{
- return -1 == Compare( rTxt1, rTxtReading1, rLocale1,
- rTxt2, rTxtReading2, rLocale2 );
+ return -1 == Compare( rTaR1, rLocale1, rTaR2, rLocale2 );
}
- String GetIndexKey( const String& rTxt, const String& rTxtReading,
+ String GetIndexKey( const TextAndReading& rTaR,
const ::com::sun::star::lang::Locale& rLcl ) const;
String GetFollowingText( sal_Bool bMorePages ) const;
@@ -138,29 +151,25 @@ struct SwTOXSortTabBase
virtual String GetURL() const;
- inline void GetTxt( String&, String& ) const;
+ inline TextAndReading GetTxt() const;
inline const ::com::sun::star::lang::Locale& GetLocale() const;
private:
sal_Bool bValidTxt;
- String sSortTxt;
- String sSortTxtReading;
+ TextAndReading m_aSort;
- virtual void GetText_Impl( String&, String& ) const = 0;
+ virtual TextAndReading GetText_Impl() const = 0;
};
-inline void SwTOXSortTabBase::GetTxt( String& rSortTxt,
- String& rSortTxtReading ) const
+inline TextAndReading SwTOXSortTabBase::GetTxt() const
{
if( !bValidTxt )
{
SwTOXSortTabBase* pThis = (SwTOXSortTabBase*)this;
- pThis->GetText_Impl( pThis->sSortTxt, pThis->sSortTxtReading );
+ pThis->m_aSort = pThis->GetText_Impl();
pThis->bValidTxt = sal_True;
}
-
- rSortTxt = sSortTxt;
- rSortTxtReading = sSortTxtReading;
+ return m_aSort;
}
inline const ::com::sun::star::lang::Locale& SwTOXSortTabBase::GetLocale() const
@@ -186,14 +195,14 @@ struct SwTOXIndex : public SwTOXSortTabBase
virtual bool operator<( const SwTOXSortTabBase& );
private:
- virtual void GetText_Impl( String&, String& ) const;
+ virtual TextAndReading GetText_Impl() const;
sal_uInt8 nKeyLevel;
};
struct SwTOXCustom : public SwTOXSortTabBase
{
- SwTOXCustom( const String& rKey, const String& rReading, sal_uInt16 nLevel,
+ SwTOXCustom( const TextAndReading& rKey, sal_uInt16 nLevel,
const SwTOXInternational& rIntl,
const ::com::sun::star::lang::Locale& rLocale );
virtual ~SwTOXCustom() {}
@@ -203,10 +212,9 @@ struct SwTOXCustom : public SwTOXSortTabBase
virtual bool operator<( const SwTOXSortTabBase& );
private:
- virtual void GetText_Impl( String&, String& ) const;
+ virtual TextAndReading GetText_Impl() const;
- String aKey;
- String sReading;
+ TextAndReading m_aKey;
sal_uInt16 nLev;
};
@@ -223,7 +231,7 @@ struct SwTOXContent : public SwTOXSortTabBase
virtual void FillText( SwTxtNode& rNd, const SwIndex& rInsPos, sal_uInt16 nAuthField = 0 ) const;
virtual sal_uInt16 GetLevel() const;
private:
- virtual void GetText_Impl( String&, String& ) const;
+ virtual TextAndReading GetText_Impl() const;
};
@@ -240,7 +248,7 @@ struct SwTOXPara : public SwTOXSortTabBase
virtual String GetURL() const;
private:
- virtual void GetText_Impl( String&, String& ) const;
+ virtual TextAndReading GetText_Impl() const;
SwTOXElement eType;
sal_uInt16 m_nLevel;
@@ -260,7 +268,7 @@ struct SwTOXTable : public SwTOXSortTabBase
virtual String GetURL() const;
private:
- virtual void GetText_Impl( String&, String& ) const;
+ virtual TextAndReading GetText_Impl() const;
sal_uInt16 nLevel;
};
@@ -270,7 +278,7 @@ struct SwTOXAuthority : public SwTOXSortTabBase
private:
SwFmtFld& m_rField;
virtual void FillText( SwTxtNode& rNd, const SwIndex& rInsPos, sal_uInt16 nAuthField = 0 ) const;
- virtual void GetText_Impl( String&, String& ) const;
+ virtual TextAndReading GetText_Impl() const;
public:
SwTOXAuthority( const SwCntntNode& rNd, SwFmtFld& rField, const SwTOXInternational& rIntl );
diff --git a/sw/source/core/tox/txmsrt.cxx b/sw/source/core/tox/txmsrt.cxx
index 935b870..652e1b6 100644
--- a/sw/source/core/tox/txmsrt.cxx
+++ b/sw/source/core/tox/txmsrt.cxx
@@ -109,19 +109,19 @@ inline sal_Bool SwTOXInternational::IsNumeric( const String& rStr ) const
return pCharClass->isNumeric( rStr );
}
-sal_Int32 SwTOXInternational::Compare( const String& rTxt1, const String& rTxtReading1,
+sal_Int32 SwTOXInternational::Compare( const TextAndReading& rTaR1,
const lang::Locale& rLocale1,
- const String& rTxt2, const String& rTxtReading2,
+ const TextAndReading& rTaR2,
const lang::Locale& rLocale2 ) const
{
- return pIndexWrapper->CompareIndexEntry( rTxt1, rTxtReading1, rLocale1,
- rTxt2, rTxtReading2, rLocale2 );
+ return pIndexWrapper->CompareIndexEntry( rTaR1.sText, rTaR1.sReading, rLocale1,
+ rTaR2.sText, rTaR2.sReading, rLocale2 );
}
-String SwTOXInternational::GetIndexKey( const String& rTxt, const String& rTxtReading,
+String SwTOXInternational::GetIndexKey( const TextAndReading& rTaR,
const lang::Locale& rLocale ) const
{
- return pIndexWrapper->GetIndexKey( rTxt, rTxtReading, rLocale );
+ return pIndexWrapper->GetIndexKey( rTaR.sText, rTaR.sReading, rLocale );
}
String SwTOXInternational::GetFollowingText( sal_Bool bMorePages ) const
@@ -195,12 +195,7 @@ String SwTOXSortTabBase::GetURL() const
void SwTOXSortTabBase::FillText( SwTxtNode& rNd, const SwIndex& rInsPos,
sal_uInt16 ) const
{
- String sMyTxt;
- String sMyTxtReading;
-
- GetTxt( sMyTxt, sMyTxtReading );
-
- rNd.InsertText( sMyTxt, rInsPos );
+ rNd.InsertText( GetTxt().sText, rInsPos );
}
bool SwTOXSortTabBase::operator==( const SwTOXSortTabBase& rCmp )
@@ -221,17 +216,9 @@ bool SwTOXSortTabBase::operator==( const SwTOXSortTabBase& rCmp )
const xub_StrLen *pEnd = pTxtMark->GetEnd(),
*pEndCmp = rCmp.pTxtMark->GetEnd();
- String sMyTxt;
- String sMyTxtReading;
- GetTxt( sMyTxt, sMyTxtReading );
-
- String sOtherTxt;
- String sOtherTxtReading;
- rCmp.GetTxt( sOtherTxt, sOtherTxtReading );
-
bRet = ( ( pEnd && pEndCmp ) || ( !pEnd && !pEndCmp ) ) &&
- pTOXIntl->IsEqual( sMyTxt, sMyTxtReading, GetLocale(),
- sOtherTxt, sOtherTxtReading, rCmp.GetLocale() );
+ pTOXIntl->IsEqual( GetTxt(), GetLocale(),
+ rCmp.GetTxt(), rCmp.GetLocale() );
}
}
return bRet;
@@ -264,19 +251,11 @@ bool SwTOXSortTabBase::operator<( const SwTOXSortTabBase& rCmp )
const xub_StrLen *pEnd = pTxtMark->GetEnd(),
*pEndCmp = rCmp.pTxtMark->GetEnd();
- String sMyTxt;
- String sMyTxtReading;
- GetTxt( sMyTxt, sMyTxtReading );
-
- String sOtherTxt;
- String sOtherTxtReading;
- rCmp.GetTxt( sOtherTxt, sOtherTxtReading );
-
// Both pointers exist -> compare text
// else -> compare AlternativeText
if( ( pEnd && pEndCmp ) || ( !pEnd && !pEndCmp ) )
- pTOXIntl->IsEqual( sMyTxt, sMyTxtReading, GetLocale(),
- sOtherTxt, sOtherTxtReading, rCmp.GetLocale() );
+ pTOXIntl->IsEqual( GetTxt(), GetLocale(),
+ rCmp.GetTxt(), rCmp.GetLocale() );
if( pEnd && !pEndCmp )
return true;
@@ -324,16 +303,8 @@ bool SwTOXIndex::operator==( const SwTOXSortTabBase& rCmpBase )
OSL_ENSURE(pTxtMark, "pTxtMark == 0, No keyword");
- String sMyTxt;
- String sMyTxtReading;
- GetTxt( sMyTxt, sMyTxtReading );
-
- String sOtherTxt;
- String sOtherTxtReading;
- rCmp.GetTxt( sOtherTxt, sOtherTxtReading );
-
- bool bRet = pTOXIntl->IsEqual( sMyTxt, sMyTxtReading, GetLocale(),
- sOtherTxt, sOtherTxtReading, rCmp.GetLocale() );
+ bool bRet = pTOXIntl->IsEqual( GetTxt(), GetLocale(),
+ rCmp.GetTxt(), rCmp.GetLocale() );
// If we don't summarize we need to evaluate the Pos
if(bRet && !(GetOptions() & nsSwTOIOptions::TOI_SAME_ENTRY))
@@ -351,23 +322,18 @@ bool SwTOXIndex::operator<( const SwTOXSortTabBase& rCmpBase )
OSL_ENSURE(pTxtMark, "pTxtMark == 0, No keyword");
- String sMyTxt;
- String sMyTxtReading;
- GetTxt( sMyTxt, sMyTxtReading );
-
- String sOtherTxt;
- String sOtherTxtReading;
- rCmp.GetTxt( sOtherTxt, sOtherTxtReading );
+ const TextAndReading aMyTaR(GetTxt());
+ const TextAndReading aOtherTaR(rCmp.GetTxt());
bool bRet = GetLevel() == rCmp.GetLevel() &&
- pTOXIntl->IsLess( sMyTxt, sMyTxtReading, GetLocale(),
- sOtherTxt, sOtherTxtReading, rCmp.GetLocale() );
+ pTOXIntl->IsLess( aMyTaR, GetLocale(),
+ aOtherTaR, rCmp.GetLocale() );
// If we don't summarize we need to evaluate the Pos
if( !bRet && !(GetOptions() & nsSwTOIOptions::TOI_SAME_ENTRY) )
{
- bRet = pTOXIntl->IsEqual( sMyTxt, sMyTxtReading, GetLocale(),
- sOtherTxt, sOtherTxtReading, rCmp.GetLocale() ) &&
+ bRet = pTOXIntl->IsEqual( aMyTaR, GetLocale(),
+ aOtherTaR, rCmp.GetLocale() ) &&
nPos < rCmp.nPos;
}
@@ -377,60 +343,62 @@ bool SwTOXIndex::operator<( const SwTOXSortTabBase& rCmpBase )
//
// The keyword itself
-void SwTOXIndex::GetText_Impl( String& rTxt, String& rTxtReading ) const
+TextAndReading SwTOXIndex::GetText_Impl() const
{
OSL_ENSURE(pTxtMark, "pTxtMark == 0, No keyword");
const SwTOXMark& rTOXMark = pTxtMark->GetTOXMark();
+
+ TextAndReading aRet;
switch(nKeyLevel)
{
case FORM_PRIMARY_KEY :
{
- rTxt = rTOXMark.GetPrimaryKey();
- rTxtReading = rTOXMark.GetPrimaryKeyReading();
+ aRet.sText = rTOXMark.GetPrimaryKey();
+ aRet.sReading = rTOXMark.GetPrimaryKeyReading();
}
break;
case FORM_SECONDARY_KEY :
{
- rTxt = rTOXMark.GetSecondaryKey();
- rTxtReading = rTOXMark.GetSecondaryKeyReading();
+ aRet.sText = rTOXMark.GetSecondaryKey();
+ aRet.sReading = rTOXMark.GetSecondaryKeyReading();
}
break;
case FORM_ENTRY :
{
- rTxt = rTOXMark.GetText();
- rTxtReading = rTOXMark.GetTextReading();
+ aRet.sText = rTOXMark.GetText();
+ aRet.sReading = rTOXMark.GetTextReading();
}
break;
}
// if TOI_INITIAL_CAPS is set, first character is to be capitalized
- if( nsSwTOIOptions::TOI_INITIAL_CAPS & nOpt && pTOXIntl )
+ if( nsSwTOIOptions::TOI_INITIAL_CAPS & nOpt && pTOXIntl && !aRet.sText.isEmpty())
{
- String sUpper( pTOXIntl->ToUpper( rTxt, 0 ));
- rTxt.Erase( 0, 1 ).Insert( sUpper, 0 );
+ aRet.sText = pTOXIntl->ToUpper( aRet.sText, 0 ) + aRet.sText.copy(1);
}
+
+ return aRet;
}
void SwTOXIndex::FillText( SwTxtNode& rNd, const SwIndex& rInsPos, sal_uInt16 ) const
{
const xub_StrLen* pEnd = pTxtMark->GetEnd();
- String sTmp;
- String sTmpReading;
+
+ TextAndReading aRet;
if( pEnd && !pTxtMark->GetTOXMark().IsAlternativeText() &&
0 == (GetOptions() & nsSwTOIOptions::TOI_KEY_AS_ENTRY))
{
- sTmp = ((SwTxtNode*)aTOXSources[0].pNd)->GetExpandTxt(
+ aRet.sText = ((SwTxtNode*)aTOXSources[0].pNd)->GetExpandTxt(
*pTxtMark->GetStart(),
*pEnd - *pTxtMark->GetStart());
- if(nsSwTOIOptions::TOI_INITIAL_CAPS&nOpt && pTOXIntl)
+ if(nsSwTOIOptions::TOI_INITIAL_CAPS & nOpt && pTOXIntl && !aRet.sText.isEmpty())
{
- String sUpper( pTOXIntl->ToUpper( sTmp, 0 ));
- sTmp.Erase( 0, 1 ).Insert( sUpper, 0 );
+ aRet.sText = pTOXIntl->ToUpper( aRet.sText, 0 ) + aRet.sText.copy(1);
}
}
else
- GetTxt( sTmp, sTmpReading );
+ aRet = GetTxt();
- rNd.InsertText( sTmp, rInsPos );
+ rNd.InsertText( aRet.sText, rInsPos );
}
@@ -456,45 +424,29 @@ sal_uInt16 SwTOXIndex::GetLevel() const
--------------------------------------------------------------------*/
-SwTOXCustom::SwTOXCustom(const String& rStr, const String& rReading,
+SwTOXCustom::SwTOXCustom(const TextAndReading& rKey,
sal_uInt16 nLevel,
const SwTOXInternational& rIntl,
const lang::Locale& rLocale )
: SwTOXSortTabBase( TOX_SORT_CUSTOM, 0, 0, &rIntl, &rLocale ),
- aKey(rStr), sReading(rReading), nLev(nLevel)
+ m_aKey(rKey), nLev(nLevel)
{
}
bool SwTOXCustom::operator==(const SwTOXSortTabBase& rCmpBase)
{
- String sMyTxt;
- String sMyTxtReading;
- GetTxt( sMyTxt, sMyTxtReading );
-
- String sOtherTxt;
- String sOtherTxtReading;
- rCmpBase.GetTxt( sOtherTxt, sOtherTxtReading );
-
return GetLevel() == rCmpBase.GetLevel() &&
- pTOXIntl->IsEqual( sMyTxt, sMyTxtReading, GetLocale(),
- sOtherTxt, sOtherTxtReading, rCmpBase.GetLocale() );
+ pTOXIntl->IsEqual( GetTxt(), GetLocale(),
+ rCmpBase.GetTxt(), rCmpBase.GetLocale() );
}
bool SwTOXCustom::operator < (const SwTOXSortTabBase& rCmpBase)
{
- String sMyTxt;
- String sMyTxtReading;
- GetTxt( sMyTxt, sMyTxtReading );
-
- String sOtherTxt;
- String sOtherTxtReading;
- rCmpBase.GetTxt( sOtherTxt, sOtherTxtReading );
-
return GetLevel() <= rCmpBase.GetLevel() &&
- pTOXIntl->IsLess( sMyTxt, sMyTxtReading, GetLocale(),
- sOtherTxt, sOtherTxtReading, rCmpBase.GetLocale() );
+ pTOXIntl->IsLess( GetTxt(), GetLocale(),
+ rCmpBase.GetTxt(), rCmpBase.GetLocale() );
}
@@ -504,10 +456,9 @@ sal_uInt16 SwTOXCustom::GetLevel() const
}
-void SwTOXCustom::GetText_Impl( String& rTxt, String &rTxtReading ) const
+TextAndReading SwTOXCustom::GetText_Impl() const
{
- rTxt = aKey;
- rTxtReading = sReading;
+ return m_aKey;
}
@@ -525,19 +476,19 @@ SwTOXContent::SwTOXContent( const SwTxtNode& rNd, const SwTxtTOXMark* pMark,
// The content's text
-void SwTOXContent::GetText_Impl( String& rTxt, String& rTxtReading ) const
+TextAndReading SwTOXContent::GetText_Impl() const
{
const xub_StrLen* pEnd = pTxtMark->GetEnd();
if( pEnd && !pTxtMark->GetTOXMark().IsAlternativeText() )
{
- rTxt = ((SwTxtNode*)aTOXSources[0].pNd)->GetExpandTxt(
+ return TextAndReading(
+ ((SwTxtNode*)aTOXSources[0].pNd)->GetExpandTxt(
*pTxtMark->GetStart(),
- *pEnd - *pTxtMark->GetStart() );
-
- rTxtReading = pTxtMark->GetTOXMark().GetTextReading();
+ *pEnd - *pTxtMark->GetStart() ),
+ pTxtMark->GetTOXMark().GetTextReading());
}
- else
- rTxt = pTxtMark->GetTOXMark().GetAlternativeText();
+
+ return TextAndReading(pTxtMark->GetTOXMark().GetAlternativeText(), OUString());
}
void SwTOXContent::FillText( SwTxtNode& rNd, const SwIndex& rInsPos, sal_uInt16 ) const
@@ -549,9 +500,7 @@ void SwTOXContent::FillText( SwTxtNode& rNd, const SwIndex& rInsPos, sal_uInt16
*pEnd - *pTxtMark->GetStart() );
else
{
- String sTmp, sTmpReading;
- GetTxt( sTmp, sTmpReading );
- rNd.InsertText( sTmp, rInsPos );
+ rNd.InsertText( GetTxt().sText, rInsPos );
}
}
@@ -582,7 +531,7 @@ SwTOXPara::SwTOXPara( const SwCntntNode& rNd, SwTOXElement eT, sal_uInt16 nLevel
}
-void SwTOXPara::GetText_Impl( String& rTxt, String& ) const
+TextAndReading SwTOXPara::GetText_Impl() const
{
const SwCntntNode* pNd = aTOXSources[0].pNd;
switch( eType )
@@ -592,9 +541,10 @@ void SwTOXPara::GetText_Impl( String& rTxt, String& ) const
case nsSwTOXElement::TOX_OUTLINELEVEL:
{
xub_StrLen nStt = nStartIndex;
- rTxt = ((SwTxtNode*)pNd)->GetExpandTxt(
+ return TextAndReading(((SwTxtNode*)pNd)->GetExpandTxt(
nStt,
- STRING_NOTFOUND == nEndIndex ? STRING_LEN : nEndIndex - nStt);
+ STRING_NOTFOUND == nEndIndex ? STRING_LEN : nEndIndex - nStt),
+ OUString());
}
break;
@@ -605,21 +555,20 @@ void SwTOXPara::GetText_Impl( String& rTxt, String& ) const
// Find the FlyFormat; the object/graphic name is there
SwFrmFmt* pFly = pNd->GetFlyFmt();
if( pFly )
- rTxt = pFly->GetName();
- else
- {
- OSL_ENSURE( !this, "Graphic/object without name" );
- sal_uInt16 nId = nsSwTOXElement::TOX_OLE == eType
- ? STR_OBJECT_DEFNAME
- : nsSwTOXElement::TOX_GRAPHIC == eType
- ? STR_GRAPHIC_DEFNAME
- : STR_FRAME_DEFNAME;
- rTxt = SW_RESSTR( nId );
- }
+ return TextAndReading(pFly->GetName(), OUString());
+
+ OSL_ENSURE( !this, "Graphic/object without name" );
+ sal_uInt16 nId = nsSwTOXElement::TOX_OLE == eType
+ ? STR_OBJECT_DEFNAME
+ : nsSwTOXElement::TOX_GRAPHIC == eType
+ ? STR_GRAPHIC_DEFNAME
+ : STR_FRAME_DEFNAME;
+ return TextAndReading(SW_RESSTR( nId ), OUString());
}
break;
default: break;
}
+ return TextAndReading();
}
void SwTOXPara::FillText( SwTxtNode& rNd, const SwIndex& rInsPos, sal_uInt16 ) const
@@ -634,10 +583,7 @@ void SwTOXPara::FillText( SwTxtNode& rNd, const SwIndex& rInsPos, sal_uInt16 ) c
}
else
{
- String sTmp, sTmpReading;
- GetTxt( sTmp, sTmpReading );
- sTmp.SearchAndReplaceAll('\t', ' ');
- rNd.InsertText( sTmp, rInsPos );
+ rNd.InsertText( GetTxt().sText.replace('\t', ' '), rInsPos );
}
}
@@ -722,18 +668,21 @@ SwTOXTable::SwTOXTable( const SwCntntNode& rNd )
}
-void SwTOXTable::GetText_Impl( String& rTxt, String& ) const
+TextAndReading SwTOXTable::GetText_Impl() const
{
const SwNode* pNd = aTOXSources[0].pNd;
- if( pNd && 0 != ( pNd = pNd->FindTableNode() ) )
- {
- rTxt = ((SwTableNode*)pNd)->GetTable().GetFrmFmt()->GetName();
- }
- else
+ if( pNd )
{
- OSL_ENSURE( !this, "Where's my table?" );
- rTxt = SW_RESSTR( STR_TABLE_DEFNAME );
+ const SwTableNode* pTableNd =
+ reinterpret_cast<const SwTableNode*>(pNd->FindTableNode());
+ if (pTableNd)
+ {
+ return TextAndReading(pTableNd->GetTable().GetFrmFmt()->GetName(), OUString());
+ }
}
+
+ OSL_ENSURE( !this, "Where's my table?" );
+ return TextAndReading(SW_RESSTR( STR_TABLE_DEFNAME ), OUString());
}
sal_uInt16 SwTOXTable::GetLevel() const
@@ -790,9 +739,9 @@ static String lcl_GetText(SwFmtFld const& rField)
return rField.GetFld()->ExpandField(true);
}
-void SwTOXAuthority::GetText_Impl( String& rTxt, String& ) const
+TextAndReading SwTOXAuthority::GetText_Impl() const
{
- rTxt = lcl_GetText(m_rField);
+ return TextAndReading(lcl_GetText(m_rField), OUString());
}
void SwTOXAuthority::FillText( SwTxtNode& rNd,
@@ -846,13 +795,11 @@ bool SwTOXAuthority::operator<( const SwTOXSortTabBase& rBase)
for(sal_uInt16 i = 0; i < pType->GetSortKeyCount(); i++)
{
const SwTOXSortKey* pKey = pType->GetSortKey(i);
- String sMyTxt = pField->GetFieldText(pKey->eField);
- String sMyTxtReading;
- String sOtherTxt = pCmpField->GetFieldText(pKey->eField);
- String sOtherTxtReading;
+ const TextAndReading aMy(pField->GetFieldText(pKey->eField), OUString());
+ const TextAndReading aOther(pCmpField->GetFieldText(pKey->eField), OUString());
- sal_Int32 nComp = pTOXIntl->Compare( sMyTxt, sMyTxtReading, GetLocale(),
- sOtherTxt, sOtherTxtReading, rBase.GetLocale() );
+ sal_Int32 nComp = pTOXIntl->Compare( aMy, GetLocale(),
+ aOther, rBase.GetLocale() );
if( nComp )
{
More information about the Libreoffice-commits
mailing list