homescreenapp/stateplugins/hsapplibrarystateplugin/inc/hsmenuview.h
changeset 69 87476091b3f5
parent 63 52b0f64eeb51
child 71 1db7cc813a4e
--- 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 <HbAbstractItemView>
 #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<HbShrinkingVkbHost> 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<HsSearchView> mHsSearchView;
 
     HS_STATES_TEST_FRIEND_CLASS(MenuStatesTest)
 };