diff options
author | Rafael Dominguez <venccsralph@gmail.com> | 2012-03-27 11:29:42 -0430 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2012-04-11 16:47:07 +0100 |
commit | 30fee1f94d67e53312f8d5ca72627882eb408664 (patch) | |
tree | bd75286594382717fd63e7be50a18d1ef800b946 /sd | |
parent | bb455be919554a412bc95d9a9e196bdeed106237 (diff) |
Remove usage of List in InsertBookmarkAsPage_FindDuplicateLayouts.
Use vector<rtl::OUString> instead of deprecated List class.
Diffstat (limited to 'sd')
-rw-r--r-- | sd/source/core/drawdoc3.cxx | 58 |
1 files changed, 24 insertions, 34 deletions
diff --git a/sd/source/core/drawdoc3.cxx b/sd/source/core/drawdoc3.cxx index d78a8afae1f6..65e47e7ae761 100644 --- a/sd/source/core/drawdoc3.cxx +++ b/sd/source/core/drawdoc3.cxx @@ -336,14 +336,15 @@ void SdDrawDocument::IterateBookmarkPages( SdDrawDocument* pBookmarkDoc, List* p class InsertBookmarkAsPage_FindDuplicateLayouts : public SdDrawDocument::InsertBookmarkAsPage_PageFunctorBase { public: - InsertBookmarkAsPage_FindDuplicateLayouts( List* pLayoutsToTransfer, SdDrawDocument* pBookmarkDoc, + InsertBookmarkAsPage_FindDuplicateLayouts( std::vector<rtl::OUString> *pLayoutsToTransfer, + SdDrawDocument* pBookmarkDoc, List* pBookmarkList, sal_uInt16 nBMSdPageCount ) : mpLayoutsToTransfer(pLayoutsToTransfer), mpBookmarkDoc(pBookmarkDoc), mpBookmarkList(pBookmarkList), mnBMSdPageCount(nBMSdPageCount) {} virtual ~InsertBookmarkAsPage_FindDuplicateLayouts() {}; virtual void operator()( SdDrawDocument&, SdPage* ); private: - List* mpLayoutsToTransfer; + std::vector<rtl::OUString> *mpLayoutsToTransfer; SdDrawDocument* mpBookmarkDoc; List* mpBookmarkList; sal_uInt16 mnBMSdPageCount; @@ -354,20 +355,15 @@ void InsertBookmarkAsPage_FindDuplicateLayouts::operator()( SdDrawDocument& rDoc // now check for duplicate masterpage and layout names // =================================================== - String sFullLayoutName( pBMMPage->GetLayoutName() ); - String* pLayout = new String(sFullLayoutName); - pLayout->Erase( pLayout->SearchAscii( SD_LT_SEPARATOR )); + String aFullNameLayout( pBMMPage->GetLayoutName() ); + aFullNameLayout.Erase( aFullNameLayout.SearchAscii( SD_LT_SEPARATOR )); - String* pTest = (String*) mpLayoutsToTransfer->First(); - sal_Bool bFound = sal_False; + rtl::OUString aLayout(aFullNameLayout); - while (pTest && !bFound) // found yet? - { - if (*pLayout == *pTest) - bFound = sal_True; - else - pTest = (String*)mpLayoutsToTransfer->Next(); - } + std::vector<rtl::OUString>::const_iterator pIter = + find(mpLayoutsToTransfer->begin(),mpLayoutsToTransfer->end(),aLayout); + + bool bFound = pIter != mpLayoutsToTransfer->end(); const sal_uInt16 nMPageCount = rDoc.GetMasterPageCount(); for (sal_uInt16 nMPage = 0; nMPage < nMPageCount && !bFound; nMPage++) @@ -376,17 +372,17 @@ void InsertBookmarkAsPage_FindDuplicateLayouts::operator()( SdDrawDocument& rDoc * Gibt es die Layouts schon im Dokument? **************************************************************/ SdPage* pTestPage = (SdPage*) rDoc.GetMasterPage(nMPage); - String aTest(pTestPage->GetLayoutName()); - aTest.Erase( aTest.SearchAscii( SD_LT_SEPARATOR )); + String aFullTest(pTestPage->GetLayoutName()); + aFullTest.Erase( aFullTest.SearchAscii( SD_LT_SEPARATOR )); + + rtl::OUString aTest(aFullTest); - if (aTest == *pLayout) - bFound = sal_True; + if (aTest == aLayout) + bFound = true; } if (!bFound) - mpLayoutsToTransfer->Insert(pLayout, LIST_APPEND); - else - delete pLayout; + mpLayoutsToTransfer->push_back(aLayout); } /** Just add one page to the container given to the constructor. @@ -520,12 +516,11 @@ sal_Bool SdDrawDocument::InsertBookmarkAsPage( pUndoMgr->EnterListAction(String(SdResId(STR_UNDO_INSERTPAGES)), String()); } - List* pLayoutsToTransfer = new List; - // // Refactored copy'n'pasted layout name collection into IterateBookmarkPages // - InsertBookmarkAsPage_FindDuplicateLayouts aSearchFunctor( pLayoutsToTransfer, pBookmarkDoc, + std::vector<rtl::OUString> aLayoutsToTransfer; + InsertBookmarkAsPage_FindDuplicateLayouts aSearchFunctor( &aLayoutsToTransfer, pBookmarkDoc, pBookmarkList, nBMSdPageCount ); IterateBookmarkPages( pBookmarkDoc, pBookmarkList, nBMSdPageCount, aSearchFunctor ); @@ -535,18 +530,19 @@ sal_Bool SdDrawDocument::InsertBookmarkAsPage( **************************************************************************/ SdStyleSheetPool* pBookmarkStyleSheetPool = (SdStyleSheetPool*) pBookmarkDoc->GetStyleSheetPool(); - String* pLayout = (String*) pLayoutsToTransfer->First(); // Wenn Vorlagen kopiert werden muessen, dann muessen auch die // MasterPages kopiert werden! - if( pLayout ) + if( !aLayoutsToTransfer.empty() ) bMergeMasterPages = sal_True; - while (pLayout) + std::vector<rtl::OUString>::const_iterator pIter; + for ( pIter = aLayoutsToTransfer.begin(); pIter != aLayoutsToTransfer.end(); ++pIter ) { SdStyleSheetVector aCreatedStyles; + String layoutName = *pIter; - ((SdStyleSheetPool*)GetStyleSheetPool())->CopyLayoutSheets(*pLayout, *pBookmarkStyleSheetPool,aCreatedStyles); + ((SdStyleSheetPool*)GetStyleSheetPool())->CopyLayoutSheets(layoutName, *pBookmarkStyleSheetPool,aCreatedStyles); if(!aCreatedStyles.empty()) { @@ -556,14 +552,8 @@ sal_Bool SdDrawDocument::InsertBookmarkAsPage( pUndoMgr->AddUndoAction(pMovStyles); } } - - delete pLayout; - - pLayout = (String*)pLayoutsToTransfer->Next(); } - delete pLayoutsToTransfer; - /************************************************************************** * Dokument einfuegen **************************************************************************/ |