homescreenapp/stateplugins/hsapplibrarystateplugin/src/hsmenuview.cpp
author hgs
Wed, 20 Oct 2010 15:25:39 +0300
changeset 101 ba1b7e218624
parent 98 e6f74eb7f69f
permissions -rw-r--r--
201042
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>
98
hgs
parents: 97
diff changeset
    32
#include <HbFrameBackground>
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
#include "hsallappsstate.h"
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
#include "hsallcollectionsstate.h"
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
#include "hscollectionstate.h"
69
hgs
parents: 63
diff changeset
    37
#include "hsmainwindow.h"
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    38
#include "hsmenuitemmodel.h"
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    39
#include "hsmenuview.h"
62
hgs
parents: 55
diff changeset
    40
#include "hslistviewitem.h"
69
hgs
parents: 63
diff changeset
    41
#include "hssearchview.h"
35
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
/*!
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    44
    \class HsMenuView
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
    \ingroup group_hsmenustateplugin
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
    \brief Menu View.
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
    Provides UI for Application Library states.
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    50
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    51
    \sa HsAppLibraryState
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
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    54
/*!
81
hgs
parents: 71
diff changeset
    55
    \fn void activated(const QModelIndex &index);
hgs
parents: 71
diff changeset
    56
    \param index of activated item.
hgs
parents: 71
diff changeset
    57
    Emitted on tap event on the list view.
hgs
parents: 71
diff changeset
    58
*/
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    59
81
hgs
parents: 71
diff changeset
    60
/*!
hgs
parents: 71
diff changeset
    61
    \fn void longPressed(HbAbstractViewItem *item, const QPointF &coords);
hgs
parents: 71
diff changeset
    62
    \param item List element that was long-pressed.
hgs
parents: 71
diff changeset
    63
    \param coords Coordinates of the long-press.
hgs
parents: 71
diff changeset
    64
    Emitted on long-press event on the list view
hgs
parents: 71
diff changeset
    65
 */
hgs
parents: 71
diff changeset
    66
/*!
hgs
parents: 71
diff changeset
    67
    \fn void listViewChange();
hgs
parents: 71
diff changeset
    68
    Emitted on model count change for current model
hgs
parents: 71
diff changeset
    69
    \see void setModel(QAbstractItemModel *model)
hgs
parents: 71
diff changeset
    70
*/
hgs
parents: 71
diff changeset
    71
/*!
69
hgs
parents: 63
diff changeset
    72
 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
    73
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
    74
 \param builder Menu View builder.
69
hgs
parents: 63
diff changeset
    75
 \param stateContext Variable representing view context the view is to be prepared for.
hgs
parents: 63
diff changeset
    76
 \param mainWindow Object responsible for making a given view
hgs
parents: 63
diff changeset
    77
    a currently displayed view.
98
hgs
parents: 97
diff changeset
    78
 \param operationalContext representing operational context.
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    79
 */
69
hgs
parents: 63
diff changeset
    80
HsMenuView::HsMenuView(HsMenuViewBuilder &builder,
hgs
parents: 63
diff changeset
    81
                       HsStateContext stateContext,
98
hgs
parents: 97
diff changeset
    82
                       HsMainWindow &mainWindow,
hgs
parents: 97
diff changeset
    83
                       HsOperationalContext operationalContext):
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
    84
    mBuilder(builder),
69
hgs
parents: 63
diff changeset
    85
    mStateContext(stateContext),
98
hgs
parents: 97
diff changeset
    86
    mOperationalContext(operationalContext),
69
hgs
parents: 63
diff changeset
    87
    mMainWindow(mainWindow),
98
hgs
parents: 97
diff changeset
    88
    mHsSearchView(new HsSearchView(mBuilder, mStateContext,
hgs
parents: 97
diff changeset
    89
            mMainWindow, mOperationalContext))
