editeng/inc/editeng/svxacorr.hxx | 5 +++-- editeng/source/misc/svxacorr.cxx | 25 ++++++++++--------------- 2 files changed, 13 insertions(+), 17 deletions(-)
New commits: commit 4586cd75646bb2396490d670d11b0b2e30fe4796 Author: August Sodora <[email protected]> Date: Fri Dec 23 16:17:40 2011 -0500 DECLARE_TABLE->std::map diff --git a/editeng/inc/editeng/svxacorr.hxx b/editeng/inc/editeng/svxacorr.hxx index ed0d528..aabc644 100644 --- a/editeng/inc/editeng/svxacorr.hxx +++ b/editeng/inc/editeng/svxacorr.hxx @@ -39,13 +39,14 @@ #include <editeng/swafopt.hxx> #include "editeng/editengdllapi.h" +#include <map> + class CharClass; class SfxPoolItem; class SvxAutoCorrect; class SvStringsISortDtor; class SfxObjectShell; class SvxAutoCorrLanguageTable_Impl; -class SvxAutoCorrLastFileAskTable_Impl; class SotStorageRef; class SotStorage; class Window; @@ -208,7 +209,7 @@ class EDITENG_DLLPUBLIC SvxAutoCorrect // all languages in a table SvxAutoCorrLanguageTable_Impl* pLangTable; - SvxAutoCorrLastFileAskTable_Impl* pLastFileTable; + std::map<LanguageType, long>* pLastFileTable; CharClass* pCharClass; bool bRunNext; diff --git a/editeng/source/misc/svxacorr.cxx b/editeng/source/misc/svxacorr.cxx index e8cd59c..c2d937a 100644 --- a/editeng/source/misc/svxacorr.cxx +++ b/editeng/source/misc/svxacorr.cxx @@ -120,9 +120,6 @@ TYPEINIT0(SvxAutoCorrect) typedef SvxAutoCorrectLanguageLists* SvxAutoCorrectLanguageListsPtr; DECLARE_TABLE( SvxAutoCorrLanguageTable_Impl, SvxAutoCorrectLanguageListsPtr) -DECLARE_TABLE( SvxAutoCorrLastFileAskTable_Impl, long ) - - inline int IsWordDelim( const sal_Unicode c ) { return ' ' == c || '\t' == c || 0x0a == c || @@ -345,7 +342,7 @@ SvxAutoCorrect::SvxAutoCorrect( const String& rShareAutocorrFile, : sShareAutoCorrFile( rShareAutocorrFile ), sUserAutoCorrFile( rUserAutocorrFile ), pLangTable( new SvxAutoCorrLanguageTable_Impl ), - pLastFileTable( new SvxAutoCorrLastFileAskTable_Impl ), + pLastFileTable( new std::map<LanguageType, long> ), pCharClass( 0 ), bRunNext( false ), cStartDQuote( 0 ), cEndDQuote( 0 ), cStartSQuote( 0 ), cEndSQuote( 0 ) { @@ -362,7 +359,7 @@ SvxAutoCorrect::SvxAutoCorrect( const SvxAutoCorrect& rCpy ) aSwFlags( rCpy.aSwFlags ), pLangTable( new SvxAutoCorrLanguageTable_Impl ), - pLastFileTable( new SvxAutoCorrLastFileAskTable_Impl ), + pLastFileTable( new std::map<LanguageType, long> ), pCharClass( 0 ), bRunNext( false ), nFlags( rCpy.nFlags & ~(ChgWordLstLoad|CplSttLstLoad|WrdSttLstLoad)), @@ -1618,12 +1615,11 @@ sal_Bool SvxAutoCorrect::CreateLanguageFile( LanguageType eLang, sal_Bool bNewFi SvxAutoCorrectLanguageListsPtr pLists = 0; Time nMinTime( 0, 2 ), nAktTime( Time::SYSTEM ), nLastCheckTime( Time::EMPTY ); - sal_uLong nFndPos; - if( TABLE_ENTRY_NOTFOUND != - pLastFileTable->SearchKey( sal_uLong( eLang ), &nFndPos ) && - ( nLastCheckTime.SetTime( pLastFileTable->GetObject( nFndPos )), - nLastCheckTime < nAktTime ) && - ( nAktTime - nLastCheckTime ) < nMinTime ) + + std::map<LanguageType, long>::iterator nFndPos = pLastFileTable->find(eLang); + if(nFndPos != pLastFileTable->end() && + (nLastCheckTime.SetTime(nFndPos->second), nLastCheckTime < nAktTime) && + nAktTime - nLastCheckTime < nMinTime) { // no need to test the file, because the last check is not older then // 2 minutes. @@ -1633,7 +1629,7 @@ sal_Bool SvxAutoCorrect::CreateLanguageFile( LanguageType eLang, sal_Bool bNewFi pLists = new SvxAutoCorrectLanguageLists( *this, sShareDirFile, sUserDirFile, eLang ); pLangTable->Insert( sal_uLong(eLang), pLists ); - pLastFileTable->Remove( sal_uLong( eLang ) ); + pLastFileTable->erase(nFndPos); } } else if( ( FStatHelper::IsDocument( sUserDirFile ) || @@ -1644,12 +1640,11 @@ sal_Bool SvxAutoCorrect::CreateLanguageFile( LanguageType eLang, sal_Bool bNewFi pLists = new SvxAutoCorrectLanguageLists( *this, sShareDirFile, sUserDirFile, eLang ); pLangTable->Insert( sal_uLong(eLang), pLists ); - pLastFileTable->Remove( sal_uLong( eLang ) ); + pLastFileTable->erase(nFndPos); } else if( !bNewFile ) { - if( !pLastFileTable->Insert( sal_uLong( eLang ), nAktTime.GetTime() )) - pLastFileTable->Replace( sal_uLong( eLang ), nAktTime.GetTime() ); + pLastFileTable[eLang] = { std::make_pair(eLang, nAktTime.GetTime()) }; } return pLists != 0; } _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
