29#include <osl/diagnose.h>
42#if OSL_DEBUG_LEVEL > 0
53#if OSL_DEBUG_LEVEL > 0
62 std::vector<SwAutoCompleteClient>
75#if OSL_DEBUG_LEVEL > 0
86#if OSL_DEBUG_LEVEL > 0
90#if OSL_DEBUG_LEVEL > 0
96 m_pAutoCompleteWord(&rToTell),
100#if OSL_DEBUG_LEVEL > 0
107 m_pAutoCompleteWord(rClient.m_pAutoCompleteWord),
108 m_pDoc(rClient.m_pDoc)
111#if OSL_DEBUG_LEVEL > 0
118#if OSL_DEBUG_LEVEL > 0
135 if (rHint.
GetId() != SfxHintId::SwLegacyModify)
138 switch(pLegacy->GetWhich())
164 const OUString& rStr, sal_Int32
const nLen)
167#if OSL_DEBUG_LEVEL > 0
174#if OSL_DEBUG_LEVEL > 0
201 editeng::SortedAutoCompleteStrings::size_type nWords, sal_uInt16 nMWrdLen ):
203 m_nMaxCount( nWords ),
204 m_nMinWordLen( nMWrdLen ),
205 m_bLockWordList( false )
212#if OSL_DEBUG_LEVEL > 0
215 OSL_ENSURE(!nStrings && !nClients,
"AutoComplete: clients or string count mismatch");
227 if ( rURL.
GetProtocol() == INetProtocol::VndSunStarHelp )
236 sal_Int32 nWrdLen = aNewWord.getLength();
237 while( nWrdLen &&
'.' == aNewWord[ nWrdLen-1 ])
244 std::pair<editeng::SortedAutoCompleteStrings::const_iterator, bool>
273 SwAutoCompleteStringPtrDeque::iterator it = std::find(
m_aLRUList.begin(),
m_aLRUList.end(), pNew );
274 OSL_ENSURE(
m_aLRUList.end() != it,
"String not found" );
286 editeng::SortedAutoCompleteStrings::size_type nNewMax )
291 SwAutoCompleteStringPtrDeque::size_type nLRUIndex = nNewMax-1;
295 OSL_ENSURE(
m_WordList.end() != it,
"String not found" );
317 SwAutoCompleteStringPtrDeque::iterator it = std::find(
m_aLRUList.begin(),
m_aLRUList.end(), pDel );
318 OSL_ENSURE(
m_aLRUList.end() != it,
"String not found" );
335 assert(rWords.empty());
337 return !rWords.empty();
343 size_t nMyLen =
m_WordList.size(), nNewLen = rNewLst.size();
344 size_t nMyPos = 0, nNewPos = 0;
346 for( ; nMyPos < nMyLen && nNewPos < nNewLen; ++nMyPos, ++nNewPos )
354 SwAutoCompleteStringPtrDeque::iterator it = std::find(
m_aLRUList.begin(),
m_aLRUList.end(), pDel );
355 OSL_ENSURE(
m_aLRUList.end() != it,
"String not found" );
358 if( nMyPos >= --nMyLen )
363 if( nMyPos >= nMyLen )
367 for( ; nNewPos < nMyLen; ++nNewPos )
371 SwAutoCompleteStringPtrDeque::iterator it = std::find(
m_aLRUList.begin(),
m_aLRUList.end(), pDel );
372 OSL_ENSURE(
m_aLRUList.end() != it,
"String not found" );
393 SwAutoCompleteStringPtrDeque::iterator it = std::find(
m_aLRUList.begin(),
m_aLRUList.end(), pCurrent );
394 OSL_ENSURE(
m_aLRUList.end() != it,
"word not found in LRU list" );
virtual SwPageDesc * GetPageDescFromPool(sal_uInt16 nId, bool bRegardLanguage=true)=0
Return required automatic page style.
INetProtocol GetProtocol() const
const INetURLObject & GetURLObject() const
SfxMedium * GetMedium() const
SvxAutoCorrect * GetAutoCorrect()
static SvxAutoCorrCfg & Get()
SvxSwAutoFormatFlags & GetSwFlags()
virtual ~SwAutoCompleteClient() override
SwAutoCompleteClient(SwAutoCompleteWord &rToTell, SwDoc &rSwDoc)
const SwDoc & GetDoc() const
static sal_uLong GetElementCount()
static sal_uLong s_nSwAutoCompleteClientCount
SwAutoCompleteClient & operator=(const SwAutoCompleteClient &rClient)
SwAutoCompleteWord * m_pAutoCompleteWord
virtual void SwClientNotify(const SwModify &, const SfxHint &) override
static sal_uLong GetElementCount()
static sal_uLong s_nSwAutoCompleteStringCount
virtual ~SwAutoCompleteString() override
SwAutoCompleteString(const OUString &rStr, sal_Int32 nLen)
void AddDocument(const SwDoc &rDoc)
bool RemoveDocument(const SwDoc &rDoc)
std::vector< const SwDoc * > m_aSourceDocs
void RemoveDocument(const SwDoc &rDoc)
SwAutoCompleteWord_Impl(SwAutoCompleteWord &rParent)
void AddDocument(SwDoc &rDoc)
std::vector< SwAutoCompleteClient > m_aClientVector
SwAutoCompleteWord & m_rAutoCompleteWord
editeng::SortedAutoCompleteStrings::size_type m_nMaxCount
void SetMinWordLen(sal_uInt16 n)
SwAutoCompleteWord(editeng::SortedAutoCompleteStrings::size_type nWords, sal_uInt16 nMWrdLen)
void SetMaxCount(editeng::SortedAutoCompleteStrings::size_type n)
void CheckChangedList(const editeng::SortedAutoCompleteStrings &rNewLst)
editeng::SortedAutoCompleteStrings m_WordList
contains extended strings carrying source information
bool InsertWord(const OUString &rWord, SwDoc &rDoc)
editeng::Trie m_LookupTree
bool GetWordsMatching(std::u16string_view aMatch, std::vector< OUString > &aWords) const
Return all words matching a given prefix.
std::unique_ptr< SwAutoCompleteWord_Impl > m_pImpl
void DocumentDying(const SwDoc &rDoc)
SwAutoCompleteStringPtrDeque m_aLRUList
void StartListeningToSameModifyAs(const SwClient &)
IDocumentStylePoolAccess const & getIDocumentStylePoolAccess() const
SwDocShell * GetDocShell()
void insert(std::u16string_view sInputString) const
void findSuggestions(std::u16string_view sWordPart, std::vector< OUString > &rSuggestionList) const
constexpr TypedWhichId< SwPtrMsgPoolItem > RES_REMOVE_UNO_OBJECT(181)
constexpr TypedWhichId< SwPtrMsgPoolItem > RES_OBJECTDYING(RES_MSG_BEGIN)
#define CH_TXTATR_BREAKWORD
double getLength(const B2DPolygon &rCandidate)
void copy(const fs::path &src, const fs::path &dest)
@ RES_POOLPAGE_STANDARD
Standard page.