homescreenapp/stateplugins/hsapplibrarystateplugin/src/hssearchview.cpp
author hgs
Fri, 06 Aug 2010 13:36:36 +0300
changeset 71 1db7cc813a4e
parent 69 87476091b3f5
child 81 7dd137878ff8
permissions -rw-r--r--
201031
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
69
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
 * All rights reserved.
hgs
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
 *
hgs
parents:
diff changeset
     9
 * Initial Contributors:
hgs
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
 *
hgs
parents:
diff changeset
    12
 * Contributors:
hgs
parents:
diff changeset
    13
 *
hgs
parents:
diff changeset
    14
 * Description: hssearchview.cpp
hgs
parents:
diff changeset
    15
 *
hgs
parents:
diff changeset
    16
 */
hgs
parents:
diff changeset
    17
71
hgs
parents: 69
diff changeset
    18
#include <QApplication>
hgs
parents: 69
diff changeset
    19
#include <QInputContext>
69
hgs
parents:
diff changeset
    20
#include <QSortFilterProxyModel>
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
#include <HbGroupBox>
hgs
parents:
diff changeset
    23
#include <HbLineEdit>
hgs
parents:
diff changeset
    24
#include <HbListView>
hgs
parents:
diff changeset
    25
#include <HbAbstractViewItem>
hgs
parents:
diff changeset
    26
#include <HbView>
hgs
parents:
diff changeset
    27
#include <HbSearchPanel>
hgs
parents:
diff changeset
    28
hgs
parents:
diff changeset
    29
#include <caitemmodel.h>
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
#include "hslistviewitem.h"
hgs
parents:
diff changeset
    32
#include "hsmainwindow.h"
hgs
parents:
diff changeset
    33
#include "hssearchview.h"
hgs
parents:
diff changeset
    34
hgs
parents:
diff changeset
    35
/*!
hgs
parents:
diff changeset
    36
  Set up proxy model for search.
hgs
parents:
diff changeset
    37
  \param builder Retrieves UI widgets.
hgs
parents:
diff changeset
    38
  \param stateContext Identifies the state where search starts from.
hgs
parents:
diff changeset
    39
  \param mainWindow Enables switching between originating and search view.
hgs
parents:
diff changeset
    40
 */
hgs
parents:
diff changeset
    41
HsSearchView::HsSearchView(HsMenuViewBuilder &builder,
hgs
parents:
diff changeset
    42
        HsStateContext stateContext, HsMainWindow &mainWindow) :
71
hgs
parents: 69
diff changeset
    43
    mProxyModel(new QSortFilterProxyModel(this)), mSearchView(NULL),
69
hgs
parents:
diff changeset
    44
    mSearchListView(NULL), mSearchPanel(NULL), mStateContext(stateContext),
hgs
parents:
diff changeset
    45
    mBuilder(builder), mMainWindow(mainWindow), mListView(NULL),
71
hgs
parents: 69
diff changeset
    46
    mVkbHost(NULL), mSearchViewBuilder(), mEmptyResultText(true)
69
hgs
parents:
diff changeset
    47
{
hgs
parents:
diff changeset
    48
    mProxyModel->setFilterRole(CaItemModel::TextRole);
hgs
parents:
diff changeset
    49
    mProxyModel->setFilterKeyColumn(1);
hgs
parents:
diff changeset
    50
    mProxyModel->setSortRole(CaItemModel::TextRole);
hgs
parents:
diff changeset
    51
}
hgs
parents:
diff changeset
    52
hgs
parents:
diff changeset
    53
/*!
hgs
parents:
diff changeset
    54
  Empty.
hgs
parents:
diff changeset
    55
 */
hgs
parents:
diff changeset
    56
HsSearchView::~HsSearchView()
hgs
parents:
diff changeset
    57
{
hgs
parents:
diff changeset
    58
}
hgs
parents:
diff changeset
    59
hgs
parents:
diff changeset
    60
/*!
hgs
parents:
diff changeset
    61
    Makes the UI to show or hide view search panel.
hgs
parents:
diff changeset
    62
    When search panel is shown the view toolbar and status pane
hgs
parents:
diff changeset
    63
    are hidden until search panel is hidden.
hgs
parents:
diff changeset
    64
    \param visible When true search panel will be shown,
hgs
parents:
diff changeset
    65
     otherwise it will be hidden.
hgs
parents:
diff changeset
    66
 */
hgs
parents:
diff changeset
    67
