homescreenapp/stateplugins/hsapplibrarystateplugin/src/hsmenuview.cpp
author hgs
Wed, 06 Oct 2010 16:06:24 +0300
changeset 97 66b5fe3c07fd
parent 86 e4f038c420f7
child 98 e6f74eb7f69f
permissions -rw-r--r--
201039_01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
 * All rights reserved.
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
 *
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
 * Initial Contributors:
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
 *
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
 * Contributors:
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
 *
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
 * Description: Menu view.
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
 *
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
 */
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
#include <QActionGroup>
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
#include <HbAction>
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
#include <HbAbstractItemView>
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
#include <HbAbstractViewItem>
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
#include <HbGroupBox>
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
#include <HbListView>
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
#include <HbMainWindow>
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
    25
#include <HbInstance>
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
#include <HbSearchPanel>
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
#include <HbToolBar>
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
#include <HbView>
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
    29
#include <HbToolBarExtension>
63
hgs
parents: 62
diff changeset
    30
#include <HbShrinkingVkbHost>
97
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
    31
#include <HbScrollBar>
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
#include "hsallappsstate.h"
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
#include "hsallcollectionsstate.h"
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
#include "hscollectionstate.h"
69
hgs
parents: 63
diff changeset
    36
#include "hsmainwindow.h"
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    37
#include "hsmenuitemmodel.h"
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    38
#include "hsmenuview.h"
62
hgs
parents: 55
diff changeset
    39
#include "hslistviewitem.h"
69
hgs
parents: 63
diff changeset
    40
#include "hssearchview.h"
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    42
/*!
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
    \class HsMenuView
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    44
    \ingroup group_hsmenustateplugin
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
    \brief Menu View.
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
    Provides UI for Application Library states.
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    50
    \sa HsAppLibraryState
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    51
*/
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    52
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    53
/*!
81
hgs
parents: 71
diff changeset
    54
    \fn void activated(const QModelIndex &index);
hgs
parents: 71
diff changeset
    55
    \param index of activated item.
hgs
parents: 71
diff changeset
    56
    Emitted on tap event on the list view.
hgs
parents: 71
diff changeset
    57
*/
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    58
81
hgs
parents: 71
diff changeset
    59
/*!
hgs
parents: 71
diff changeset
    60
    \fn void longPressed(HbAbstractViewItem *item, const QPointF &coords);
hgs
parents: 71
diff changeset
    61
    \param item List element that was long-pressed.
hgs
parents: 71
diff changeset
    62
    \param coords Coordinates of the long-press.
hgs
parents: 71
diff changeset
    63
    Emitted on long-press event on the list view
hgs
parents: 71
diff changeset
    64
 */
hgs
parents: 71
diff changeset
    65
/*!
hgs
parents: 71
diff changeset
    66
    \fn void listViewChange();
hgs
parents: 71
diff changeset
    67
    Emitted on model count change for current model
hgs
parents: 71
diff changeset
    68
    \see void setModel(QAbstractItemModel *model)
hgs
parents: 71
diff changeset
    69
*/
hgs
parents: 71
diff changeset
    70
/*!
69
hgs
parents: 63
diff changeset
    71
 Retrieves UI objects for a requested context and sets up signals' connections.
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    72
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
    73
 \param builder Menu View builder.
69
hgs
parents: 63
diff changeset
    74
 \param stateContext Variable representing view context the view is to be prepared for.
hgs
parents: 63
diff changeset
    75
 \param mainWindow Object responsible for making a given view
hgs
parents: 63
diff changeset
    76
    a currently displayed view.
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    77
 */
69
hgs
parents: 63
diff changeset
    78
HsMenuView::HsMenuView(HsMenuViewBuilder &builder,
hgs
parents: 63
diff changeset
    79
                       HsStateContext stateContext,
hgs
parents: 63
diff changeset
    80
                       HsMainWindow &mainWindow):
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
    81
    mBuilder(builder),
69
hgs
parents: 63
diff changeset
    82
    mStateContext(stateContext),
hgs
parents: 63
diff changeset
    83
    mOperationalContext(HsItemViewContext),
hgs
parents: 63
diff changeset
    84
    mMainWindow(mainWindow),
