diff -r a5fbfefd615f -r 6547bf8ca13a searcher/searchclient/src/ccpixsearcher.cpp --- a/searcher/searchclient/src/ccpixsearcher.cpp Fri Jun 11 14:43:47 2010 +0300 +++ b/searcher/searchclient/src/ccpixsearcher.cpp Mon Jun 28 10:34:53 2010 +0530 @@ -157,6 +157,26 @@ iSubSession.SetAnalyzer( aAnalyzer, iStatus ); SetActive(); } + + EXPORT_C void CCPixSearcher::SetQueryParserL( TQueryParser aQueryParser ) + { + if ( !iIsDatabaseOpen ) User::Leave(KErrNotReady); + if ( IsActive() ) User::Leave(KErrInUse); + + iSubSession.SetQueryParserL( aQueryParser ); + } + +EXPORT_C void CCPixSearcher::SetQueryParserL( MCPixSetQueryParserRequestObserver& aObserver, TQueryParser aQueryParser ) + { + if ( !iIsDatabaseOpen ) User::Leave(KErrNotReady); + if ( IsActive() ) User::Leave(KErrInUse); + + iObserver.iSetQueryParser = &aObserver; + iState = EStateSetQueryParser; + iSubSession.SetQueryParser( aQueryParser, iStatus ); + SetActive(); + } + // CCPixSearcher::FormQueryString() // Suport method for SearchL-methods @@ -288,6 +308,12 @@ } break; + case EStateSetQueryParser: + if ( observer.iSetQueryParser ) { + observer.iSetQueryParser->HandleSetQueryParserResultL( iStatus.Int() ); + } + break; + case EStateSearch: delete iQueryString; iQueryString = NULL; // cleanup