hgs
parents: 97
diff changeset
    90
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    91
{
69
hgs
parents: 63
diff changeset
    92
    synchronizeCache();
51
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 46
diff changeset
    93
98
hgs
parents: 97
diff changeset
    94
    connect(mAbstractItemView,
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
    95
            SIGNAL(activated(QModelIndex)),
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
    96
            this, SIGNAL(activated(QModelIndex)));
98
hgs
parents: 97
diff changeset
    97
    connect(mAbstractItemView,
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
    98
            SIGNAL(longPressed(HbAbstractViewItem *, QPointF)),
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
    99
            this, SIGNAL(longPressed(HbAbstractViewItem *, QPointF)));
71
hgs
parents: 69
diff changeset
   100
69
hgs
parents: 63
diff changeset
   101
    connect(mHsSearchView.data(), SIGNAL(activated(QModelIndex)),
hgs
parents: 63
diff changeset
   102
            this, SIGNAL(activated(QModelIndex)));
hgs
parents: 63
diff changeset
   103
    connect(mHsSearchView.data(),
hgs
parents: 63
diff changeset
   104
            SIGNAL(longPressed(HbAbstractViewItem *, QPointF)),
hgs
parents: 63
diff changeset
   105
                        this, SIGNAL(longPressed(HbAbstractViewItem *, QPointF)));
81
hgs
parents: 71
diff changeset
   106
    connect(mHsSearchView.data(), SIGNAL(searchComplete(QModelIndex)),
hgs
parents: 71
diff changeset
   107
            this, SLOT(handleSearchComplete(QModelIndex)));
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   108
}
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
/*!
69
hgs
parents: 63
diff changeset
   111
    Empty.
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   112
 */
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   113
HsMenuView::~HsMenuView()
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   114
{
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   115
}
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
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   118
/*!
69
hgs
parents: 63
diff changeset
   119
 Sets model for list item view if available in current context otherwise
hgs
parents: 63
diff changeset
   120
 ingores the request.
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   121
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   122
 \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
   123
 */
71
hgs
parents: 69
diff changeset
   124
void HsMenuView::setModel(QAbstractItemModel *model)
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   125
{
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   126
    HSMENUTEST_FUNC_ENTRY("HsMenuView::setModel");
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   127
98
hgs
parents: 97
diff changeset
   128
    if (mAbstractItemView != NULL) {
hgs
parents: 97
diff changeset
   129
        if (mAbstractItemView->model()) {
hgs
parents: 97
diff changeset
   130
            disconnect(mAbstractItemView->model(),
69
hgs
parents: 63
diff changeset
   131
                       SIGNAL(scrollTo(int, QAbstractItemView::ScrollHint)),
hgs
parents: 63
diff changeset
   132
                       this,
hgs
parents: 63
diff changeset
   133
                       SLOT(scrollToRow(int, QAbstractItemView::ScrollHint)));
98
hgs
parents: 97
diff changeset
   134
            disconnect(mAbstractItemView->model(), SIGNAL(countChange()),
69
hgs
parents: 63
diff changeset
   135
                       this,
81
hgs
parents: 71
diff changeset
   136
                       SIGNAL(listViewChange()));
69
hgs
parents: 63
diff changeset
   137
        }
98
hgs
parents: 97
diff changeset
   138
        mAbstractItemView->setItemPixmapCacheEnabled(true);// TODO: remove when enabled from default
hgs
parents: 97
diff changeset
   139
        if (mOperationalContext == HsGridPortraitContext ||
hgs
parents: 97
diff changeset
   140
            mOperationalContext == HsGridLandscapeContext) {
hgs
parents: 97
diff changeset
   141
            HbFrameBackground frame;
hgs
parents: 97
diff changeset
   142
            frame.setFrameGraphicsName(QString(""));
hgs
parents: 97
diff changeset
   143
            mAbstractItemView->itemPrototypes()[0]->setDefaultFrame(frame);
hgs
parents: 97
diff changeset
   144
            mAbstractItemView->setModel(model);
hgs
parents: 97
diff changeset
   145
        } else {
hgs
parents: 97
diff changeset
   146
            mAbstractItemView->setModel(model, new HsListViewItem());
hgs
parents: 97
diff changeset
   147
        }
hgs
parents: 97
diff changeset
   148
        if(mOperationalContext == HsGridLandscapeContext)
hgs
parents: 97
diff changeset
   149
            {
hgs
parents: 97
diff changeset
   150
            mAbstractItemView->horizontalScrollBar()->setInteractive(true);
hgs
parents: 97
diff changeset
   151
            }
hgs
parents: 97
diff changeset
   152
        else
hgs
parents: 97
diff changeset
   153
            {
hgs
parents: 97
diff changeset
   154
            mAbstractItemView->verticalScrollBar()->setInteractive(true);
hgs
parents: 97
diff changeset
   155
            }
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   156
98
hgs
parents: 97
diff changeset
   157
        if (mAbstractItemView->model()) {
hgs
parents: 97
diff changeset
   158
            connect(mAbstractItemView->model(),
69
hgs
parents: 63
diff changeset
   159
                    SIGNAL(scrollTo(int, QAbstractItemView::ScrollHint)),
hgs
parents: 63
diff changeset
   160
                    this,
hgs
parents: 63
diff changeset
   161
                    SLOT(scrollToRow(int, QAbstractItemView::ScrollHint)));
98
hgs
parents: 97
diff changeset
   162
            connect(mAbstractItemView->model(), SIGNAL(countChange()),
69
hgs
parents: 63
diff changeset
   163
                    this,
hgs
parents: 63
diff changeset
   164
                    SIGNAL(listViewChange()));
hgs
parents: 63
diff changeset
   165
        }
hgs
parents: 63
diff changeset
   166
    }
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   167
69
hgs
parents: 63
diff changeset
   168
    HSMENUTEST_FUNC_EXIT("HsMenuView::setModel");
55
03646e8da489 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 51
diff changeset
   169
}
03646e8da489 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 51
diff changeset
   170