void HsSearchView::setSearchPanelVisible(bool visible)
hgs
parents:
diff changeset
    68
{
hgs
parents:
diff changeset
    69
    HSMENUTEST_FUNC_ENTRY("HsMenuView::setSearchPanelVisible");
hgs
parents:
diff changeset
    70
hgs
parents:
diff changeset
    71
    if (visible && !isActive()) {
hgs
parents:
diff changeset
    72
        searchBegins();
hgs
parents:
diff changeset
    73
        connectSearchItemViewsSignals();
hgs
parents:
diff changeset
    74
        connectSearchPanelSignals();
hgs
parents:
diff changeset
    75
    } else if (isActive()) {
hgs
parents:
diff changeset
    76
        disconnectSearchPanelSignals();
hgs
parents:
diff changeset
    77
        disconnectSearchItemViewsSignals();
hgs
parents:
diff changeset
    78
        searchFinished();
hgs
parents:
diff changeset
    79
    }
hgs
parents:
diff changeset
    80
    HSMENUTEST_FUNC_EXIT("HsMenuView::setSearchPanelVisible");
hgs
parents:
diff changeset
    81
}
hgs
parents:
diff changeset
    82
hgs
parents:
diff changeset
    83
/*!
hgs
parents:
diff changeset
    84
    \param view List view to operate on.
71
hgs
parents: 69
diff changeset
    85
    \return Index of F=first visible item of \a view if any
69
hgs
parents:
diff changeset
    86
    or default QModelIndex otherwise.
hgs
parents:
diff changeset
    87
 */
hgs
parents:
diff changeset
    88
QModelIndex HsSearchView::firstVisibleItemIndex(const HbListView *view) const
hgs
parents:
diff changeset
    89
{
71
hgs
parents: 69
diff changeset
    90
    const QList<HbAbstractViewItem *> array = view->visibleItems();
hgs
parents: 69
diff changeset
    91
    if (array.count()) {
hgs
parents: 69
diff changeset
    92
        return array[0]->modelIndex();
69
hgs
parents:
diff changeset
    93
    }
71
hgs
parents: 69
diff changeset
    94
    return QModelIndex();
69
hgs
parents:
diff changeset
    95
}
hgs
parents:
diff changeset
    96
hgs
parents:
diff changeset
    97
/*!
hgs
parents:
diff changeset
    98
 Displays search panel with view representing search results.
hgs
parents:
diff changeset
    99
 */
hgs
parents:
diff changeset
   100
void HsSearchView::searchBegins()
hgs
parents:
diff changeset
   101
{
hgs
parents:
diff changeset
   102
    HSMENUTEST_FUNC_ENTRY("HsSearchView::searchBegins");
hgs
parents:
diff changeset
   103
hgs
parents:
diff changeset
   104
    setOriginatingContext();
hgs
parents:
diff changeset
   105
hgs
parents:
diff changeset
   106
    mListView = mBuilder.currentListView();
hgs
parents:
diff changeset
   107
    mSearchViewInitialIndex = firstVisibleItemIndex(mListView);
hgs
parents:
diff changeset
   108
hgs
parents:
diff changeset
   109
    mProxyModel->invalidate();
hgs
parents:
diff changeset
   110
    mProxyModel->setSourceModel(mListView->model());
hgs
parents:
diff changeset
   111
    mProxyModel->setFilterRegExp(
hgs
parents:
diff changeset
   112
            QRegExp(QString(".*"), Qt::CaseInsensitive, QRegExp::RegExp));
hgs
parents:
diff changeset
   113
71
hgs
parents: 69
diff changeset
   114
    mSearchView = mSearchViewBuilder.searchView();
hgs
parents: 69
diff changeset
   115
    mSearchListView = mSearchViewBuilder.searchListView();
hgs
parents: 69
diff changeset
   116
    mSearchPanel = mSearchViewBuilder.searchPanel();
69
hgs
parents:
diff changeset
   117
    initSearchPanel(*mSearchPanel);
hgs
parents:
diff changeset
   118
    mVkbHost.reset(new HbShrinkingVkbHost(mSearchView));
hgs
parents:
diff changeset
   119
71
hgs
parents: 69
diff changeset
   120
    if (mBuilder.currentViewLabel()) {
hgs
parents: 69
diff changeset
   121
        mSearchViewBuilder.searchViewLabel()->setHeading(
hgs
parents: 69
diff changeset
   122
                mBuilder.currentViewLabel()->heading());
hgs
parents: 69
diff changeset
   123
        mSearchViewBuilder.setSearchLabledContext();
69
hgs
parents:
diff changeset
   124
    }
hgs
parents:
diff changeset
   125
hgs
parents:
diff changeset
   126
    mSearchView->hideItems(Hb::AllItems);
71
hgs
parents: 69
diff changeset
   127
    mSearchListView->setModel(mProxyModel, new HsListViewItem());
69
hgs
parents:
diff changeset
   128
hgs
parents:
diff changeset
   129
    mMainWindow.setCurrentView(mSearchView);
hgs
parents:
diff changeset
   130
hgs
parents:
diff changeset
   131
    mSearchListView->scrollTo(
hgs
parents:
diff changeset
   132
        mProxyModel->mapFromSource(mSearchViewInitialIndex),
hgs
parents:
diff changeset
   133
        HbAbstractItemView::PositionAtTop);
71
hgs
parents: 69
diff changeset
   134
hgs
parents: 69
diff changeset
   135
    setNoResultsVisibility();
69
hgs
parents:
diff changeset
   136
    HSMENUTEST_FUNC_EXIT("HsSearchView::searchBegins");
hgs
parents:
diff changeset
   137
}
hgs
parents:
diff changeset
   138
