diff -r 474929a40a0f -r 87476091b3f5 homescreenapp/stateplugins/hsapplibrarystateplugin/inc/hsmenuview.h --- a/homescreenapp/stateplugins/hsapplibrarystateplugin/inc/hsmenuview.h Wed Jul 14 15:53:30 2010 +0300 +++ b/homescreenapp/stateplugins/hsapplibrarystateplugin/inc/hsmenuview.h Fri Jul 23 13:47:57 2010 +0300 @@ -26,6 +26,7 @@ #include #include "hsmenustates_global.h" #include "hsmenuviewbuilder.h" +#include "hssearchview.h" #include "hsapp_defs.h" class QPointF; @@ -33,32 +34,29 @@ class HbView; class HbMainWindow; class HbAction; -class HbAbstractItemView; class HbListView; class HbGroupBox; class HbWidget; class HbShrinkingVkbHost; +class HsMainWindow; class HsMenuItemModel; +HS_STATES_TEST_CLASS(MenuStatesTest) -HS_STATES_TEST_CLASS(MenuStatesTest) class HsMenuView: public QObject { Q_OBJECT public: - HsMenuView(HsMenuViewBuilder &builder, HsViewContext viewContext); + HsMenuView(HsMenuViewBuilder &builder, HsStateContext stateContext, + HsMainWindow& mainWindow); ~HsMenuView(); - void setSearchPanelVisible(bool visible); - void setContext(HsViewContext viewContext, - HsOperationalContext context); - HbView *view() const; HbListView *listView() const; - HbPushButton *collectionButton() const; + HbPushButton *contentButton() const; void activate(); void inactivate(); @@ -67,63 +65,42 @@ void setModel(HsMenuItemModel *model); - + void reset(HsOperationalContext operationalContext); signals: void activated(const QModelIndex &index); void longPressed(HbAbstractViewItem *item, const QPointF &coords); - + void listViewChange(); public slots: - void activatedProxySlot(const QModelIndex &index); - void longPressedProxySlot(HbAbstractViewItem *item, - const QPointF &coords); - void showSearchPanel(); void hideSearchPanel(); void disableSearch(bool disable); - private slots: void scrollToRow(int row, QAbstractItemView::ScrollHint hint = QAbstractItemView::PositionAtTop); - void findItem(QString criteriaStr); - -private: - - QModelIndex firstVisibleItemIndex(const HbListView *view) const; - - void connectSearchPanelSignals(); - void disconnectSearchPanelSignals(); - void connectSearchItemViewsSignals(); - void disconnectSearchItemViewsSignals(); - - void searchFinished(); - void searchBegins(); - HbAbstractItemView::ScrollHint convertScrollHint( - QAbstractItemView::ScrollHint hint); private: - const HsViewContext mViewContext; - HsMenuViewBuilder &mBuilder; - - QModelIndex mSearchViewInitialIndex; - QModelIndex mIndexToScrollAfterSearchDone; - QModelIndex mSearchViewLongPressedIndex; - - QSortFilterProxyModel *mProxyModel; // owned + HbAbstractItemView::ScrollHint convertScrollHint( + QAbstractItemView::ScrollHint hint); - HbView *mView; - HbListView *mListView; - HbGroupBox *mViewLabel; + void switchBuilderContext(); + void synchronizeCache(); +private: + HsMenuViewBuilder &mBuilder; + const HsStateContext mStateContext; + HsOperationalContext mOperationalContext; + HsMainWindow &mMainWindow; - HbListView *mSearchListView; - HbSearchPanel *mSearchPanel; - QScopedPointer mVkbHost; + HbView *mView; // once this is constructed it is not NULL + HbListView *mListView; // may be NULL in some contexts + HbGroupBox *mViewLabel; // may be NULL in some contexts + HbPushButton *mAddContentButton; // may be NULL in some contexts - HbPushButton *mCollectionButton; + QScopedPointer mHsSearchView; HS_STATES_TEST_FRIEND_CLASS(MenuStatesTest) };