71
hgs
parents: 69
diff changeset
   171
/*!
81
hgs
parents: 71
diff changeset
   172
 Returns model for list item view or null if list view is not available.
71
hgs
parents: 69
diff changeset
   173
 */
hgs
parents: 69
diff changeset
   174
QAbstractItemModel *HsMenuView::model() const
hgs
parents: 69
diff changeset
   175
{
98
hgs
parents: 97
diff changeset
   176
    if (mAbstractItemView != NULL) {
hgs
parents: 97
diff changeset
   177
        return mAbstractItemView->model();
81
hgs
parents: 71
diff changeset
   178
    } else {
hgs
parents: 71
diff changeset
   179
        return NULL;
hgs
parents: 71
diff changeset
   180
    }
71
hgs
parents: 69
diff changeset
   181
}
55
03646e8da489 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 51
diff changeset
   182
03646e8da489 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 51
diff changeset
   183
/*!
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   184
\return View widget of the menu view.
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   185
 */
51
4785f57bf3d4 Revision: 201019
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 46
diff changeset
   186
HbView *HsMenuView::view() const
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   187
{
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   188
    return mView;
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   189
}
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   190
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   191
/*!
98
hgs
parents: 97
diff changeset
   192
\return item view widget of the menu view
69
hgs
parents: 63
diff changeset
   193
 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
   194
 */
98
hgs
parents: 97
diff changeset
   195
HbAbstractItemView *HsMenuView::itemView() const
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   196
{
98
hgs
parents: 97
diff changeset
   197
    return mAbstractItemView;
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   198
}
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   199
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   200
/*!
69
hgs
parents: 63
diff changeset
   201
    Returns label appropriate for the view.
71
hgs
parents: 69
diff changeset
   202
    \return Pointer to the label
69
hgs
parents: 63
diff changeset
   203
    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
   204
 */
69
hgs
parents: 63
diff changeset
   205
HbGroupBox *HsMenuView::viewLabel() const
55
03646e8da489 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 51
diff changeset
   206
{
69
hgs
parents: 63
diff changeset
   207
    return mViewLabel;
hgs
parents: 63
diff changeset
   208
}
hgs
parents: 63
diff changeset
   209
hgs
parents: 63
diff changeset
   210
/*!
98
hgs
parents: 97
diff changeset
   211
    Return current scroll position for the list from the view.
hgs
parents: 97
diff changeset
   212
    \return first visible row from model displayed in list
hgs
parents: 97
diff changeset
   213
 */
hgs
parents: 97
diff changeset
   214
QPersistentModelIndex HsMenuView::currentScrollPosition() const
hgs
parents: 97
diff changeset
   215
{
hgs
parents: 97
diff changeset
   216
    const QList<HbAbstractViewItem *> items = mAbstractItemView->visibleItems();
hgs
parents: 97
diff changeset
   217
    if (!items.empty()) {
hgs
parents: 97
diff changeset
   218
        return QPersistentModelIndex(items.at(0)->modelIndex());
hgs
parents: 97
diff changeset
   219
    }
hgs
parents: 97
diff changeset
   220
    return QModelIndex();
hgs
parents: 97
diff changeset
   221
}
hgs
parents: 97
diff changeset
   222
