Replace (Xub)String with OUString in vcl(field)
Change-Id: I62fba60a4c6e1db870443a796e6338cddc934352
Reviewed-on: https://gerrit.libreoffice.org/2229
Reviewed-by: Fridrich Strba <fridrich@documentfoundation.org>
Tested-by: Fridrich Strba <fridrich@documentfoundation.org>
diff --git a/vcl/inc/vcl/field.hxx b/vcl/inc/vcl/field.hxx
index 0f47d5f..ec661c6 100644
--- a/vcl/inc/vcl/field.hxx
+++ b/vcl/inc/vcl/field.hxx
@@ -51,7 +51,7 @@ private:
sal_Bool mbDefaultLocale;
protected:
SAL_DLLPRIVATE void ImplSetText( const XubString& rText, Selection* pNewSel = NULL );
SAL_DLLPRIVATE void ImplSetText( const OUString& rText, Selection* pNewSel = NULL );
SAL_DLLPRIVATE sal_Bool ImplGetEmptyFieldValue() const { return mbEmptyFieldValue; }
void SetEmptyFieldValueData( sal_Bool bValue ) { mbEmptyFieldValue = bValue; }
@@ -103,18 +103,18 @@ public:
class VCL_DLLPUBLIC PatternFormatter : public FormatterBase
{
private:
rtl::OString m_aEditMask;
XubString maFieldString;
XubString maLiteralMask;
sal_uInt16 mnFormatFlags;
sal_Bool mbSameMask;
sal_Bool mbInPattKeyInput;
OString m_aEditMask;
OUString maFieldString;
OUString maLiteralMask;
sal_uInt16 mnFormatFlags;
sal_Bool mbSameMask;
sal_Bool mbInPattKeyInput;
protected:
PatternFormatter();
SAL_DLLPRIVATE void ImplSetMask(const rtl::OString& rEditMask,
const XubString& rLiteralMask);
SAL_DLLPRIVATE void ImplSetMask(const OString& rEditMask,
const OUString& rLiteralMask);
SAL_DLLPRIVATE sal_Bool ImplIsSameMask() const { return mbSameMask; }
SAL_DLLPRIVATE sal_Bool& ImplGetInPattKeyInput() { return mbInPattKeyInput; }
@@ -123,16 +123,16 @@ public:
virtual void Reformat();
void SetMask(const rtl::OString& rEditMask, const XubString& rLiteralMask );
const rtl::OString& GetEditMask() const { return m_aEditMask; }
const XubString& GetLiteralMask() const { return maLiteralMask; }
void SetMask(const OString& rEditMask, const OUString& rLiteralMask );
const OString& GetEditMask() const { return m_aEditMask; }
const OUString& GetLiteralMask() const { return maLiteralMask; }
void SetFormatFlags( sal_uInt16 nFlags ) { mnFormatFlags = nFlags; }
sal_uInt16 GetFormatFlags() const { return mnFormatFlags; }
void SetString( const XubString& rStr );
XubString GetString() const;
sal_Bool IsStringModified() const { return !(GetString().Equals( maFieldString )); }
void SetString( const OUString& rStr );
OUString GetString() const;
sal_Bool IsStringModified() const { return !(GetString() == maFieldString ); }
};
// --------------------
@@ -242,7 +242,7 @@ public:
virtual void SetUnit( FieldUnit meUnit );
FieldUnit GetUnit() const { return meUnit; }
void SetCustomUnitText( const XubString& rStr );
void SetCustomUnitText( const OUString& rStr );
const OUString& GetCustomUnitText() const { return maCustomUnitText; }
const OUString& GetCurUnitText() const { return maCurUnitText; }
diff --git a/vcl/source/control/field.cxx b/vcl/source/control/field.cxx
index 344b106..c0037e9 100644
--- a/vcl/source/control/field.cxx
+++ b/vcl/source/control/field.cxx
@@ -393,7 +393,7 @@ const AllSettings& FormatterBase::GetFieldSettings() const
// -----------------------------------------------------------------------
void FormatterBase::ImplSetText( const XubString& rText, Selection* pNewSelection )
void FormatterBase::ImplSetText( const OUString& rText, Selection* pNewSelection )
{
if ( mpField )
{
@@ -1417,7 +1417,7 @@ double MetricField::ConvertDoubleValue( double nValue, sal_uInt16 nDigits,
// -----------------------------------------------------------------------
static sal_Bool ImplMetricGetValue( const XubString& rStr, double& rValue, sal_Int64 nBaseValue,
static sal_Bool ImplMetricGetValue( const OUString& rStr, double& rValue, sal_Int64 nBaseValue,
sal_uInt16 nDecDigits, const LocaleDataWrapper& rLocaleDataWrapper, FieldUnit eUnit )
{
// Zahlenwert holen
@@ -1522,7 +1522,7 @@ void MetricFormatter::SetUnit( FieldUnit eNewUnit )
// -----------------------------------------------------------------------
void MetricFormatter::SetCustomUnitText( const XubString& rStr )
void MetricFormatter::SetCustomUnitText( const OUString& rStr )
{
maCustomUnitText = rStr;
ReformatAll();
@@ -2078,7 +2078,7 @@ static sal_Bool ImplCurrencyProcessKeyInput( Edit* pEdit, const KeyEvent& rKEvt,
// -----------------------------------------------------------------------
inline sal_Bool ImplCurrencyGetValue( const XubString& rStr, double& rValue,
inline sal_Bool ImplCurrencyGetValue( const OUString& rStr, double& rValue,
sal_uInt16 nDecDigits, const LocaleDataWrapper& rWrapper )
{
// fetch number
diff --git a/vcl/source/control/field2.cxx b/vcl/source/control/field2.cxx
index 7bc7c45..1bfcd06 100644
--- a/vcl/source/control/field2.cxx
+++ b/vcl/source/control/field2.cxx
@@ -67,16 +67,16 @@ uno::Reference< i18n::XCharacterClassification > ImplGetCharClass()
// -----------------------------------------------------------------------
static sal_Unicode* ImplAddString( sal_Unicode* pBuf, const String& rStr )
static sal_Unicode* ImplAddString( sal_Unicode* pBuf, const OUString& rStr )
{
if ( rStr.Len() == 1 )
*pBuf++ = rStr.GetChar(0);
else if ( rStr.Len() == 0 )
if ( rStr.getLength() == 1 )
*pBuf++ = rStr[0];
else if ( rStr.isEmpty() )
;
else
{
memcpy( pBuf, rStr.GetBuffer(), rStr.Len() * sizeof(sal_Unicode) );
pBuf += rStr.Len();
memcpy( pBuf, rStr.getStr(), rStr.getLength() * sizeof(sal_Unicode) );
pBuf += rStr.getLength();
}
return pBuf;
}
@@ -233,31 +233,31 @@ static int ImplKommaPointCharEqual( sal_Unicode c1, sal_Unicode c2 )
// -----------------------------------------------------------------------
static XubString ImplPatternReformat( const XubString& rStr,
const rtl::OString& rEditMask,
const XubString& rLiteralMask,
sal_uInt16 nFormatFlags )
static OUString ImplPatternReformat( const OUString& rStr,
const OString& rEditMask,
const OUString& rLiteralMask,
sal_uInt16 nFormatFlags )
{
if (rEditMask.isEmpty())
return rStr;
XubString aStr = rStr;
XubString aOutStr = rLiteralMask;
OUString aStr = rStr;
OUStringBuffer aOutStr = OUString(rLiteralMask);
sal_Unicode cTempChar;
sal_Unicode cChar;
sal_Unicode cLiteral;
sal_Char cMask;
xub_StrLen nStrIndex = 0;
xub_StrLen i = 0;
xub_StrLen n;
sal_Int32 nStrIndex = 0;
sal_Int32 i = 0;
sal_Int32 n;
while ( i < rEditMask.getLength() )
{
if ( nStrIndex >= aStr.Len() )
if ( nStrIndex >= aStr.getLength() )
break;
cChar = aStr.GetChar(nStrIndex);
cLiteral = rLiteralMask.GetChar(i);
cChar = aStr[nStrIndex];
cLiteral = rLiteralMask[i];
cMask = rEditMask[i];
// current position is a literal
@@ -292,7 +292,7 @@ static XubString ImplPatternReformat( const XubString& rStr,
if ( cTempChar )
{
// use this character
aOutStr.SetChar( i, cTempChar );
aOutStr[i] = cTempChar;
nStrIndex++;
}
else
@@ -311,7 +311,7 @@ static XubString ImplPatternReformat( const XubString& rStr,
{
if ( rEditMask[n] == EDITMASK_LITERAL )
{
if ( ImplKommaPointCharEqual( cChar, rLiteralMask.GetChar( n ) ) )
if ( ImplKommaPointCharEqual( cChar, rLiteralMask[n] ) )
i = n+1;
break;
@@ -330,18 +330,18 @@ static XubString ImplPatternReformat( const XubString& rStr,
i++;
}
return aOutStr;
return aOutStr.makeStringAndClear();
}
// -----------------------------------------------------------------------
static void ImplPatternMaxPos( const XubString rStr, const rtl::OString& rEditMask,
static void ImplPatternMaxPos( const OUString rStr, const OString& rEditMask,
sal_uInt16 nFormatFlags, sal_Bool bSameMask,
sal_uInt16 nCursorPos, sal_uInt16& rPos )
sal_uInt16 nCursorPos, sal_Int32& rPos )
{
// last position must not be longer than the contained string
xub_StrLen nMaxPos = rStr.Len();
sal_Int32 nMaxPos = rStr.getLength();
// if non empty literals are allowed ignore blanks at the end as well
if ( bSameMask && !(nFormatFlags & PATTERN_FORMAT_EMPTYLITERALS) )
@@ -349,13 +349,13 @@ static void ImplPatternMaxPos( const XubString rStr, const rtl::OString& rEditMa
while ( nMaxPos )
{
if ( (rEditMask[nMaxPos-1] != EDITMASK_LITERAL) &&
(rStr.GetChar(nMaxPos-1) != ' ') )
(rStr[nMaxPos-1] != ' ') )
break;
nMaxPos--;
}
// if we are in front of a literal, continue search until first character after the literal
xub_StrLen nTempPos = nMaxPos;
sal_Int32 nTempPos = nMaxPos;
while ( nTempPos < rEditMask.getLength() )
{
if ( rEditMask[nTempPos] != EDITMASK_LITERAL )
@@ -370,7 +370,7 @@ static void ImplPatternMaxPos( const XubString rStr, const rtl::OString& rEditMa
if ( rPos > nMaxPos )
rPos = nMaxPos;
// charactr should not move left
// character should not move left
if ( rPos < nCursorPos )
rPos = nCursorPos;
}
@@ -378,21 +378,21 @@ static void ImplPatternMaxPos( const XubString rStr, const rtl::OString& rEditMa
// -----------------------------------------------------------------------
static void ImplPatternProcessStrictModify( Edit* pEdit,
const rtl::OString& rEditMask,
const XubString& rLiteralMask,
const OString& rEditMask,
const OUString& rLiteralMask,
sal_uInt16 nFormatFlags, sal_Bool bSameMask )
{
XubString aText = pEdit->GetText();
OUString aText = pEdit->GetText();
// remove leading blanks
if ( bSameMask && !(nFormatFlags & PATTERN_FORMAT_EMPTYLITERALS) )
{
xub_StrLen i = 0;
xub_StrLen nMaxLen = aText.Len();
sal_Int32 i = 0;
sal_Int32 nMaxLen = aText.getLength();
while ( i < nMaxLen )
{
if ( (rEditMask[i] != EDITMASK_LITERAL) &&
(aText.GetChar( i ) != ' ') )
(aText[i] != ' ') )
break;
i++;
@@ -400,18 +400,18 @@ static void ImplPatternProcessStrictModify( Edit* pEdit,
// keep all literal characters
while ( i && (rEditMask[i] == EDITMASK_LITERAL) )
i--;
aText.Erase( 0, i );
aText = aText.copy( i );
}
XubString aNewText = ImplPatternReformat( aText, rEditMask, rLiteralMask, nFormatFlags );
OUString aNewText = ImplPatternReformat( aText, rEditMask, rLiteralMask, nFormatFlags );
if ( aNewText != aText )
{
// adjust selection such that it remains at the end if it was there before
Selection aSel = pEdit->GetSelection();
sal_uLong nMaxSel = Max( aSel.Min(), aSel.Max() );
if ( nMaxSel >= aText.Len() )
sal_Int64 nMaxSel = Max( aSel.Min(), aSel.Max() );
if ( nMaxSel >= aText.getLength() )
{
xub_StrLen nMaxPos = aNewText.Len();
sal_Int32 nMaxPos = aNewText.getLength();
ImplPatternMaxPos( aNewText, rEditMask, nFormatFlags, bSameMask, (xub_StrLen)nMaxSel, nMaxPos );
if ( aSel.Min() == aSel.Max() )
{
@@ -450,11 +450,11 @@ static xub_StrLen ImplPatternLeftPos(const rtl::OString& rEditMask, xub_StrLen n
static xub_StrLen ImplPatternRightPos( const XubString& rStr, const rtl::OString& rEditMask,
sal_uInt16 nFormatFlags, sal_Bool bSameMask,
xub_StrLen nCursorPos )
sal_Int32 nCursorPos )
{
// search non-literal successor
xub_StrLen nNewPos = nCursorPos;
xub_StrLen nTempPos = nNewPos;
sal_Int32 nNewPos = nCursorPos;
sal_Int32 nTempPos = nNewPos;
while ( nTempPos < rEditMask.getLength() )
{
if ( rEditMask[nTempPos+1] != EDITMASK_LITERAL )
@@ -471,8 +471,8 @@ static xub_StrLen ImplPatternRightPos( const XubString& rStr, const rtl::OString
// -----------------------------------------------------------------------
static sal_Bool ImplPatternProcessKeyInput( Edit* pEdit, const KeyEvent& rKEvt,
const rtl::OString& rEditMask,
const XubString& rLiteralMask,
const OString& rEditMask,
const OUString& rLiteralMask,
sal_Bool bStrictFormat,
sal_uInt16 nFormatFlags,
sal_Bool bSameMask,
@@ -486,9 +486,9 @@ static sal_Bool ImplPatternProcessKeyInput( Edit* pEdit, const KeyEvent& rKEvt,
sal_Unicode cChar = rKEvt.GetCharCode();
sal_uInt16 nKeyCode = aCode.GetCode();
sal_Bool bShift = aCode.IsShift();
xub_StrLen nCursorPos = (xub_StrLen)aOldSel.Max();
xub_StrLen nNewPos;
xub_StrLen nTempPos;
sal_Int32 nCursorPos = static_cast<sal_Int32>(aOldSel.Max());
sal_Int32 nNewPos;
sal_Int32 nTempPos;
if ( nKeyCode && !aCode.IsMod1() && !aCode.IsMod2() )
{
@@ -543,7 +543,7 @@ static sal_Bool ImplPatternProcessKeyInput( Edit* pEdit, const KeyEvent& rKEvt,
// all was selected by the focus
Selection aSel( aOldSel );
aSel.Justify();
nCursorPos = (xub_StrLen)aSel.Min();
nCursorPos = static_cast<sal_Int32>(aSel.Min());
ImplPatternMaxPos( pEdit->GetText(), rEditMask, nFormatFlags, bSameMask, nCursorPos, nNewPos );
aSel.Max() = nNewPos;
if ( bShift )
@@ -555,22 +555,23 @@ static sal_Bool ImplPatternProcessKeyInput( Edit* pEdit, const KeyEvent& rKEvt,
}
else if ( (nKeyCode == KEY_BACKSPACE) || (nKeyCode == KEY_DELETE) )
{
XubString aStr( pEdit->GetText() );
XubString aOldStr = aStr;
OUString aOldStr( pEdit->GetText() );
OUStringBuffer aStr( aOldStr );
Selection aSel = aOldSel;
aSel.Justify();
nNewPos = (xub_StrLen)aSel.Min();
nNewPos = static_cast<sal_Int32>(aSel.Min());
// if selection then delete it
if ( aSel.Len() )
{
if ( bSameMask )
aStr.Erase( (xub_StrLen)aSel.Min(), (xub_StrLen)aSel.Len() );
aStr.remove( static_cast<sal_Int32>(aSel.Min()), static_cast<sal_Int32>(aSel.Len()) );
else
{
XubString aRep = rLiteralMask.Copy( (xub_StrLen)aSel.Min(), (xub_StrLen)aSel.Len() );
aStr.Replace( (xub_StrLen)aSel.Min(), aRep.Len(), aRep );
OUString aRep = rLiteralMask.copy( static_cast<sal_Int32>(aSel.Min()), static_cast<sal_Int32>(aSel.Len()) );
aStr.remove( aSel.Min(), aRep.getLength() );
aStr.insert( aSel.Min(), aRep );
}
}
else
@@ -581,29 +582,28 @@ static sal_Bool ImplPatternProcessKeyInput( Edit* pEdit, const KeyEvent& rKEvt,
nNewPos = ImplPatternLeftPos( rEditMask, nTempPos );
}
else
nTempPos = ImplPatternRightPos( aStr, rEditMask, nFormatFlags, bSameMask, nNewPos );
nTempPos = ImplPatternRightPos( aStr.toString(), rEditMask, nFormatFlags, bSameMask, nNewPos );
if ( nNewPos != nTempPos )
{
if ( bSameMask )
{
if ( rEditMask[nNewPos] != EDITMASK_LITERAL )
aStr.Erase( nNewPos, 1 );
aStr.remove( nNewPos, 1 );
}
else
{
XubString aTempStr = rLiteralMask.Copy( nNewPos, 1 );
aStr.Replace( nNewPos, aTempStr.Len(), aTempStr );
aStr[nNewPos] = rLiteralMask[nNewPos];
}
}
}
if ( aOldStr != aStr )
if ( aOldStr != aStr.toString() )
{
if ( bSameMask )
aStr = ImplPatternReformat( aStr, rEditMask, rLiteralMask, nFormatFlags );
aStr = ImplPatternReformat( aStr.toString(), rEditMask, rLiteralMask, nFormatFlags );
rbInKeyInput = sal_True;
pEdit->SetText( aStr, Selection( nNewPos ) );
pEdit->SetText( aStr.toString(), Selection( nNewPos ) );
pEdit->SetModifyFlag();
pEdit->Modify();
rbInKeyInput = sal_False;
@@ -653,7 +653,7 @@ static sal_Bool ImplPatternProcessKeyInput( Edit* pEdit, const KeyEvent& rKEvt,
{
// only valid if no literal present
if ( (rEditMask[nTempPos+1] != EDITMASK_LITERAL ) &&
ImplKommaPointCharEqual( cChar, rLiteralMask.GetChar(nTempPos) ) )
ImplKommaPointCharEqual( cChar, rLiteralMask[nTempPos] ) )
{
nTempPos++;
ImplPatternMaxPos( pEdit->GetText(), rEditMask, nFormatFlags, bSameMask, nNewPos, nTempPos );
@@ -676,35 +676,35 @@ static sal_Bool ImplPatternProcessKeyInput( Edit* pEdit, const KeyEvent& rKEvt,
cChar = 0;
if ( cChar )
{
XubString aStr = pEdit->GetText();
OUStringBuffer aStr = pEdit->GetText();
sal_Bool bError = sal_False;
if ( bSameMask && pEdit->IsInsertMode() )
{
// crop spaces and literals at the end until current position
xub_StrLen n = aStr.Len();
sal_Int32 n = aStr.getLength();
while ( n && (n > nNewPos) )
{
if ( (aStr.GetChar( n-1 ) != ' ') &&
if ( (aStr[n-1] != ' ') &&
((n > rEditMask.getLength()) || (rEditMask[n-1] != EDITMASK_LITERAL)) )
break;
n--;
}
aStr.Erase( n );
aStr.truncate( n );
if ( aSel.Len() )
aStr.Erase( (xub_StrLen)aSel.Min(), (xub_StrLen)aSel.Len() );
aStr.remove( (xub_StrLen)aSel.Min(), (xub_StrLen)aSel.Len() );
if ( aStr.Len() < rEditMask.getLength() )
if ( aStr.getLength() < rEditMask.getLength() )
{
// possibly extend string until cursor position
if ( aStr.Len() < nNewPos )
aStr += rLiteralMask.Copy( aStr.Len(), nNewPos-aStr.Len() );
if ( nNewPos < aStr.Len() )
aStr.Insert( cChar, nNewPos );
if ( aStr.getLength() < nNewPos )
aStr.append( rLiteralMask.copy( aStr.getLength(), nNewPos-aStr.getLength() ));
if ( nNewPos < aStr.getLength() )
aStr.insert( cChar, nNewPos );
else if ( nNewPos < rEditMask.getLength() )
aStr += cChar;
aStr = ImplPatternReformat( aStr, rEditMask, rLiteralMask, nFormatFlags );
aStr.append(cChar);
aStr = ImplPatternReformat( aStr.toString(), rEditMask, rLiteralMask, nFormatFlags );
}
else
bError = sal_True;
@@ -714,21 +714,22 @@ static sal_Bool ImplPatternProcessKeyInput( Edit* pEdit, const KeyEvent& rKEvt,
if ( aSel.Len() )
{
// delete selection
XubString aRep = rLiteralMask.Copy( (xub_StrLen)aSel.Min(), (xub_StrLen)aSel.Len() );
aStr.Replace( (xub_StrLen)aSel.Min(), aRep.Len(), aRep );
OUString aRep = rLiteralMask.copy( (xub_StrLen)aSel.Min(), (xub_StrLen)aSel.Len() );
aStr.remove( aSel.Min(), aRep.getLength() );
aStr.insert( aSel.Min(), aRep );
}
if ( nNewPos < aStr.Len() )
aStr.SetChar( nNewPos, cChar );
if ( nNewPos < aStr.getLength() )
aStr[nNewPos] = cChar;
else if ( nNewPos < rEditMask.getLength() )
aStr += cChar;
aStr.append(cChar);
}
if ( !bError )
{
rbInKeyInput = sal_True;
Selection aNewSel( ImplPatternRightPos( aStr, rEditMask, nFormatFlags, bSameMask, nNewPos ) );
pEdit->SetText( aStr, aNewSel );
Selection aNewSel( ImplPatternRightPos( aStr.toString(), rEditMask, nFormatFlags, bSameMask, nNewPos ) );
pEdit->SetText( aStr.toString(), aNewSel );
pEdit->SetModifyFlag();
pEdit->Modify();
rbInKeyInput = sal_False;
@@ -740,14 +741,13 @@ static sal_Bool ImplPatternProcessKeyInput( Edit* pEdit, const KeyEvent& rKEvt,
// -----------------------------------------------------------------------
void PatternFormatter::ImplSetMask(const rtl::OString& rEditMask,
const XubString& rLiteralMask)
void PatternFormatter::ImplSetMask(const OString& rEditMask, const OUString& rLiteralMask)
{
m_aEditMask = rEditMask;
m_aEditMask = rEditMask;
maLiteralMask = rLiteralMask;
mbSameMask = sal_True;
if ( m_aEditMask.getLength() != maLiteralMask.Len() )
if ( m_aEditMask.getLength() != maLiteralMask.getLength() )
{
OUStringBuffer aBuf(maLiteralMask);
if (m_aEditMask.getLength() < aBuf.getLength())
@@ -759,7 +759,7 @@ void PatternFormatter::ImplSetMask(const rtl::OString& rEditMask,
// Strict mode allows only the input mode if only equal characters are allowed as mask and if
// only spaces are specified which are not allowed by the mask
xub_StrLen i = 0;
sal_Int32 i = 0;
sal_Char c = 0;
while ( i < rEditMask.getLength() )
{
@@ -773,9 +773,9 @@ void PatternFormatter::ImplSetMask(const rtl::OString& rEditMask,
mbSameMask = sal_False;
break;
}
if ( i < rLiteralMask.Len() )
if ( i < rLiteralMask.getLength() )
{
if ( rLiteralMask.GetChar( i ) != ' ' )
if ( rLiteralMask[i] != ' ' )
{
mbSameMask = sal_False;
break;
@@ -810,8 +810,8 @@ PatternFormatter::~PatternFormatter()
// -----------------------------------------------------------------------
void PatternFormatter::SetMask( const rtl::OString& rEditMask,
const XubString& rLiteralMask )
void PatternFormatter::SetMask( const OString& rEditMask,
const OUString& rLiteralMask )
{
ImplSetMask( rEditMask, rLiteralMask );
ReformatAll();
@@ -819,7 +819,7 @@ void PatternFormatter::SetMask( const rtl::OString& rEditMask,
// -----------------------------------------------------------------------
void PatternFormatter::SetString( const XubString& rStr )
void PatternFormatter::SetString( const OUString& rStr )
{
maFieldString = rStr;
if ( GetField() )
@@ -831,7 +831,7 @@ void PatternFormatter::SetString( const XubString& rStr )
// -----------------------------------------------------------------------
XubString PatternFormatter::GetString() const
OUString PatternFormatter::GetString() const
{
if ( !GetField() )
return ImplGetSVEmptyStr();
@@ -975,7 +975,7 @@ void PatternBox::Modify()
void PatternBox::ReformatAll()
{
XubString aStr;
OUString aStr;
SetUpdateMode( sal_False );
sal_uInt16 nEntryCount = GetEntryCount();
for ( sal_uInt16 i=0; i < nEntryCount; i++ )
@@ -1002,38 +1002,33 @@ static ExtDateFieldFormat ImplGetExtFormat( DateFormat eOld )
// -----------------------------------------------------------------------
static sal_uInt16 ImplCutNumberFromString( XubString& rStr )
static sal_uInt16 ImplCutNumberFromString( OUString& rStr )
{
// Nach Zahl suchen
while ( rStr.Len() && !(rStr.GetChar( 0 ) >= '0' && rStr.GetChar( 0 ) <= '9') )
rStr.Erase( 0, 1 );
if ( !rStr.Len() )
return 0;
XubString aNumStr;
while ( rStr.Len() && (rStr.GetChar( 0 ) >= '0' && rStr.GetChar( 0 ) <= '9') )
{
aNumStr.Insert( rStr.GetChar( 0 ) );
rStr.Erase( 0, 1 );
sal_Int32 i1 = 0;
while (i1 != rStr.getLength() && !(rStr[i1] >= '0' && rStr[i1] <= '9')) {
++i1;
}
return (sal_uInt16)aNumStr.ToInt32();
sal_Int32 i2 = i1;
while (i2 != rStr.getLength() && rStr[i2] >= '0' && rStr[i2] <= '9') {
++i2;
}
sal_Int32 nValue = rStr.copy(i1, i2-i1).toInt32();
rStr = rStr.copy(i2+1);
return nValue;
}
// -----------------------------------------------------------------------
static sal_Bool ImplCutMonthName( XubString& rStr, const XubString& _rLookupMonthName )
static sal_Bool ImplCutMonthName( OUString& rStr, const OUString& _rLookupMonthName )
{
sal_uInt16 nPos = rStr.Search( _rLookupMonthName );
if ( nPos != STRING_NOTFOUND )
{
rStr.Erase( 0, nPos + _rLookupMonthName.Len() );
return sal_True;
}
return sal_False;
sal_Int32 index = 0;
rStr = rStr.replaceFirst(_rLookupMonthName, OUString(), &index);
return index >= 0;
}
// -----------------------------------------------------------------------
static sal_uInt16 ImplCutMonthFromString( XubString& rStr, const CalendarWrapper& rCalendarWrapper )
static sal_uInt16 ImplCutMonthFromString( OUString& rStr, const CalendarWrapper& rCalendarWrapper )
{
// search for a month' name
for ( sal_uInt16 i=1; i <= 12; i++ )
@@ -1054,10 +1049,10 @@ static sal_uInt16 ImplCutMonthFromString( XubString& rStr, const CalendarWrapper
// -----------------------------------------------------------------------
static String ImplGetDateSep( const LocaleDataWrapper& rLocaleDataWrapper, ExtDateFieldFormat eFormat )
static OUString ImplGetDateSep( const LocaleDataWrapper& rLocaleDataWrapper, ExtDateFieldFormat eFormat )
{
if ( ( eFormat == XTDATEF_SHORT_YYMMDD_DIN5008 ) || ( eFormat == XTDATEF_SHORT_YYYYMMDD_DIN5008 ) )
return rtl::OUString("-");
return OUString("-");
else
return rLocaleDataWrapper.getDateSep();
}
@@ -1070,7 +1065,7 @@ static sal_Bool ImplDateProcessKeyInput( Edit*, const KeyEvent& rKEvt, ExtDateFi
if ( (nGroup == KEYGROUP_FKEYS) || (nGroup == KEYGROUP_CURSOR) ||
(nGroup == KEYGROUP_MISC)||
((cChar >= '0') && (cChar <= '9')) ||
(cChar == ImplGetDateSep( rLocaleDataWrapper, eFormat ).GetChar(0) ) )
(cChar == ImplGetDateSep( rLocaleDataWrapper, eFormat )[0]) )
return sal_False;
else
return sal_True;
@@ -1078,7 +1073,7 @@ static sal_Bool ImplDateProcessKeyInput( Edit*, const KeyEvent& rKEvt, ExtDateFi
// -----------------------------------------------------------------------
static sal_Bool ImplDateGetValue( const XubString& rStr, Date& rDate, ExtDateFieldFormat eDateFormat,
static sal_Bool ImplDateGetValue( const OUString& rStr, Date& rDate, ExtDateFieldFormat eDateFormat,
const LocaleDataWrapper& rLocaleDataWrapper, const CalendarWrapper& rCalendarWrapper,
const AllSettings& )
{
@@ -1087,7 +1082,7 @@ static sal_Bool ImplDateGetValue( const XubString& rStr, Date& rDate, ExtDateFie
sal_uInt16 nYear = 0;
sal_Bool bYear = sal_True;
sal_Bool bError = sal_False;
String aStr( rStr );
OUString aStr( rStr );
if ( eDateFormat == XTDATEF_SYSTEM_LONG )
{
@@ -1115,18 +1110,18 @@ static sal_Bool ImplDateGetValue( const XubString& rStr, Date& rDate, ExtDateFie
else
{
// Check if year is present:
String aDateSep = ImplGetDateSep( rLocaleDataWrapper, eDateFormat );
sal_uInt16 nSepPos = aStr.Search( aDateSep );
if ( nSepPos == STRING_NOTFOUND )
OUString aDateSep = ImplGetDateSep( rLocaleDataWrapper, eDateFormat );
sal_Int32 nSepPos = aStr.indexOf( aDateSep );
if ( nSepPos < 0 )
return sal_False;
nSepPos = aStr.Search( aDateSep, nSepPos+1 );
if ( ( nSepPos == STRING_NOTFOUND ) || ( nSepPos == (aStr.Len()-1) ) )
nSepPos = aStr.indexOf( aDateSep, nSepPos+1 );
if ( ( nSepPos < 0 ) || ( nSepPos == (aStr.getLength()-1) ) )
{
bYear = sal_False;
nYear = Date( Date::SYSTEM ).GetYear();
}
const sal_Unicode* pBuf = aStr.GetBuffer();
const sal_Unicode* pBuf = aStr.getStr();
ImplSkipDelimiters( pBuf );
switch ( eDateFormat )
@@ -1256,7 +1251,7 @@ OUString DateFormatter::ImplGetDateAsText( const Date& rDate,
sal_Unicode aBuf[128];
sal_Unicode* pBuf = aBuf;
String aDateSep = ImplGetDateSep( ImplGetLocaleDataWrapper(), GetExtDateFormat( sal_True ) );
OUString aDateSep = ImplGetDateSep( ImplGetLocaleDataWrapper(), GetExtDateFormat( sal_True ) );
sal_uInt16 nDay = rDate.GetDay();
sal_uInt16 nMonth = rDate.GetMonth();
sal_uInt16 nYear = rDate.GetYear();
@@ -1405,12 +1400,12 @@ void DateField::ImplDateSpinArea( sal_Bool bUp )
Date aDate( GetDate() );
Selection aSelection = GetField()->GetSelection();
aSelection.Justify();
XubString aText( GetText() );
if ( (xub_StrLen)aSelection.Len() == aText.Len() )
OUString aText( GetText() );
if ( (sal_Int32)aSelection.Len() == aText.getLength() )
ImplDateIncrementDay( aDate, bUp );
else
{
xub_StrLen nDateArea = 0;
sal_Int8 nDateArea = 0;
ExtDateFieldFormat eFormat = GetExtDateFormat( sal_True );
if ( eFormat == XTDATEF_SYSTEM_LONG )
@@ -1421,12 +1416,12 @@ void DateField::ImplDateSpinArea( sal_Bool bUp )
else
{
// search area
xub_StrLen nPos = 0;
String aDateSep = ImplGetDateSep( ImplGetLocaleDataWrapper(), eFormat );
for ( xub_StrLen i = 1; i <= 3; i++ )
sal_Int32 nPos = 0;
OUString aDateSep = ImplGetDateSep( ImplGetLocaleDataWrapper(), eFormat );
for ( sal_Int8 i = 1; i <= 3; i++ )
{
nPos = aText.Search( aDateSep, nPos );
if ( nPos >= (sal_uInt16)aSelection.Max() )
nPos = aText.indexOf( aDateSep, nPos );
if ( nPos >= (sal_Int32)aSelection.Max() )
{
nDateArea = i;
break;
@@ -2185,10 +2180,10 @@ static sal_Bool ImplTimeProcessKeyInput( Edit*, const KeyEvent& rKEvt,
// -----------------------------------------------------------------------
static sal_Bool ImplIsOnlyDigits( const String& _rStr )
static sal_Bool ImplIsOnlyDigits( const OUStringBuffer& _rStr )
{
const sal_Unicode* _pChr = _rStr.GetBuffer();
for ( xub_StrLen i = 0; i < _rStr.Len(); ++i, ++_pChr )
const sal_Unicode* _pChr = _rStr.getStr();
for ( sal_Int32 i = 0; i < _rStr.getLength(); ++i, ++_pChr )
{
if ( *_pChr < '0' || *_pChr > '9' )
return sal_False;
@@ -2198,11 +2193,11 @@ static sal_Bool ImplIsOnlyDigits( const String& _rStr )
// -----------------------------------------------------------------------
static sal_Bool ImplIsValidTimePortion( sal_Bool _bSkipInvalidCharacters, const String& _rStr )
static sal_Bool ImplIsValidTimePortion( sal_Bool _bSkipInvalidCharacters, const OUStringBuffer& _rStr )
{
if ( !_bSkipInvalidCharacters )
{
if ( ( _rStr.Len() > 2 ) || ( _rStr.Len() < 1 ) || !ImplIsOnlyDigits( _rStr ) )
if ( ( _rStr.getLength() > 2 ) || ( _rStr.getLength() < 1 ) || !ImplIsOnlyDigits( _rStr ) )
return sal_False;
}
return sal_True;
@@ -2210,31 +2205,31 @@ static sal_Bool ImplIsValidTimePortion( sal_Bool _bSkipInvalidCharacters, const
// -----------------------------------------------------------------------
static sal_Bool ImplCutTimePortion( String& _rStr, xub_StrLen _nSepPos, sal_Bool _bSkipInvalidCharacters, short* _pPortion )
static sal_Bool ImplCutTimePortion( OUStringBuffer& _rStr, xub_StrLen _nSepPos, sal_Bool _bSkipInvalidCharacters, short* _pPortion )
{
String sPortion = _rStr.Copy( 0, _nSepPos );
_rStr.Erase( 0, _nSepPos + 1 );
OUString sPortion(_rStr.getStr(), _nSepPos );
_rStr = _rStr.copy( _nSepPos + 1 );
if ( !ImplIsValidTimePortion( _bSkipInvalidCharacters, sPortion ) )
return sal_False;
*_pPortion = (short)sPortion.ToInt32();
*_pPortion = (short)sPortion.toInt32();
return sal_True;
}
// -----------------------------------------------------------------------
static sal_Bool ImplTimeGetValue( const XubString& rStr, Time& rTime,
static sal_Bool ImplTimeGetValue( const OUString& rStr, Time& rTime,
TimeFieldFormat eFormat, sal_Bool bDuration,
const LocaleDataWrapper& rLocaleDataWrapper, sal_Bool _bSkipInvalidCharacters = sal_True )
{
XubString aStr = rStr;
OUStringBuffer aStr = rStr;
short nHour = 0;
short nMinute = 0;
short nSecond = 0;
short n100Sec = 0;
Time aTime( 0, 0, 0 );
if ( !rStr.Len() )
if ( rStr.isEmpty() )
return sal_False;
// Search for separators
@@ -2249,53 +2244,53 @@ static sal_Bool ImplTimeGetValue( const XubString& rStr, Time& rTime,
{
if (string::equals(rLocaleDataWrapper.getTimeSep(), aSepStr[i]))
continue;
for ( xub_StrLen j = 0; j < aStr.Len(); j++ )
for ( sal_Int32 j = 0; j < aStr.getLength(); j++ )
{
if (aStr.GetChar( j ) == aSepStr[i])
aStr.SetChar( j, rLocaleDataWrapper.getTimeSep()[0] );
if (aStr[j] == aSepStr[i])
aStr[j] = rLocaleDataWrapper.getTimeSep()[0];
}
}
}
sal_Bool bNegative = sal_False;
xub_StrLen nSepPos = aStr.Search( rLocaleDataWrapper.getTimeSep() );
if ( aStr.GetChar( 0 ) == '-' )
sal_Int32 nSepPos = aStr.indexOf( rLocaleDataWrapper.getTimeSep() );
if ( aStr[0] == '-' )
bNegative = sal_True;
if ( eFormat != TIMEF_SEC_CS )
{
if ( nSepPos == STRING_NOTFOUND )
nSepPos = aStr.Len();
if ( nSepPos < 0 )
nSepPos = aStr.getLength();
if ( !ImplCutTimePortion( aStr, nSepPos, _bSkipInvalidCharacters, &nHour ) )
return sal_False;
nSepPos = aStr.Search( rLocaleDataWrapper.getTimeSep() );
if ( aStr.GetChar( 0 ) == '-' )
nSepPos = aStr.indexOf( rLocaleDataWrapper.getTimeSep() );
if ( aStr[0] == '-' )
bNegative = sal_True;
if ( nSepPos != STRING_NOTFOUND )
if ( nSepPos >= 0 )
{
if ( !ImplCutTimePortion( aStr, nSepPos, _bSkipInvalidCharacters, &nMinute ) )
return sal_False;
nSepPos = aStr.Search( rLocaleDataWrapper.getTimeSep() );
if ( aStr.GetChar( 0 ) == '-' )
nSepPos = aStr.indexOf( rLocaleDataWrapper.getTimeSep() );
if ( aStr[0] == '-' )
bNegative = sal_True;
if ( nSepPos != STRING_NOTFOUND )
if ( nSepPos >= 0 )
{
if ( !ImplCutTimePortion( aStr, nSepPos, _bSkipInvalidCharacters, &nSecond ) )
return sal_False;
if ( aStr.GetChar( 0 ) == '-' )
if ( aStr[0] == '-' )
bNegative = sal_True;
n100Sec = (short)aStr.ToInt32();
n100Sec = (short)aStr.toString().toInt32();
}
else
nSecond = (short)aStr.ToInt32();
nSecond = (short)aStr.toString().toInt32();
}
else
nMinute = (short)aStr.ToInt32();
nMinute = (short)aStr.toString().toInt32();
}
else if ( nSepPos == STRING_NOTFOUND )
else if ( nSepPos < 0 )
{
nSecond = (short)aStr.ToInt32();
nSecond = (short)aStr.toString().toInt32();
nMinute += nSecond / 60;
nSecond %= 60;
nHour += nMinute / 60;
@@ -2303,27 +2298,27 @@ static sal_Bool ImplTimeGetValue( const XubString& rStr, Time& rTime,
}
else
{
nSecond = (short)aStr.Copy( 0, nSepPos ).ToInt32();
aStr.Erase( 0, nSepPos+1 );
nSecond = (short)aStr.copy( 0, nSepPos ).toString().toInt32();
aStr.remove( 0, nSepPos+1 );
nSepPos = aStr.Search( rLocaleDataWrapper.getTimeSep() );
if ( aStr.GetChar( 0 ) == '-' )
nSepPos = aStr.indexOf( rLocaleDataWrapper.getTimeSep() );
if ( aStr[0] == '-' )
bNegative = sal_True;
if ( nSepPos != STRING_NOTFOUND )
if ( nSepPos >= 0 )
{
nMinute = nSecond;
nSecond = (short)aStr.Copy( 0, nSepPos ).ToInt32();
aStr.Erase( 0, nSepPos+1 );
nSecond = (short)aStr.copy( 0, nSepPos ).toString().toInt32();
aStr.remove( 0, nSepPos+1 );
nSepPos = aStr.Search( rLocaleDataWrapper.getTimeSep() );
if ( aStr.GetChar( 0 ) == '-' )
nSepPos = aStr.indexOf( rLocaleDataWrapper.getTimeSep() );
if ( aStr[0] == '-' )
bNegative = sal_True;
if ( nSepPos != STRING_NOTFOUND )
if ( nSepPos >= 0 )
{
nHour = nMinute;
nMinute = nSecond;
nSecond = (short)aStr.Copy( 0, nSepPos ).ToInt32();
aStr.Erase( 0, nSepPos+1 );
nSecond = (short)aStr.copy( 0, nSepPos ).toString().toInt32();
aStr.remove( 0, nSepPos+1 );
}
else
{
@@ -2338,13 +2333,13 @@ static sal_Bool ImplTimeGetValue( const XubString& rStr, Time& rTime,
nHour += nMinute / 60;
nMinute %= 60;
}
n100Sec = (short)aStr.ToInt32();
n100Sec = (short)aStr.toString().toInt32();
if ( n100Sec )
{
xub_StrLen nLen = 1; // at least one digit, otherwise n100Sec==0
while ( aStr.GetChar(nLen) >= '0' && aStr.GetChar(nLen) <= '9' )
while ( aStr[nLen] >= '0' && aStr[nLen] <= '9' )
nLen++;
if ( nLen > 2 )
@@ -2357,13 +2352,9 @@ static sal_Bool ImplTimeGetValue( const XubString& rStr, Time& rTime,
// round if negative?
n100Sec = (n100Sec + 5) / 10;
}
else
else if ( nLen == 1 )
{
while( nLen < 2 )
{
n100Sec = n100Sec * 10;
nLen++;
}
n100Sec = n100Sec * 10;
}
}
}
@@ -2382,16 +2373,16 @@ static sal_Bool ImplTimeGetValue( const XubString& rStr, Time& rTime,
(nSecond < 0) || (n100Sec < 0) )
return sal_False;
aStr.ToUpperAscii();
OUString aUpperCaseStr = aStr.toString().toAsciiUpperCase();
OUString aAM(rLocaleDataWrapper.getTimeAM().toAsciiUpperCase());
OUString aPM(rLocaleDataWrapper.getTimePM().toAsciiUpperCase());
OUString aAM2("AM"); // aAM is localized
OUString aPM2("PM"); // aPM is localized
if ( (nHour < 12) && ( ( aStr.Search( aPM ) != STRING_NOTFOUND ) || ( aStr.Search( aPM2 ) != STRING_NOTFOUND ) ) )
if ( (nHour < 12) && ( ( aUpperCaseStr.indexOf( aPM ) >= 0 ) || ( aUpperCaseStr.indexOf( aPM2 ) >= 0 ) ) )
nHour += 12;
if ( (nHour == 12) && ( ( aStr.Search( aAM ) != STRING_NOTFOUND ) || ( aStr.Search( aAM2 ) != STRING_NOTFOUND ) ) )
if ( (nHour == 12) && ( ( aUpperCaseStr.indexOf( aAM ) >= 0 ) || ( aUpperCaseStr.indexOf( aAM2 ) >= 0 ) ) )
nHour = 0;
aTime = Time( (sal_uInt16)nHour, (sal_uInt16)nMinute, (sal_uInt16)nSecond,
@@ -2502,7 +2493,7 @@ void TimeField::ImplTimeSpinArea( sal_Bool bUp )
{
xub_StrLen nTimeArea = 0;
Time aTime( GetTime() );
XubString aText( GetText() );
OUString aText( GetText() );
Selection aSelection( GetField()->GetSelection() );
// Area suchen
@@ -2510,8 +2501,8 @@ void TimeField::ImplTimeSpinArea( sal_Bool bUp )
{
for ( xub_StrLen i = 1, nPos = 0; i <= 4; i++ )
{
xub_StrLen nPos1 = aText.Search( ImplGetLocaleDataWrapper().getTimeSep(), nPos );
xub_StrLen nPos2 = aText.Search( ImplGetLocaleDataWrapper().getTime100SecSep(), nPos );
sal_Int32 nPos1 = aText.indexOf( ImplGetLocaleDataWrapper().getTimeSep(), nPos );
sal_Int32 nPos2 = aText.indexOf( ImplGetLocaleDataWrapper().getTime100SecSep(), nPos );
nPos = nPos1 < nPos2 ? nPos1 : nPos2;
if ( nPos >= (xub_StrLen)aSelection.Max() )
{
@@ -2524,8 +2515,8 @@ void TimeField::ImplTimeSpinArea( sal_Bool bUp )
}
else
{
xub_StrLen nPos = aText.Search( ImplGetLocaleDataWrapper().getTime100SecSep() );
if ( nPos == STRING_NOTFOUND || nPos >= (xub_StrLen)aSelection.Max() )
sal_Int32 nPos = aText.indexOf( ImplGetLocaleDataWrapper().getTime100SecSep() );
if ( nPos < 0 || nPos >= (xub_StrLen)aSelection.Max() )
nTimeArea = 3;
else
nTimeArea = 4;
@@ -2742,7 +2733,7 @@ void TimeFormatter::ImplSetUserTime( const Time& rNewTime, Selection* pNewSelect
if ( GetField() )
{
XubString aStr;
OUString aStr;
sal_Bool bSec = sal_False;
sal_Bool b100Sec = sal_False;
if ( meFormat != TIMEF_NONE )