Kaydet (Commit) 06942d37 authored tarafından Noel Grandin's avatar Noel Grandin

simplify HangulHanjaEditDictDialog::m_vElements

no need to store a ref-counted thing like OUString using the heap

Change-Id: I372417f1a60d120e867f4f4b3b9335b73693accb
Reviewed-on: https://gerrit.libreoffice.org/65348
Tested-by: Jenkins
Reviewed-by: 's avatarNoel Grandin <noel.grandin@collabora.co.uk>
üst 6e3b7564
...@@ -1222,7 +1222,7 @@ namespace svx ...@@ -1222,7 +1222,7 @@ namespace svx
{ {
private: private:
protected: protected:
std::vector<OUString*> m_vElements; std::vector<OUString> m_vElements;
sal_uInt16 m_nNumOfEntries; sal_uInt16 m_nNumOfEntries;
// index of the internal iterator, used for First() and Next() methods // index of the internal iterator, used for First() and Next() methods
sal_uInt16 m_nAct; sal_uInt16 m_nAct;
...@@ -1233,8 +1233,8 @@ namespace svx ...@@ -1233,8 +1233,8 @@ namespace svx
~SuggestionList(); ~SuggestionList();
void Set( const OUString& _rElement, sal_uInt16 _nNumOfElement ); void Set( const OUString& _rElement, sal_uInt16 _nNumOfElement );
bool Reset( sal_uInt16 _nNumOfElement ); void Reset( sal_uInt16 _nNumOfElement );
const OUString* Get( sal_uInt16 _nNumOfElement ) const; const OUString & Get( sal_uInt16 _nNumOfElement ) const;
void Clear(); void Clear();
const OUString* First(); const OUString* First();
...@@ -1244,7 +1244,7 @@ namespace svx ...@@ -1244,7 +1244,7 @@ namespace svx
}; };
SuggestionList::SuggestionList() : SuggestionList::SuggestionList() :
m_vElements(MAXNUM_SUGGESTIONS, static_cast<OUString*>(nullptr)) m_vElements(MAXNUM_SUGGESTIONS)
{ {
m_nAct = m_nNumOfEntries = 0; m_nAct = m_nNumOfEntries = 0;
} }
...@@ -1256,40 +1256,19 @@ namespace svx ...@@ -1256,40 +1256,19 @@ namespace svx
void SuggestionList::Set( const OUString& _rElement, sal_uInt16 _nNumOfElement ) void SuggestionList::Set( const OUString& _rElement, sal_uInt16 _nNumOfElement )
{ {
bool bRet = _nNumOfElement < m_vElements.size(); m_vElements[_nNumOfElement] = _rElement;
if( bRet ) ++m_nNumOfEntries;
{
if( m_vElements[_nNumOfElement] != nullptr )
*(m_vElements[_nNumOfElement]) = _rElement;
else
{
m_vElements[_nNumOfElement] = new OUString( _rElement );
++m_nNumOfEntries;
}
}
} }
bool SuggestionList::Reset( sal_uInt16 _nNumOfElement ) void SuggestionList::Reset( sal_uInt16 _nNumOfElement )
{ {
bool bRet = _nNumOfElement < m_vElements.size(); m_vElements[_nNumOfElement].clear();
if( bRet ) --m_nNumOfEntries;
{
if( m_vElements[_nNumOfElement] != nullptr )
{
delete m_vElements[_nNumOfElement];
m_vElements[_nNumOfElement] = nullptr;
--m_nNumOfEntries;
}
}
return bRet;
} }
const OUString* SuggestionList::Get( sal_uInt16 _nNumOfElement ) const const OUString& SuggestionList::Get( sal_uInt16 _nNumOfElement ) const
{ {
if( _nNumOfElement < m_vElements.size()) return m_vElements[_nNumOfElement];
return m_vElements[_nNumOfElement];
return nullptr;
} }
void SuggestionList::Clear() void SuggestionList::Clear()
...@@ -1297,29 +1276,22 @@ namespace svx ...@@ -1297,29 +1276,22 @@ namespace svx
if( m_nNumOfEntries ) if( m_nNumOfEntries )
{ {
for (auto & vElement : m_vElements) for (auto & vElement : m_vElements)
{ vElement.clear();
if( vElement != nullptr )
{
delete vElement;
vElement = nullptr;
}
}
m_nNumOfEntries = m_nAct = 0; m_nNumOfEntries = m_nAct = 0;
} }
} }
const OUString* SuggestionList::Next_() const OUString* SuggestionList::Next_()
{ {
const OUString* pRet = nullptr; while( m_nAct < m_vElements.size() )
while( m_nAct < m_vElements.size() && !pRet )
{ {
pRet = m_vElements[ m_nAct ]; auto & s = m_vElements[ m_nAct ];
if( !pRet ) if (!s.isEmpty())
++m_nAct; return &s;
++m_nAct;
} }
return pRet; return nullptr;
} }
const OUString* SuggestionList::First() const OUString* SuggestionList::First()
...@@ -1688,9 +1660,7 @@ namespace svx ...@@ -1688,9 +1660,7 @@ namespace svx
OUString aStr; OUString aStr;
if( m_pSuggestions ) if( m_pSuggestions )
{ {
const OUString* p = m_pSuggestions->Get( _nEntryNum ); aStr = m_pSuggestions->Get( _nEntryNum );
if( p )
aStr = *p;
} }
_rEdit.SetText( aStr ); _rEdit.SetText( aStr );
......
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