22 #include <QModelIndex> |
22 #include <QModelIndex> |
23 #include <QAbstractItemView> |
23 #include <QAbstractItemView> |
24 #include <QSortFilterProxyModel> |
24 #include <QSortFilterProxyModel> |
25 #include <HbAbstractItemView> |
25 #include <HbAbstractItemView> |
26 #include "hsmenustates_global.h" |
26 #include "hsmenustates_global.h" |
|
27 #include "hsmenuviewbuilder.h" |
27 #include "hsapp_defs.h" |
28 #include "hsapp_defs.h" |
28 #include "hsmenuviewbuilder.h" |
|
29 |
|
30 |
29 |
31 class QPointF; |
30 class QPointF; |
32 class QActionGroup; |
31 class QActionGroup; |
33 class HbView; |
32 class HbView; |
34 class HbMainWindow; |
33 class HbMainWindow; |
35 class HbAction; |
34 class HbAction; |
36 class HbAbstractItemView; |
35 class HbAbstractItemView; |
|
36 class HbListView; |
37 class HbGroupBox; |
37 class HbGroupBox; |
38 class HbWidget; |
38 class HbWidget; |
39 class HsMenuItemModel; |
39 class HsMenuItemModel; |
|
40 |
40 |
41 |
41 HS_STATES_TEST_CLASS(MenuStatesTest) |
42 HS_STATES_TEST_CLASS(MenuStatesTest) |
42 |
43 |
43 class HsMenuView: public QObject |
44 class HsMenuView: public QObject |
44 { |
45 { |
45 Q_OBJECT |
46 Q_OBJECT |
46 |
47 |
47 public: |
48 public: |
48 HsMenuView(); |
49 HsMenuView(HsMenuViewBuilder &builder, HsViewContext viewContext); |
49 ~HsMenuView(); |
50 ~HsMenuView(); |
50 |
51 |
51 void setModel(HsMenuItemModel *model); |
|
52 void setModelToView(QAbstractItemModel *model); |
|
53 |
|
54 void setLabel(const QString &label); |
|
55 void scrollTo(const QModelIndex &index, |
|
56 HbAbstractItemView::ScrollHint hint = |
|
57 HbAbstractItemView::EnsureVisible); |
|
58 |
|
59 void setLabelVisible(bool visible); |
|
60 void setSearchPanelVisible(bool visible); |
52 void setSearchPanelVisible(bool visible); |
61 |
53 |
62 HbView *view(); |
54 HbView *view(); |
63 QActionGroup *toolBarActionGroup(); |
|
64 HbAction *allAppsAction(); |
|
65 HbAction *allCollectionsAction(); |
|
66 HbAction *oviStoreAction(); |
|
67 |
55 |
68 QModelIndex firstVisibleItemIndex(); |
56 HbListView *listView(); |
69 |
57 |
70 HsMenuMode getHsMenuMode(); |
58 void activate(); |
|
59 void inactivate(); |
71 |
60 |
72 void setHsMenuMode(HsMenuMode menuMode); |
61 HbGroupBox *viewLabel(); |
73 void hideToolBar(); |
62 |
74 void showToolBar(); |
63 void setModel(HsMenuItemModel *model); |
|
64 |
|
65 |
75 signals: |
66 signals: |
76 void activated(const QModelIndex &index); |
67 void activated(const QModelIndex &index); |
77 void longPressed(HbAbstractViewItem *item, const QPointF &coords); |
68 void longPressed(HbAbstractViewItem *item, const QPointF &coords); |
78 |
69 |
79 public slots: |
70 public slots: |
92 QAbstractItemView::PositionAtTop); |
83 QAbstractItemView::PositionAtTop); |
93 void findItem(QString criteriaStr); |
84 void findItem(QString criteriaStr); |
94 |
85 |
95 |
86 |
96 private: |
87 private: |
|
88 |
|
89 void addViewToMainWindow(HbView *view); |
|
90 |
|
91 QModelIndex firstVisibleItemIndex(const HbListView *view) const; |
|
92 |
|
93 void connectSearchPanelSignals(); |
|
94 void disconnectSearchPanelSignals(); |
|
95 void connectSearchItemViewsSignals(); |
|
96 void disconnectSearchItemViewsSignals(); |
|
97 |
|
98 void searchFinished(); |
|
99 void searchBegins(); |
97 HbAbstractItemView::ScrollHint convertScrollHint( |
100 HbAbstractItemView::ScrollHint convertScrollHint( |
98 QAbstractItemView::ScrollHint hint); |
101 QAbstractItemView::ScrollHint hint); |
99 |
102 |
100 void connectItemViewsSignals(); |
|
101 void disconnectItemViewsSignals(); |
|
102 |
|
103 void connectSearchItemViewsSignals(); |
|
104 void disconnectSearchItemViewsSignals(); |
|
105 |
|
106 |
|
107 void connectModelSignals(); |
|
108 void disconnectModelSignals(); |
|
109 |
|
110 void connectSearchPanelSignals(); |
|
111 void disconnectSearchPanelSignals(); |
|
112 |
|
113 void searchFinished(); |
|
114 void searchBegins(); |
|
115 |
|
116 void setUpToolBar(); |
|
117 |
|
118 private: |
103 private: |
119 |
104 |
120 HsMenuViewBuilder mBuilder; |
105 const HsViewContext mViewContext; |
|
106 HsMenuViewBuilder &mBuilder; |
121 |
107 |
122 HsMenuItemModel *mModel; |
108 QModelIndex mSearchViewInitialIndex; |
123 |
109 QModelIndex mIndexToScrollAfterSearchDone; |
124 QModelIndex mFirstVisibleIndex; |
110 QModelIndex mSearchViewLongPressedIndex; |
125 QModelIndex mLastVisibleIndex; |
|
126 QModelIndex mSearchIndex; |
|
127 |
|
128 QActionGroup *mToolBarActionGroup; |
|
129 |
|
130 HsMenuMode mMenuMode; |
|
131 |
111 |
132 QSortFilterProxyModel *mProxyModel; // owned |
112 QSortFilterProxyModel *mProxyModel; // owned |
|
113 |
|
114 HbView *mView; |
|
115 HbListView *mListView; |
|
116 HbGroupBox *mViewLabel; |
|
117 |
|
118 HbListView *mSearchListView; |
|
119 HbSearchPanel *mSearchPanel; |
133 |
120 |
134 HS_STATES_TEST_FRIEND_CLASS(MenuStatesTest) |
121 HS_STATES_TEST_FRIEND_CLASS(MenuStatesTest) |
135 }; |
122 }; |
136 |
123 |
137 |
124 |