diff -r a642906a277a -r ae724a111993 phonebookui/pbkcommonui/src/cntimportsview.cpp --- a/phonebookui/pbkcommonui/src/cntimportsview.cpp Wed Aug 18 09:39:00 2010 +0300 +++ b/phonebookui/pbkcommonui/src/cntimportsview.cpp Thu Sep 02 20:16:15 2010 +0300 @@ -17,6 +17,7 @@ #include "cntimportsview.h" #include "cntglobal.h" + #include #include #include @@ -48,6 +49,7 @@ mFetchRequestADN(0), mFetchRequestSDN(0), mListView(0), + mModel(0), mAdnSimUtility(0), mSdnSimUtility(0), mAdnEntriesPresent(0), @@ -109,19 +111,18 @@ /* Activates a default view */ -void CntImportsView::activate(CntAbstractViewManager* aMgr, const CntViewParameters aArgs) +void CntImportsView::activate(const CntViewParameters aArgs) { Q_UNUSED(aArgs); //back button - HbMainWindow* window = mView->mainWindow(); if (mView->navigationAction() != mSoftkey) { mView->setNavigationAction(mSoftkey); } - mViewManager = aMgr; - mContactSymbianManager = mViewManager->contactManager(SYMBIAN_BACKEND); + mViewManager = &mEngine->viewManager(); + mContactSymbianManager = &mEngine->contactManager(SYMBIAN_BACKEND); // Sim Utility info fetch int getSimInfoError(0); @@ -191,13 +192,17 @@ if (mSdnStorePresent && !mWaitingForAdnCache) { int sdnError = -1; - mSdnSimUtility = new CntSimUtility(CntSimUtility::SdnStore, sdnError); - if (sdnError != 0) + mSdnStorePresent = false; + if (!mSdnSimUtility) { - delete mSdnSimUtility; - mSdnSimUtility = 0; + mSdnSimUtility = new CntSimUtility(CntSimUtility::SdnStore, sdnError); + if (sdnError != 0) + { + delete mSdnSimUtility; + mSdnSimUtility = 0; + } } - else + if (mSdnSimUtility) { //get number of SDN contacts CntSimUtility::SimInfo sdnSimInfo = mSdnSimUtility->getSimInfo(getSdnSimInfoError); @@ -205,13 +210,14 @@ { // sim entries are present mSdnStoreEntries = sdnSimInfo.usedEntries; + if (mSdnStoreEntries > 0) { + mSdnStorePresent = true; + } } } } // end SDN store - - mListView = static_cast(mDocumentLoader.findWidget(QString("listView"))); HbFrameBackground frame; @@ -332,12 +338,12 @@ mImportInProgress = true; delete mFetchRequestADN; - mContactSimManagerADN = mViewManager->contactManager(SIM_BACKEND_ADN); + mContactSimManagerADN = &mEngine->contactManager(SIM_BACKEND_ADN); mFetchRequestADN = new QContactFetchRequest; mFetchRequestADN->setManager(mContactSimManagerADN); delete mFetchRequestSDN; - mContactSimManagerSDN = mViewManager->contactManager(SIM_BACKEND_SDN); + mContactSimManagerSDN = &mEngine->contactManager(SIM_BACKEND_SDN); mFetchRequestSDN = new QContactFetchRequest; mFetchRequestSDN->setManager(mContactSimManagerSDN); @@ -693,6 +699,7 @@ { mAdnStorePresent = false; mAdnEntriesPresent = false; + mSdnStorePresent = false; } else { @@ -710,9 +717,69 @@ mAdnEntriesPresent = true; } } + + //get number of SDN contacts + int sdnError = -1; + mSdnStorePresent = false; + if (!mSdnSimUtility) + { + mSdnSimUtility = new CntSimUtility(CntSimUtility::SdnStore, sdnError); + if (sdnError != 0) + { + delete mSdnSimUtility; + mSdnSimUtility = 0; + } + } + if (mSdnSimUtility) + { + int getSdnSimInfoError = 0; + CntSimUtility::SimInfo sdnSimInfo = mSdnSimUtility->getSimInfo(getSdnSimInfoError); + if (!getSdnSimInfoError) + { + mSdnStoreEntries = sdnSimInfo.usedEntries; + if (mSdnStoreEntries > 0) + { + mSdnStorePresent = true; + } + } + } } - //and start SIM contacts import, if user tapped "SIM import" + //dismiss progress dialog, if there are no SIM contacts + if(mImportSimPopup != NULL && mImportSimPopup->isActive() && + !mAdnEntriesPresent && !mSdnStorePresent) + { + mImportSimPopup->close(); + showSimImportResults(); + } + + //disable sim import item, if there are no SIM contacts + if(!mAdnEntriesPresent && !mSdnStorePresent && mModel) + { + QList importSimItems = mModel->takeRow(0); + QStandardItem* importSimItem = 0; + if (importSimItems.count() > 0) + { + importSimItem = importSimItems.at(0); + } + + if (importSimItem != 0) + { + QStringList simList; + QString simImport(hbTrId("txt_phob_dblist_import_from_sim")); + simList << simImport; + QString simNoContacts(hbTrId("txt_phob_dblist_import_from_1_val_no_sim_contacts")); + simList << simNoContacts; + + importSimItem->setData(simList, Qt::DisplayRole); + importSimItem->setData(HbIcon("qtg_large_sim"), Qt::DecorationRole); + importSimItem->setEnabled(false); + mModel->insertRow(0, importSimItem); + mListView->reset(); + } + } + + //start SIM contacts import, if user tapped "SIM import" if(mImportSimPopup != NULL && mImportSimPopup->isActive()) { if (!startSimImport())