hgs
parents: 63
diff changeset
    85
    mHsSearchView(new HsSearchView(mBuilder, mStateContext, mMainWindow))
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    86
{
69
hgs
parents: 63
diff changeset
    87
    synchronizeCache();
51
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 46
diff changeset
    88
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
    89
    connect(mListView,
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
    90
            SIGNAL(activated(QModelIndex)),
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
    91
            this, SIGNAL(activated(QModelIndex)));
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
    92
    connect(mListView,
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
    93
            SIGNAL(longPressed(HbAbstractViewItem *, QPointF)),
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
    94
            this, SIGNAL(longPressed(HbAbstractViewItem *, QPointF)));
71
hgs
parents: 69
diff changeset
    95
69
hgs
parents: 63
diff changeset
    96
    connect(mHsSearchView.data(), SIGNAL(activated(QModelIndex)),
hgs
parents: 63
diff changeset
    97
            this, SIGNAL(activated(QModelIndex)));
hgs
parents: 63
diff changeset
    98
    connect(mHsSearchView.data(),
hgs
parents: 63
diff changeset
    99
            SIGNAL(longPressed(HbAbstractViewItem *, QPointF)),
hgs
parents: 63
diff changeset
   100
                        this, SIGNAL(longPressed(HbAbstractViewItem *, QPointF)));
81
hgs
parents: 71
diff changeset
   101
    connect(mHsSearchView.data(), SIGNAL(searchComplete(QModelIndex)),
hgs
parents: 71
diff changeset
   102
            this, SLOT(handleSearchComplete(QModelIndex)));
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   103
}
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   104
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   105
/*!
69
hgs
parents: 63
diff changeset
   106
    Empty.
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   107
 */
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   108
HsMenuView::~HsMenuView()
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   109
{
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   110
}
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   111
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   112
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   113
/*!
69
hgs
parents: 63
diff changeset
   114
 Sets model for list item view if available in current context otherwise
hgs
parents: 63
diff changeset
   115
 ingores the request.
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   116
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   117
 \param model Model the view is to represent in HsItemViewMode.
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   118
 */
71
hgs
parents: 69
diff changeset
   119
void HsMenuView::setModel(QAbstractItemModel *model)
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   120
{
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   121
    HSMENUTEST_FUNC_ENTRY("HsMenuView::setModel");
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   122
69
hgs
parents: 63
diff changeset
   123
    if (mListView != NULL) {
hgs
parents: 63
diff changeset
   124
        if (mListView->model()) {
hgs
parents: 63
diff changeset
   125
            disconnect(mListView->model(),
hgs
parents: 63
diff changeset
   126
                       SIGNAL(scrollTo(int, QAbstractItemView::ScrollHint)),
hgs
parents: 63
diff changeset
   127
                       this,
hgs
parents: 63
diff changeset
   128
                       SLOT(scrollToRow(int, QAbstractItemView::ScrollHint)));
hgs
parents: 63
diff changeset
   129
            disconnect(mListView->model(), SIGNAL(countChange()),
hgs
parents: 63
diff changeset
   130
                       this,
81
hgs
parents: 71
diff changeset
   131
                       SIGNAL(listViewChange()));
69
hgs
parents: 63
diff changeset
   132
        }
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   133
71
hgs
parents: 69
diff changeset
   134
        mListView->setItemPixmapCacheEnabled(true); // TODO: remove when enabled from default
69
hgs
parents: 63
diff changeset
   135
        mListView->setModel(model, new HsListViewItem());
97
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   136
        mListView->verticalScrollBar()->setInteractive(true);
69
hgs
parents: 63
diff changeset
   137
        if (mListView->model()) {
hgs
parents: 63
diff changeset
   138
            connect(mListView->model(),
hgs
parents: 63
diff changeset
   139
                    SIGNAL(scrollTo(int, QAbstractItemView::ScrollHint)),
hgs
parents: 63
diff changeset
   140
                    this,
hgs
parents: 63
diff changeset
   141
                    SLOT(scrollToRow(int, QAbstractItemView::ScrollHint)));
hgs
parents: 63
diff changeset
   142
            connect(mListView->model(), SIGNAL(countChange()),
hgs
parents: 63
diff changeset
   143
                    this,
hgs
parents: 63
diff changeset
   144
                    SIGNAL(listViewChange()));
hgs
parents: 63
diff changeset
   145
        }
hgs
parents: 63
diff changeset
   146
    }
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   147
69
hgs
parents: 63
diff changeset
   148
    HSMENUTEST_FUNC_EXIT("HsMenuView::setModel");
55
03646e8da489 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 51
diff changeset
   149
}
03646e8da489 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 51
diff changeset
   150