71
hgs
parents: 69
diff changeset
   139
/*!
hgs
parents: 69
diff changeset
   140
 Handles button visibility.
hgs
parents: 69
diff changeset
   141
 \param visibility indicates whether show or not to show 'empty' label.
hgs
parents: 69
diff changeset
   142
 */
hgs
parents: 69
diff changeset
   143
void HsSearchView::setNoResultsVisibility()
hgs
parents: 69
diff changeset
   144
{
hgs
parents: 69
diff changeset
   145
    if (mProxyModel->rowCount() && mEmptyResultText) {
hgs
parents: 69
diff changeset
   146
        mSearchViewBuilder.loadViewListSection();
hgs
parents: 69
diff changeset
   147
        mEmptyResultText = false;
hgs
parents: 69
diff changeset
   148
    } else if (!mProxyModel->rowCount() && !mEmptyResultText) {
hgs
parents: 69
diff changeset
   149
        mSearchViewBuilder.loadViewEmptySection();
hgs
parents: 69
diff changeset
   150
        mEmptyResultText = true;
hgs
parents: 69
diff changeset
   151
    }
hgs
parents: 69
diff changeset
   152
}
69
hgs
parents:
diff changeset
   153
hgs
parents:
diff changeset
   154
/*
hgs
parents:
diff changeset
   155
 Connects \a activated and \a longPressed signals coming from search list
hgs
parents:
diff changeset
   156
 view to emit corresponding signal of this object with translated model index.
hgs
parents:
diff changeset
   157
*/
hgs
parents:
diff changeset
   158
void HsSearchView::connectSearchItemViewsSignals()
hgs
parents:
diff changeset
   159
{
hgs
parents:
diff changeset
   160
    connect(mSearchListView, SIGNAL(activated(QModelIndex)),
hgs
parents:
diff changeset
   161
            this, SLOT(activatedProxySlot(QModelIndex)));
hgs
parents:
diff changeset
   162
    connect(mSearchListView, SIGNAL(longPressed(HbAbstractViewItem *, QPointF)),
hgs
parents:
diff changeset
   163
            this, SLOT(longPressedProxySlot(HbAbstractViewItem *, QPointF)));
hgs
parents:
diff changeset
   164
}
hgs
parents:
diff changeset
   165
hgs
parents:
diff changeset
   166
/*!
hgs
parents:
diff changeset
   167
 Disconnects \a activated and \a longPressed signals coming from list
hgs
parents:
diff changeset
   168
 view from to emit corresponding signal
hgs
parents:
diff changeset
   169
 of this object with translated model index.
hgs
parents:
diff changeset
   170
*/
hgs
parents:
diff changeset
   171
void HsSearchView::disconnectSearchItemViewsSignals()
hgs
parents:
diff changeset
   172
{
hgs
parents:
diff changeset
   173
    disconnect(mSearchListView, SIGNAL(activated(QModelIndex)),
hgs
parents:
diff changeset
   174
            this, SLOT(activatedProxySlot(QModelIndex)));
hgs
parents:
diff changeset
   175
    disconnect(mSearchListView,
hgs
parents:
diff changeset
   176
            SIGNAL(longPressed(HbAbstractViewItem *, QPointF)),
hgs
parents:
diff changeset
   177
            this, SLOT(longPressedProxySlot(HbAbstractViewItem *, QPointF)));
hgs
parents:
diff changeset
   178
}
hgs
parents:
diff changeset
   179
