diff options
author | Rüdiger Timm <rt@openoffice.org> | 2004-07-12 13:44:43 +0000 |
---|---|---|
committer | Rüdiger Timm <rt@openoffice.org> | 2004-07-12 13:44:43 +0000 |
commit | 7bc0820e5dbde3a4a0df759a62f209c1b126b355 (patch) | |
tree | 81517c05fd03ce2030a4a5ed5fe5d27f0da5c4d5 /svx | |
parent | 92ad45415261c9e0bab03f3bb31f9868d97cafcf (diff) |
INTEGRATION: CWS aw013 (1.10.294); FILE MERGED
2004/06/24 09:26:36 aw 1.10.294.1: #i29181#
Diffstat (limited to 'svx')
-rw-r--r-- | svx/source/svdraw/svdedtv.cxx | 63 |
1 files changed, 33 insertions, 30 deletions
diff --git a/svx/source/svdraw/svdedtv.cxx b/svx/source/svdraw/svdedtv.cxx index abea41e57f9a..6c2b64a232d6 100644 --- a/svx/source/svdraw/svdedtv.cxx +++ b/svx/source/svdraw/svdedtv.cxx @@ -2,9 +2,9 @@ * * $RCSfile: svdedtv.cxx,v $ * - * $Revision: 1.10 $ + * $Revision: 1.11 $ * - * last change: $Author: rt $ $Date: 2003-11-24 16:53:08 $ + * last change: $Author: rt $ $Date: 2004-07-12 14:44:43 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -346,15 +346,16 @@ void SdrEditView::EndUndo() void SdrEditView::ImpBroadcastEdgesOfMarkedNodes() { - ForceEdgesOfMarkedNodes(); + const List& rAllMarkedObjects = GetTransitiveHullOfMarkedObjects(); +// ForceEdgesOfMarkedNodes(); // #i13033# // New mechanism to search for necessary disconnections for // changed connectors inside the transitive hull of all at // the beginning of UNDO selected objects - for(sal_uInt32 a(0L); a < maAllMarkedObjects.Count(); a++) + for(sal_uInt32 a(0L); a < rAllMarkedObjects.Count(); a++) { - SdrEdgeObj* pEdge = PTR_CAST(SdrEdgeObj, (SdrObject*)maAllMarkedObjects.GetObject(a)); + SdrEdgeObj* pEdge = PTR_CAST(SdrEdgeObj, (SdrObject*)rAllMarkedObjects.GetObject(a)); if(pEdge) { @@ -362,7 +363,7 @@ void SdrEditView::ImpBroadcastEdgesOfMarkedNodes() SdrObject* pObj2 = pEdge->GetConnectedNode(sal_True); if(pObj1 - && LIST_ENTRY_NOTFOUND == maAllMarkedObjects.GetPos(pObj1) + && LIST_ENTRY_NOTFOUND == rAllMarkedObjects.GetPos(pObj1) && !pEdge->CheckNodeConnection(sal_False)) { AddUndo(new SdrUndoGeoObj(*pEdge)); @@ -370,7 +371,7 @@ void SdrEditView::ImpBroadcastEdgesOfMarkedNodes() } if(pObj2 - && LIST_ENTRY_NOTFOUND == maAllMarkedObjects.GetPos(pObj2) + && LIST_ENTRY_NOTFOUND == rAllMarkedObjects.GetPos(pObj2) && !pEdge->CheckNodeConnection(sal_True)) { AddUndo(new SdrUndoGeoObj(*pEdge)); @@ -379,11 +380,11 @@ void SdrEditView::ImpBroadcastEdgesOfMarkedNodes() } } - ULONG nMarkedEdgeAnz=aMarkedEdgesOfMarkedNodes.GetMarkCount(); + ULONG nMarkedEdgeAnz = GetMarkedEdgesOfMarkedNodes().GetMarkCount(); USHORT i; for (i=0; i<nMarkedEdgeAnz; i++) { - SdrMark* pEM=aMarkedEdgesOfMarkedNodes.GetMark(i); + SdrMark* pEM = GetMarkedEdgesOfMarkedNodes().GetMark(i); SdrObject* pEdgeTmp=pEM->GetObj(); SdrEdgeObj* pEdge=PTR_CAST(SdrEdgeObj,pEdgeTmp); if (pEdge!=NULL) { @@ -514,8 +515,8 @@ void SdrEditView::CheckPossibilities() if (bPossibilitiesDirty) { ImpResetPossibilityFlags(); - aMark.ForceSort(); - ULONG nMarkAnz=aMark.GetMarkCount(); + SortMarkedObjects(); + ULONG nMarkAnz=GetMarkedObjectCount(); if (nMarkAnz!=0) { bReverseOrderPossible=nMarkAnz>=2; @@ -525,7 +526,7 @@ void SdrEditView::CheckPossibilities() if (nMarkAnz==1) { // bCombinePossible gruendlicher checken // fehlt noch ... - const SdrObject* pObj=aMark.GetMark(0)->GetObj(); + const SdrObject* pObj=GetMarkedObjectByIndex(0); const SdrPathObj* pPath=PTR_CAST(SdrPathObj,pObj); BOOL bGroup=pObj->GetSubList()!=NULL; BOOL bHasText=pObj->GetOutlinerParaObject()!=NULL; @@ -558,7 +559,7 @@ void SdrEditView::CheckPossibilities() if(bGradientAllowed) { // gradient depends on fillstyle - const SdrMark* pM = aMark.GetMark(0); + const SdrMark* pM = GetSdrMarkByIndex(0); const SdrObject* pObj = pM->GetObj(); // maybe group object, so get merged ItemSet @@ -588,7 +589,7 @@ void SdrEditView::CheckPossibilities() const SdrPageView* pPV0=NULL; for (ULONG nm=0; nm<nMarkAnz; nm++) { - const SdrMark* pM=aMark.GetMark(nm); + const SdrMark* pM=GetSdrMarkByIndex(nm); const SdrObject* pObj=pM->GetObj(); const SdrPageView* pPV=pM->GetPageView(); if (pPV!=pPV0) { @@ -681,7 +682,7 @@ void SdrEditView::CheckPossibilities() // Verschieben von angeklebten Verbindern unterbinden // Derzeit nur fuer Einfachselektion implementiert. if (nMarkAnz==1) { - SdrObject* pObj=aMark.GetMark(0)->GetObj(); + SdrObject* pObj=GetMarkedObjectByIndex(0); SdrEdgeObj* pEdge=PTR_CAST(SdrEdgeObj,pObj); if (pEdge!=NULL) { SdrObject* pNode1=pEdge->GetConnectedNode(TRUE); @@ -698,8 +699,8 @@ void SdrEditView::CheckPossibilities() void SdrEditView::ForceMarkedObjToAnotherPage() { BOOL bFlg=FALSE; - for (ULONG nm=0; nm<aMark.GetMarkCount(); nm++) { - SdrMark* pM=aMark.GetMark(nm); + for (ULONG nm=0; nm<GetMarkedObjectCount(); nm++) { + SdrMark* pM=GetSdrMarkByIndex(nm); SdrObject* pObj=pM->GetObj(); Rectangle aObjRect(pObj->GetCurrentBoundRect()); aObjRect+=pM->GetPageView()->GetOffset(); // auf View-Koordinaten @@ -729,7 +730,7 @@ void SdrEditView::ForceMarkedObjToAnotherPage() } } -void SdrEditView::DeleteMarked(SdrMarkList& rMark) +void SdrEditView::DeleteMarked(const SdrMarkList& rMark) { if (rMark.GetMarkCount()!=0) { rMark.ForceSort(); @@ -759,13 +760,13 @@ void SdrEditView::DeleteMarked(SdrMarkList& rMark) void SdrEditView::DeleteMarkedObj() { - if (aMark.GetMarkCount()!=0) { + if (GetMarkedObjectCount()!=0) { nSpecialCnt=0; BrkAction(); HideMarkHdl(NULL); - BegUndo(ImpGetResStr(STR_EditDelete),aMark.GetMarkDescription(),SDRREPFUNC_OBJ_DELETE); - DeleteMarked(aMark); - aMark.Clear(); + BegUndo(ImpGetResStr(STR_EditDelete),GetDescriptionOfMarkedObjects(),SDRREPFUNC_OBJ_DELETE); + DeleteMarked(GetMarkedObjectList()); + GetMarkedObjectListWriteAccess().Clear(); aHdl.Clear(); EndUndo(); MarkListHasChanged(); @@ -774,15 +775,15 @@ void SdrEditView::DeleteMarkedObj() void SdrEditView::CopyMarkedObj() { - aMark.ForceSort(); - ForceEdgesOfMarkedNodes(); + SortMarkedObjects(); + //ForceEdgesOfMarkedNodes(); - SdrMarkList aSourceObjectsForCopy(aMark); + SdrMarkList aSourceObjectsForCopy(GetMarkedObjectList()); // Folgende Schleife Anstatt MarkList::Merge(), damit // ich jeweils mein Flag an die MarkEntries setzen kann. - ULONG nEdgeAnz=aEdgesOfMarkedNodes.GetMarkCount(); + ULONG nEdgeAnz = GetEdgesOfMarkedNodes().GetMarkCount(); for (ULONG nEdgeNum=0; nEdgeNum<nEdgeAnz; nEdgeNum++) { - SdrMark aM(*aEdgesOfMarkedNodes.GetMark(nEdgeNum)); + SdrMark aM(*GetEdgesOfMarkedNodes().GetMark(nEdgeNum)); aM.SetUser(1); aSourceObjectsForCopy.InsertEntry(aM); } @@ -792,7 +793,7 @@ void SdrEditView::CopyMarkedObj() // New mechanism to re-create the connections of cloned connectors CloneList aCloneList; - aMark.Clear(); + GetMarkedObjectListWriteAccess().Clear(); ULONG nCloneErrCnt=0; ULONG nMarkAnz=aSourceObjectsForCopy.GetMarkCount(); ULONG nm; @@ -809,8 +810,10 @@ void SdrEditView::CopyMarkedObj() // aCopiedObjects.InsertEntry(aME); aCloneList.AddPair(pM->GetObj(), pO); - if (pM->GetUser()==0) { // Sonst war's nur eine mitzukierende Edge - aMark.InsertEntry(aME); + if (pM->GetUser()==0) + { + // Sonst war's nur eine mitzukierende Edge + GetMarkedObjectListWriteAccess().InsertEntry(aME); } } else { nCloneErrCnt++; |