71
hgs
parents: 69
diff changeset
   151
/*!
81
hgs
parents: 71
diff changeset
   152
 Returns model for list item view or null if list view is not available.
71
hgs
parents: 69
diff changeset
   153
 */
hgs
parents: 69
diff changeset
   154
QAbstractItemModel *HsMenuView::model() const
hgs
parents: 69
diff changeset
   155
{
81
hgs
parents: 71
diff changeset
   156
    if (mListView != NULL) {
hgs
parents: 71
diff changeset
   157
        return mListView->model();
hgs
parents: 71
diff changeset
   158
    } else {
hgs
parents: 71
diff changeset
   159
        return NULL;
hgs
parents: 71
diff changeset
   160
    }
71
hgs
parents: 69
diff changeset
   161
}
55
03646e8da489 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 51
diff changeset
   162
03646e8da489 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 51
diff changeset
   163
/*!
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   164
\return View widget of the menu view.
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   165
 */
51
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 46
diff changeset
   166
HbView *HsMenuView::view() const
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   167
{
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   168
    return mView;
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   169
}
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   170
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   171
/*!
71
hgs
parents: 69
diff changeset
   172
\return List view widget of the menu view
69
hgs
parents: 63
diff changeset
   173
 if available in the context or NULL otherwise.
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   174
 */
51
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 46
diff changeset
   175
HbListView *HsMenuView::listView() const
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   176
{
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   177
    return mListView;
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   178
}
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   179
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   180
/*!
69
hgs
parents: 63
diff changeset
   181
    Returns label appropriate for the view.
71
hgs
parents: 69
diff changeset
   182
    \return Pointer to the label
69
hgs
parents: 63
diff changeset
   183
    if available in the context or NULL otherwise.
55
03646e8da489 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 51
diff changeset
   184
 */
69
hgs
parents: 63
diff changeset
   185
HbGroupBox *HsMenuView::viewLabel() const
55
03646e8da489 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 51
diff changeset
   186
{
69
hgs
parents: 63
diff changeset
   187
    return mViewLabel;
hgs
parents: 63
diff changeset
   188
}
hgs
parents: 63
diff changeset
   189
hgs
parents: 63
diff changeset
   190
/*!
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   191
 Makes search panel visible.
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   192
 Equivalent to \a setSearchPanelVisible(true)
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   193
 */
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   194
void HsMenuView::showSearchPanel()
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   195
{
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   196
    HSMENUTEST_FUNC_ENTRY("HsMenuView::showSearchPanel");
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   197
69
hgs
parents: 63
diff changeset
   198
    mHsSearchView->setSearchPanelVisible(true);
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   199
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   200
    HSMENUTEST_FUNC_EXIT("HsMenuView::showSearchPanel");
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   201
}
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   202
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   203
/*!
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   204
 Makes search panel invisible.
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   205
 Equivalent to \a setSearchPanelVisible(false).
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   206
 */
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   207
void HsMenuView::hideSearchPanel()
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   208
{
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   209
    HSMENUTEST_FUNC_ENTRY("HsMenuView::hideSearchPanel");
69
hgs
parents: 63
diff changeset
   210
hgs
parents: 63
diff changeset
   211
    mHsSearchView->setSearchPanelVisible(false);
hgs
parents: 63
diff changeset
   212
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   213
    HSMENUTEST_FUNC_EXIT("HsMenuView::hideSearchPanel");
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   214
}
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   215
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   216
/*!
55
03646e8da489 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 51
diff changeset
   217
 Disable or enable search action button.
69
hgs
parents: 63
diff changeset
   218
 \param disable If true action gets disabled.
55
03646e8da489 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 51
diff changeset
   219
 */
03646e8da489 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 51
diff changeset
   220
void HsMenuView::disableSearch(bool disable)
03646e8da489 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 51
diff changeset
   221
{
03646e8da489 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 51
diff changeset
   222
    mBuilder.searchAction()->setDisabled(disable);
03646e8da489 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 51
diff changeset
   223
}
03646e8da489 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 51
diff changeset
   224
03646e8da489 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 51
diff changeset
   225
