summaryrefslogtreecommitdiff
path: root/editeng/source/misc
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2012-02-15 20:06:28 +0400
committerIvan Timofeev <timofeev.i.s@gmail.com>2012-02-15 21:31:29 +0400
commit9d4b0c25a598a53601e2bd337443728f17f8296a (patch)
tree0a3cff8d947ce40eab4a22874b7d149771961292 /editeng/source/misc
parenta55fa2d0a8f709bd58e2729b66fd8ecc807c0286 (diff)
Convert tools/table.hxx in editeng/forbiddencharacterstable.hxx to std::map
Diffstat (limited to 'editeng/source/misc')
-rw-r--r--editeng/source/misc/forbiddencharacterstable.cxx48
1 files changed, 12 insertions, 36 deletions
diff --git a/editeng/source/misc/forbiddencharacterstable.cxx b/editeng/source/misc/forbiddencharacterstable.cxx
index deb8d4d3e334..e809282239b0 100644
--- a/editeng/source/misc/forbiddencharacterstable.cxx
+++ b/editeng/source/misc/forbiddencharacterstable.cxx
@@ -34,60 +34,36 @@
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-SvxForbiddenCharactersTable::SvxForbiddenCharactersTable( ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xMSF, sal_uInt16 nISize, sal_uInt16 nGrow )
- : SvxForbiddenCharactersTableImpl( nISize, nGrow )
+SvxForbiddenCharactersTable::SvxForbiddenCharactersTable( ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xMSF)
{
mxMSF = xMSF;
}
-
-SvxForbiddenCharactersTable::~SvxForbiddenCharactersTable()
-{
- for ( sal_uLong n = Count(); n; )
- delete GetObject( --n );
-}
-
-
-
const com::sun::star::i18n::ForbiddenCharacters* SvxForbiddenCharactersTable::GetForbiddenCharacters( sal_uInt16 nLanguage, sal_Bool bGetDefault ) const
{
- ForbiddenCharactersInfo* pInf = Get( nLanguage );
+ com::sun::star::i18n::ForbiddenCharacters* pInf = NULL;
+ CharInfoMap::iterator it = maCharInfoMap.find( nLanguage );
+ if ( it != maCharInfoMap.end() )
+ pInf = &(it->second);
if ( !pInf && bGetDefault && mxMSF.is() )
{
- const SvxForbiddenCharactersTableImpl *pConstImpl = dynamic_cast<const SvxForbiddenCharactersTableImpl*>(this);
- SvxForbiddenCharactersTableImpl* pImpl = const_cast<SvxForbiddenCharactersTableImpl*>(pConstImpl);
- pInf = new ForbiddenCharactersInfo;
- pImpl->Insert( nLanguage, pInf );
-
- pInf->bTemporary = sal_True;
LocaleDataWrapper aWrapper( mxMSF, SvxCreateLocale( nLanguage ) );
- pInf->aForbiddenChars = aWrapper.getForbiddenCharacters();
+ maCharInfoMap[ nLanguage ] = aWrapper.getForbiddenCharacters();
+ pInf = &maCharInfoMap[ nLanguage ];
}
- return pInf ? &pInf->aForbiddenChars : NULL;
+ return pInf;
}
-
-
void SvxForbiddenCharactersTable::SetForbiddenCharacters( sal_uInt16 nLanguage, const com::sun::star::i18n::ForbiddenCharacters& rForbiddenChars )
{
- ForbiddenCharactersInfo* pInf = Get( nLanguage );
- if ( !pInf )
- {
- pInf = new ForbiddenCharactersInfo;
- Insert( nLanguage, pInf );
- }
- pInf->bTemporary = sal_False;
- pInf->aForbiddenChars = rForbiddenChars;
+ maCharInfoMap[ nLanguage ] = rForbiddenChars;
}
void SvxForbiddenCharactersTable::ClearForbiddenCharacters( sal_uInt16 nLanguage )
{
- ForbiddenCharactersInfo* pInf = Get( nLanguage );
- if ( pInf )
- {
- Remove( nLanguage );
- delete pInf;
- }
+ CharInfoMap::iterator it = maCharInfoMap.find( nLanguage );
+ if ( it != maCharInfoMap.end() )
+ maCharInfoMap.erase( it );
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */