diff options
author | Kohei Yoshida <kohei.yoshida@suse.com> | 2011-11-04 01:03:27 -0400 |
---|---|---|
committer | Kohei Yoshida <kohei.yoshida@suse.com> | 2011-11-04 22:40:27 -0400 |
commit | 9dd9e4baccc4009be524f6ab3070e7458138d82d (patch) | |
tree | 42a0867b0d2339e0f0f9e205101880ef55fd13c4 /sc | |
parent | 5ec42cf012ac22c44fc9864726f7cc5671b72274 (diff) |
Remove direct access to the query string (pStr).
I'm about half-way through.
Diffstat (limited to 'sc')
-rw-r--r-- | sc/inc/queryparam.hxx | 3 | ||||
-rw-r--r-- | sc/source/core/data/dociter.cxx | 15 | ||||
-rw-r--r-- | sc/source/core/data/dpshttab.cxx | 6 | ||||
-rw-r--r-- | sc/source/core/data/dptablecache.cxx | 18 | ||||
-rw-r--r-- | sc/source/core/tool/doubleref.cxx | 4 | ||||
-rw-r--r-- | sc/source/core/tool/queryparam.cxx | 15 | ||||
-rw-r--r-- | sc/source/filter/excel/excimp8.cxx | 74 | ||||
-rw-r--r-- | sc/source/filter/inc/excimp8.hxx | 2 | ||||
-rw-r--r-- | sc/source/ui/unoobj/cellsuno.cxx | 6 | ||||
-rw-r--r-- | sc/source/ui/unoobj/datauno.cxx | 38 |
10 files changed, 100 insertions, 81 deletions
diff --git a/sc/inc/queryparam.hxx b/sc/inc/queryparam.hxx index 105a80180588..dd09aa36cffc 100644 --- a/sc/inc/queryparam.hxx +++ b/sc/inc/queryparam.hxx @@ -70,6 +70,9 @@ struct ScQueryEntry // creates pSearchParam and pSearchText if necessary, always RegExp! utl::TextSearch* GetSearchTextPtr( bool bCaseSens ) const; + bool MatchByString(const rtl::OUString& rStr) const; + SC_DLLPUBLIC void SetQueryString(const rtl::OUString& rStr); + SC_DLLPUBLIC rtl::OUString GetQueryString() const; void Clear(); ScQueryEntry& operator=( const ScQueryEntry& r ); bool operator==( const ScQueryEntry& r ) const; diff --git a/sc/source/core/data/dociter.cxx b/sc/source/core/data/dociter.cxx index 632abf8743d0..aba2ac594d06 100644 --- a/sc/source/core/data/dociter.cxx +++ b/sc/source/core/data/dociter.cxx @@ -532,7 +532,7 @@ ScDBQueryDataIterator::DataAccessInternal::DataAccessInternal(const ScDBQueryDat ScQueryEntry& rEntry = mpParam->GetEntry(i); sal_uInt32 nIndex = 0; rEntry.bQueryByString = - !(mpDoc->GetFormatTable()->IsNumberFormat(*rEntry.pStr, nIndex, rEntry.nVal)); + !(mpDoc->GetFormatTable()->IsNumberFormat(rEntry.GetQueryString(), nIndex, rEntry.nVal)); } nNumFormat = 0; // werden bei GetNumberFormat initialisiert pAttrArray = 0; @@ -814,14 +814,11 @@ bool ScDBQueryDataIterator::DataAccessMatrix::isValidQuery(SCROW nRow, const ScM // By string do { - if (!rEntry.pStr) - break; - // Equality check first. OUString aMatStr = rMat.GetString(nField, nRow); lcl_toUpper(aMatStr); - OUString aQueryStr = *rEntry.pStr; + OUString aQueryStr = rEntry.GetQueryString(); lcl_toUpper(aQueryStr); bool bDone = false; switch (rEntry.eOp) @@ -1108,8 +1105,8 @@ ScQueryCellIterator::ScQueryCellIterator(ScDocument* pDocument, SCTAB nTable, ScQueryEntry& rEntry = aParam.GetEntry(i); sal_uInt32 nIndex = 0; rEntry.bQueryByString = - !(pDoc->GetFormatTable()->IsNumberFormat(*rEntry.pStr, - nIndex, rEntry.nVal)); + !(pDoc->GetFormatTable()->IsNumberFormat( + rEntry.GetQueryString(), nIndex, rEntry.nVal)); } } nNumFormat = 0; // werden bei GetNumberFormat initialisiert @@ -1415,7 +1412,7 @@ ScBaseCell* ScQueryCellIterator::BinarySearch() sal_uLong nFormat = pCol->GetNumberFormat( pItems[nLo].nRow); ScCellFormat::GetInputString( pItems[nLo].pCell, nFormat, aCellStr, rFormatter); - sal_Int32 nTmp = pCollator->compareString( aCellStr, *rEntry.pStr); + sal_Int32 nTmp = pCollator->compareString(aCellStr, rEntry.GetQueryString()); if ((rEntry.eOp == SC_LESS_EQUAL && nTmp > 0) || (rEntry.eOp == SC_GREATER_EQUAL && nTmp < 0) || (rEntry.eOp == SC_EQUAL && nTmp != 0)) @@ -1547,7 +1544,7 @@ ScBaseCell* ScQueryCellIterator::BinarySearch() sal_uLong nFormat = pCol->GetNumberFormat( pItems[i].nRow); ScCellFormat::GetInputString( pItems[i].pCell, nFormat, aCellStr, rFormatter); - nRes = pCollator->compareString( aCellStr, *rEntry.pStr); + nRes = pCollator->compareString( aCellStr, rEntry.GetQueryString()); if (nRes < 0 && bLessEqual) { sal_Int32 nTmp = pCollator->compareString( aLastInRangeString, diff --git a/sc/source/core/data/dpshttab.cxx b/sc/source/core/data/dpshttab.cxx index b65bb472dd21..ebac3507e2c0 100644 --- a/sc/source/core/data/dpshttab.cxx +++ b/sc/source/core/data/dpshttab.cxx @@ -78,7 +78,7 @@ ScSheetDPData::ScSheetDPData(ScDocument* pD, const ScSheetSourceDesc& rDesc, con pSpecial[j] = false; if (!rEntry.bQueryByString) { - if (*rEntry.pStr == EMPTY_STRING && + if (rEntry.GetQueryString().isEmpty() && ((rEntry.nVal == SC_EMPTYFIELDS) || (rEntry.nVal == SC_NONEMPTYFIELDS))) pSpecial[j] = true; } @@ -86,8 +86,8 @@ ScSheetDPData::ScSheetDPData(ScDocument* pD, const ScSheetSourceDesc& rDesc, con { sal_uInt32 nIndex = 0; rEntry.bQueryByString = - !(pD->GetFormatTable()-> - IsNumberFormat(*rEntry.pStr, nIndex, rEntry.nVal)); + !(pD->GetFormatTable()->IsNumberFormat( + rEntry.GetQueryString(), nIndex, rEntry.nVal)); } } } diff --git a/sc/source/core/data/dptablecache.cxx b/sc/source/core/data/dptablecache.cxx index 463ceb65ef34..8f9852d457e3 100644 --- a/sc/source/core/data/dptablecache.cxx +++ b/sc/source/core/data/dptablecache.cxx @@ -681,9 +681,9 @@ bool ScDPCache::ValidQuery( SCROW nRow, const ScQueryParam &rParam, bool *pSpeci { if (bMatchWholeCell) { - bOk = pTransliteration->isEqual( aCellStr, *rEntry.pStr ); - String aStr = *rEntry.pStr; - sal_Bool bHasStar = false; + String aStr = rEntry.GetQueryString(); + bOk = pTransliteration->isEqual(aCellStr, aStr); + bool bHasStar = false; xub_StrLen nIndex; if (( nIndex = aStr.Search('*') ) != STRING_NOTFOUND) bHasStar = sal_True; @@ -706,12 +706,10 @@ bool ScDPCache::ValidQuery( SCROW nRow, const ScQueryParam &rParam, bool *pSpeci else { ::com::sun::star::uno::Sequence< sal_Int32 > xOff; - String aCell( pTransliteration->transliterate( - aCellStr, ScGlobal::eLnge, 0, aCellStr.Len(), - &xOff ) ); - String aQuer( pTransliteration->transliterate( - *rEntry.pStr, ScGlobal::eLnge, 0, rEntry.pStr->Len(), - &xOff ) ); + String aCell = pTransliteration->transliterate( + aCellStr, ScGlobal::eLnge, 0, aCellStr.Len(), &xOff); + String aQuer = pTransliteration->transliterate( + rEntry.GetQueryString(), ScGlobal::eLnge, 0, rEntry.GetQueryString().getLength(), &xOff); bOk = (aCell.Search( aQuer ) != STRING_NOTFOUND); } if (rEntry.eOp == SC_NOT_EQUAL) @@ -720,7 +718,7 @@ bool ScDPCache::ValidQuery( SCROW nRow, const ScQueryParam &rParam, bool *pSpeci else { // use collator here because data was probably sorted sal_Int32 nCompare = pCollator->compareString( - aCellStr, *rEntry.pStr ); + aCellStr, rEntry.GetQueryString()); switch (rEntry.eOp) { case SC_LESS : diff --git a/sc/source/core/tool/doubleref.cxx b/sc/source/core/tool/doubleref.cxx index 5724c79715e2..417e28eeea08 100644 --- a/sc/source/core/tool/doubleref.cxx +++ b/sc/source/core/tool/doubleref.cxx @@ -141,8 +141,8 @@ bool lcl_createStarQuery(ScQueryParamBase* pParam, const ScDBRangeBase* pDBRef, if (bValid) { // Finally, the right-hand-side value in the 4th column. - *rEntry.pStr = pQueryRef->getString(3, nRow); - rEntry.bDoQuery = sal_True; + rEntry.SetQueryString(pQueryRef->getString(3, nRow)); + rEntry.bDoQuery = true; } nIndex++; nRow++; diff --git a/sc/source/core/tool/queryparam.cxx b/sc/source/core/tool/queryparam.cxx index 78959267a936..ffa9b9439652 100644 --- a/sc/source/core/tool/queryparam.cxx +++ b/sc/source/core/tool/queryparam.cxx @@ -96,6 +96,21 @@ ScQueryEntry& ScQueryEntry::operator=( const ScQueryEntry& r ) return *this; } +bool ScQueryEntry::MatchByString(const rtl::OUString& rStr) const +{ + return rStr.equals(*pStr); +} + +void ScQueryEntry::SetQueryString(const rtl::OUString& rStr) +{ + *pStr = String(rStr); +} + +rtl::OUString ScQueryEntry::GetQueryString() const +{ + return *pStr; +} + void ScQueryEntry::Clear() { bDoQuery = false; diff --git a/sc/source/filter/excel/excimp8.cxx b/sc/source/filter/excel/excimp8.cxx index a00aa16317a0..94e74ef8dd25 100644 --- a/sc/source/filter/excel/excimp8.cxx +++ b/sc/source/filter/excel/excimp8.cxx @@ -499,11 +499,11 @@ XclImpAutoFilterData::XclImpAutoFilterData( RootData* pRoot, const ScRange& rRan } -void XclImpAutoFilterData::CreateFromDouble( String& rStr, double fVal ) +void XclImpAutoFilterData::CreateFromDouble( rtl::OUString& rStr, double fVal ) { - rStr += String( ::rtl::math::doubleToUString( fVal, + rStr += ::rtl::math::doubleToUString(fVal, rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max, - ScGlobal::pLocaleData->getNumDecimalSep().GetChar(0), sal_True)); + ScGlobal::pLocaleData->getNumDecimalSep().GetChar(0), true); } void XclImpAutoFilterData::SetCellAttribs() @@ -540,34 +540,34 @@ void XclImpAutoFilterData::InsertQueryParam() static void ExcelQueryToOooQuery( ScQueryEntry& rEntry ) { - if( ( rEntry.eOp != SC_EQUAL && rEntry.eOp != SC_NOT_EQUAL ) || rEntry.pStr == NULL ) + if (rEntry.eOp != SC_EQUAL && rEntry.eOp != SC_NOT_EQUAL) return; - else + + String aStr = rEntry.GetQueryString(); + xub_StrLen nLen = aStr.Len(); + sal_Unicode nStart = aStr.GetChar( 0 ); + sal_Unicode nEnd = aStr.GetChar( nLen-1 ); + if( nLen >2 && nStart == '*' && nEnd == '*' ) { - xub_StrLen nLen = rEntry.pStr->Len(); - sal_Unicode nStart = rEntry.pStr->GetChar( 0 ); - sal_Unicode nEnd = rEntry.pStr->GetChar( nLen-1 ); - if( nLen >2 && nStart == '*' && nEnd == '*' ) - { - rEntry.pStr->Erase( nLen-1, 1 ); - rEntry.pStr->Erase( 0, 1 ); - rEntry.eOp = ( rEntry.eOp == SC_EQUAL ) ? SC_CONTAINS : SC_DOES_NOT_CONTAIN; - } - else if( nLen > 1 && nStart == '*' && nEnd != '*' ) - { - rEntry.pStr->Erase( 0, 1 ); - rEntry.eOp = ( rEntry.eOp == SC_EQUAL ) ? SC_ENDS_WITH : SC_DOES_NOT_END_WITH; - } - else if( nLen > 1 && nStart != '*' && nEnd == '*' ) - { - rEntry.pStr->Erase( nLen-1, 1 ); - rEntry.eOp = ( rEntry.eOp == SC_EQUAL ) ? SC_BEGINS_WITH : SC_DOES_NOT_BEGIN_WITH; - } - else if( nLen == 2 && nStart == '*' && nEnd == '*' ) - { - rEntry.pStr->Erase( 0, 1 ); - } + aStr.Erase( nLen-1, 1 ); + aStr.Erase( 0, 1 ); + rEntry.eOp = ( rEntry.eOp == SC_EQUAL ) ? SC_CONTAINS : SC_DOES_NOT_CONTAIN; + } + else if( nLen > 1 && nStart == '*' && nEnd != '*' ) + { + aStr.Erase( 0, 1 ); + rEntry.eOp = ( rEntry.eOp == SC_EQUAL ) ? SC_ENDS_WITH : SC_DOES_NOT_END_WITH; + } + else if( nLen > 1 && nStart != '*' && nEnd == '*' ) + { + aStr.Erase( nLen-1, 1 ); + rEntry.eOp = ( rEntry.eOp == SC_EQUAL ) ? SC_BEGINS_WITH : SC_DOES_NOT_BEGIN_WITH; + } + else if( nLen == 2 && nStart == '*' && nEnd == '*' ) + { + aStr.Erase( 0, 1 ); } + rEntry.SetQueryString(aStr); } void XclImpAutoFilterData::ReadAutoFilter( XclImpStream& rStrm ) @@ -593,7 +593,7 @@ void XclImpAutoFilterData::ReadAutoFilter( XclImpStream& rStrm ) aEntry.eOp = bTopOfTop10 ? (bPercent ? SC_TOPPERC : SC_TOPVAL) : (bPercent ? SC_BOTPERC : SC_BOTVAL); aEntry.eConnect = SC_AND; - aEntry.pStr->Assign( String::CreateFromInt32( (sal_Int32) nCntOfTop10 ) ); + aEntry.SetQueryString(rtl::OUString::valueOf(static_cast<sal_Int32>(nCntOfTop10))); rStrm.Ignore( 20 ); nFirstEmpty++; @@ -642,27 +642,33 @@ void XclImpAutoFilterData::ReadAutoFilter( XclImpStream& rStrm ) aEntry.eOp = SC_EQUAL; } + rtl::OUString aStr; + switch( nType ) { case EXC_AFTYPE_RK: rStrm >> nRK; rStrm.Ignore( 4 ); - CreateFromDouble( *aEntry.pStr, XclTools::GetDoubleFromRK( nRK ) ); + aStr = aEntry.GetQueryString(); + CreateFromDouble(aStr, XclTools::GetDoubleFromRK(nRK)); + aEntry.SetQueryString(aStr); break; case EXC_AFTYPE_DOUBLE: rStrm >> fVal; - CreateFromDouble( *aEntry.pStr, fVal ); + aStr = aEntry.GetQueryString(); + CreateFromDouble(aStr, fVal); + aEntry.SetQueryString(aStr); break; case EXC_AFTYPE_STRING: rStrm.Ignore( 4 ); rStrm >> nStrLen[ nE ]; rStrm.Ignore( 3 ); - aEntry.pStr->Erase(); + aEntry.SetQueryString(rtl::OUString()); break; case EXC_AFTYPE_BOOLERR: rStrm >> nBoolErr >> nVal; rStrm.Ignore( 6 ); - aEntry.pStr->Assign( String::CreateFromInt32( (sal_Int32) nVal ) ); + aEntry.SetQueryString(rtl::OUString::valueOf(static_cast<sal_Int32>(nVal))); bIgnore = (sal_Bool) nBoolErr; break; case EXC_AFTYPE_EMPTY: @@ -704,7 +710,7 @@ void XclImpAutoFilterData::ReadAutoFilter( XclImpStream& rStrm ) for( nE = 0; nE < 2; nE++ ) if( nStrLen[ nE ] && pQueryEntries[ nE ] ) { - pQueryEntries[ nE ]->pStr->Assign ( rStrm.ReadUniString( nStrLen[ nE ] ) ); + pQueryEntries[nE]->SetQueryString(rStrm.ReadUniString(nStrLen[nE])); ExcelQueryToOooQuery( *pQueryEntries[ nE ] ); } diff --git a/sc/source/filter/inc/excimp8.hxx b/sc/source/filter/inc/excimp8.hxx index eb441f3f84c9..6a9b36f0a196 100644 --- a/sc/source/filter/inc/excimp8.hxx +++ b/sc/source/filter/inc/excimp8.hxx @@ -107,7 +107,7 @@ private: sal_Bool bAutoOrAdvanced; ScRange aCriteriaRange; - void CreateFromDouble( String& rStr, double fVal ); + void CreateFromDouble( rtl::OUString& rStr, double fVal ); void SetCellAttribs(); void InsertQueryParam(); void AmendAFName(const sal_Bool bUseUnNamed); diff --git a/sc/source/ui/unoobj/cellsuno.cxx b/sc/source/ui/unoobj/cellsuno.cxx index aa45cc0ec816..e6e1d3277495 100644 --- a/sc/source/ui/unoobj/cellsuno.cxx +++ b/sc/source/ui/unoobj/cellsuno.cxx @@ -5677,8 +5677,12 @@ void SAL_CALL ScCellRangeObj::filter( const uno::Reference<sheet::XSheetFilterDe rEntry.nField += nFieldStart; // Im Dialog wird immer der String angezeigt -> muss zum Wert passen if ( !rEntry.bQueryByString ) + { + rtl::OUString aStr; pDocSh->GetDocument()->GetFormatTable()-> - GetInputLineString( rEntry.nVal, 0, *rEntry.pStr ); + GetInputLineString(rEntry.nVal, 0, aStr); + rEntry.SetQueryString(aStr); + } } } diff --git a/sc/source/ui/unoobj/datauno.cxx b/sc/source/ui/unoobj/datauno.cxx index 62db49e4f3d8..9a6e4a02c95d 100644 --- a/sc/source/ui/unoobj/datauno.cxx +++ b/sc/source/ui/unoobj/datauno.cxx @@ -1072,19 +1072,19 @@ void ScFilterDescriptorBase::fillQueryParam( for (i=0; i<nCount; i++) { ScQueryEntry& rEntry = rParam.GetEntry(i); - if (!rEntry.pStr) - rEntry.pStr = new String; // sollte nicht sein (soll immer initialisiert sein) rEntry.bDoQuery = sal_True; rEntry.eConnect = (pAry[i].Connection == sheet::FilterConnection_AND) ? SC_AND : SC_OR; rEntry.nField = pAry[i].Field; rEntry.bQueryByString = !pAry[i].IsNumeric; - *rEntry.pStr = String( pAry[i].StringValue ); rEntry.nVal = pAry[i].NumericValue; + rEntry.SetQueryString(pAry[i].StringValue); if (!rEntry.bQueryByString && pDoc) { - pDoc->GetFormatTable()->GetInputLineString(rEntry.nVal, 0, *rEntry.pStr); + rtl::OUString aStr; + pDoc->GetFormatTable()->GetInputLineString(rEntry.nVal, 0, aStr); + rEntry.SetQueryString(aStr); } switch (pAry[i].Operator) // FilterOperator @@ -1110,7 +1110,7 @@ void ScFilterDescriptorBase::fillQueryParam( rEntry.eOp = SC_EQUAL; rEntry.nVal = SC_EMPTYFIELDS; rEntry.bQueryByString = false; - *rEntry.pStr = EMPTY_STRING; + rEntry.SetQueryString(rtl::OUString()); } break; case sheet::FilterOperator2::NOT_EMPTY: @@ -1118,7 +1118,7 @@ void ScFilterDescriptorBase::fillQueryParam( rEntry.eOp = SC_EQUAL; rEntry.nVal = SC_NONEMPTYFIELDS; rEntry.bQueryByString = false; - *rEntry.pStr = EMPTY_STRING; + rEntry.SetQueryString(rtl::OUString()); } break; default: @@ -1180,9 +1180,7 @@ uno::Sequence<sheet::TableFilterField> SAL_CALL ScFilterDescriptorBase::getFilte { const ScQueryEntry& rEntry = aParam.GetEntry(i); - rtl::OUString aStringValue; - if (rEntry.pStr) - aStringValue = *rEntry.pStr; + rtl::OUString aStringValue = rEntry.GetQueryString(); aField.Connection = (rEntry.eConnect == SC_AND) ? sheet::FilterConnection_AND : sheet::FilterConnection_OR; @@ -1196,7 +1194,7 @@ uno::Sequence<sheet::TableFilterField> SAL_CALL ScFilterDescriptorBase::getFilte case SC_EQUAL: { aField.Operator = sheet::FilterOperator_EQUAL; - if (!rEntry.bQueryByString && *rEntry.pStr == EMPTY_STRING) + if (!rEntry.bQueryByString && rEntry.GetQueryString().isEmpty()) { if (rEntry.nVal == SC_EMPTYFIELDS) { @@ -1249,9 +1247,7 @@ throw(uno::RuntimeException) { const ScQueryEntry& rEntry = aParam.GetEntry(i); - rtl::OUString aStringValue; - if (rEntry.pStr) - aStringValue = *rEntry.pStr; + rtl::OUString aStringValue = rEntry.GetQueryString(); aField.Connection = (rEntry.eConnect == SC_AND) ? sheet::FilterConnection_AND : sheet::FilterConnection_OR; aField.Field = rEntry.nField; @@ -1264,7 +1260,7 @@ throw(uno::RuntimeException) case SC_EQUAL: { aField.Operator = sheet::FilterOperator2::EQUAL; - if (!rEntry.bQueryByString && *rEntry.pStr == EMPTY_STRING) + if (!rEntry.bQueryByString && rEntry.GetQueryString().isEmpty()) { if (rEntry.nVal == SC_EMPTYFIELDS) { @@ -1319,19 +1315,19 @@ void SAL_CALL ScFilterDescriptorBase::setFilterFields( for (i=0; i<nCount; i++) { ScQueryEntry& rEntry = aParam.GetEntry(i); - if (!rEntry.pStr) - rEntry.pStr = new String; // sollte nicht sein (soll immer initialisiert sein) - rEntry.bDoQuery = sal_True; + rEntry.bDoQuery = true; rEntry.eConnect = (pAry[i].Connection == sheet::FilterConnection_AND) ? SC_AND : SC_OR; rEntry.nField = pAry[i].Field; rEntry.bQueryByString = !pAry[i].IsNumeric; - *rEntry.pStr = String( pAry[i].StringValue ); rEntry.nVal = pAry[i].NumericValue; + rEntry.SetQueryString(pAry[i].StringValue); if (!rEntry.bQueryByString && pDocSh) { - pDocSh->GetDocument()->GetFormatTable()->GetInputLineString(rEntry.nVal, 0, *rEntry.pStr); + rtl::OUString aStr; + pDocSh->GetDocument()->GetFormatTable()->GetInputLineString(rEntry.nVal, 0, aStr); + rEntry.SetQueryString(aStr); } switch (pAry[i].Operator) // FilterOperator @@ -1351,7 +1347,7 @@ void SAL_CALL ScFilterDescriptorBase::setFilterFields( rEntry.eOp = SC_EQUAL; rEntry.nVal = SC_EMPTYFIELDS; rEntry.bQueryByString = false; - *rEntry.pStr = EMPTY_STRING; + rEntry.SetQueryString(rtl::OUString()); } break; case sheet::FilterOperator_NOT_EMPTY: @@ -1359,7 +1355,7 @@ void SAL_CALL ScFilterDescriptorBase::setFilterFields( rEntry.eOp = SC_EQUAL; rEntry.nVal = SC_NONEMPTYFIELDS; rEntry.bQueryByString = false; - *rEntry.pStr = EMPTY_STRING; + rEntry.SetQueryString(rtl::OUString()); } break; default: |