From 4eb0adf45f32dd49472caeb1908a017699c3c9d4 Mon Sep 17 00:00:00 2001
From: npcdoom <venccsralph@gmail.com>
Date: Wed, 2 Mar 2011 10:07:01 -0430
Subject: [PATCH 6/7] Remove deprecated List container.

---
 svx/inc/svx/svdmark.hxx       |    7 ++++---
 svx/inc/svx/svdmrkv.hxx       |    2 +-
 svx/source/svdraw/svdedtv.cxx |   37 ++++++++++++++++++++++---------------
 svx/source/svdraw/svdmark.cxx |   10 ++++------
 4 files changed, 31 insertions(+), 25 deletions(-)

diff --git a/svx/inc/svx/svdmark.hxx b/svx/inc/svx/svdmark.hxx
index 2fd1034..b9d3aaa 100644
--- a/svx/inc/svx/svdmark.hxx
+++ b/svx/inc/svx/svdmark.hxx
@@ -29,9 +29,10 @@
 #ifndef _SVDMARK_HXX
 #define _SVDMARK_HXX
 
+#include <vector>
+
 #include <tools/contnr.hxx>
 #include <tools/string.hxx>
-#include <tools/list.hxx>
 #include "svx/svxdllapi.h"
 #include <svx/sdrobjectuser.hxx>
 
@@ -378,7 +379,7 @@ namespace sdr
         SdrMarkList					maMarkedObjectList;
         SdrMarkList					maEdgesOfMarkedNodes;
         SdrMarkList					maMarkedEdgesOfMarkedNodes;
-        List						maAllMarkedObjects;
+        std::vector<SdrObject*>		maAllMarkedObjects;
 
         // bitfield
         unsigned					mbEdgesOfMarkedNodesDirty : 1;
@@ -398,7 +399,7 @@ namespace sdr
 
         const SdrMarkList& GetEdgesOfMarkedNodes() const;
         const SdrMarkList& GetMarkedEdgesOfMarkedNodes() const;
