diff -r 1fc85118c3ae -r 870918037e16 locationpickerservice/src/locationpickersearchview.cpp --- a/locationpickerservice/src/locationpickersearchview.cpp Tue Aug 31 15:09:25 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,207 +0,0 @@ -/* -* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: LocationPickerSearchView implementation -* -*/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "locationpickerproxymodel.h" -#include "locationpickersearchview.h" -#include "locationpickerdatamanager.h" - -// ======== MEMBER FUNCTIONS ======== - -// ---------------------------------------------------- -// LocationPickerSearchView::LocationPickerSearchView() -// ---------------------------------------------------- -LocationPickerSearchView::LocationPickerSearchView( HbDocumentLoader &aLoader ) - :mProxyModel(NULL), - mModel(NULL), - mListView(NULL), - mSearchPanel(NULL), - mEmptyLabel(NULL), - mVerticalLayout(NULL), - mDocumentLoader(aLoader), - mLongPressMenu(NULL), - mSelectAction(NULL) -{ - -} -// ---------------------------------------------------- -// LocationPickerSearchView::~LocationPickerSearchView() -// ---------------------------------------------------- -LocationPickerSearchView::~LocationPickerSearchView() -{ - delete mProxyModel; - delete mEmptyLabel; -} - -// ---------------------------------------------------- -// LocationPickerSearchView::init() -// ---------------------------------------------------- -void LocationPickerSearchView::init( QStandardItemModel *aModel ) -{ - mModel = aModel; - //get listview from docml - mListView = qobject_cast( - mDocumentLoader.findObject(QString("SearchListView"))); - if(!mListView) - { - qFatal("Error Reading Docml"); - } - //get search panel from docml - mSearchPanel = qobject_cast( - mDocumentLoader.findObject(QString("searchPanel"))); - //conect to respective slots - connect(mListView, SIGNAL(activated(const QModelIndex &)), this, SLOT(handleActivated - (const QModelIndex &))); - connect(mListView,SIGNAL(longPressed(HbAbstractViewItem*, const QPointF &)),this, - SLOT(launchPopUpMenu(HbAbstractViewItem*, const QPointF &))); - connect(mSearchPanel, SIGNAL(exitClicked()),this, SLOT(handleExit())); - connect(mSearchPanel,SIGNAL(criteriaChanged(QString)),this,SLOT(doSearch(QString))); - - //Set graphics size for the list items. - HbListViewItem *hbListItem = new HbListViewItem(); - hbListItem->setGraphicsSize(HbListViewItem::Thumbnail); - mListView->setItemPrototype( hbListItem ); - - // Create the proxy model. - mProxyModel = new LocationPickerProxyModel(); - mProxyModel->setSourceModel(mModel); - mListView->setModel(mProxyModel); - - // set filter properties - mProxyModel->setDynamicSortFilter(TRUE); - mProxyModel->setSortRole(Qt::DisplayRole); - mProxyModel->setSortCaseSensitivity(Qt::CaseInsensitive); - // sort - mProxyModel->sort(0, Qt::AscendingOrder); -} - -// ---------------------------------------------------- -// LocationPickerSearchView::handleExit() -// ---------------------------------------------------- -void LocationPickerSearchView::handleExit() -{ - //emit signal to switch the current view - emit switchView(); -} - -// ---------------------------------------------------- -// LocationPickerSearchView::doSearch() -// ---------------------------------------------------- -void LocationPickerSearchView::doSearch( QString aCriteria ) -{ - // use the string to search - mProxyModel->filterParameterChanged(aCriteria); - mProxyModel->setFilterFixedString(aCriteria); - //if no entries presentdisplay empty text item - if (!mProxyModel->rowCount() ) - { - if(!mEmptyLabel) - { - QGraphicsWidget *widget = NULL; - widget = mDocumentLoader.findWidget(QString("container")); - mVerticalLayout = static_cast(widget->layout()); - if(!widget || !mVerticalLayout) - { - qFatal("Error Reading Docml"); - } - mVerticalLayout->removeItem(mListView); - mListView->setVisible(false); - mEmptyLabel = new HbTextItem(hbTrId("txt_lint_list_no_results")); - mEmptyLabel->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); - mEmptyLabel->setFontSpec(HbFontSpec(HbFontSpec::Primary)); - mEmptyLabel->setAlignment(Qt::AlignCenter); - mVerticalLayout->insertItem(0, mEmptyLabel); - mEmptyLabel->setVisible(true); - } - } - //else display the result - else if (mEmptyLabel) - { - mVerticalLayout->removeItem(mEmptyLabel); - mEmptyLabel->setVisible(false); - delete mEmptyLabel; - mEmptyLabel=NULL; - mVerticalLayout->insertItem(0, mListView); - mListView->setVisible(true); - } -} - -// ---------------------------------------------------- -// LocationPickerSearchView::handleActivated() -// ---------------------------------------------------- -void LocationPickerSearchView::handleActivated( const QModelIndex &aIndex ) -{ - QModelIndex index = mProxyModel->mapToSource(aIndex); - quint32 lm = 0; - getData( index, lm ); - //emit item is selectedsignal - emit selectItem( lm ); -} - -// ---------------------------------------------------------------------------- -// LocationPickerSearchView::getData() -// ---------------------------------------------------------------------------- - -void LocationPickerSearchView::getData( QModelIndex aIndex, quint32& aValue ) -{ - QStandardItem* item = mModel->item( aIndex.row(), aIndex.column() ); - QVariant var = item->data( Qt::UserRole ); - aValue = var.toUInt(); -} - -// ----------------------------------------------------------------------------- -// LocationPickerSearchView::launchPopUpMenu() -// ----------------------------------------------------------------------------- -void LocationPickerSearchView::launchPopUpMenu(HbAbstractViewItem *aItem, const QPointF &aPoint) -{ - mLongPressMenu = new HbMenu(); - mLongPressMenu->setTimeout(HbMenu::NoTimeout); - mSelectAction = mLongPressMenu->addAction(hbTrId("txt_lint_list_select")); - mIndex = aItem->modelIndex(); - connect(mSelectAction, SIGNAL(triggered()),this, SLOT(handleLongPress())); - mLongPressMenu->setPreferredPos(aPoint); - connect(mLongPressMenu,SIGNAL(aboutToClose ()),this,SLOT(deleteMenu())); - mLongPressMenu->open(); -} - -// ----------------------------------------------------------------------------- -// LocationPickerSearchView::handleLongPress() -// ----------------------------------------------------------------------------- -void LocationPickerSearchView::handleLongPress() -{ - handleActivated(mIndex); -} - -// ----------------------------------------------------------------------------- -// LocationPickerSearchView::deleteMenu() -// ----------------------------------------------------------------------------- -void LocationPickerSearchView::deleteMenu() -{ - mLongPressMenu->deleteLater(); - mLongPressMenu = NULL; - mSelectAction->deleteLater(); - mSelectAction = NULL; -}