diff options
author | Eike Rathke <erack@redhat.com> | 2017-03-13 15:06:14 +0100 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2017-03-13 15:08:21 +0100 |
commit | b306f535c0f76820dfe2cd221603def8a079f159 (patch) | |
tree | 6b814cbba60a66c60a98f3055919b0fea185f857 | |
parent | f2b4d849715b5dfcbaf422846327fd41d3576ba1 (diff) |
force SvNumberformat::FormatterPrivateAccess for Get/SetLastInsertKey
... so only SvNumberFormatter can use it, as intended.
Change-Id: I91875dfd00d1f83b3ae988bda922782336489f73
-rw-r--r-- | include/svl/zformat.hxx | 7 | ||||
-rw-r--r-- | svl/source/numbers/zforlist.cxx | 17 |
2 files changed, 13 insertions, 11 deletions
diff --git a/include/svl/zformat.hxx b/include/svl/zformat.hxx index cfb3e3a97368..85250ac23e08 100644 --- a/include/svl/zformat.hxx +++ b/include/svl/zformat.hxx @@ -226,10 +226,11 @@ public: sal_uInt16 GetFormatIntegerDigits() const { return NumFor[0].Info().nCntPre; } //! Read/write access on a special sal_uInt16 component, may only be used on the - //! standard format 0, 5000, ... and only by the number formatter! - sal_uInt16 GetLastInsertKey() const + //! standard format 0, 10000, ... and only by the number formatter! + struct FormatterPrivateAccess { friend SvNumberFormatter; private: FormatterPrivateAccess() {} }; + sal_uInt16 GetLastInsertKey( const FormatterPrivateAccess& ) const { return NumFor[0].Info().nThousand; } - void SetLastInsertKey(sal_uInt16 nKey) + void SetLastInsertKey( sal_uInt16 nKey, const FormatterPrivateAccess& ) { NumFor[0].Info().nThousand = nKey; } //! Only onLoad: convert from stored to current system language/country diff --git a/svl/source/numbers/zforlist.cxx b/svl/source/numbers/zforlist.cxx index 9266c4399ea0..294777360c2e 100644 --- a/svl/source/numbers/zforlist.cxx +++ b/svl/source/numbers/zforlist.cxx @@ -514,7 +514,7 @@ void SvNumberFormatter::ReplaceSystemCL( LanguageType eOldLanguage ) delete pOldEntry; } pFormatScanner->SetConvertMode(false); - pStdFormat->SetLastInsertKey( sal_uInt16(nLastKey - nCLOffset) ); + pStdFormat->SetLastInsertKey( sal_uInt16(nLastKey - nCLOffset), SvNumberformat::FormatterPrivateAccess() ); // append new system additional formats css::uno::Reference< css::i18n::XNumberFormatCode > xNFC = i18n::NumberFormatMapper::create( m_xContext ); @@ -605,7 +605,7 @@ bool SvNumberFormatter::PutEntry(OUString& rString, else { SvNumberformat* pStdFormat = GetFormatEntry(CLOffset + ZF_STANDARD); - sal_uInt32 nPos = CLOffset + pStdFormat->GetLastInsertKey(); + sal_uInt32 nPos = CLOffset + pStdFormat->GetLastInsertKey( SvNumberformat::FormatterPrivateAccess() ); if (nPos+1 - CLOffset >= SV_COUNTRY_LANGUAGE_OFFSET) { SAL_WARN( "svl.numbers", "SvNumberFormatter::PutEntry: too many formats for CL"); @@ -620,7 +620,7 @@ bool SvNumberFormatter::PutEntry(OUString& rString, { bCheck = true; nKey = nPos+1; - pStdFormat->SetLastInsertKey((sal_uInt16) (nKey-CLOffset)); + pStdFormat->SetLastInsertKey((sal_uInt16) (nKey-CLOffset), SvNumberformat::FormatterPrivateAccess()); } } } @@ -2265,7 +2265,7 @@ void SvNumberFormatter::ImpGenerateFormats( sal_uInt32 CLOffset, bool bNoAdditio } pStdFormat->SetType( css::util::NumberFormat::NUMBER ); pStdFormat->SetStandard(); - pStdFormat->SetLastInsertKey( SV_MAX_ANZ_STANDARD_FORMATE ); + pStdFormat->SetLastInsertKey( SV_MAX_ANZ_STANDARD_FORMATE, SvNumberformat::FormatterPrivateAccess() ); } else { @@ -2683,7 +2683,7 @@ void SvNumberFormatter::ImpGenerateAdditionalFormats( sal_uInt32 CLOffset, SAL_WARN( "svl.numbers", "ImpGenerateAdditionalFormats: no GENERAL format" ); return ; } - sal_uInt32 nPos = CLOffset + pStdFormat->GetLastInsertKey(); + sal_uInt32 nPos = CLOffset + pStdFormat->GetLastInsertKey( SvNumberformat::FormatterPrivateAccess() ); css::lang::Locale aLocale = GetLanguageTag().getLocale(); sal_Int32 j; @@ -2751,7 +2751,7 @@ void SvNumberFormatter::ImpGenerateAdditionalFormats( sal_uInt32 CLOffset, } } - pStdFormat->SetLastInsertKey( (sal_uInt16)(nPos - CLOffset) ); + pStdFormat->SetLastInsertKey( (sal_uInt16)(nPos - CLOffset), SvNumberformat::FormatterPrivateAccess() ); } @@ -3114,7 +3114,7 @@ SvNumberFormatterIndexTable* SvNumberFormatter::MergeFormatter(SvNumberFormatter else { SvNumberformat* pStdFormat = GetFormatEntry(nCLOffset + ZF_STANDARD); - sal_uInt32 nPos = nCLOffset + pStdFormat->GetLastInsertKey(); + sal_uInt32 nPos = nCLOffset + pStdFormat->GetLastInsertKey( SvNumberformat::FormatterPrivateAccess() ); nNewKey = nPos+1; if (nNewKey - nCLOffset >= SV_COUNTRY_LANGUAGE_OFFSET) { @@ -3128,7 +3128,8 @@ SvNumberFormatterIndexTable* SvNumberFormatter::MergeFormatter(SvNumberFormatter } else { - pStdFormat->SetLastInsertKey((sal_uInt16) (nNewKey - nCLOffset)); + pStdFormat->SetLastInsertKey((sal_uInt16) (nNewKey - nCLOffset), + SvNumberformat::FormatterPrivateAccess()); } } if (nNewKey != nOldKey) // new index |