diff -uPr sc.old/inc/cellsuno.hxx sc.new/inc/cellsuno.hxx --- sc.old/inc/cellsuno.hxx 2008-03-11 13:34:00.000000000 +0800 +++ sc.new/inc/cellsuno.hxx 2008-03-11 10:05:34.000000000 +0800 @@ -92,8 +92,8 @@ #ifndef _COM_SUN_STAR_SHEET_XCELLRANGESQUERY_HPP_ #include #endif -#ifndef _COM_SUN_STAR_SHEET_XSHEETFILTERABLEEX_HPP_ -#include +#ifndef _COM_SUN_STAR_SHEET_XSHEETFILTERABLEEX2_HPP_ +#include #endif #ifndef _COM_SUN_STAR_SHEET_XSPREADSHEET_HPP_ #include @@ -716,7 +716,7 @@ public com::sun::star::sheet::XCellSeries, public com::sun::star::table::XAutoFormattable, public com::sun::star::util::XSortable, - public com::sun::star::sheet::XSheetFilterableEx, + public com::sun::star::sheet::XSheetFilterableEx2, public com::sun::star::sheet::XSubTotalCalculatable, public com::sun::star::util::XImportable, public com::sun::star::sheet::XCellFormatRangesSupplier, @@ -828,17 +828,17 @@ throw(::com::sun::star::uno::RuntimeException); // XSheetFilterableEx - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSheetFilterDescriptor > SAL_CALL + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSheetFilterDescriptor2 > SAL_CALL createFilterDescriptorByObject( const ::com::sun::star::uno::Reference< - ::com::sun::star::sheet::XSheetFilterable >& xObject ) + ::com::sun::star::sheet::XSheetFilterable2 >& xObject ) throw(::com::sun::star::uno::RuntimeException); // XSheetFilterable - virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSheetFilterDescriptor > SAL_CALL + virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSheetFilterDescriptor2 > SAL_CALL createFilterDescriptor( sal_Bool bEmpty ) throw(::com::sun::star::uno::RuntimeException); virtual void SAL_CALL filter( const ::com::sun::star::uno::Reference< - ::com::sun::star::sheet::XSheetFilterDescriptor >& xDescriptor ) + ::com::sun::star::sheet::XSheetFilterDescriptor2 >& xDescriptor ) throw(::com::sun::star::uno::RuntimeException); // XSubTotalCalculatable diff -uPr sc.old/source/filter/xml/XMLExportDatabaseRanges.cxx sc.new/source/filter/xml/XMLExportDatabaseRanges.cxx --- sc.old/source/filter/xml/XMLExportDatabaseRanges.cxx 2008-03-11 13:31:36.000000000 +0800 +++ sc.new/source/filter/xml/XMLExportDatabaseRanges.cxx 2008-03-11 14:23:16.000000000 +0800 @@ -100,8 +100,8 @@ #ifndef _COM_SUN_STAR_SHEET_XDATABASERANGES_HPP_ #include #endif -#ifndef _COM_SUN_STAR_SHEET_XDATABASERANGE_HPP_ -#include +#ifndef _COM_SUN_STAR_SHEET_XDATABASERANGE2_HPP_ +#include #endif #ifndef _COM_SUN_STAR_TABLE_TABLEORIENTATION_HPP_ #include @@ -151,7 +151,7 @@ for (sal_Int32 i = 0; i < nDatabaseRangesCount; ++i) { rtl::OUString sDatabaseRangeName(aRanges[i]); - uno::Reference xDatabaseRange(xDatabaseRanges->getByName(sDatabaseRangeName), uno::UNO_QUERY); + uno::Reference xDatabaseRange(xDatabaseRanges->getByName(sDatabaseRangeName), uno::UNO_QUERY); if (xDatabaseRange.is()) { uno::Reference xDatabaseRangePropertySet (xDatabaseRange, uno::UNO_QUERY); @@ -259,44 +259,56 @@ } } -rtl::OUString ScXMLExportDatabaseRanges::getOperatorXML(const sheet::FilterOperator aFilterOperator, const sal_Bool bUseRegularExpressions) const +rtl::OUString ScXMLExportDatabaseRanges::getOperatorXML(const long aFilterOperator, const sal_Bool bUseRegularExpressions) const { switch (aFilterOperator) { - case sheet::FilterOperator_EQUAL : + case sheet::FilterOperator2::EQUAL : { if (bUseRegularExpressions) return GetXMLToken(XML_MATCH); else return rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("=")); } - case sheet::FilterOperator_NOT_EQUAL : + case sheet::FilterOperator2::NOT_EQUAL : { if (bUseRegularExpressions) return GetXMLToken(XML_NOMATCH); else return rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("!=")); } - case sheet::FilterOperator_BOTTOM_PERCENT : + case sheet::FilterOperator2::BOTTOM_PERCENT : return GetXMLToken(XML_BOTTOM_PERCENT); - case sheet::FilterOperator_BOTTOM_VALUES : + case sheet::FilterOperator2::BOTTOM_VALUES : return GetXMLToken(XML_BOTTOM_VALUES); - case sheet::FilterOperator_EMPTY : + case sheet::FilterOperator2::EMPTY : return GetXMLToken(XML_EMPTY); - case sheet::FilterOperator_GREATER : + case sheet::FilterOperator2::GREATER : return rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(">")); - case sheet::FilterOperator_GREATER_EQUAL : + case sheet::FilterOperator2::GREATER_EQUAL : return rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(">=")); - case sheet::FilterOperator_LESS : + case sheet::FilterOperator2::LESS : return rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("<")); - case sheet::FilterOperator_LESS_EQUAL : + case sheet::FilterOperator2::LESS_EQUAL : return rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("<=")); - case sheet::FilterOperator_NOT_EMPTY : + case sheet::FilterOperator2::NOT_EMPTY : return GetXMLToken(XML_NOEMPTY); - case sheet::FilterOperator_TOP_PERCENT : + case sheet::FilterOperator2::TOP_PERCENT : return GetXMLToken(XML_TOP_PERCENT); - case sheet::FilterOperator_TOP_VALUES : + case sheet::FilterOperator2::TOP_VALUES : return GetXMLToken(XML_TOP_VALUES); + case sheet::FilterOperator2::CONTAINS : + return GetXMLToken(XML_CONTAINS); + case sheet::FilterOperator2::DOES_NOT_CONTAIN : + return GetXMLToken(XML_DOES_NOT_CONTAIN); + case sheet::FilterOperator2::BEGINS_WITH : + return GetXMLToken(XML_BEGINS_WITH); + case sheet::FilterOperator2::DOES_NOT_BEGIN_WITH : + return GetXMLToken(XML_DOES_NOT_BEGIN_WITH); + case sheet::FilterOperator2::ENDS_WITH : + return GetXMLToken(XML_ENDS_WITH); + case sheet::FilterOperator2::DOES_NOT_END_WITH : + return GetXMLToken(XML_DOES_NOT_END_WITH); default: { // added to avoid warnings @@ -305,7 +317,7 @@ return rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("=")); } -void ScXMLExportDatabaseRanges::WriteCondition(const sheet::TableFilterField& aFilterField, sal_Bool bIsCaseSensitive, sal_Bool bUseRegularExpressions) +void ScXMLExportDatabaseRanges::WriteCondition(const sheet::TableFilterField2& aFilterField, sal_Bool bIsCaseSensitive, sal_Bool bUseRegularExpressions) { rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_FIELD_NUMBER, rtl::OUString::valueOf(aFilterField.Field)); if (bIsCaseSensitive) @@ -323,9 +335,9 @@ SvXMLElementExport aElemC(rExport, XML_NAMESPACE_TABLE, XML_FILTER_CONDITION, sal_True, sal_True); } -void ScXMLExportDatabaseRanges::WriteFilterDescriptor(const uno::Reference & xSheetFilterDescriptor, const rtl::OUString sDatabaseRangeName) +void ScXMLExportDatabaseRanges::WriteFilterDescriptor(const uno::Reference & xSheetFilterDescriptor, const rtl::OUString sDatabaseRangeName) { - uno::Sequence aTableFilterFields(xSheetFilterDescriptor->getFilterFields()); + uno::Sequence aTableFilterFields(xSheetFilterDescriptor->getFilterFields2()); sal_Int32 nTableFilterFields = aTableFilterFields.getLength(); if (nTableFilterFields > 0) { @@ -392,7 +404,7 @@ else { SvXMLElementExport aElemC(rExport, XML_NAMESPACE_TABLE, XML_FILTER_OR, sal_True, sal_True); - sheet::TableFilterField aPrevFilterField = aTableFilterFields[0]; + sheet::TableFilterField2 aPrevFilterField = aTableFilterFields[0]; sheet::FilterConnection aConnection = aTableFilterFields[1].Connection; sal_Bool bOpenAndElement; rtl::OUString aName = rExport.GetNamespaceMap().GetQNameByKey(XML_NAMESPACE_TABLE, GetXMLToken(XML_FILTER_AND)); @@ -660,7 +672,7 @@ for (sal_Int32 i = 0; i < nDatabaseRangesCount; ++i) { rtl::OUString sDatabaseRangeName(aRanges[i]); - uno::Reference xDatabaseRange(xDatabaseRanges->getByName(sDatabaseRangeName), uno::UNO_QUERY); + uno::Reference xDatabaseRange(xDatabaseRanges->getByName(sDatabaseRangeName), uno::UNO_QUERY); if (xDatabaseRange.is()) { rtl::OUString sOUUnbenannt (ScGlobal::GetRscString(STR_DB_NONAME)); @@ -688,7 +700,7 @@ if (::cppu::any2bool(xPropertySetDatabaseRange->getPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(SC_UNONAME_STRIPDAT))))) rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_HAS_PERSISTENT_DATA, XML_FALSE); } - uno::Reference xSheetFilterDescriptor(xDatabaseRange->getFilterDescriptor()); + uno::Reference xSheetFilterDescriptor(xDatabaseRange->getFilterDescriptor2()); uno::Sequence aSortProperties(xDatabaseRange->getSortDescriptor()); if (xSheetFilterDescriptor.is()) { diff -uPr sc.old/source/filter/xml/XMLExportDatabaseRanges.hxx sc.new/source/filter/xml/XMLExportDatabaseRanges.hxx --- sc.old/source/filter/xml/XMLExportDatabaseRanges.hxx 2008-03-11 13:31:46.000000000 +0800 +++ sc.new/source/filter/xml/XMLExportDatabaseRanges.hxx 2008-03-11 14:11:48.000000000 +0800 @@ -42,14 +42,14 @@ #ifndef _COM_SUN_STAR_BEANS_PROPERTYVALUE_HPP_ #include #endif -#ifndef _COM_SUN_STAR_SHEET_FILTEROPERATOR_HPP_ -#include +#ifndef _COM_SUN_STAR_SHEET_FILTEROPERATOR2_HPP_ +#include #endif -#ifndef _COM_SUN_STAR_SHEET_TABLEFILTERFIELD_HPP_ -#include +#ifndef _COM_SUN_STAR_SHEET_TABLEFILTERFIELD2_HPP_ +#include #endif -#ifndef _COM_SUN_STAR_SHEET_XSHEETFILTERDESCRIPTOR_HPP_ -#include +#ifndef _COM_SUN_STAR_SHEET_XSHEETFILTERDESCRIPTOR2_HPP_ +#include #endif #ifndef _COM_SUN_STAR_SHEET_XSUBTOTALDESCRIPTOR_HPP_ #include @@ -68,9 +68,9 @@ ScDocument* pDoc; void WriteImportDescriptor(const com::sun::star::uno::Sequence aImportDescriptor); - rtl::OUString getOperatorXML(const com::sun::star::sheet::FilterOperator aFilterOperator, const sal_Bool bUseRegularExpressions) const; - void WriteCondition(const com::sun::star::sheet::TableFilterField& aFilterField, sal_Bool bIsCaseSensitive, sal_Bool bUseRegularExpressions); - void WriteFilterDescriptor(const com::sun::star::uno::Reference & xSheetFilterDescriptor, const rtl::OUString sDatabaseRangeName); + rtl::OUString getOperatorXML(const long aFilterOperator, const sal_Bool bUseRegularExpressions) const; + void WriteCondition(const com::sun::star::sheet::TableFilterField2& aFilterField, sal_Bool bIsCaseSensitive, sal_Bool bUseRegularExpressions); + void WriteFilterDescriptor(const com::sun::star::uno::Reference & xSheetFilterDescriptor, const rtl::OUString sDatabaseRangeName); void WriteSortDescriptor(const com::sun::star::uno::Sequence aSortProperties); void WriteSubTotalDescriptor(const com::sun::star::uno::Reference xSubTotalDescriptor, const rtl::OUString sDatabaseRangeName); public: diff -uPr sc.old/source/filter/xml/xmldrani.cxx sc.new/source/filter/xml/xmldrani.cxx --- sc.old/source/filter/xml/xmldrani.cxx 2008-03-11 13:30:14.000000000 +0800 +++ sc.new/source/filter/xml/xmldrani.cxx 2008-03-11 10:28:26.000000000 +0800 @@ -82,7 +82,7 @@ #endif #include #include -#include +#include #include #ifndef _COMPHELPER_EXTRACT_HXX_ #include @@ -343,7 +343,7 @@ } if (bInsert) { - uno::Reference xDatabaseRange(xDatabaseRanges->getByName(sDatabaseRangeName), uno::UNO_QUERY); + uno::Reference xDatabaseRange(xDatabaseRanges->getByName(sDatabaseRangeName), uno::UNO_QUERY); if (xDatabaseRange.is()) { uno::Reference xDatabaseRangePropertySet (xDatabaseRange, uno::UNO_QUERY); @@ -411,7 +411,7 @@ pDBData->SetSortParam(aSortParam); } - uno::Reference xSheetFilterDescriptor(xDatabaseRange->getFilterDescriptor()); + uno::Reference xSheetFilterDescriptor(xDatabaseRange->getFilterDescriptor2()); if (xSheetFilterDescriptor.is()) { uno::Reference xFilterPropertySet (xSheetFilterDescriptor, uno::UNO_QUERY); @@ -426,7 +426,7 @@ xFilterPropertySet->setPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(SC_UNONAME_USEREGEX)), uno::makeAny(bFilterUseRegularExpressions)); xFilterPropertySet->setPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(SC_UNONAME_OUTPOS)), uno::makeAny(aFilterOutputPosition)); } - xSheetFilterDescriptor->setFilterFields(aFilterFields); + xSheetFilterDescriptor->setFilterFields2(aFilterFields); if (bFilterConditionSourceRange) { ScRange aAdvSource; diff -uPr sc.old/source/filter/xml/xmldrani.hxx sc.new/source/filter/xml/xmldrani.hxx --- sc.old/source/filter/xml/xmldrani.hxx 2008-03-11 13:30:32.000000000 +0800 +++ sc.new/source/filter/xml/xmldrani.hxx 2008-03-11 13:49:18.000000000 +0800 @@ -53,8 +53,8 @@ #ifndef _COM_SUN_STAR_BEANS_PROPERTYVALUE_HPP_ #include #endif -#ifndef _COM_SUN_STAR_SHEET_TABLEFILTERFIELD_HPP_ -#include +#ifndef _COM_SUN_STAR_SHEET_TABLEFILTERFIELD2_HPP_ +#include #endif #ifndef _COM_SUN_STAR_TABLE_CELLADDRESS_HPP_ #include @@ -104,7 +104,7 @@ rtl::OUString sDatabaseName; rtl::OUString sSourceObject; com::sun::star::uno::Sequence aSortSequence; - com::sun::star::uno::Sequence aFilterFields; + com::sun::star::uno::Sequence aFilterFields; std::vector < ScSubTotalRule > aSubTotalRules; com::sun::star::table::CellAddress aFilterOutputPosition; com::sun::star::table::CellRangeAddress aFilterConditionSourceRangeAddress; @@ -171,7 +171,7 @@ void SetFilterIsCaseSensitive(const sal_Bool bTemp) { bFilterIsCaseSensitive = bTemp; } void SetFilterSkipDuplicates(const sal_Bool bTemp) { bFilterSkipDuplicates = bTemp; } void SetFilterUseRegularExpressions(const sal_Bool bTemp) { bFilterUseRegularExpressions = bTemp; } - void SetFilterFields(const com::sun::star::uno::Sequence & aTemp) { aFilterFields = aTemp; } + void SetFilterFields(const com::sun::star::uno::Sequence & aTemp) { aFilterFields = aTemp; } void SetFilterOutputPosition(const com::sun::star::table::CellAddress& aTemp) { aFilterOutputPosition = aTemp; } void SetFilterConditionSourceRangeAddress(const com::sun::star::table::CellRangeAddress& aTemp) { aFilterConditionSourceRangeAddress = aTemp; bFilterConditionSourceRange = sal_True; } diff -uPr sc.old/source/ui/unoobj/cellsuno.cxx sc.new/source/ui/unoobj/cellsuno.cxx --- sc.old/source/ui/unoobj/cellsuno.cxx 2008-03-11 13:33:12.000000000 +0800 +++ sc.new/source/ui/unoobj/cellsuno.cxx 2008-03-11 15:22:40.000000000 +0800 @@ -4806,8 +4806,8 @@ SC_QUERYINTERFACE( sheet::XCellSeries ) SC_QUERYINTERFACE( table::XAutoFormattable ) SC_QUERYINTERFACE( util::XSortable ) - SC_QUERYINTERFACE( sheet::XSheetFilterableEx ) - SC_QUERYINTERFACE( sheet::XSheetFilterable ) + SC_QUERYINTERFACE( sheet::XSheetFilterableEx2 ) + SC_QUERYINTERFACE( sheet::XSheetFilterable2 ) SC_QUERYINTERFACE( sheet::XSubTotalCalculatable ) SC_QUERYINTERFACE( table::XColumnRowRange ) SC_QUERYINTERFACE( util::XImportable ) @@ -4848,7 +4848,7 @@ pPtr[nParentLen + 7] = getCppuType((const uno::Reference*)0); pPtr[nParentLen + 8] = getCppuType((const uno::Reference*)0); pPtr[nParentLen + 9] = getCppuType((const uno::Reference*)0); - pPtr[nParentLen +10] = getCppuType((const uno::Reference*)0); + pPtr[nParentLen +10] = getCppuType((const uno::Reference*)0); pPtr[nParentLen +11] = getCppuType((const uno::Reference*)0); pPtr[nParentLen +12] = getCppuType((const uno::Reference*)0); pPtr[nParentLen +13] = getCppuType((const uno::Reference*)0); @@ -5536,7 +5536,7 @@ // XFilterable -uno::Reference SAL_CALL ScCellRangeObj::createFilterDescriptor( +uno::Reference SAL_CALL ScCellRangeObj::createFilterDescriptor( sal_Bool bEmpty ) throw(uno::RuntimeException) { ScUnoGuard aGuard; @@ -5569,7 +5569,7 @@ return pNew; } -void SAL_CALL ScCellRangeObj::filter( const uno::Reference& xDescriptor ) +void SAL_CALL ScCellRangeObj::filter( const uno::Reference& xDescriptor ) throw(uno::RuntimeException) { ScUnoGuard aGuard; @@ -5581,7 +5581,7 @@ ScDocShell* pDocSh = GetDocShell(); ScFilterDescriptor aImpl(pDocSh); - aImpl.setFilterFields( xDescriptor->getFilterFields() ); + aImpl.setFilterFields2( xDescriptor->getFilterFields2() ); // Rest sind jetzt Properties... uno::Reference xPropSet( xDescriptor, uno::UNO_QUERY ); @@ -5633,8 +5633,8 @@ // XAdvancedFilterSource -uno::Reference SAL_CALL ScCellRangeObj::createFilterDescriptorByObject( - const uno::Reference& xObject ) +uno::Reference SAL_CALL ScCellRangeObj::createFilterDescriptorByObject( + const uno::Reference& xObject ) throw(uno::RuntimeException) { ScUnoGuard aGuard; diff -uPr sc.old/source/ui/vba/vbarange.cxx sc.new/source/ui/vba/vbarange.cxx --- sc.old/source/ui/vba/vbarange.cxx 2008-03-11 13:33:40.000000000 +0800 +++ sc.new/source/ui/vba/vbarange.cxx 2008-03-10 13:50:40.000000000 +0800 @@ -3321,9 +3321,9 @@ ) { Criteria1 >>= sCriteria1; - uno::Reference< sheet::XSheetFilterable > xFilt( mxRange, uno::UNO_QUERY_THROW ); - uno::Reference< sheet::XSheetFilterDescriptor > xDesc = xFilt->createFilterDescriptor( sal_True ); - uno::Sequence< sheet::TableFilterField > sTabFilts = xDesc->getFilterFields(); + uno::Reference< sheet::XSheetFilterable2 > xFilt( mxRange, uno::UNO_QUERY_THROW ); + uno::Reference< sheet::XSheetFilterDescriptor2 > xDesc = xFilt->createFilterDescriptor( sal_True ); + uno::Sequence< sheet::TableFilterField2 > sTabFilts = xDesc->getFilterFields2(); sTabFilts.realloc( 1 ); sTabFilts[0].IsNumeric = bCritHasNumericValue; OSL_TRACE("No filt fields is %d", sTabFilts.getLength() ); @@ -3382,7 +3382,7 @@ else sTabFilts[0].StringValue = sCriteria1; - xDesc->setFilterFields( sTabFilts ); + xDesc->setFilterFields2( sTabFilts ); uno::Reference< beans::XPropertySet > xProps( xDesc, uno::UNO_QUERY_THROW ); xProps->setPropertyValue( CONTS_HEADER, uno::makeAny( sal_True ) ); xFilt->filter( xDesc );