diff -r f00a6757af32 -r 5f0182e07bfb homescreenapp/stateplugins/hsapplibrarystateplugin/inc/hssearchview.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/homescreenapp/stateplugins/hsapplibrarystateplugin/inc/hssearchview.h Tue Aug 31 15:06:34 2010 +0300 @@ -0,0 +1,111 @@ +/* + * 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: Search view. + * + */ + +#ifndef HSSEARCHVIEW_H +#define HSSEARCHVIEW_H + +#include +#include +#include +#include + +#include "hsmenustates_global.h" +#include "hsmenuviewbuilder.h" +#include "hssearchviewbuilder.h" + +class QSortFilterProxyModel; +class HsMainWindow; +class HbAbstractViewItem; +class HbLineEdit; +class HbSearchPanel; + +HS_STATES_TEST_CLASS(MenuStatesTest) + +class HsSearchView : public QObject +{ + Q_OBJECT + + HS_STATES_TEST_FRIEND_CLASS(MenuStatesTest) + +public: + + HsSearchView( + HsMenuViewBuilder &builder, + HsStateContext stateContext, + HsMainWindow &mainWindow); + ~HsSearchView(); + + void setSearchPanelVisible(bool visible); + bool isActive() const; +private: + + QModelIndex firstVisibleItemIndex(const HbListView *view) const; + void searchBegins(); + + void connectSearchItemViewsSignals(); + void disconnectSearchItemViewsSignals(); + + void connectSearchPanelSignals(); + + void disconnectSearchPanelSignals(); + + void searchFinished(); + void sendEvent(const QEvent::Type eventType); + void openVkb(); + +signals: + void activated(const QModelIndex &index); + void longPressed(HbAbstractViewItem *item, const QPointF &coords); + void searchComplete(const QModelIndex &firstMatching); +public slots: + void hideSearchPanel(); + +private slots: + void activatedProxySlot(const QModelIndex &index); + void longPressedProxySlot( + HbAbstractViewItem *item, const QPointF &coords); + +private slots: + void findItem(QString criteriaStr); + void setNoResultsVisibility(); + void hideVkb(); + +private: + void setOriginatingContext(); + void initSearchPanel(HbSearchPanel &searchPanel); + HbLineEdit *searchPanelLineEdit(HbSearchPanel &searchPanel) const; + +private: + + QModelIndex mSearchViewInitialIndex; + QModelIndex mIndexToScrollAfterSearchDone; + QModelIndex mSearchViewLongPressedIndex; + QSortFilterProxyModel *mProxyModel; // owned + HbView *mSearchView; + HbListView *mSearchListView; + HbSearchPanel *mSearchPanel; + const HsStateContext mStateContext; + HsOperationalContext mAfterSearchContext; + HsMenuViewBuilder &mBuilder; + HsMainWindow &mMainWindow; + HbListView *mListView; + QScopedPointer mVkbHost; + HsSearchViewBuilder mSearchViewBuilder; + bool mEmptyResultText; +}; + +#endif /* HSSEARCHVIEW_H_ */