[Libreoffice-commits] .: sc/source

Joseph Powers jpowers at kemper.freedesktop.org
Sun May 8 06:38:53 PDT 2011


 sc/source/filter/excel/excimp8.cxx |   27 +++++++++++----------------
 sc/source/filter/inc/excimp8.hxx   |   20 ++++++++------------
 2 files changed, 19 insertions(+), 28 deletions(-)

New commits:
commit a5c1d09b176c6d8c8548fe2fb58ddb1a1f79efaa
Author: Rafael Dominguez <venccsralph at gmail.com>
Date:   Sat May 7 11:38:28 2011 -0430

    Remove deprecated List in XclImpAutoFilterBuffer.

diff --git a/sc/source/filter/excel/excimp8.cxx b/sc/source/filter/excel/excimp8.cxx
index cf4abda..6389342 100644
--- a/sc/source/filter/excel/excimp8.cxx
+++ b/sc/source/filter/excel/excimp8.cxx
@@ -31,6 +31,8 @@
 
 #include "excimp8.hxx"
 
+#include <boost/bind.hpp>
+
 #include <scitems.hxx>
 #include <comphelper/processfactory.hxx>
 #include <comphelper/mediadescriptor.hxx>
@@ -812,20 +814,10 @@ void XclImpAutoFilterData::EnableRemoveFilter()
     // inside the advanced range
 }
 
-XclImpAutoFilterBuffer::XclImpAutoFilterBuffer()
-{
-}
-
-XclImpAutoFilterBuffer::~XclImpAutoFilterBuffer()
-{
-    for( XclImpAutoFilterData* pData = _First(); pData; pData = _Next() )
-        delete pData;
-}
-
 void XclImpAutoFilterBuffer::Insert( RootData* pRoot, const ScRange& rRange)
 {
     if( !GetByTab( rRange.aStart.Tab() ) )
-        Append( new XclImpAutoFilterData( pRoot, rRange) );
+        maFilters.push_back( new XclImpAutoFilterData( pRoot, rRange) );
 }
 
 void XclImpAutoFilterBuffer::AddAdvancedRange( const ScRange& rRange )
@@ -844,15 +836,18 @@ void XclImpAutoFilterBuffer::AddExtractPos( const ScRange& rRange )
 
 void XclImpAutoFilterBuffer::Apply()
 {
-    for( XclImpAutoFilterData* pData = _First(); pData; pData = _Next() )
-        pData->Apply();
+    std::for_each(maFilters.begin(),maFilters.end(),
+        boost::bind(&XclImpAutoFilterData::Apply,_1));
 }
 
 XclImpAutoFilterData* XclImpAutoFilterBuffer::GetByTab( SCTAB nTab )
 {
-    for( XclImpAutoFilterData* pData = _First(); pData; pData = _Next() )
-        if( pData->Tab() == nTab )
-            return pData;
+    boost::ptr_vector<XclImpAutoFilterData>::iterator it;
+    for( it = maFilters.begin(); it != maFilters.end(); ++it )
+    {
+        if( it->Tab() == nTab )
+            return const_cast<XclImpAutoFilterData*>(&(*it));
+    }
     return NULL;
 }
 
diff --git a/sc/source/filter/inc/excimp8.hxx b/sc/source/filter/inc/excimp8.hxx
index 274ef95..46599d5 100644
--- a/sc/source/filter/inc/excimp8.hxx
+++ b/sc/source/filter/inc/excimp8.hxx
@@ -30,6 +30,9 @@
 #define SC_EXCIMP8_HXX
 
 #include <string.h>
+
+#include <boost/ptr_container/ptr_vector.hpp>
+
 #include "imp_op.hxx"
 #include "root.hxx"
 #include "excscen.hxx"
@@ -135,20 +138,9 @@ public:
 };
 
 
-class XclImpAutoFilterBuffer : private List
+class XclImpAutoFilterBuffer
 {
-private:
-    using                       List::Insert;
-
-    inline XclImpAutoFilterData* _First()	{ return (XclImpAutoFilterData*) List::First(); }
-    inline XclImpAutoFilterData* _Next()	{ return (XclImpAutoFilterData*) List::Next(); }
-
-    inline void					Append( XclImpAutoFilterData* pData )
-                                    { List::Insert( pData, LIST_APPEND ); }
-protected:
 public:
-                                XclImpAutoFilterBuffer();
-    virtual						~XclImpAutoFilterBuffer();
 
     void						Insert( RootData* pRoot, const ScRange& rRange);
     void						AddAdvancedRange( const ScRange& rRange );
@@ -156,6 +148,10 @@ public:
     void						Apply();
 
     XclImpAutoFilterData*		GetByTab( SCTAB nTab );
+
+private:
+
+    boost::ptr_vector<XclImpAutoFilterData> maFilters;
 };
 
 #endif


More information about the Libreoffice-commits mailing list