diff options
author | Noel Power <noel.power@suse.com> | 2013-06-25 11:01:52 +0100 |
---|---|---|
committer | Noel Power <noel.power@suse.com> | 2013-06-25 11:01:52 +0100 |
commit | 90ffe25cdda7f7922ea7def4a5bf99ff1671b0d3 (patch) | |
tree | b370fe9b7af71abc357b540e5878b2bd17d16f35 | |
parent | 69dcacedaccd1d698a54eed615ee8739747bc975 (diff) |
remove unwanted files added with ee51444ed1f7003dafc93c8181b5f8c1b0fd165b
<sigh> added some files that were part of a patch that I was testing
were not intended as part of commit
Change-Id: I34ed7f55de28fa09739c0dd8d5084824de676477
-rw-r--r-- | sd/inc/drawdoc.hxx | 1 | ||||
-rw-r--r-- | sd/inc/shapelist.hxx | 21 | ||||
-rw-r--r-- | sd/source/core/drawdoc.cxx | 11 | ||||
-rw-r--r-- | sd/source/core/drawdoc4.cxx | 10 | ||||
-rw-r--r-- | sd/source/core/sdpage.cxx | 39 | ||||
-rw-r--r-- | sd/source/core/sdpage2.cxx | 6 | ||||
-rw-r--r-- | sd/source/core/shapelist.cxx | 49 | ||||
-rw-r--r-- | sd/source/ui/view/drviews1.cxx | 7 | ||||
-rw-r--r-- | sd/source/ui/view/sdview5.cxx | 5 | ||||
-rw-r--r-- | sd/source/ui/view/viewoverlaymanager.cxx | 5 |
10 files changed, 84 insertions, 70 deletions
diff --git a/sd/inc/drawdoc.hxx b/sd/inc/drawdoc.hxx index 1d05eb36115b..77ac6b676b2a 100644 --- a/sd/inc/drawdoc.hxx +++ b/sd/inc/drawdoc.hxx @@ -145,7 +145,6 @@ private: Timer* mpWorkStartupTimer; Timer* mpOnlineSpellingTimer; sd::ShapeList* mpOnlineSpellingList; - sd::ShapeList::const_iterator maShapeListIterator; SvxSearchItem* mpOnlineSearchItem; std::vector<sd::FrameView*> maFrameViewList; SdCustomShowList* mpCustomShowList; diff --git a/sd/inc/shapelist.hxx b/sd/inc/shapelist.hxx index 2d759a2bd493..f828ebc61d31 100644 --- a/sd/inc/shapelist.hxx +++ b/sd/inc/shapelist.hxx @@ -29,10 +29,6 @@ namespace sd class ShapeList : public sdr::ObjectUser { public: - /** const_iterator guarantee only that the list itself is not - altered. The objects referenced by the list are still mutable. */ - typedef std::list< SdrObject* >::const_iterator const_iterator; - ShapeList(); virtual ~ShapeList(); @@ -52,17 +48,26 @@ namespace sd /** @return true if given shape is part of this list */ bool hasShape( SdrObject& rObject ) const; - /** @return const_iterator pointing to the first element */ - const_iterator cbegin() const; + /** returns the shape the internal iterator points to, or 0 if + * the list end is reached. moves the internal iterator to the + * next shape. */ + SdrObject* getNextShape(); + + /** Sets the internal iterator to the shape at given index. */ + void seekShape( sal_uInt32 nIndex ); + + /** + */ + bool hasMore() const; - /** @return const_iterator pointing to the list termination element */ - const_iterator cend() const; + const std::list< SdrObject* >& getList() const { return maShapeList; } private: virtual void ObjectInDestruction(const SdrObject& rObject); typedef std::list< SdrObject* > ListImpl; ListImpl maShapeList; + ListImpl::iterator maIter; }; } diff --git a/sd/source/core/drawdoc.cxx b/sd/source/core/drawdoc.cxx index ed8d1fcc5641..aca4996aadae 100644 --- a/sd/source/core/drawdoc.cxx +++ b/sd/source/core/drawdoc.cxx @@ -144,7 +144,6 @@ SdDrawDocument::SdDrawDocument(DocumentType eType, SfxObjectShell* pDrDocSh) , mpWorkStartupTimer(NULL) , mpOnlineSpellingTimer(NULL) , mpOnlineSpellingList(NULL) -, maShapeListIterator() , mpOnlineSearchItem(NULL) , mpCustomShowList(NULL) , mpDocSh(static_cast< ::sd::DrawDocShell*>(pDrDocSh)) @@ -695,7 +694,7 @@ void SdDrawDocument::UpdateAllLinks() */ void SdDrawDocument::NewOrLoadCompleted( SdPage* pPage, SdStyleSheetPool* pSPool ) { - const sd::ShapeList& rPresentationShapes( pPage->GetPresentationShapeList() ); + sd::ShapeList& rPresentationShapes( pPage->GetPresentationShapeList() ); if(!rPresentationShapes.isEmpty()) { // Create lists of title and outline styles @@ -707,13 +706,13 @@ void SdDrawDocument::NewOrLoadCompleted( SdPage* pPage, SdStyleSheetPool* pSPool SfxStyleSheet* pTitleSheet = (SfxStyleSheet*)pSPool->GetTitleSheet(aName); + SdrObject* pObj = 0; + rPresentationShapes.seekShape(0); + // Now look for title and outline text objects, then make those objects // listeners. - for( ShapeList::const_iterator aIter (rPresentationShapes.cbegin() ); - aIter != rPresentationShapes.cend(); ++aIter ) + while( (pObj = rPresentationShapes.getNextShape()) ) { - SdrObject* pObj = *aIter; - if (pObj->GetObjInventor() == SdrInventor) { OutlinerParaObject* pOPO = pObj->GetOutlinerParaObject(); diff --git a/sd/source/core/drawdoc4.cxx b/sd/source/core/drawdoc4.cxx index 6c90cacdb240..6954913a18a3 100644 --- a/sd/source/core/drawdoc4.cxx +++ b/sd/source/core/drawdoc4.cxx @@ -755,7 +755,6 @@ void SdDrawDocument::StartOnlineSpelling(sal_Bool bForceSpelling) pOutl->SetDefaultLanguage( meLanguage ); mpOnlineSpellingList = new ShapeList; - maShapeListIterator = mpOnlineSpellingList->cend(); sal_uInt16 nPage; for ( nPage = 0; nPage < GetPageCount(); nPage++ ) @@ -770,7 +769,7 @@ void SdDrawDocument::StartOnlineSpelling(sal_Bool bForceSpelling) FillOnlineSpellingList((SdPage*) GetMasterPage(nPage)); } - maShapeListIterator = mpOnlineSpellingList->cbegin(); + mpOnlineSpellingList->seekShape(0); mpOnlineSpellingTimer = new Timer(); mpOnlineSpellingTimer->SetTimeoutHdl( LINK(this, SdDrawDocument, OnlineSpellingHdl) ); mpOnlineSpellingTimer->SetTimeout(250); @@ -824,14 +823,11 @@ void SdDrawDocument::FillOnlineSpellingList(SdPage* pPage) // OnlineSpelling in the background IMPL_LINK_NOARG(SdDrawDocument, OnlineSpellingHdl) { - bool bHasMore = maShapeListIterator != mpOnlineSpellingList->cend(); - if (mpOnlineSpellingList!=NULL - && ( !mbOnlineSpell || bHasMore)) + && ( !mbOnlineSpell || mpOnlineSpellingList->hasMore())) { // Spell next object - SdrObject* pObj = *maShapeListIterator; - ++maShapeListIterator; + SdrObject* pObj = mpOnlineSpellingList->getNextShape(); if (pObj) { diff --git a/sd/source/core/sdpage.cxx b/sd/source/core/sdpage.cxx index ed7e0223dda4..5f7041791f95 100644 --- a/sd/source/core/sdpage.cxx +++ b/sd/source/core/sdpage.cxx @@ -155,11 +155,11 @@ SdrObject* SdPage::GetPresObj(PresObjKind eObjKind, int nIndex, bool bFuzzySearc // first sort all matching shapes with z-order std::vector< SdrObject* > aMatches; - for( ShapeList::const_iterator aIter( maPresentationShapeList.cbegin() ); - aIter != maPresentationShapeList.cend(); ++aIter ) - { - SdrObject* pObj = *aIter; + SdrObject* pObj = 0; + maPresentationShapeList.seekShape(0); + while( (pObj = maPresentationShapeList.getNextShape()) ) + { SdAnimationInfo* pInfo = SdDrawDocument::GetShapeUserData(*pObj); if( pInfo ) { @@ -1576,38 +1576,27 @@ void SdPage::SetAutoLayout(AutoLayout eLayout, sal_Bool bInit, sal_Bool bCreate // now delete all empty presentation objects that are no longer used by the new layout if( bInit ) { - std::list< SdrObject* > aRemoveList; + SdrObject* pObj = 0; + maPresentationShapeList.seekShape(0); - for( ShapeList::const_iterator aIter = maPresentationShapeList.cbegin(); - aIter != maPresentationShapeList.cend(); ++aIter ) + while( (pObj = maPresentationShapeList.getNextShape()) ) { - SdrObject* pObj = *aIter; - if( aUsedPresentationObjects.count(pObj) == 0 ) { if( pObj->IsEmptyPresObj() ) { - // remove the object now would invalidate the iterator and lead to a seg fault - aRemoveList.push_back(pObj); + if( bUndo ) + pUndoManager->AddUndoAction(pModel->GetSdrUndoFactory().CreateUndoDeleteObject(*pObj)); + + RemoveObject( pObj->GetOrdNum() ); + + if( !bUndo ) + SdrObject::Free( pObj ); } /* #i108541# keep non empty pres obj as pres obj even if they are not part of the current layout */ } } - - for( std::list<SdrObject*>::iterator aIter = aRemoveList.begin(); - aIter != aRemoveList.end(); ++aIter ) - { - SdrObject* pObj = *aIter; - - if( bUndo ) - pUndoManager->AddUndoAction(pModel->GetSdrUndoFactory().CreateUndoDeleteObject(*pObj)); - - RemoveObject( pObj->GetOrdNum() ); - - if( !bUndo ) - SdrObject::Free( pObj ); - } } } diff --git a/sd/source/core/sdpage2.cxx b/sd/source/core/sdpage2.cxx index ff88f061e66c..1b4f9ab7fec9 100644 --- a/sd/source/core/sdpage2.cxx +++ b/sd/source/core/sdpage2.cxx @@ -379,8 +379,10 @@ SdPage::SdPage(const SdPage& rSrcPage) mePageKind = rSrcPage.mePageKind; meAutoLayout = rSrcPage.meAutoLayout; - for( ShapeList::const_iterator aIter( rSrcPage.maPresentationShapeList.cbegin() ); - aIter != rSrcPage.maPresentationShapeList.cend(); ++aIter ) + // use shape list directly to preserve constness of rSrcPage + const std::list< SdrObject* >& rShapeList = rSrcPage.maPresentationShapeList.getList(); + for( std::list< SdrObject* >::const_iterator aIter = rShapeList.begin(); + aIter != rShapeList.end(); ++aIter ) { SdrObject* pObj = *aIter; InsertPresObj(GetObj(pObj->GetOrdNum()), rSrcPage.GetPresObjKind(pObj)); diff --git a/sd/source/core/shapelist.cxx b/sd/source/core/shapelist.cxx index c3aedde725bc..a265e9c93eff 100644 --- a/sd/source/core/shapelist.cxx +++ b/sd/source/core/shapelist.cxx @@ -26,6 +26,7 @@ using namespace sd; ShapeList::ShapeList() { + maIter = maShapeList.end(); } ShapeList::~ShapeList() @@ -54,9 +55,14 @@ SdrObject* ShapeList::removeShape( SdrObject& rObject ) ListImpl::iterator aIter( std::find( maShapeList.begin(), maShapeList.end(), &rObject ) ); if( aIter != maShapeList.end() ) { + bool bIterErased = aIter == maIter; + (*aIter)->RemoveObjectUser(*this); aIter = maShapeList.erase( aIter ); + if( bIterErased ) + maIter = aIter; + if( aIter != maShapeList.end() ) return (*aIter); } @@ -77,6 +83,8 @@ void ShapeList::clear() ListImpl::iterator aIter( aShapeList.begin() ); while( aIter != aShapeList.end() ) (*aIter++)->RemoveObjectUser(*this); + + maIter = aShapeList.end(); } /** returns true if this list is empty */ @@ -91,22 +99,17 @@ bool ShapeList::hasShape( SdrObject& rObject ) const return std::find( maShapeList.begin(), maShapeList.end(), &rObject ) != maShapeList.end(); } -ShapeList::const_iterator ShapeList::cbegin() const -{ - return maShapeList.begin(); -} - -ShapeList::const_iterator ShapeList::cend() const -{ - return maShapeList.end(); -} - void ShapeList::ObjectInDestruction(const SdrObject& rObject) { ListImpl::iterator aIter( std::find( maShapeList.begin(), maShapeList.end(), &rObject ) ); if( aIter != maShapeList.end() ) { - maShapeList.erase( aIter ); + bool bIterErased = aIter == maIter; + + aIter = maShapeList.erase( aIter ); + + if( bIterErased ) + maIter = aIter; } else { @@ -114,4 +117,28 @@ void ShapeList::ObjectInDestruction(const SdrObject& rObject) } } +SdrObject* ShapeList::getNextShape() +{ + if( maIter != maShapeList.end() ) + { + return (*maIter++); + } + else + { + return 0; + } +} + +void ShapeList::seekShape( sal_uInt32 nIndex ) +{ + maIter = maShapeList.begin(); + while( nIndex-- && (maIter != maShapeList.end()) ) + maIter++; +} + +bool ShapeList::hasMore() const +{ + return maIter != maShapeList.end(); +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/source/ui/view/drviews1.cxx b/sd/source/ui/view/drviews1.cxx index 8ad0ce36ce80..fe0f1dd598d8 100644 --- a/sd/source/ui/view/drviews1.cxx +++ b/sd/source/ui/view/drviews1.cxx @@ -1059,12 +1059,11 @@ sal_Bool DrawViewShell::SwitchPage(sal_uInt16 nSelectedPage) { // set pages for all available handout presentation objects sd::ShapeList& rShapeList = pMaster->GetPresentationShapeList(); + SdrObject* pObj = 0; + rShapeList.seekShape(0); - for( ShapeList::const_iterator aIter( rShapeList.cbegin() ); - aIter != rShapeList.cend(); ++aIter ) + while( (pObj = rShapeList.getNextShape()) ) { - SdrObject* pObj = *aIter; - if( pMaster->GetPresObjKind(pObj) == PRESOBJ_HANDOUT ) { // #i105146# We want no content to be displayed for PK_HANDOUT, diff --git a/sd/source/ui/view/sdview5.cxx b/sd/source/ui/view/sdview5.cxx index 3cb082970873..9023d028ad49 100644 --- a/sd/source/ui/view/sdview5.cxx +++ b/sd/source/ui/view/sdview5.cxx @@ -101,10 +101,9 @@ SdrObject* View::GetEmptyPresentationObject( PresObjKind eKind ) // last try to find empty pres obj of multiple type if( !pEmptyObj ) { - ShapeList& rShapeList = pPage->GetPresentationShapeList(); + const std::list< SdrObject* >& rShapes = pPage->GetPresentationShapeList().getList(); - for( ShapeList::const_iterator iter( rShapeList.cbegin() ); - iter != rShapeList.cend(); ++iter ) + for( std::list< SdrObject* >::const_iterator iter( rShapes.begin() ); iter != rShapes.end(); ++iter ) { if( (*iter)->IsEmptyPresObj() && implIsMultiPresObj(pPage->GetPresObjKind(*iter)) ) { diff --git a/sd/source/ui/view/viewoverlaymanager.cxx b/sd/source/ui/view/viewoverlaymanager.cxx index f5c6bc688d22..e834999a5350 100644 --- a/sd/source/ui/view/viewoverlaymanager.cxx +++ b/sd/source/ui/view/viewoverlaymanager.cxx @@ -546,10 +546,9 @@ bool ViewOverlayManager::CreateTags() if( pPage && !pPage->IsMasterPage() && (pPage->GetPageKind() == PK_STANDARD) ) { - ShapeList& rShapeList = pPage->GetPresentationShapeList(); + const std::list< SdrObject* >& rShapes = pPage->GetPresentationShapeList().getList(); - for( ShapeList::const_iterator iter( rShapeList.cbegin() ); - iter != rShapeList.cend(); ++iter ) + for( std::list< SdrObject* >::const_iterator iter( rShapes.begin() ); iter != rShapes.end(); ++iter ) { if( (*iter)->IsEmptyPresObj() && ((*iter)->GetObjIdentifier() == OBJ_OUTLINETEXT) && (mrBase.GetDrawView()->GetTextEditObject() != (*iter)) ) { |