[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