homescreenapp/stateplugins/hsapplibrarystateplugin/inc/hsmenuview.h
changeset 46 23b5d6a29cce
parent 39 4e8ebe173323
child 51 4785f57bf3d4
equal deleted inserted replaced
39:4e8ebe173323 46:23b5d6a29cce
    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