hgs
parents: 97
diff changeset
   223
/*!
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   224
 Makes search panel visible.
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   225
 Equivalent to \a setSearchPanelVisible(true)
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   226
 */
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   227
void HsMenuView::showSearchPanel()
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   228
{
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   229
    HSMENUTEST_FUNC_ENTRY("HsMenuView::showSearchPanel");
69
hgs
parents: 63
diff changeset
   230
    mHsSearchView->setSearchPanelVisible(true);
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   231
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   232
    HSMENUTEST_FUNC_EXIT("HsMenuView::showSearchPanel");
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   233
}
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   234
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   235
/*!
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   236
 Makes search panel invisible.
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   237
 Equivalent to \a setSearchPanelVisible(false).
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   238
 */
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   239
void HsMenuView::hideSearchPanel()
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   240
{
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   241
    HSMENUTEST_FUNC_ENTRY("HsMenuView::hideSearchPanel");
69
hgs
parents: 63
diff changeset
   242
    mHsSearchView->setSearchPanelVisible(false);
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   243
    HSMENUTEST_FUNC_EXIT("HsMenuView::hideSearchPanel");
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   244
}
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   245
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   246
/*!
55
03646e8da489 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 51
diff changeset
   247
 Disable or enable search action button.
69
hgs
parents: 63
diff changeset
   248
 \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
   249
 */
03646e8da489 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 51
diff changeset
   250
void HsMenuView::disableSearch(bool disable)
03646e8da489 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 51
diff changeset
   251
{
03646e8da489 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 51
diff changeset
   252
    mBuilder.searchAction()->setDisabled(disable);
03646e8da489 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 51
diff changeset
   253
}
03646e8da489 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 51
diff changeset
   254
03646e8da489 Revision: 201021
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 51
diff changeset
   255
/*!
97
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   256
 Disable or enable ovi store action button.
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   257
 \param disable If true action gets disabled.
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   258
 */
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   259
void HsMenuView::disableOviStore(bool disable)
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   260
{
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   261
    if (mBuilder.oviStoreAction()) {
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   262
        mBuilder.oviStoreAction()->setDisabled(disable);
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   263
    }
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   264
    if (mBuilder.operatorAction()) {
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   265
        mBuilder.operatorAction()->setDisabled(disable);
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   266
    }
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   267
    if (mBuilder.toolBarExtensionAction()) {
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   268
        mBuilder.toolBarExtensionAction()->setDisabled(disable);
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   269
    }
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   270
}
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   271
66b5fe3c07fd 201039_01
hgs
parents: 86
diff changeset
   272
/*!
69
hgs
parents: 63
diff changeset
   273
 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
   274
 \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
   275
 \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
   276
  */
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   277
void HsMenuView::scrollToRow(int row, QAbstractItemView::ScrollHint hint)
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   278
{
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   279
    HSMENUTEST_FUNC_ENTRY("HsMenuView::scrollToRow");
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   280
98
hgs
parents: 97
diff changeset
   281
    if (mAbstractItemView != NULL) {
hgs
parents: 97
diff changeset
   282
        mAbstractItemView->scrollTo(
hgs
parents: 97
diff changeset
   283
                mAbstractItemView->model()->index(row, 0), convertScrollHint(hint));
69
hgs
parents: 63
diff changeset
   284
    }
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   285
35
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   286
    HSMENUTEST_FUNC_EXIT("HsMenuView::scrollToRow");
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   287
}
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   288
f9ce957a272c Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   289
/*!
36
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   290
     Converts scroll hints.
39
4e8ebe173323 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 36
diff changeset
   291
     \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
   292
     visible area after scroll.
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   293
     \return Orbit version of hint
36
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   294
 */
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   295
HbAbstractItemView::ScrollHint HsMenuView::convertScrollHint(
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   296
    QAbstractItemView::ScrollHint hint)
