diff -r 000000000000 -r ccd0fd43f247 searchui/indevicehandler/src/indevicehandler.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/searchui/indevicehandler/src/indevicehandler.cpp Mon Apr 19 14:40:05 2010 +0300 @@ -0,0 +1,243 @@ +/* + * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: Implementation indevice handler + * + */ +#include "indevicehandler.h" +#include +#include + +// --------------------------------------------------------------------------- +// InDeviceHandler::InDeviceHandler() +// --------------------------------------------------------------------------- +// +InDeviceHandler::InDeviceHandler() : + mSearchInterface(0), mSearchResultCount(0) + { + } +// --------------------------------------------------------------------------- +// InDeviceHandler::getSearchResult(int aError, int estimatedResultCount) +// aError: error code +// estimatedResultCount: number of hits +// --------------------------------------------------------------------------- +// +void InDeviceHandler::getSearchResult(int aError, int estimatedResultCount) + { + qDebug() << aError << estimatedResultCount; + mSearchResultCount = estimatedResultCount; + emit handleAsyncSearchResult(aError, estimatedResultCount); + } +// --------------------------------------------------------------------------- +// InDeviceHandler::getDocumentAsync(int aError, QCPixDocument* aDocument) +// aError: error code +// aDocument: holding the result item +// --------------------------------------------------------------------------- +// +void InDeviceHandler::getDocumentAsync(int aError, QCPixDocument* aDocument) + { + emit handleDocument(aError, aDocument); + } +// --------------------------------------------------------------------------- +// InDeviceHandler::getDocumentAtIndex(int aIndex) +// aIndex: item index to be found +// --------------------------------------------------------------------------- +// +QCPixDocument* InDeviceHandler::getDocumentAtIndex(int aIndex) + { + QCPixDocument* doc = NULL; + if (mSearchInterface) + { + try + { + doc = mSearchInterface->getDocument(aIndex); + + } + catch (...) + { + delete doc; + return NULL; + } + } + return doc; + } +// --------------------------------------------------------------------------- +// InDeviceHandler:: search(QString aSearchString) +// aSearchString: string to be searched sync +// --------------------------------------------------------------------------- +// +void InDeviceHandler::search(QString aSearchString) + { + qDebug() << "InDeviceHandler::search Enter"; + if (aSearchString.length()) + { + int error = 0; + mSearchResultCount = 0; + if (mSearchInterface) + { + try + { + mSearchResultCount = mSearchInterface->search(aSearchString); + } + catch (...) + { + error = -1; + } + } + emit handleSearchResult(error, mSearchResultCount); + } + qDebug() << "InDeviceHandler::search Exit"; + } +// --------------------------------------------------------------------------- +// InDeviceHandler::~InDeviceHandler() +// --------------------------------------------------------------------------- +// +InDeviceHandler::~InDeviceHandler() + { + if (mSearchInterface) + { + delete mSearchInterface; + + } + } +// --------------------------------------------------------------------------- +// InDeviceHandler::getSearchResultCount() +// gets the number of hits +// --------------------------------------------------------------------------- +// +int InDeviceHandler::getSearchResultCount() + { + return mSearchResultCount; + } +// --------------------------------------------------------------------------- +// InDeviceHandler::getDocumentAsyncAtIndex(int aIndex) +// aIndex : index of item to be found async +// --------------------------------------------------------------------------- +// +void InDeviceHandler::getDocumentAsyncAtIndex(int aIndex) + { + if (mSearchInterface) + { + try + { + mSearchInterface->getDocumentAsync(aIndex); + } + catch (...) + { + // handle the exception + return; + } + } + + } +// --------------------------------------------------------------------------- +// InDeviceHandler::searchAsync(QString aSearchAsyncString, QString/* aDefaultSearchField*/) +// aSearchAsyncString: string to be searched +// async +// --------------------------------------------------------------------------- +// +void InDeviceHandler::searchAsync(QString aSearchAsyncString, QString/* aDefaultSearchField*/) + { + if (aSearchAsyncString.length()) + { + mSearchResultCount = 0; + if (mSearchInterface) + { + try + { + mSearchInterface->searchAsync(aSearchAsyncString); + } + catch (...) + { + // handle the exception + return; + } + } + } + } +// --------------------------------------------------------------------------- +// InDeviceHandler::cancelLastSearch() +// --------------------------------------------------------------------------- +// +void InDeviceHandler::cancelLastSearch() + { + if (mSearchInterface) + + { + try + { + mSearchInterface->cancelSearch(); + } + catch (...) + { + // handle the exception + return; + } + } + } +// --------------------------------------------------------------------------- +// InDeviceHandler::setCategory(QString astring) +// astring: setting categories to be searched +// --------------------------------------------------------------------------- +// +void InDeviceHandler::setCategory(QString astring) + { + if (mSearchInterface) + { + delete mSearchInterface; + mSearchInterface = NULL; + } + if (astring.length()) + { + QString database("root "); + database.append(astring); + mSearchInterface = QCPixSearcher::newInstance(database, + DEFAULT_SEARCH_FIELD); + try + { + mSearchInterface->connect(mSearchInterface, + SIGNAL(handleSearchResults(int,int)), this, + SLOT(getSearchResult(int,int))); + } + catch (...) + { + // handle the exception + } + + try + { + mSearchInterface->connect(mSearchInterface, + SIGNAL(handleDocument(int,QCPixDocument*)), this, + SLOT(getDocumentAsync(int,QCPixDocument*))); + } + catch (...) + { + // handle the exception + } + } + } +// --------------------------------------------------------------------------- +// InDeviceHandler::isPrepared() +// verify the mSearchInterface is prepared or not +// --------------------------------------------------------------------------- +// +bool InDeviceHandler::isPrepared() + { + if (mSearchInterface) + { + return true; + } + + return false; + + }