hgs
parents:
diff changeset
   180
hgs
parents:
diff changeset
   181
/*!
hgs
parents:
diff changeset
   182
 Makes search panel invisible.
hgs
parents:
diff changeset
   183
 Equivalent to \a setSearchPanelVisible(false).
hgs
parents:
diff changeset
   184
 */
hgs
parents:
diff changeset
   185
void HsSearchView::hideSearchPanel()
hgs
parents:
diff changeset
   186
{
hgs
parents:
diff changeset
   187
    HSMENUTEST_FUNC_ENTRY("HsMenuView::hideSearchPanel");
hgs
parents:
diff changeset
   188
    setSearchPanelVisible(false);
hgs
parents:
diff changeset
   189
    HSMENUTEST_FUNC_EXIT("HsMenuView::hideSearchPanel");
hgs
parents:
diff changeset
   190
}
hgs
parents:
diff changeset
   191
hgs
parents:
diff changeset
   192
/*!
hgs
parents:
diff changeset
   193
 Connects signals \a exitClicked and \a criteriaChanged emitted
hgs
parents:
diff changeset
   194
 by search panel with handling slots of the object or its members.
hgs
parents:
diff changeset
   195
*/
hgs
parents:
diff changeset
   196
void HsSearchView::connectSearchPanelSignals()
hgs
parents:
diff changeset
   197
{
71
hgs
parents: 69
diff changeset
   198
    connect(mProxyModel, SIGNAL(rowsInserted(QModelIndex, int, int)),
hgs
parents: 69
diff changeset
   199
            this, SLOT(setNoResultsVisibility()));
hgs
parents: 69
diff changeset
   200
    connect(mProxyModel, SIGNAL(rowsRemoved(QModelIndex, int, int)),
hgs
parents: 69
diff changeset
   201
            this, SLOT(setNoResultsVisibility()));
69
hgs
parents:
diff changeset
   202
    connect(mSearchPanel, SIGNAL(exitClicked()),
hgs
parents:
diff changeset
   203
            this, SLOT(hideSearchPanel()));
hgs
parents:
diff changeset
   204
    connect(mSearchPanel, SIGNAL(criteriaChanged(QString)),
hgs
parents:
diff changeset
   205
            this, SLOT(findItem(QString)));
hgs
parents:
diff changeset
   206
}
hgs
parents:
diff changeset
   207
hgs
parents:
diff changeset
   208
/*!
hgs
parents:
diff changeset
   209
 Disconnects signals \a exitClicked and \a criteriaChanged emitted
hgs
parents:
diff changeset
   210
 by search panel from handling slots of the object or its members
hgs
parents:
diff changeset
   211
 Scrolls view to state before connections.
hgs
parents:
diff changeset
   212
*/
hgs
parents:
diff changeset
   213
void HsSearchView::disconnectSearchPanelSignals()
hgs
parents:
diff changeset
   214
{
71
hgs
parents: 69
diff changeset
   215
    mProxyModel->disconnect(this);
hgs
parents: 69
diff changeset
   216
    mSearchPanel->disconnect(this);
69
hgs
parents:
diff changeset
   217
}
hgs
parents:
diff changeset
   218
hgs
parents:
diff changeset
   219
/*!
hgs
parents:
diff changeset
   220
  Scrolls originating view to first item matching search criteria.
hgs
parents:
diff changeset
   221
 */
hgs
parents:
diff changeset
   222
void HsSearchView::searchFinished()
hgs
parents:
diff changeset
   223
{
hgs
parents:
diff changeset
   224
    HSMENUTEST_FUNC_ENTRY("HsSearchView::searchFinished");
hgs
parents:
diff changeset
   225
71
hgs
parents: 69
diff changeset
   226
    mIndexToScrollAfterSearchDone = firstVisibleItemIndex(mSearchListView);
69
hgs
parents:
diff changeset
   227
hgs
parents:
diff changeset
   228
    setOriginatingContext();
hgs
parents:
diff changeset
   229
hgs
parents:
diff changeset
   230
    mMainWindow.setCurrentView(mBuilder.currentView());
hgs
parents:
diff changeset
   231
71
hgs
parents: 69
diff changeset
   232
    mListView->scrollTo(mProxyModel->mapToSource(
hgs
parents: 69
diff changeset
   233
            mIndexToScrollAfterSearchDone),
69
hgs
parents:
diff changeset
   234
            HbAbstractItemView::PositionAtTop);
hgs
parents:
diff changeset
   235
hgs
parents:
diff changeset
   236
    HbVkbHost::detachHost(mSearchView);
hgs
parents:
diff changeset
   237
    mVkbHost.reset(NULL);
hgs
parents:
diff changeset
   238
    mSearchListView = NULL;
hgs
parents:
diff changeset
   239
    mSearchPanel = NULL;
71
hgs
parents: 69
diff changeset
   240
    mProxyModel->setSourceModel(NULL);
69
hgs
parents:
diff changeset
   241
    HSMENUTEST_FUNC_EXIT("HsSearchView::searchFinished");
hgs
parents:
diff changeset
   242
}
hgs
parents:
diff changeset
   243
