diff -r b46a585f6909 -r efe85016a067 phonebookui/pbkcommonui/src/cntfetchcontactsview.cpp --- a/phonebookui/pbkcommonui/src/cntfetchcontactsview.cpp Fri Jun 11 13:29:23 2010 +0300 +++ b/phonebookui/pbkcommonui/src/cntfetchcontactsview.cpp Wed Jun 23 18:02:44 2010 +0300 @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -28,7 +29,6 @@ #include #include #include -#include #include #include "cntfetchcontactsview.h" @@ -55,27 +55,13 @@ mSearchPanel->setVisible(false); mSearchPanel->setCancelEnabled(false); connect(mSearchPanel, SIGNAL(criteriaChanged(QString)), this, SLOT(setFilter(QString))); - + + HbLineEdit *editor = static_cast(mSearchPanel->primitive("lineedit")); + editor->setInputMethodHints(Qt::ImhNoPredictiveText); + mLayout = new QGraphicsLinearLayout(Qt::Vertical); mContainerWidget = new HbWidget(); - - // set up the list with all contacts - QList sortOrders; - QContactSortOrder sortOrderFirstName; - sortOrderFirstName.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldFirstName); - sortOrderFirstName.setCaseSensitivity(Qt::CaseInsensitive); - sortOrders.append(sortOrderFirstName); - - QContactSortOrder sortOrderLastName; - sortOrderLastName.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldLastName); - sortOrderLastName.setCaseSensitivity(Qt::CaseInsensitive); - sortOrders.append(sortOrderLastName); - - QContactDetailFilter contactsFilter; - contactsFilter.setDetailDefinitionName(QContactType::DefinitionName, QContactType::FieldType); - contactsFilter.setValue(QString(QLatin1String(QContactType::TypeContact))); - mCntModel = new CntListModel(mManager, contactsFilter, sortOrders, false); } CntFetchContacts::~CntFetchContacts() @@ -130,8 +116,14 @@ mLayout->addItem(mSearchPanel); mContainerWidget->setLayout(mLayout); - mContainerWidget->setPreferredHeight(mListView->mainWindow()->size().height()); + + // Main window is NULL in unit tests + HbMainWindow* window = mListView->mainWindow(); + if (window) { + mContainerWidget->setPreferredHeight(mListView->mainWindow()->size().height()); + } mContainerWidget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); + break; } @@ -154,7 +146,7 @@ detailfilter.setMatchFlags(QContactFilter::MatchStartsWith); detailfilter.setValue(searchList); - mCntModel->setFilterAndSortOrder(detailfilter); + mCntModel->setFilter(detailfilter); markMembersInView(); @@ -213,13 +205,17 @@ if (popup && userCanceled) { mCurrentlySelected.clear(); - // Notify that the user canceled. mWasCanceled = true; } else { mWasCanceled = false; } + mPopup->setVisible(false); + mListView->setModel(NULL); + delete mCntModel; + mCntModel = NULL; + emit clicked(); } @@ -261,6 +257,13 @@ if (!mPopup) { mPopup = new HbDialog; } + + QContactDetailFilter contactsFilter; + contactsFilter.setDetailDefinitionName(QContactType::DefinitionName, QContactType::FieldType); + contactsFilter.setValue(QString(QLatin1String(QContactType::TypeContact))); + if (!mCntModel) { + mCntModel = new CntListModel(mManager, contactsFilter, false); + } if (!mListView) { mListView = new HbListView(mPopup); @@ -295,6 +298,11 @@ mCntModel->showMyCard(false); } + + // Handle the case where the model was removed for the list view + if (!mListView->model()) { + mListView->setModel(mCntModel); + } } void CntFetchContacts::connectSignal() @@ -336,7 +344,7 @@ void CntFetchContacts::markMembersInView() { - // if there are no contacts matching the current filter, + // If there are no contacts matching the current filter, // show "no matching contacts" label if (mCntModel->rowCount() == 0) { if (!mEmptyListLabel) {