[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