hgs
parents:
diff changeset
   244
/*!
hgs
parents:
diff changeset
   245
 Looks up for item and if found scrolls to it.
hgs
parents:
diff changeset
   246
 \param criteriaStr The item name to find.
hgs
parents:
diff changeset
   247
 */
hgs
parents:
diff changeset
   248
void HsSearchView::findItem(QString criteriaStr)
hgs
parents:
diff changeset
   249
{
hgs
parents:
diff changeset
   250
    qDebug() << "HsSearchView::findItem: " + criteriaStr;
hgs
parents:
diff changeset
   251
    HSMENUTEST_FUNC_ENTRY("HsSearchView::findItem");
hgs
parents:
diff changeset
   252
hgs
parents:
diff changeset
   253
    mProxyModel->setFilterRegExp(
hgs
parents:
diff changeset
   254
            QRegExp("(^|\\b)" + criteriaStr, Qt::CaseInsensitive));
hgs
parents:
diff changeset
   255
hgs
parents:
diff changeset
   256
    mSearchListView->scrollTo(
hgs
parents:
diff changeset
   257
            mProxyModel->index(0,0), HbAbstractItemView::PositionAtTop);
hgs
parents:
diff changeset
   258
hgs
parents:
diff changeset
   259
    HSMENUTEST_FUNC_EXIT("HsSearchView::findItem");
hgs
parents:
diff changeset
   260
}
hgs
parents:
diff changeset
   261
hgs
parents:
diff changeset
   262
/*!
hgs
parents:
diff changeset
   263
 Slot used to translate activated signal from proxy model to normal model.
hgs
parents:
diff changeset
   264
 \param index Represents an item activated in search list view.
hgs
parents:
diff changeset
   265
 */
hgs
parents:
diff changeset
   266
void HsSearchView::activatedProxySlot(const QModelIndex &index)
hgs
parents:
diff changeset
   267
{
hgs
parents:
diff changeset
   268
    emit activated(mProxyModel->mapToSource(index));
hgs
parents:
diff changeset
   269
}
hgs
parents:
diff changeset
   270
hgs
parents:
diff changeset
   271
/*!
hgs
parents:
diff changeset
   272
 Slot used to forward 'long pressed' signal with item description transladed
hgs
parents:
diff changeset
   273
 from search view context to context of the view search was requested from.
hgs
parents:
diff changeset
   274
  \param item Long pressed item.
hgs
parents:
diff changeset
   275
  \param coords Coordinates of the long press action.
hgs
parents:
diff changeset
   276
 */
71
hgs
parents: 69
diff changeset
   277
void HsSearchView::longPressedProxySlot(
hgs
parents: 69
diff changeset
   278
        HbAbstractViewItem *item, const QPointF &coords)
69
hgs
parents:
diff changeset
   279
{
hgs
parents:
diff changeset
   280
    /*
hgs
parents:
diff changeset
   281
    this is a kind of hack, introduced for reasons:
hgs
parents:
diff changeset
   282
    item object should be reusable later, but orbit (or qt) prevents setting
hgs
parents:
diff changeset
   283
    its index model to previous state
hgs
parents:
diff changeset
   284
    */
71
hgs
parents: 69
diff changeset
   285
    mSearchViewLongPressedIndex = mProxyModel->mapToSource(
hgs
parents: 69
diff changeset
   286
            item->modelIndex());
69
hgs
parents:
diff changeset
   287
    QScopedPointer<HbAbstractViewItem> itemNew(item->createItem());
hgs
parents:
diff changeset
   288
    itemNew->setModelIndex(mSearchViewLongPressedIndex);
hgs
parents:
diff changeset
   289
    emit longPressed(itemNew.data(), coords);
hgs
parents:
diff changeset
   290
}
hgs
parents:
diff changeset
   291