36
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   297
{
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   298
    switch (hint) {
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   299
    case QAbstractItemView::EnsureVisible:
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   300
        return HbAbstractItemView::EnsureVisible;
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   301
    case QAbstractItemView::PositionAtTop:
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   302
        return HbAbstractItemView::PositionAtTop;
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   303
    case QAbstractItemView::PositionAtBottom:
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   304
        return HbAbstractItemView::PositionAtBottom;
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   305
    default:
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   306
        return HbAbstractItemView::PositionAtCenter;
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   307
    }
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   308
}
cdae8c6c3876 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 35
diff changeset
   309
39
4e8ebe173323 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 36
diff changeset
   310
/*!
69
hgs
parents: 63
diff changeset
   311
 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
   312
 slot of the window.
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   313
 */
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   314
void HsMenuView::activate()
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   315
{
81
hgs
parents: 71
diff changeset
   316
    if (!mHsSearchView->isActive()) {
hgs
parents: 71
diff changeset
   317
        mMainWindow.setCurrentView(mView);
hgs
parents: 71
diff changeset
   318
        connect(mBuilder.searchAction(), SIGNAL(triggered()),
hgs
parents: 71
diff changeset
   319
                this, SLOT(showSearchPanel()), Qt::UniqueConnection);
hgs
parents: 71
diff changeset
   320
    }
46
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   321
}
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   322
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   323
/*!
69
hgs
parents: 63
diff changeset
   324
 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
   325
 */
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   326
void HsMenuView::inactivate()
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   327
{
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   328
    // handle app key event
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   329
    mBuilder.toolBarExtension()->close();
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   330
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   331
    disconnect(mBuilder.searchAction(), SIGNAL(triggered()),
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   332
               this, SLOT(showSearchPanel()));
23b5d6a29cce Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 39
diff changeset
   333
}
69
hgs
parents: 63
diff changeset
   334
hgs
parents: 63
diff changeset
   335
/*!
hgs
parents: 63
diff changeset
   336
  Makes a new view to be activated. Ensure navigation action and view label
hgs
parents: 63
diff changeset
   337
  heading are preserved after reset.
hgs
parents: 63
diff changeset
   338
  \param operationalContext Context indicating which view to activate.
hgs
parents: 63
diff changeset
   339
 */
hgs
parents: 63
diff changeset
   340
void HsMenuView::reset(HsOperationalContext operationalContext)
hgs
parents: 63
diff changeset
   341
{
98
hgs
parents: 97
diff changeset
   342
    if (mAbstractItemView) {
hgs
parents: 97
diff changeset
   343
    disconnect(mAbstractItemView,
hgs
parents: 97
diff changeset
   344
            SIGNAL(activated(QModelIndex)),
hgs
parents: 97
diff changeset
   345
            this, SIGNAL(activated(QModelIndex)));
hgs
parents: 97
diff changeset
   346
    disconnect(mAbstractItemView,
hgs
parents: 97
diff changeset
   347
            SIGNAL(longPressed(HbAbstractViewItem *, QPointF)),
hgs
parents: 97
diff changeset
   348
            this, SIGNAL(longPressed(HbAbstractViewItem *, QPointF)));
hgs
parents: 97
diff changeset
   349
    }
hgs
parents: 97
diff changeset
   350
69
hgs
parents: 63
diff changeset
   351
    QString viewLabelHeading;
hgs
parents: 63
diff changeset
   352
hgs
parents: 63
diff changeset
   353
    // before changing context read current view label heading ...
hgs
parents: 63
diff changeset
   354
    synchronizeCache();
hgs
parents: 63
diff changeset
   355
hgs
parents: 63
diff changeset
   356
    if (mBuilder.currentViewLabel() != 0) {
hgs
parents: 63
diff changeset
   357
        viewLabelHeading = mBuilder.currentViewLabel()->heading();
hgs
parents: 63
diff changeset
   358
    }
hgs
parents: 63
diff changeset
   359
    // ... and back-key action
hgs
parents: 63
diff changeset
   360
    HbAction *const backKeyAction(mView->navigationAction());
hgs
parents: 63
diff changeset
   361
hgs
parents: 63
diff changeset
   362
    // now we can switch the context
71
hgs
parents: 69
diff changeset
   363
    mOperationalContext = operationalContext;
hgs
parents: 69
diff changeset
   364
    synchronizeCache();
69
hgs
parents: 63
diff changeset
   365
71
hgs
parents: 69
diff changeset
   366
    if (mBuilder.currentViewLabel() != 0) {
hgs
parents: 69
diff changeset
   367
        mBuilder.currentViewLabel()->setHeading(viewLabelHeading);
69
hgs
parents: 63
diff changeset
   368
    }
71
hgs
parents: 69
diff changeset
   369
    mView->setNavigationAction(backKeyAction);
98
hgs
parents: 97
diff changeset
   370
hgs
parents: 97
diff changeset
   371
    connect(mAbstractItemView,
hgs
parents: 97
diff changeset
   372
            SIGNAL(activated(QModelIndex)),
hgs
parents: 97
diff changeset
   373
            this, SIGNAL(activated(QModelIndex)));
hgs
parents: 97
diff changeset
   374
    connect(mAbstractItemView,
hgs
parents: 97
diff changeset
   375
            SIGNAL(longPressed(HbAbstractViewItem *, QPointF)),
hgs
parents: 97
diff changeset
   376
            this, SIGNAL(longPressed(HbAbstractViewItem *, QPointF)));
hgs
parents: 97
diff changeset
   377
hgs
parents: 97
diff changeset
   378
    mHsSearchView->setOperationalContext(operationalContext);
69
hgs
parents: 63
diff changeset
   379
}
hgs
parents: 63
diff changeset
   380
