[Libreoffice-commits] .: binfilter/bf_svx binfilter/inc

Joseph Powers jpowers at kemper.freedesktop.org
Thu May 5 19:23:35 PDT 2011


 binfilter/bf_svx/source/svdraw/svx_svditer.cxx |   73 +++++++++++--------------
 binfilter/inc/bf_svx/svditer.hxx               |   20 ++++--
 2 files changed, 46 insertions(+), 47 deletions(-)

New commits:
commit d3cb5cb5c574f24920ddc93a01662faa12bf87ce
Author: Joseph Powers <jpowers27 at cox.net>
Date:   Thu May 5 19:23:11 2011 -0700

    Convert "List maObjList" in SdrObjListIter into a vector<>

diff --git a/binfilter/bf_svx/source/svdraw/svx_svditer.cxx b/binfilter/bf_svx/source/svdraw/svx_svditer.cxx
index 864df0b..56cbee4 100644
--- a/binfilter/bf_svx/source/svdraw/svx_svditer.cxx
+++ b/binfilter/bf_svx/source/svdraw/svx_svditer.cxx
@@ -2,7 +2,7 @@
 /*************************************************************************
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- * 
+ *
  * Copyright 2000, 2010 Oracle and/or its affiliates.
  *
  * OpenOffice.org - a multi-platform office productivity suite
@@ -27,50 +27,45 @@
  ************************************************************************/
 
 #include "svditer.hxx"
+#include "scene3d.hxx"
 