hgs
parents:
diff changeset
   292
/*!
hgs
parents:
diff changeset
   293
  Sets up search panel.
hgs
parents:
diff changeset
   294
hgs
parents:
diff changeset
   295
 \param searchPanel Search panel to initialize.
hgs
parents:
diff changeset
   296
 */
hgs
parents:
diff changeset
   297
void HsSearchView::initSearchPanel(HbSearchPanel &searchPanel)
hgs
parents:
diff changeset
   298
{
hgs
parents:
diff changeset
   299
    HbLineEdit *const lineEdit(searchPanelLineEdit(searchPanel));
hgs
parents:
diff changeset
   300
hgs
parents:
diff changeset
   301
    lineEdit->setText("");
hgs
parents:
diff changeset
   302
    lineEdit->setFocus();
71
hgs
parents: 69
diff changeset
   303
    lineEdit->setInputMethodHints(
hgs
parents: 69
diff changeset
   304
            Qt::ImhNoPredictiveText | Qt::ImhNoAutoUppercase);
69
hgs
parents:
diff changeset
   305
}
hgs
parents:
diff changeset
   306
hgs
parents:
diff changeset
   307
/*!
hgs
parents:
diff changeset
   308
 \param searchPanel Search panel to operate on.
hgs
parents:
diff changeset
   309
 \return Line edit of the searchPanel on success, NULL otherwise.
hgs
parents:
diff changeset
   310
 */
hgs
parents:
diff changeset
   311
HbLineEdit *HsSearchView::searchPanelLineEdit(
hgs
parents:
diff changeset
   312
        HbSearchPanel &searchPanel) const
hgs
parents:
diff changeset
   313
{
hgs
parents:
diff changeset
   314
    HSMENUTEST_FUNC_ENTRY("HsSearchView::searchPanelLineEdit");
hgs
parents:
diff changeset
   315
hgs
parents:
diff changeset
   316
    HbLineEdit *result(0);
hgs
parents:
diff changeset
   317
    foreach(QGraphicsItem *obj, searchPanel.childItems()) {
hgs
parents:
diff changeset
   318
        QGraphicsWidget *const widget = static_cast<QGraphicsWidget *>(obj);
hgs
parents:
diff changeset
   319
        if (widget != NULL) {
hgs
parents:
diff changeset
   320
            HbLineEdit *const lineEdit = qobject_cast<HbLineEdit *>(widget);
hgs
parents:
diff changeset
   321
            if (lineEdit != NULL) {
hgs
parents:
diff changeset
   322
                result = lineEdit;
hgs
parents:
diff changeset
   323
                break;
hgs
parents:
diff changeset
   324
            }
hgs
parents:
diff changeset
   325
        }
hgs
parents:
diff changeset
   326
    }
hgs
parents:
diff changeset
   327
    HSMENUTEST_FUNC_EXIT("HsSearchView::searchPanelLineEdit");
hgs
parents:
diff changeset
   328
hgs
parents:
diff changeset
   329
    return result;
hgs
parents:
diff changeset
   330
}
hgs
parents:
diff changeset
   331
hgs
parents:
diff changeset
   332
/*!
hgs
parents:
diff changeset
   333
  Sets the builder context to the one determined by \a mStateContext and
hgs
parents:
diff changeset
   334
  \a HsItemViewContext.
hgs
parents:
diff changeset
   335
 */
hgs
parents:
diff changeset
   336
void HsSearchView::setOriginatingContext()
hgs
parents:
diff changeset
   337
{
hgs
parents:
diff changeset
   338
    mBuilder.setStateContext(mStateContext);
hgs
parents:
diff changeset
   339
    mBuilder.setOperationalContext(HsItemViewContext);
hgs
parents:
diff changeset
   340
}
hgs
parents:
diff changeset
   341
hgs
parents:
diff changeset
   342
/*!
hgs
parents:
diff changeset
   343
  \retval true when search view is already invoked, \a false otherwise.
hgs
parents:
diff changeset
   344
 */
hgs
parents:
diff changeset
   345
bool HsSearchView::isActive() const
hgs
parents:
diff changeset
   346
{
hgs
parents:
diff changeset
   347
    return mSearchListView != NULL;
hgs
parents:
diff changeset
   348
}
hgs
parents:
diff changeset
   349