Kaydet (Commit) 68d370dd authored tarafından Caolán McNamara's avatar Caolán McNamara

clarify that edit doesn't change during FormatterBase lifetime

Change-Id: I416eee47eaae49a629fb0199e6b086215d315a94
Reviewed-on: https://gerrit.libreoffice.org/63048
Tested-by: Jenkins
Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst 7d73c1c0
...@@ -55,11 +55,11 @@ protected: ...@@ -55,11 +55,11 @@ protected:
SAL_DLLPRIVATE LocaleDataWrapper& ImplGetLocaleDataWrapper() const; SAL_DLLPRIVATE LocaleDataWrapper& ImplGetLocaleDataWrapper() const;
void SetField( Edit* pField ) { mpField = pField; }
Edit* GetField() const { return mpField; } Edit* GetField() const { return mpField; }
void ClearField() { mpField.clear(); }
public: public:
explicit FormatterBase(); explicit FormatterBase(Edit* pField);
virtual ~FormatterBase(); virtual ~FormatterBase();
const LocaleDataWrapper& GetLocaleDataWrapper() const; const LocaleDataWrapper& GetLocaleDataWrapper() const;
...@@ -95,7 +95,7 @@ private: ...@@ -95,7 +95,7 @@ private:
bool mbInPattKeyInput; bool mbInPattKeyInput;
protected: protected:
PatternFormatter(); PatternFormatter(Edit* pEdit);
SAL_DLLPRIVATE void ImplSetMask(const OString& rEditMask, SAL_DLLPRIVATE void ImplSetMask(const OString& rEditMask,
const OUString& rLiteralMask); const OUString& rLiteralMask);
...@@ -174,7 +174,7 @@ protected: ...@@ -174,7 +174,7 @@ protected:
sal_Int64 mnFirst; sal_Int64 mnFirst;
sal_Int64 mnLast; sal_Int64 mnLast;
NumericFormatter(); NumericFormatter(Edit* pEdit);
void FieldUp(); void FieldUp();
void FieldDown(); void FieldDown();
...@@ -244,7 +244,7 @@ protected: ...@@ -244,7 +244,7 @@ protected:
FieldUnit meUnit; FieldUnit meUnit;
Link<MetricFormatter&,void> maCustomConvertLink; Link<MetricFormatter&,void> maCustomConvertLink;
MetricFormatter(); MetricFormatter(Edit* pEdit);
SAL_DLLPRIVATE void ImplMetricReformat( const OUString& rStr, double& rValue, OUString& rOutStr ); SAL_DLLPRIVATE void ImplMetricReformat( const OUString& rStr, double& rValue, OUString& rOutStr );
...@@ -262,7 +262,7 @@ private: ...@@ -262,7 +262,7 @@ private:
class VCL_DLLPUBLIC CurrencyFormatter : public NumericFormatter class VCL_DLLPUBLIC CurrencyFormatter : public NumericFormatter
{ {
protected: protected:
CurrencyFormatter(); CurrencyFormatter(Edit* pEdit);
SAL_DLLPRIVATE void ImplCurrencyReformat( const OUString& rStr, OUString& rOutStr ); SAL_DLLPRIVATE void ImplCurrencyReformat( const OUString& rStr, OUString& rOutStr );
virtual sal_Int64 GetValueFromString(const OUString& rStr) const override; virtual sal_Int64 GetValueFromString(const OUString& rStr) const override;
...@@ -292,7 +292,7 @@ private: ...@@ -292,7 +292,7 @@ private:
SAL_DLLPRIVATE void ImplInit(); SAL_DLLPRIVATE void ImplInit();
protected: protected:
DateFormatter(); DateFormatter(Edit* pEdit);
SAL_DLLPRIVATE const Date& ImplGetFieldDate() const { return maFieldDate; } SAL_DLLPRIVATE const Date& ImplGetFieldDate() const { return maFieldDate; }
SAL_DLLPRIVATE void ImplDateReformat( const OUString& rStr, OUString& rOutStr ); SAL_DLLPRIVATE void ImplDateReformat( const OUString& rStr, OUString& rOutStr );
...@@ -372,7 +372,7 @@ private: ...@@ -372,7 +372,7 @@ private:
protected: protected:
tools::Time maFieldTime; tools::Time maFieldTime;
TimeFormatter(); TimeFormatter(Edit* pEdit);
SAL_DLLPRIVATE void ImplTimeReformat( const OUString& rStr, OUString& rOutStr ); SAL_DLLPRIVATE void ImplTimeReformat( const OUString& rStr, OUString& rOutStr );
SAL_DLLPRIVATE void ImplNewFieldValue( const tools::Time& rTime ); SAL_DLLPRIVATE void ImplNewFieldValue( const tools::Time& rTime );
......
...@@ -57,7 +57,7 @@ protected: ...@@ -57,7 +57,7 @@ protected:
BigInt mnMin; BigInt mnMin;
BigInt mnMax; BigInt mnMax;
LongCurrencyFormatter(); LongCurrencyFormatter(Edit* pEdit);
private: private:
friend bool ImplLongCurrencyReformat( const OUString&, BigInt const &, BigInt const &, sal_uInt16, const LocaleDataWrapper&, OUString&, LongCurrencyFormatter const & ); friend bool ImplLongCurrencyReformat( const OUString&, BigInt const &, BigInt const &, sal_uInt16, const LocaleDataWrapper&, OUString&, LongCurrencyFormatter const & );
SAL_DLLPRIVATE void ImpInit(); SAL_DLLPRIVATE void ImpInit();
......
...@@ -360,9 +360,9 @@ void ImplUpdateSeparators( const OUString& rOldDecSep, const OUString& rNewDecSe ...@@ -360,9 +360,9 @@ void ImplUpdateSeparators( const OUString& rOldDecSep, const OUString& rNewDecSe
} // namespace } // namespace
FormatterBase::FormatterBase() FormatterBase::FormatterBase(Edit* pField)
{ {
mpField = nullptr; mpField = pField;
mpLocaleDataWrapper = nullptr; mpLocaleDataWrapper = nullptr;
mbReformat = false; mbReformat = false;
mbStrictFormat = false; mbStrictFormat = false;
...@@ -488,7 +488,8 @@ void NumericFormatter::ImplInit() ...@@ -488,7 +488,8 @@ void NumericFormatter::ImplInit()
SetDecimalDigits( 0 ); SetDecimalDigits( 0 );
} }
NumericFormatter::NumericFormatter() NumericFormatter::NumericFormatter(Edit* pEdit)
: FormatterBase(pEdit)
{ {
ImplInit(); ImplInit();
} }
...@@ -728,16 +729,16 @@ sal_Int64 NumericFormatter::ClipAgainstMinMax(sal_Int64 nValue) const ...@@ -728,16 +729,16 @@ sal_Int64 NumericFormatter::ClipAgainstMinMax(sal_Int64 nValue) const
return nValue; return nValue;
} }
NumericField::NumericField( vcl::Window* pParent, WinBits nWinStyle ) : NumericField::NumericField(vcl::Window* pParent, WinBits nWinStyle)
SpinField( pParent, nWinStyle ) : SpinField(pParent, nWinStyle)
, NumericFormatter(this)
{ {
SetField( this );
Reformat(); Reformat();
} }
void NumericField::dispose() void NumericField::dispose()
{ {
NumericFormatter::SetField( nullptr ); ClearField();
SpinField::dispose(); SpinField::dispose();
} }
...@@ -863,10 +864,10 @@ Size NumericField::CalcMinimumSize() const ...@@ -863,10 +864,10 @@ Size NumericField::CalcMinimumSize() const
return calcMinimumSize(*this, *this); return calcMinimumSize(*this, *this);
} }
NumericBox::NumericBox( vcl::Window* pParent, WinBits nWinStyle ) : NumericBox::NumericBox(vcl::Window* pParent, WinBits nWinStyle)
ComboBox( pParent, nWinStyle ) : ComboBox(pParent, nWinStyle)
, NumericFormatter(this)
{ {
SetField( this );
Reformat(); Reformat();
if ( !(nWinStyle & WB_HIDE ) ) if ( !(nWinStyle & WB_HIDE ) )
Show(); Show();
...@@ -874,7 +875,7 @@ NumericBox::NumericBox( vcl::Window* pParent, WinBits nWinStyle ) : ...@@ -874,7 +875,7 @@ NumericBox::NumericBox( vcl::Window* pParent, WinBits nWinStyle ) :
void NumericBox::dispose() void NumericBox::dispose()
{ {
NumericFormatter::SetField( nullptr ); ClearField();
ComboBox::dispose(); ComboBox::dispose();
} }
...@@ -1328,7 +1329,8 @@ inline void MetricFormatter::ImplInit() ...@@ -1328,7 +1329,8 @@ inline void MetricFormatter::ImplInit()
meUnit = MetricField::GetDefaultUnit(); meUnit = MetricField::GetDefaultUnit();
} }
MetricFormatter::MetricFormatter() MetricFormatter::MetricFormatter(Edit* pEdit)
: NumericFormatter(pEdit)
{ {
ImplInit(); ImplInit();
} }
...@@ -1500,16 +1502,16 @@ sal_Int64 MetricFormatter::GetCorrectedValue( FieldUnit eOutUnit ) const ...@@ -1500,16 +1502,16 @@ sal_Int64 MetricFormatter::GetCorrectedValue( FieldUnit eOutUnit ) const
meUnit, eOutUnit ); meUnit, eOutUnit );
} }
MetricField::MetricField( vcl::Window* pParent, WinBits nWinStyle ) : MetricField::MetricField(vcl::Window* pParent, WinBits nWinStyle)
SpinField( pParent, nWinStyle ) : SpinField(pParent, nWinStyle)
, MetricFormatter(this)
{ {
SetField( this );
Reformat(); Reformat();
} }
void MetricField::dispose() void MetricField::dispose()
{ {
MetricFormatter::SetField( nullptr ); ClearField();
SpinField::dispose(); SpinField::dispose();
} }
...@@ -1650,16 +1652,16 @@ void MetricField::CustomConvert() ...@@ -1650,16 +1652,16 @@ void MetricField::CustomConvert()
maCustomConvertLink.Call( *this ); maCustomConvertLink.Call( *this );
} }
MetricBox::MetricBox( vcl::Window* pParent, WinBits nWinStyle ) : MetricBox::MetricBox(vcl::Window* pParent, WinBits nWinStyle)
ComboBox( pParent, nWinStyle ) : ComboBox(pParent, nWinStyle)
, MetricFormatter(this)
{ {
SetField( this );
Reformat(); Reformat();
} }
void MetricBox::dispose() void MetricBox::dispose()
{ {
MetricFormatter::SetField(nullptr); ClearField();
ComboBox::dispose(); ComboBox::dispose();
} }
...@@ -1780,7 +1782,8 @@ void CurrencyFormatter::ImplCurrencyReformat( const OUString& rStr, OUString& rO ...@@ -1780,7 +1782,8 @@ void CurrencyFormatter::ImplCurrencyReformat( const OUString& rStr, OUString& rO
rOutStr = CreateFieldText( nTempVal ); rOutStr = CreateFieldText( nTempVal );
} }
CurrencyFormatter::CurrencyFormatter() CurrencyFormatter::CurrencyFormatter(Edit* pField)
: NumericFormatter(pField)
{ {
} }
...@@ -1832,16 +1835,16 @@ void CurrencyFormatter::Reformat() ...@@ -1832,16 +1835,16 @@ void CurrencyFormatter::Reformat()
SetValue( mnLastValue ); SetValue( mnLastValue );
} }
CurrencyField::CurrencyField( vcl::Window* pParent, WinBits nWinStyle ) : CurrencyField::CurrencyField(vcl::Window* pParent, WinBits nWinStyle)
SpinField( pParent, nWinStyle ) : SpinField(pParent, nWinStyle)
, CurrencyFormatter(this)
{ {
SetField( this );
Reformat(); Reformat();
} }
void CurrencyField::dispose() void CurrencyField::dispose()
{ {
CurrencyFormatter::SetField( nullptr ); ClearField();
SpinField::dispose(); SpinField::dispose();
} }
...@@ -1915,16 +1918,16 @@ void CurrencyField::Last() ...@@ -1915,16 +1918,16 @@ void CurrencyField::Last()
SpinField::Last(); SpinField::Last();
} }
CurrencyBox::CurrencyBox( vcl::Window* pParent, WinBits nWinStyle ) : CurrencyBox::CurrencyBox(vcl::Window* pParent, WinBits nWinStyle)
ComboBox( pParent, nWinStyle ) : ComboBox(pParent, nWinStyle)
, CurrencyFormatter(this)
{ {
SetField( this );
Reformat(); Reformat();
} }
void CurrencyBox::dispose() void CurrencyBox::dispose()
{ {
CurrencyFormatter::SetField( nullptr ); ClearField();
ComboBox::dispose(); ComboBox::dispose();
} }
......
...@@ -771,7 +771,8 @@ void PatternFormatter::ImplSetMask(const OString& rEditMask, const OUString& rLi ...@@ -771,7 +771,8 @@ void PatternFormatter::ImplSetMask(const OString& rEditMask, const OUString& rLi
} }
} }
PatternFormatter::PatternFormatter() PatternFormatter::PatternFormatter(Edit* pEdit)
: FormatterBase(pEdit)
{ {
mbSameMask = true; mbSameMask = true;
mbInPattKeyInput = false; mbInPattKeyInput = false;
...@@ -816,16 +817,16 @@ void PatternFormatter::Reformat() ...@@ -816,16 +817,16 @@ void PatternFormatter::Reformat()
} }
} }
PatternField::PatternField( vcl::Window* pParent, WinBits nWinStyle ) : PatternField::PatternField(vcl::Window* pParent, WinBits nWinStyle)
SpinField( pParent, nWinStyle ) : SpinField(pParent, nWinStyle)
, PatternFormatter(this)
{ {
SetField( this );
Reformat(); Reformat();
} }
void PatternField::dispose() void PatternField::dispose()
{ {
PatternFormatter::SetField( nullptr ); ClearField();
SpinField::dispose(); SpinField::dispose();
} }
...@@ -868,16 +869,16 @@ void PatternField::Modify() ...@@ -868,16 +869,16 @@ void PatternField::Modify()
SpinField::Modify(); SpinField::Modify();
} }
PatternBox::PatternBox( vcl::Window* pParent, WinBits nWinStyle ) : PatternBox::PatternBox(vcl::Window* pParent, WinBits nWinStyle)
ComboBox( pParent, nWinStyle ) : ComboBox( pParent, nWinStyle )
, PatternFormatter(this)
{ {
SetField( this );
Reformat(); Reformat();
} }
void PatternBox::dispose() void PatternBox::dispose()
{ {
PatternFormatter::SetField( nullptr ); ClearField();
ComboBox::dispose(); ComboBox::dispose();
} }
...@@ -1409,7 +1410,8 @@ void DateFormatter::ImplInit() ...@@ -1409,7 +1410,8 @@ void DateFormatter::ImplInit()
mnExtDateFormat = ExtDateFieldFormat::SystemShort; mnExtDateFormat = ExtDateFieldFormat::SystemShort;
} }
DateFormatter::DateFormatter() : DateFormatter::DateFormatter(Edit* pEdit) :
FormatterBase(pEdit),
maFieldDate( 0 ), maFieldDate( 0 ),
maLastDate( 0 ), maLastDate( 0 ),
maMin( 1, 1, 1900 ), maMin( 1, 1, 1900 ),
...@@ -1702,10 +1704,10 @@ void DateFormatter::ExpandCentury( Date& rDate, sal_uInt16 nTwoDigitYearStart ) ...@@ -1702,10 +1704,10 @@ void DateFormatter::ExpandCentury( Date& rDate, sal_uInt16 nTwoDigitYearStart )
DateField::DateField( vcl::Window* pParent, WinBits nWinStyle ) : DateField::DateField( vcl::Window* pParent, WinBits nWinStyle ) :
SpinField( pParent, nWinStyle ), SpinField( pParent, nWinStyle ),
DateFormatter(this),
maFirst( GetMin() ), maFirst( GetMin() ),
maLast( GetMax() ) maLast( GetMax() )
{ {
SetField( this );
SetText( ImplGetLocaleDataWrapper().getDate( ImplGetFieldDate() ) ); SetText( ImplGetLocaleDataWrapper().getDate( ImplGetFieldDate() ) );
Reformat(); Reformat();
ResetLastDate(); ResetLastDate();
...@@ -1713,7 +1715,7 @@ DateField::DateField( vcl::Window* pParent, WinBits nWinStyle ) : ...@@ -1713,7 +1715,7 @@ DateField::DateField( vcl::Window* pParent, WinBits nWinStyle ) :
void DateField::dispose() void DateField::dispose()
{ {
DateFormatter::SetField( nullptr ); ClearField();
SpinField::dispose(); SpinField::dispose();
} }
...@@ -1808,17 +1810,17 @@ void DateField::Last() ...@@ -1808,17 +1810,17 @@ void DateField::Last()
SpinField::Last(); SpinField::Last();
} }
DateBox::DateBox( vcl::Window* pParent, WinBits nWinStyle ) : DateBox::DateBox(vcl::Window* pParent, WinBits nWinStyle)
ComboBox( pParent, nWinStyle ) : ComboBox( pParent, nWinStyle )
, DateFormatter(this)
{ {
SetField( this );
SetText( ImplGetLocaleDataWrapper().getDate( ImplGetFieldDate() ) ); SetText( ImplGetLocaleDataWrapper().getDate( ImplGetFieldDate() ) );
Reformat(); Reformat();
} }
void DateBox::dispose() void DateBox::dispose()
{ {
DateFormatter::SetField( nullptr ); ClearField();
ComboBox::dispose(); ComboBox::dispose();
} }
...@@ -2303,7 +2305,8 @@ void TimeFormatter::ImplInit() ...@@ -2303,7 +2305,8 @@ void TimeFormatter::ImplInit()
mnTimeFormat = TimeFormat::Hour24; // Should become a ExtTimeFieldFormat in next implementation, merge with mbDuration and meFormat mnTimeFormat = TimeFormat::Hour24; // Should become a ExtTimeFieldFormat in next implementation, merge with mbDuration and meFormat
} }
TimeFormatter::TimeFormatter() : TimeFormatter::TimeFormatter(Edit* pEdit) :
FormatterBase(pEdit),
maLastTime( 0, 0 ), maLastTime( 0, 0 ),
maMin( 0, 0 ), maMin( 0, 0 ),
maMax( 23, 59, 59, 999999999 ), maMax( 23, 59, 59, 999999999 ),
...@@ -2507,17 +2510,17 @@ void TimeFormatter::Reformat() ...@@ -2507,17 +2510,17 @@ void TimeFormatter::Reformat()
TimeField::TimeField( vcl::Window* pParent, WinBits nWinStyle ) : TimeField::TimeField( vcl::Window* pParent, WinBits nWinStyle ) :
SpinField( pParent, nWinStyle ), SpinField( pParent, nWinStyle ),
TimeFormatter(this),
maFirst( GetMin() ), maFirst( GetMin() ),
maLast( GetMax() ) maLast( GetMax() )
{ {
SetField( this );
SetText( ImplGetLocaleDataWrapper().getTime( maFieldTime, false ) ); SetText( ImplGetLocaleDataWrapper().getTime( maFieldTime, false ) );
Reformat(); Reformat();
} }
void TimeField::dispose() void TimeField::dispose()
{ {
TimeFormatter::SetField( nullptr ); ClearField();
SpinField::dispose(); SpinField::dispose();
} }
...@@ -2623,17 +2626,17 @@ void TimeField::SetExtFormat( ExtTimeFieldFormat eFormat ) ...@@ -2623,17 +2626,17 @@ void TimeField::SetExtFormat( ExtTimeFieldFormat eFormat )
ReformatAll(); ReformatAll();
} }
TimeBox::TimeBox( vcl::Window* pParent, WinBits nWinStyle ) : TimeBox::TimeBox(vcl::Window* pParent, WinBits nWinStyle)
ComboBox( pParent, nWinStyle ) : ComboBox(pParent, nWinStyle)
, TimeFormatter(this)
{ {
SetField( this );
SetText( ImplGetLocaleDataWrapper().getTime( maFieldTime, false ) ); SetText( ImplGetLocaleDataWrapper().getTime( maFieldTime, false ) );
Reformat(); Reformat();
} }
void TimeBox::dispose() void TimeBox::dispose()
{ {
TimeFormatter::SetField( nullptr ); ClearField();
ComboBox::dispose(); ComboBox::dispose();
} }
......
...@@ -252,7 +252,8 @@ void LongCurrencyFormatter::ImpInit() ...@@ -252,7 +252,8 @@ void LongCurrencyFormatter::ImpInit()
SetDecimalDigits( 0 ); SetDecimalDigits( 0 );
} }
LongCurrencyFormatter::LongCurrencyFormatter() LongCurrencyFormatter::LongCurrencyFormatter(Edit* pEdit)
: FormatterBase(pEdit)
{ {
ImpInit(); ImpInit();
} }
...@@ -399,10 +400,10 @@ void ImplNewLongCurrencyFieldValue(LongCurrencyField* pField, const BigInt& rNew ...@@ -399,10 +400,10 @@ void ImplNewLongCurrencyFieldValue(LongCurrencyField* pField, const BigInt& rNew
pField->Modify(); pField->Modify();
} }
LongCurrencyField::LongCurrencyField( vcl::Window* pParent, WinBits nWinStyle ) : LongCurrencyField::LongCurrencyField(vcl::Window* pParent, WinBits nWinStyle)
SpinField( pParent, nWinStyle ) : SpinField( pParent, nWinStyle )
, LongCurrencyFormatter(this)
{ {
SetField( this );
mnSpinSize = 1; mnSpinSize = 1;
mnFirst = mnMin; mnFirst = mnMin;
mnLast = mnMax; mnLast = mnMax;
...@@ -467,10 +468,10 @@ void LongCurrencyField::Last() ...@@ -467,10 +468,10 @@ void LongCurrencyField::Last()
SpinField::Last(); SpinField::Last();
} }
LongCurrencyBox::LongCurrencyBox( vcl::Window* pParent, WinBits nWinStyle ) : LongCurrencyBox::LongCurrencyBox(vcl::Window* pParent, WinBits nWinStyle)
ComboBox( pParent, nWinStyle ) : ComboBox(pParent, nWinStyle)
, LongCurrencyFormatter(this)
{ {
SetField( this );
Reformat(); Reformat();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment