Kaydet (Commit) 6a7bbef0 authored tarafından Julien Nabet's avatar Julien Nabet

Replace list with a vector in PutData (sc)

+ revamp a little bit by using unique_ptr

Change-Id: I07fa08d1981db65dbb22e887fcab0e8a6ca64b58
Reviewed-on: https://gerrit.libreoffice.org/41774Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarJulien Nabet <serval2412@yahoo.fr>
üst 65ca7bd4
...@@ -1062,7 +1062,7 @@ void ScDocFunc::NotifyInputHandler( const ScAddress& rPos ) ...@@ -1062,7 +1062,7 @@ void ScDocFunc::NotifyInputHandler( const ScAddress& rPos )
nIndex(nTempIndex), aItemSet(rItemSet) {} nIndex(nTempIndex), aItemSet(rItemSet) {}
}; };
typedef ::std::list<ScMyRememberItem*> ScMyRememberItemList; typedef ::std::vector<std::unique_ptr<ScMyRememberItem>> ScMyRememberItemVector;
void ScDocFunc::PutData( const ScAddress& rPos, ScEditEngineDefaulter& rEngine, bool bApi ) void ScDocFunc::PutData( const ScAddress& rPos, ScEditEngineDefaulter& rEngine, bool bApi )
{ {
...@@ -1083,13 +1083,12 @@ void ScDocFunc::PutData( const ScAddress& rPos, ScEditEngineDefaulter& rEngine, ...@@ -1083,13 +1083,12 @@ void ScDocFunc::PutData( const ScAddress& rPos, ScEditEngineDefaulter& rEngine,
if (bUpdateMode) if (bUpdateMode)
rEngine.SetUpdateMode(false); rEngine.SetUpdateMode(false);
ScMyRememberItemList aRememberItems; ScMyRememberItemVector aRememberItems;
ScMyRememberItem* pRememberItem = nullptr;
// All paragraph attributes must be removed before calling CreateTextObject, // All paragraph attributes must be removed before calling CreateTextObject,
// not only alignment, so the object doesn't contain the cell attributes as // not only alignment, so the object doesn't contain the cell attributes as
// paragraph attributes. Before remove the attributes store they in a list to // paragraph attributes. Before removing the attributes store them in a vector to
// set they back to the EditEngine. // set them back to the EditEngine.
sal_Int32 nCount = rEngine.GetParagraphCount(); sal_Int32 nCount = rEngine.GetParagraphCount();
for (sal_Int32 i=0; i<nCount; i++) for (sal_Int32 i=0; i<nCount; i++)
{ {
...@@ -1098,8 +1097,7 @@ void ScDocFunc::PutData( const ScAddress& rPos, ScEditEngineDefaulter& rEngine, ...@@ -1098,8 +1097,7 @@ void ScDocFunc::PutData( const ScAddress& rPos, ScEditEngineDefaulter& rEngine,
{ {
if ( !bLoseContent ) if ( !bLoseContent )
{ {
pRememberItem = new ScMyRememberItem(rEngine.GetParaAttribs(i), i); aRememberItems.push_back(o3tl::make_unique<ScMyRememberItem>(rEngine.GetParaAttribs(i), i));
aRememberItems.push_back(pRememberItem);
} }
rEngine.SetParaAttribs( i, SfxItemSet( *rOld.GetPool(), rOld.GetRanges() ) ); rEngine.SetParaAttribs( i, SfxItemSet( *rOld.GetPool(), rOld.GetRanges() ) );
} }
...@@ -1112,13 +1110,11 @@ void ScDocFunc::PutData( const ScAddress& rPos, ScEditEngineDefaulter& rEngine, ...@@ -1112,13 +1110,11 @@ void ScDocFunc::PutData( const ScAddress& rPos, ScEditEngineDefaulter& rEngine,
// Set the paragraph attributes back to the EditEngine. // Set the paragraph attributes back to the EditEngine.
if (!aRememberItems.empty()) if (!aRememberItems.empty())
{ {
ScMyRememberItemList::iterator aItr = aRememberItems.begin(); ScMyRememberItemVector::iterator aItr = aRememberItems.begin();
while (aItr != aRememberItems.end()) while (aItr != aRememberItems.end())
{ {
pRememberItem = *aItr; rEngine.SetParaAttribs((*aItr).get()->nIndex, (*aItr).get()->aItemSet);
rEngine.SetParaAttribs(pRememberItem->nIndex, pRememberItem->aItemSet); ++aItr;
delete pRememberItem;
aItr = aRememberItems.erase(aItr);
} }
} }
......
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