Kaydet (Commit) 30fee1f9 authored tarafından Rafael Dominguez's avatar Rafael Dominguez Kaydeden (comit) Caolán McNamara

Remove usage of List in InsertBookmarkAsPage_FindDuplicateLayouts.

Use vector<rtl::OUString> instead of deprecated List class.
üst bb455be9
...@@ -336,14 +336,15 @@ void SdDrawDocument::IterateBookmarkPages( SdDrawDocument* pBookmarkDoc, List* p ...@@ -336,14 +336,15 @@ void SdDrawDocument::IterateBookmarkPages( SdDrawDocument* pBookmarkDoc, List* p
class InsertBookmarkAsPage_FindDuplicateLayouts : public SdDrawDocument::InsertBookmarkAsPage_PageFunctorBase class InsertBookmarkAsPage_FindDuplicateLayouts : public SdDrawDocument::InsertBookmarkAsPage_PageFunctorBase
{ {
public: public:
InsertBookmarkAsPage_FindDuplicateLayouts( List* pLayoutsToTransfer, SdDrawDocument* pBookmarkDoc, InsertBookmarkAsPage_FindDuplicateLayouts( std::vector<rtl::OUString> *pLayoutsToTransfer,
SdDrawDocument* pBookmarkDoc,
List* pBookmarkList, sal_uInt16 nBMSdPageCount ) : List* pBookmarkList, sal_uInt16 nBMSdPageCount ) :
mpLayoutsToTransfer(pLayoutsToTransfer), mpBookmarkDoc(pBookmarkDoc), mpLayoutsToTransfer(pLayoutsToTransfer), mpBookmarkDoc(pBookmarkDoc),
mpBookmarkList(pBookmarkList), mnBMSdPageCount(nBMSdPageCount) {} mpBookmarkList(pBookmarkList), mnBMSdPageCount(nBMSdPageCount) {}
virtual ~InsertBookmarkAsPage_FindDuplicateLayouts() {}; virtual ~InsertBookmarkAsPage_FindDuplicateLayouts() {};
virtual void operator()( SdDrawDocument&, SdPage* ); virtual void operator()( SdDrawDocument&, SdPage* );
private: private:
List* mpLayoutsToTransfer; std::vector<rtl::OUString> *mpLayoutsToTransfer;
SdDrawDocument* mpBookmarkDoc; SdDrawDocument* mpBookmarkDoc;
List* mpBookmarkList; List* mpBookmarkList;
sal_uInt16 mnBMSdPageCount; sal_uInt16 mnBMSdPageCount;
...@@ -354,20 +355,15 @@ void InsertBookmarkAsPage_FindDuplicateLayouts::operator()( SdDrawDocument& rDoc ...@@ -354,20 +355,15 @@ void InsertBookmarkAsPage_FindDuplicateLayouts::operator()( SdDrawDocument& rDoc
// now check for duplicate masterpage and layout names // now check for duplicate masterpage and layout names
// =================================================== // ===================================================
String sFullLayoutName( pBMMPage->GetLayoutName() ); String aFullNameLayout( pBMMPage->GetLayoutName() );
String* pLayout = new String(sFullLayoutName); aFullNameLayout.Erase( aFullNameLayout.SearchAscii( SD_LT_SEPARATOR ));
pLayout->Erase( pLayout->SearchAscii( SD_LT_SEPARATOR ));
String* pTest = (String*) mpLayoutsToTransfer->First(); rtl::OUString aLayout(aFullNameLayout);
sal_Bool bFound = sal_False;
while (pTest && !bFound) // found yet? std::vector<rtl::OUString>::const_iterator pIter =
{ find(mpLayoutsToTransfer->begin(),mpLayoutsToTransfer->end(),aLayout);
if (*pLayout == *pTest)
bFound = sal_True; bool bFound = pIter != mpLayoutsToTransfer->end();
else
pTest = (String*)mpLayoutsToTransfer->Next();
}
const sal_uInt16 nMPageCount = rDoc.GetMasterPageCount(); const sal_uInt16 nMPageCount = rDoc.GetMasterPageCount();
for (sal_uInt16 nMPage = 0; nMPage < nMPageCount && !bFound; nMPage++) for (sal_uInt16 nMPage = 0; nMPage < nMPageCount && !bFound; nMPage++)
...@@ -376,17 +372,17 @@ void InsertBookmarkAsPage_FindDuplicateLayouts::operator()( SdDrawDocument& rDoc ...@@ -376,17 +372,17 @@ void InsertBookmarkAsPage_FindDuplicateLayouts::operator()( SdDrawDocument& rDoc
* Gibt es die Layouts schon im Dokument? * Gibt es die Layouts schon im Dokument?
**************************************************************/ **************************************************************/
SdPage* pTestPage = (SdPage*) rDoc.GetMasterPage(nMPage); SdPage* pTestPage = (SdPage*) rDoc.GetMasterPage(nMPage);
String aTest(pTestPage->GetLayoutName()); String aFullTest(pTestPage->GetLayoutName());
aTest.Erase( aTest.SearchAscii( SD_LT_SEPARATOR )); aFullTest.Erase( aFullTest.SearchAscii( SD_LT_SEPARATOR ));
rtl::OUString aTest(aFullTest);
if (aTest == *pLayout) if (aTest == aLayout)
bFound = sal_True; bFound = true;
} }
if (!bFound) if (!bFound)
mpLayoutsToTransfer->Insert(pLayout, LIST_APPEND); mpLayoutsToTransfer->push_back(aLayout);
else
delete pLayout;
} }
/** Just add one page to the container given to the constructor. /** Just add one page to the container given to the constructor.
...@@ -520,12 +516,11 @@ sal_Bool SdDrawDocument::InsertBookmarkAsPage( ...@@ -520,12 +516,11 @@ sal_Bool SdDrawDocument::InsertBookmarkAsPage(
pUndoMgr->EnterListAction(String(SdResId(STR_UNDO_INSERTPAGES)), String()); pUndoMgr->EnterListAction(String(SdResId(STR_UNDO_INSERTPAGES)), String());
} }
List* pLayoutsToTransfer = new List;
// //
// Refactored copy'n'pasted layout name collection into IterateBookmarkPages // 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 ); pBookmarkList, nBMSdPageCount );
IterateBookmarkPages( pBookmarkDoc, pBookmarkList, nBMSdPageCount, aSearchFunctor ); IterateBookmarkPages( pBookmarkDoc, pBookmarkList, nBMSdPageCount, aSearchFunctor );
...@@ -535,18 +530,19 @@ sal_Bool SdDrawDocument::InsertBookmarkAsPage( ...@@ -535,18 +530,19 @@ sal_Bool SdDrawDocument::InsertBookmarkAsPage(
**************************************************************************/ **************************************************************************/
SdStyleSheetPool* pBookmarkStyleSheetPool = SdStyleSheetPool* pBookmarkStyleSheetPool =
(SdStyleSheetPool*) pBookmarkDoc->GetStyleSheetPool(); (SdStyleSheetPool*) pBookmarkDoc->GetStyleSheetPool();
String* pLayout = (String*) pLayoutsToTransfer->First();
// Wenn Vorlagen kopiert werden muessen, dann muessen auch die // Wenn Vorlagen kopiert werden muessen, dann muessen auch die
// MasterPages kopiert werden! // MasterPages kopiert werden!
if( pLayout ) if( !aLayoutsToTransfer.empty() )
bMergeMasterPages = sal_True; bMergeMasterPages = sal_True;
while (pLayout) std::vector<rtl::OUString>::const_iterator pIter;
for ( pIter = aLayoutsToTransfer.begin(); pIter != aLayoutsToTransfer.end(); ++pIter )
{ {
SdStyleSheetVector aCreatedStyles; SdStyleSheetVector aCreatedStyles;
String layoutName = *pIter;
((SdStyleSheetPool*)GetStyleSheetPool())->CopyLayoutSheets(*pLayout, *pBookmarkStyleSheetPool,aCreatedStyles); ((SdStyleSheetPool*)GetStyleSheetPool())->CopyLayoutSheets(layoutName, *pBookmarkStyleSheetPool,aCreatedStyles);
if(!aCreatedStyles.empty()) if(!aCreatedStyles.empty())
{ {
...@@ -556,14 +552,8 @@ sal_Bool SdDrawDocument::InsertBookmarkAsPage( ...@@ -556,14 +552,8 @@ sal_Bool SdDrawDocument::InsertBookmarkAsPage(
pUndoMgr->AddUndoAction(pMovStyles); pUndoMgr->AddUndoAction(pMovStyles);
} }
} }
delete pLayout;
pLayout = (String*)pLayoutsToTransfer->Next();
} }
delete pLayoutsToTransfer;
/************************************************************************** /**************************************************************************
* Dokument einfuegen * Dokument einfuegen
**************************************************************************/ **************************************************************************/
......
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