homescreenapp/stateplugins/hsapplibrarystateplugin/src/hssearchview.cpp
changeset 90 3ac3aaebaee5
parent 81 7dd137878ff8
child 97 66b5fe3c07fd
equal deleted inserted replaced
86:e4f038c420f7 90:3ac3aaebaee5
    14  * Description: hssearchview.cpp
    14  * Description: hssearchview.cpp
    15  *
    15  *
    16  */
    16  */
    17 
    17 
    18 #include <QApplication>
    18 #include <QApplication>
    19 #include <QSortFilterProxyModel>
       
    20 #include <HbGroupBox>
    19 #include <HbGroupBox>
    21 #include <HbLineEdit>
    20 #include <HbLineEdit>
    22 #include <HbListView>
    21 #include <HbListView>
    23 #include <HbAbstractViewItem>
    22 #include <HbAbstractViewItem>
    24 #include <HbView>
    23 #include <HbView>
    57   \param stateContext Identifies the state where search starts from.
    56   \param stateContext Identifies the state where search starts from.
    58   \param mainWindow Enables switching between originating and search view.
    57   \param mainWindow Enables switching between originating and search view.
    59  */
    58  */
    60 HsSearchView::HsSearchView(HsMenuViewBuilder &builder,
    59 HsSearchView::HsSearchView(HsMenuViewBuilder &builder,
    61         HsStateContext stateContext, HsMainWindow &mainWindow) :
    60         HsStateContext stateContext, HsMainWindow &mainWindow) :
    62     mProxyModel(new QSortFilterProxyModel(this)), mSearchView(NULL),
    61     mProxyModel(new HsSearchFilterProxyModel(this)), mSearchView(NULL),
    63     mSearchListView(NULL), mSearchPanel(NULL), mStateContext(stateContext),
    62     mSearchListView(NULL), mSearchPanel(NULL), mStateContext(stateContext),
    64     mBuilder(builder), mMainWindow(mainWindow), mListView(NULL),
    63     mBuilder(builder), mMainWindow(mainWindow), mListView(NULL),
    65     mVkbHost(NULL), mSearchViewBuilder(), mEmptyResultText(true)
    64     mVkbHost(NULL), mSearchViewBuilder(), mEmptyResultText(true)
    66 {
    65 {
    67     mProxyModel->setFilterRole(CaItemModel::TextRole);
    66     mProxyModel->setFilterRole(CaItemModel::TextRole);
   126     mListView = mBuilder.currentListView();
   125     mListView = mBuilder.currentListView();
   127     mSearchViewInitialIndex = firstVisibleItemIndex(mListView);
   126     mSearchViewInitialIndex = firstVisibleItemIndex(mListView);
   128 
   127 
   129     mProxyModel->invalidate();
   128     mProxyModel->invalidate();
   130     mProxyModel->setSourceModel(mListView->model());
   129     mProxyModel->setSourceModel(mListView->model());
   131     mProxyModel->setFilterRegExp(
   130     mCriteria = QString("");
   132             QRegExp(QString(".*"), Qt::CaseInsensitive, QRegExp::RegExp));
   131     mProxyModel->setFilterString(mCriteria);
   133 
   132 
   134     mSearchView = mSearchViewBuilder.searchView();
   133     mSearchView = mSearchViewBuilder.searchView();
   135     mSearchListView = mSearchViewBuilder.searchListView();
   134     mSearchListView = mSearchViewBuilder.searchListView();
   136     mSearchPanel = mSearchViewBuilder.searchPanel();
   135     mSearchPanel = mSearchViewBuilder.searchPanel();
   137     initSearchPanel(*mSearchPanel);
   136     initSearchPanel(*mSearchPanel);
   142                 mBuilder.currentViewLabel()->heading());
   141                 mBuilder.currentViewLabel()->heading());
   143         mSearchViewBuilder.setSearchLabledContext();
   142         mSearchViewBuilder.setSearchLabledContext();
   144     }
   143     }
   145 
   144 
   146     mSearchView->hideItems(Hb::AllItems);
   145     mSearchView->hideItems(Hb::AllItems);
   147     mSearchListView->setModel(mProxyModel, new HsListViewItem());
   146     HsListViewItem *item = new HsListViewItem();
       
   147     item->setTextFormat(Qt::RichText);
       
   148 
       
   149     mSearchListView->setModel(mProxyModel, item);
   148 
   150 
   149     mMainWindow.setCurrentView(mSearchView);
   151     mMainWindow.setCurrentView(mSearchView);
   150 
   152 
   151     openVkb();
   153     openVkb();
   152 
   154 
   277 void HsSearchView::findItem(QString criteriaStr)
   279 void HsSearchView::findItem(QString criteriaStr)
   278 {
   280 {
   279     qDebug() << "HsSearchView::findItem: " + criteriaStr;
   281     qDebug() << "HsSearchView::findItem: " + criteriaStr;
   280     HSMENUTEST_FUNC_ENTRY("HsSearchView::findItem");
   282     HSMENUTEST_FUNC_ENTRY("HsSearchView::findItem");
   281 
   283 
   282     mProxyModel->setFilterRegExp(
   284     if (criteriaStr == mCriteria) 
   283             QRegExp("(^|\\b)" + criteriaStr, Qt::CaseInsensitive));
   285         return;
   284 
   286 
   285     mSearchListView->scrollTo(
   287     mCriteria = criteriaStr;
   286             mProxyModel->index(0, 0), HbAbstractItemView::PositionAtTop);
   288     mProxyModel->setFilterString(criteriaStr);
       
   289     if(criteriaStr.isEmpty())
       
   290         mSearchListView->scrollTo(
       
   291                 mProxyModel->index(0, 0), HbAbstractItemView::PositionAtTop);
   287 
   292 
   288     HSMENUTEST_FUNC_EXIT("HsSearchView::findItem");
   293     HSMENUTEST_FUNC_EXIT("HsSearchView::findItem");
   289 }
   294 }
   290 
   295 
   291 /*!
   296 /*!