/*!
97
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   226
 Disable or enable ovi store action button.
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   227
 \param disable If true action gets disabled.
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   228
 */
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   229
void HsMenuView::disableOviStore(bool disable)
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   230
{
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   231
    if (mBuilder.oviStoreAction()) {
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   232
        mBuilder.oviStoreAction()->setDisabled(disable);
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   233
    }
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   234
    if (mBuilder.operatorAction()) {
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   235
        mBuilder.operatorAction()->setDisabled(disable);
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   236
    }
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   237
    if (mBuilder.toolBarExtensionAction()) {
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   238
        mBuilder.toolBarExtensionAction()->setDisabled(disable);
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   239
    }
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   240
}
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   241
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   242
/*!
69
hgs
parents: 63
diff changeset
   243
 Scrolls list item view to requested row.
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   244
 \param row The row which is to get at the position pointed by \a hint.
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   245
 \param hint Position in the view the row should be scrolled to.
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   246
  */
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   247
void HsMenuView::scrollToRow(int row, QAbstractItemView::ScrollHint hint)
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   248
{
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   249
    HSMENUTEST_FUNC_ENTRY("HsMenuView::scrollToRow");
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   250
69
hgs
parents: 63
diff changeset
   251
    if (mListView != NULL) {
hgs
parents: 63
diff changeset
   252
        mListView->scrollTo(
hgs
parents: 63
diff changeset
   253
            mListView->model()->index(row, 0), convertScrollHint(hint));
hgs
parents: 63
diff changeset
   254
    }
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   255
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   256
    HSMENUTEST_FUNC_EXIT("HsMenuView::scrollToRow");
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   257
}
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   258
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   259
/*!
36
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   260
     Converts scroll hints.
39
4e8ebe173323 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 36
diff changeset
   261
     \param Qt hint Where the target item should be positioned in
4e8ebe173323 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 36
diff changeset
   262
     visible area after scroll.
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   263
     \return Orbit version of hint
36
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   264
 */
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   265
HbAbstractItemView::ScrollHint HsMenuView::convertScrollHint(
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   266
    QAbstractItemView::ScrollHint hint)
36
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   267
{
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   268
    switch (hint) {
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   269
    case QAbstractItemView::EnsureVisible:
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   270
        return HbAbstractItemView::EnsureVisible;
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   271
    case QAbstractItemView::PositionAtTop:
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   272
        return HbAbstractItemView::PositionAtTop;
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   273
    case QAbstractItemView::PositionAtBottom:
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   274
        return HbAbstractItemView::PositionAtBottom;
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   275
    default:
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   276
        return HbAbstractItemView::PositionAtCenter;
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   277
    }
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   278
}
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   279
39
4e8ebe173323 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 36
diff changeset
   280
/*!
69
hgs
parents: 63
diff changeset
   281
 Add the view to main window and connect search action with \a showSearchPanel
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   282
 slot of the window.
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   283
 */
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   284
void HsMenuView::activate()
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   285
{
81
hgs
parents: 71
diff changeset
   286
    if (!mHsSearchView->isActive()) {
hgs
parents: 71
diff changeset
   287
        mMainWindow.setCurrentView(mView);
hgs
parents: 71
diff changeset
   288
        connect(mBuilder.searchAction(), SIGNAL(triggered()),
hgs
parents: 71
diff changeset
   289
                this, SLOT(showSearchPanel()), Qt::UniqueConnection);
hgs
parents: 71
diff changeset
   290
    }
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   291
}
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   292
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   293
/*!
69
hgs
parents: 63
diff changeset
   294
 Disconnects search action and disconnects \a showSearchPanel slot from the window.
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   295
 */
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   296
void HsMenuView::inactivate()
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   297
{
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   298
    // handle app key event
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   299
    mBuilder.toolBarExtension()->close();
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   300
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   301
    disconnect(mBuilder.searchAction(), SIGNAL(triggered()),
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   302
               this, SLOT(showSearchPanel()));
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   303
}
69
hgs
parents: 63
diff changeset
   304
hgs
parents: 63
diff changeset
   305
/*!
hgs
parents: 63
diff changeset
   306
  Makes a new view to be activated. Ensure navigation action and view label
hgs
parents: 63
diff changeset
   307
  heading are preserved after reset.
hgs
parents: 63
diff changeset
   308
  \param operationalContext Context indicating which view to activate.
hgs
parents: 63
diff changeset
   309
 */
hgs
parents: 63
diff changeset
   310