hgs
parents: 63
diff changeset
   381
/*!
hgs
parents: 63
diff changeset
   382
 Builder can be shared between many instances of HsMenuView
hgs
parents: 63
diff changeset
   383
 being in different contexts. Before using builder make sure
hgs
parents: 63
diff changeset
   384
 it is in context matching the current HsMenuView.
hgs
parents: 63
diff changeset
   385
 */
hgs
parents: 63
diff changeset
   386
71
hgs
parents: 69
diff changeset
   387
void HsMenuView::switchBuilderContext()
hgs
parents: 69
diff changeset
   388
{
69
hgs
parents: 63
diff changeset
   389
    mBuilder.setStateContext(mStateContext);
hgs
parents: 63
diff changeset
   390
    mBuilder.setOperationalContext(mOperationalContext);
hgs
parents: 63
diff changeset
   391
}
hgs
parents: 63
diff changeset
   392
hgs
parents: 63
diff changeset
   393
/*!
hgs
parents: 63
diff changeset
   394
 Updates internal data references to widgets.
hgs
parents: 63
diff changeset
   395
 */
hgs
parents: 63
diff changeset
   396
void HsMenuView::synchronizeCache()
hgs
parents: 63
diff changeset
   397
{
hgs
parents: 63
diff changeset
   398
    switchBuilderContext();
hgs
parents: 63
diff changeset
   399
hgs
parents: 63
diff changeset
   400
    mView = mBuilder.currentView();
98
hgs
parents: 97
diff changeset
   401
    mAbstractItemView = mBuilder.currentAbstractItemView();
69
hgs
parents: 63
diff changeset
   402
    mViewLabel = mBuilder.currentViewLabel();
hgs
parents: 63
diff changeset
   403
}
81
hgs
parents: 71
diff changeset
   404
hgs
parents: 71
diff changeset
   405
hgs
parents: 71
diff changeset
   406
/*!
hgs
parents: 71
diff changeset
   407
 Slot.
hgs
parents: 71
diff changeset
   408
 \param firstMatching Index of first item of search result.
hgs
parents: 71
diff changeset
   409
 If menu view is about to show it scrolls the list to \a firstMatching.
hgs
parents: 71
diff changeset
   410
 Makes view represented by the object main view of the application.
hgs
parents: 71
diff changeset
   411
 */
hgs
parents: 71
diff changeset
   412
void HsMenuView::handleSearchComplete(const QModelIndex& firstMatching)
hgs
parents: 71
diff changeset
   413
{
98
hgs
parents: 97
diff changeset
   414
    if (mAbstractItemView != NULL) {
hgs
parents: 97
diff changeset
   415
        mAbstractItemView->scrollTo(firstMatching,
hgs
parents: 97
diff changeset
   416
                HbAbstractItemView::PositionAtTop);
81
hgs
parents: 71
diff changeset
   417
    }
hgs
parents: 71
diff changeset
   418
    activate();
hgs
parents: 71
diff changeset
   419
}