-        const List& GetAllMarkedObjects() const;
+        const std::vector<SdrObject*>& GetAllMarkedObjects() const;
 
         SdrMarkList& GetMarkedObjectListWriteAccess()
         {
diff --git a/svx/inc/svx/svdmrkv.hxx b/svx/inc/svx/svdmrkv.hxx
index 896a239..30da68e 100644
--- a/svx/inc/svx/svdmrkv.hxx
+++ b/svx/inc/svx/svdmrkv.hxx
@@ -286,7 +286,7 @@ public:
     // die selbst jedoch nicht markiert sind.
     const SdrMarkList& GetEdgesOfMarkedNodes() const { return mpSdrViewSelection->GetEdgesOfMarkedNodes(); }
     const SdrMarkList& GetMarkedEdgesOfMarkedNodes() const { return mpSdrViewSelection->GetMarkedEdgesOfMarkedNodes(); }
-    const List& GetTransitiveHullOfMarkedObjects() const { return mpSdrViewSelection->GetAllMarkedObjects(); }
+    const std::vector<SdrObject*>& GetTransitiveHullOfMarkedObjects() const { return mpSdrViewSelection->GetAllMarkedObjects(); }
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 
diff --git a/svx/source/svdraw/svdedtv.cxx b/svx/source/svdraw/svdedtv.cxx
index 693f933..023f20b 100644
--- a/svx/source/svdraw/svdedtv.cxx
+++ b/svx/source/svdraw/svdedtv.cxx
@@ -341,37 +341,44 @@ void SdrEditView::EndUndo()
 
 void SdrEditView::ImpBroadcastEdgesOfMarkedNodes()
 {
-    const List& rAllMarkedObjects = GetTransitiveHullOfMarkedObjects();
+    std::vector<SdrObject*>::const_iterator iterPos;
+    const std::vector<SdrObject*>& rAllMarkedObjects = GetTransitiveHullOfMarkedObjects();
 
     // #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 < rAllMarkedObjects.Count(); a++)
+    for(sal_uInt32 a(0L); a < rAllMarkedObjects.size(); a++)
     {
-        SdrEdgeObj* pEdge = PTR_CAST(SdrEdgeObj, (SdrObject*)rAllMarkedObjects.GetObject(a));
+        SdrEdgeObj* pEdge = PTR_CAST(SdrEdgeObj, rAllMarkedObjects[a]);
 
         if(pEdge)
         {
             SdrObject* pObj1 = pEdge->GetConnectedNode(sal_False);
             SdrObject* pObj2 = pEdge->GetConnectedNode(sal_True);
 
-            if(pObj1 
-                && LIST_ENTRY_NOTFOUND == rAllMarkedObjects.GetPos(pObj1) 
-                && !pEdge->CheckNodeConnection(sal_False)) 
+            if(pObj1 && !pEdge->CheckNodeConnection(sal_False))
             {
-                if( IsUndoEnabled() )
-                    AddUndo( GetModel()->GetSdrUndoFactory().CreateUndoGeoObject(*pEdge));
-                pEdge->DisconnectFromNode(sal_False);
+                iterPos = std::find(rAllMarkedObjects.begin(),rAllMarkedObjects.end(),pObj1);
+
+                if (iterPos == rAllMarkedObjects.end())
+                {
+                    if( IsUndoEnabled() )
+                        AddUndo( GetModel()->GetSdrUndoFactory().CreateUndoGeoObject(*pEdge));
+                    pEdge->DisconnectFromNode(sal_False);
+                }
             }
 
-            if(pObj2
-                && LIST_ENTRY_NOTFOUND == rAllMarkedObjects.GetPos(pObj2) 
-                && !pEdge->CheckNodeConnection(sal_True)) 
+            if(pObj2 && !pEdge->CheckNodeConnection(sal_True))
             {
-                if( IsUndoEnabled() )
-                    AddUndo( GetModel()->GetSdrUndoFactory().CreateUndoGeoObject(*pEdge));
-                pEdge->DisconnectFromNode(sal_True);
+                iterPos = std::find(rAllMarkedObjects.begin(),rAllMarkedObjects.end(),pObj2);
+
+                if (iterPos == rAllMarkedObjects.end())
+                {
+                    if( IsUndoEnabled() )
+                        AddUndo( GetModel()->GetSdrUndoFactory().CreateUndoGeoObject(*pEdge));
+                    pEdge->DisconnectFromNode(sal_True);
+                }
             }
         }
     }
diff --git a/svx/source/svdraw/svdmark.cxx b/svx/source/svdraw/svdmark.cxx
index 5b60131..91eee0a 100644
--- a/svx/source/svdraw/svdmark.cxx
+++ b/svx/source/svdraw/svdmark.cxx
@@ -905,7 +905,7 @@ namespace sdr
             mbEdgesOfMarkedNodesDirty = sal_True; 
             maEdgesOfMarkedNodes.Clear();
             maMarkedEdgesOfMarkedNodes.Clear();
-            maAllMarkedObjects.Clear();
+            maAllMarkedObjects.clear();
         }
     }
 
@@ -929,12 +929,10 @@ namespace sdr
         return maMarkedEdgesOfMarkedNodes; 
     }
 
-    const List& ViewSelection::GetAllMarkedObjects() const 
+    const std::vector<SdrObject*>& ViewSelection::GetAllMarkedObjects() const 
     { 
         if(mbEdgesOfMarkedNodesDirty)
-        {
             ((ViewSelection*)this)->ImpForceEdgesOfMarkedNodes();
-        }
 
         return maAllMarkedObjects; 
     }
@@ -961,7 +959,7 @@ namespace sdr
                 }
             }
 
-            maAllMarkedObjects.Insert(pObj, LIST_APPEND);
+            maAllMarkedObjects.push_back(pObj);
         }
     }
 
@@ -973,7 +971,7 @@ namespace sdr
             maMarkedObjectList.ForceSort();
             maEdgesOfMarkedNodes.Clear();
             maMarkedEdgesOfMarkedNodes.Clear();
-            maAllMarkedObjects.Clear();
+            maAllMarkedObjects.clear();
 
             // #126320# GetMarkCount after ForceSort
             const ULONG nMarkAnz(maMarkedObjectList.GetMarkCount());
-- 
1.7.3.4