void HsMenuView::reset(HsOperationalContext operationalContext)
hgs
parents: 63
diff changeset
   311
{
hgs
parents: 63
diff changeset
   312
    QString viewLabelHeading;
hgs
parents: 63
diff changeset
   313
hgs
parents: 63
diff changeset
   314
    // before changing context read current view label heading ...
hgs
parents: 63
diff changeset
   315
    synchronizeCache();
hgs
parents: 63
diff changeset
   316
hgs
parents: 63
diff changeset
   317
    if (mBuilder.currentViewLabel() != 0) {
hgs
parents: 63
diff changeset
   318
        viewLabelHeading = mBuilder.currentViewLabel()->heading();
hgs
parents: 63
diff changeset
   319
    }
hgs
parents: 63
diff changeset
   320
    // ... and back-key action
hgs
parents: 63
diff changeset
   321
    HbAction *const backKeyAction(mView->navigationAction());
hgs
parents: 63
diff changeset
   322
hgs
parents: 63
diff changeset
   323
    // now we can switch the context
71
hgs
parents: 69
diff changeset
   324
    mOperationalContext = operationalContext;
hgs
parents: 69
diff changeset
   325
    synchronizeCache();
69
hgs
parents: 63
diff changeset
   326
71
hgs
parents: 69
diff changeset
   327
    if (mBuilder.currentViewLabel() != 0) {
hgs
parents: 69
diff changeset
   328
        mBuilder.currentViewLabel()->setHeading(viewLabelHeading);
69
hgs
parents: 63
diff changeset
   329
    }
71
hgs
parents: 69
diff changeset
   330
    mView->setNavigationAction(backKeyAction);
69
hgs
parents: 63
diff changeset
   331
}
hgs
parents: 63
diff changeset
   332
hgs
parents: 63
diff changeset
   333
/*!
hgs
parents: 63
diff changeset
   334
 Builder can be shared between many instances of HsMenuView
hgs
parents: 63
diff changeset
   335
 being in different contexts. Before using builder make sure
hgs
parents: 63
diff changeset
   336
 it is in context matching the current HsMenuView.
hgs
parents: 63
diff changeset
   337
 */
hgs
parents: 63
diff changeset
   338
71
hgs
parents: 69
diff changeset
   339
void HsMenuView::switchBuilderContext()
hgs
parents: 69
diff changeset
   340
{
69
hgs
parents: 63
diff changeset
   341
    mBuilder.setStateContext(mStateContext);
hgs
parents: 63
diff changeset
   342
    mBuilder.setOperationalContext(mOperationalContext);
hgs
parents: 63
diff changeset
   343
}
hgs
parents: 63
diff changeset
   344
hgs
parents: 63
diff changeset
   345
/*!
hgs
parents: 63
diff changeset
   346
 Updates internal data references to widgets.
hgs
parents: 63
diff changeset
   347
 */
hgs
parents: 63
diff changeset
   348
void HsMenuView::synchronizeCache()
hgs
parents: 63
diff changeset
   349
{
hgs
parents: 63
diff changeset
   350
    switchBuilderContext();
hgs
parents: 63
diff changeset
   351
hgs
parents: 63
diff changeset
   352
    mView = mBuilder.currentView();
hgs
parents: 63
diff changeset
   353
    mListView = mBuilder.currentListView();
hgs
parents: 63
diff changeset
   354
    mViewLabel = mBuilder.currentViewLabel();
hgs
parents: 63
diff changeset
   355
}
81
hgs
parents: 71
diff changeset
   356
hgs
parents: 71
diff changeset
   357
hgs
parents: 71
diff changeset
   358
/*!
hgs
parents: 71
diff changeset
   359
 Slot.
hgs
parents: 71
diff changeset
   360
 \param firstMatching Index of first item of search result.
hgs
parents: 71
diff changeset
   361
 If menu view is about to show it scrolls the list to \a firstMatching.
hgs
parents: 71
diff changeset
   362
 Makes view represented by the object main view of the application.
hgs
parents: 71
diff changeset
   363
 */
hgs
parents: 71
diff changeset
   364
void HsMenuView::handleSearchComplete(const QModelIndex& firstMatching)
hgs
parents: 71
diff changeset
   365
{
hgs
parents: 71
diff changeset
   366
    if (mListView != NULL) {
hgs
parents: 71
diff changeset
   367
        mListView->scrollTo(firstMatching, HbAbstractItemView::PositionAtTop);
hgs
parents: 71
diff changeset
   368
    }
hgs
parents: 71
diff changeset
   369
hgs
parents: 71
diff changeset
   370
    activate();
hgs
parents: 71
diff changeset
   371
}