diff options
Diffstat (limited to 'oox/source/xls/autofilterbuffer.cxx')
-rw-r--r-- | oox/source/xls/autofilterbuffer.cxx | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/oox/source/xls/autofilterbuffer.cxx b/oox/source/xls/autofilterbuffer.cxx index 0ffcdf6a151b..dd3fc5acf31d 100644 --- a/oox/source/xls/autofilterbuffer.cxx +++ b/oox/source/xls/autofilterbuffer.cxx @@ -30,9 +30,9 @@ #include <com/sun/star/sheet/FilterConnection.hpp> #include <com/sun/star/sheet/FilterOperator2.hpp> -#include <com/sun/star/sheet/TableFilterField2.hpp> +#include <com/sun/star/sheet/TableFilterField3.hpp> #include <com/sun/star/sheet/XDatabaseRange.hpp> -#include <com/sun/star/sheet/XSheetFilterDescriptor2.hpp> +#include <com/sun/star/sheet/XSheetFilterDescriptor3.hpp> #include <com/sun/star/table/TableOrientation.hpp> #include <rtl/ustrbuf.hxx> #include "oox/helper/attributelist.hxx" @@ -170,21 +170,23 @@ ApiFilterSettings::ApiFilterSettings() void ApiFilterSettings::appendField( bool bAnd, sal_Int32 nOperator, double fValue ) { maFilterFields.resize( maFilterFields.size() + 1 ); - TableFilterField2& rFilterField = maFilterFields.back(); + TableFilterField3& rFilterField = maFilterFields.back(); rFilterField.Connection = bAnd ? FilterConnection_AND : FilterConnection_OR; rFilterField.Operator = nOperator; - rFilterField.IsNumeric = sal_True; - rFilterField.NumericValue = fValue; + rFilterField.Values.realloc(1); + rFilterField.Values[0].IsNumeric = true; + rFilterField.Values[0].NumericValue = fValue; } void ApiFilterSettings::appendField( bool bAnd, sal_Int32 nOperator, const OUString& rValue ) { maFilterFields.resize( maFilterFields.size() + 1 ); - TableFilterField2& rFilterField = maFilterFields.back(); + TableFilterField3& rFilterField = maFilterFields.back(); rFilterField.Connection = bAnd ? FilterConnection_AND : FilterConnection_OR; rFilterField.Operator = nOperator; - rFilterField.IsNumeric = sal_False; - rFilterField.StringValue = rValue; + rFilterField.Values.realloc(1); + rFilterField.Values[0].IsNumeric = false; + rFilterField.Values[0].StringValue = rValue; } // ============================================================================ @@ -669,7 +671,7 @@ FilterColumn& AutoFilter::createFilterColumn() return *xFilterColumn; } -void AutoFilter::finalizeImport( const Reference< XSheetFilterDescriptor2 >& rxFilterDesc ) +void AutoFilter::finalizeImport( const Reference<XSheetFilterDescriptor3>& rxFilterDesc ) { if( rxFilterDesc.is() ) { @@ -687,7 +689,7 @@ void AutoFilter::finalizeImport( const Reference< XSheetFilterDescriptor2 >& rxF OSL_ENSURE( nMaxCount > 0, "AutoFilter::finalizeImport - invalid maximum filter field count" ); // resulting list of all UNO API filter fields - ::std::vector< TableFilterField2 > aFilterFields; + ::std::vector<TableFilterField3> aFilterFields; // track if columns require to enable or disable regular expressions OptValue< bool > obNeedsRegExp; @@ -742,7 +744,7 @@ void AutoFilter::finalizeImport( const Reference< XSheetFilterDescriptor2 >& rxF // insert all filter fields to the filter descriptor if( !aFilterFields.empty() ) - rxFilterDesc->setFilterFields2( ContainerHelper::vectorToSequence( aFilterFields ) ); + rxFilterDesc->setFilterFields3( ContainerHelper::vectorToSequence( aFilterFields ) ); // regular expressions bool bUseRegExp = obNeedsRegExp.get( false ); @@ -828,7 +830,7 @@ bool AutoFilterBuffer::finalizeImport( const Reference< XDatabaseRange >& rxData PropertySet aRangeProps( rxDatabaseRange ); aRangeProps.setProperty( PROP_AutoFilter, true ); // convert filter settings using the filter descriptor of the database range - Reference< XSheetFilterDescriptor2 > xFilterDesc( rxDatabaseRange->getFilterDescriptor(), UNO_QUERY_THROW ); + Reference< XSheetFilterDescriptor3 > xFilterDesc( rxDatabaseRange->getFilterDescriptor(), UNO_QUERY_THROW ); pAutoFilter->finalizeImport( xFilterDesc ); // return true to indicate enabled autofilter return true; |