+namespace binfilter {
 
+SdrObjListIter::SdrObjListIter(const SdrObjList& rObjList, SdrIterMode eMode, BOOL bReverse)
+:   mnIndex(0L),
+    mbReverse(bReverse)
+{
+    ImpProcessObjectList(rObjList, eMode);
+    Reset();
+}
 
-// #99190#
-#include "scene3d.hxx"
-namespace binfilter {
+SdrObjListIter::SdrObjListIter(const SdrObject& rGroup, SdrIterMode eMode, BOOL bReverse)
+:   mnIndex(0L),
+    mbReverse(bReverse)
+{
+    ImpProcessObjectList(*rGroup.GetSubList(), eMode);
+    Reset();
+}
 
-/*N*/ SdrObjListIter::SdrObjListIter(const SdrObjList& rObjList, SdrIterMode eMode, BOOL bReverse)
-/*N*/ :	maObjList(1024, 64, 64),
-/*N*/ 	mnIndex(0L),
-/*N*/ 	mbReverse(bReverse)
-/*N*/ {
-/*N*/ 	ImpProcessObjectList(rObjList, eMode);
-/*N*/ 	Reset();
-/*N*/ }
+void SdrObjListIter::ImpProcessObjectList(const SdrObjList& rObjList, SdrIterMode eMode)
+{
+    for(sal_uInt32 a(0L); a < rObjList.GetObjCount(); a++)
+    {
+        SdrObject* pObj = rObjList.GetObj(a);
+        sal_Bool bIsGroup(pObj->IsGroupObject());
 
-/*N*/ SdrObjListIter::SdrObjListIter(const SdrObject& rGroup, SdrIterMode eMode, BOOL bReverse)
-/*N*/ :	maObjList(1024, 64, 64),
-/*N*/ 	mnIndex(0L),
-/*N*/ 	mbReverse(bReverse)
-/*N*/ {
-/*N*/ 	ImpProcessObjectList(*rGroup.GetSubList(), eMode);
-/*N*/ 	Reset();
-/*N*/ }
+        // #99190# 3D objects are no group objects, IsGroupObject()
+        // only tests if pSub is not null ptr :-(
+        if(bIsGroup && pObj->ISA(E3dObject) && !pObj->ISA(E3dScene))
+            bIsGroup = sal_False;
 
-/*N*/ void SdrObjListIter::ImpProcessObjectList(const SdrObjList& rObjList, SdrIterMode eMode)
-/*N*/ {
-/*N*/ 	for(sal_uInt32 a(0L); a < rObjList.GetObjCount(); a++)
-/*N*/ 	{
-/*N*/ 		SdrObject* pObj = rObjList.GetObj(a);
-/*N*/ 		sal_Bool bIsGroup(pObj->IsGroupObject());
-/*N*/ 
-/*N*/ 		// #99190# 3D objects are no group objects, IsGroupObject()
-/*N*/ 		// only tests if pSub is not null ptr :-(
-/*N*/ 		if(bIsGroup && pObj->ISA(E3dObject) && !pObj->ISA(E3dScene))
-/*N*/ 			bIsGroup = sal_False;
-/*N*/ 
-/*N*/ 		if(eMode != IM_DEEPNOGROUPS || !bIsGroup)
-/*N*/ 			maObjList.Insert(pObj, LIST_APPEND);
-/*N*/ 
-/*N*/ 		if(bIsGroup && eMode != IM_FLAT)
-/*N*/ 			ImpProcessObjectList(*pObj->GetSubList(), eMode);
-/*N*/ 	}
-/*N*/ }
+        if(eMode != IM_DEEPNOGROUPS || !bIsGroup)
+            maObjList.push_back( pObj );
+
+        if(bIsGroup && eMode != IM_FLAT)
+            ImpProcessObjectList(*pObj->GetSubList(), eMode);
+    }
+}
 
 }
 
diff --git a/binfilter/inc/bf_svx/svditer.hxx b/binfilter/inc/bf_svx/svditer.hxx
index 93686f8..018eae0 100644
--- a/binfilter/inc/bf_svx/svditer.hxx
+++ b/binfilter/inc/bf_svx/svditer.hxx
@@ -30,10 +30,9 @@
 #define _SVDITER_HXX
 
 #include <bf_svtools/bf_solar.h>
-
 #include <sal/types.h>
+#include <vector>
 
-#include <tools/list.hxx>
 namespace binfilter {
 
 class SdrObjList;
@@ -45,11 +44,13 @@ class SdrObject;
 // IM_DEEPNOGROUPS		: Mit rekursivem Abstieg, Next() liefert keine Gruppenobjekte
 enum SdrIterMode { IM_FLAT, IM_DEEPWITHGROUPS, IM_DEEPNOGROUPS};
 
+typedef ::std::vector< SdrObject* > SdrObjectList;
+
 class SdrObjListIter
 {
-    List						maObjList;
-    sal_uInt32					mnIndex;
-    BOOL						mbReverse;
+    SdrObjectList   maObjList;
+    size_t          mnIndex;
+    BOOL            mbReverse;
 
     void ImpProcessObjectList(const SdrObjList& rObjList, SdrIterMode eMode);
 
@@ -57,9 +58,12 @@ public:
     SdrObjListIter(const SdrObjList& rObjList, SdrIterMode eMode = IM_DEEPNOGROUPS, BOOL bReverse = FALSE);
     SdrObjListIter(const SdrObject& rGroup, SdrIterMode eMode = IM_DEEPNOGROUPS, BOOL bReverse = FALSE);
 
-    void Reset() { mnIndex = (mbReverse ? maObjList.Count() : 0L); }
-    BOOL IsMore() const { return (mbReverse ? mnIndex != 0 : ( mnIndex < maObjList.Count())); }
-    SdrObject* Next() { return (SdrObject*)maObjList.GetObject(mbReverse ? --mnIndex : mnIndex++); }
+    void Reset() { mnIndex = (mbReverse ? maObjList.size() : 0L); }
+    BOOL IsMore() const { return (mbReverse ? mnIndex != 0 : ( mnIndex < maObjList.size())); }
+
+    SdrObject* Next() {
+        return IsMore() ? maObjList[ mbReverse ? --mnIndex : mnIndex++ ] : NULL;
+    }
 };
 
 }//end of namespace binfilter


More information about the Libreoffice-commits mailing list