phonebookui/pbkcommonui/src/cntimportsview.cpp
changeset 46 efe85016a067
parent 40 b46a585f6909
child 47 7cbcb2896f0e
equal deleted inserted replaced
40:b46a585f6909 46:efe85016a067
    31 #include <hbmessagebox.h>
    31 #include <hbmessagebox.h>
    32 #include <hbprogressbar.h>
    32 #include <hbprogressbar.h>
    33 #include <QGraphicsLinearLayout>
    33 #include <QGraphicsLinearLayout>
    34 #include <hbframebackground.h>
    34 #include <hbframebackground.h>
    35 #include <hbabstractviewitem.h>
    35 #include <hbabstractviewitem.h>
       
    36 #include <hbextendedlocale.h>
       
    37 #include <hbparameterlengthlimiter.h>
       
    38 #include <hblistviewitem.h>
       
    39 #include <hbstringutil.h>
    36 
    40 
    37 const char *CNT_IMPORT_UI_XML = ":/xml/contacts_sim.docml";
    41 const char *CNT_IMPORT_UI_XML = ":/xml/contacts_sim.docml";
    38 const int KTimerValue = 1; // used as 1 msec timer for saving ADN contacts from SIM   
    42 const int KTimerValue = 1; // used as 1 msec timer for saving ADN contacts from SIM   
    39 
    43 
    40 CntImportsView::CntImportsView() : mContactSimManagerADN(0),
    44 CntImportsView::CntImportsView() : mContactSimManagerADN(0),
   122     
   126     
   123     
   127     
   124     //ADN store
   128     //ADN store
   125     int error = -1;
   129     int error = -1;
   126     mAdnSimUtility = new CntSimUtility(CntSimUtility::AdnStore, error);
   130     mAdnSimUtility = new CntSimUtility(CntSimUtility::AdnStore, error);
       
   131     
   127     if (error != 0) 
   132     if (error != 0) 
   128     {
   133     {
   129         delete mAdnSimUtility; 
   134         delete mAdnSimUtility; 
   130         mAdnSimUtility = 0;
   135         mAdnSimUtility = 0;
   131         mSimError = true;
   136         mSimError = true;
   207     
   212     
   208     HbFrameBackground frame;
   213     HbFrameBackground frame;
   209     frame.setFrameGraphicsName("qtg_fr_list_normal");
   214     frame.setFrameGraphicsName("qtg_fr_list_normal");
   210     frame.setFrameType(HbFrameDrawer::NinePieces);
   215     frame.setFrameType(HbFrameDrawer::NinePieces);
   211     mListView->itemPrototypes().first()->setDefaultFrame(frame);
   216     mListView->itemPrototypes().first()->setDefaultFrame(frame);
   212     
   217     mListView->listItemPrototype()->setStretchingStyle(HbListViewItem::StretchLandscape);
   213     mListView->setUniformItemSizes(true);
   218     mListView->setUniformItemSizes(true);
   214     
   219     
   215     connect(mListView, SIGNAL(activated (const QModelIndex&)),
   220     connect(mListView, SIGNAL(activated (const QModelIndex&)),
   216                                       this,  SLOT(onListViewActivated(const QModelIndex&)));
   221                                       this,  SLOT(onListViewActivated(const QModelIndex&)));
   217        
   222        
   254     }
   259     }
   255     else
   260     else
   256     {   
   261     {   
   257         // SIM card is present
   262         // SIM card is present
   258         //ADN entries or SDN entries are there
   263         //ADN entries or SDN entries are there
   259         simList << simImport ;        
   264         simList << simImport;
       
   265         int error = 0;
       
   266         QDateTime date = mAdnSimUtility->getLastImportTime(error);
       
   267         if (error == 0) {
       
   268             HbExtendedLocale locale = HbExtendedLocale::system();
       
   269             QString dateStr = locale.format(date.date(), r_qtn_date_usual);
       
   270             QString dateStrLocaleDigits = HbStringUtil::convertDigits(dateStr); 
       
   271             QString dateStrFull = 
       
   272                 HbParameterLengthLimiter(hbTrId("txt_phob_dblist_import_from_1_val_updated_1")).arg(dateStrLocaleDigits);
       
   273             simList << dateStrFull;
       
   274         }
   260     }
   275     }
   261     importSimItem->setData(simList, Qt::DisplayRole);
   276     importSimItem->setData(simList, Qt::DisplayRole);
   262     importSimItem->setData(HbIcon("qtg_large_sim"), Qt::DecorationRole);   
   277     importSimItem->setData(HbIcon("qtg_large_sim"), Qt::DecorationRole);   
   263      
   278      
   264     mModel->insertRow(0,importSimItem);
   279     mModel->insertRow(0,importSimItem);
   308 bool CntImportsView::startSimImport()
   323 bool CntImportsView::startSimImport()
   309 {
   324 {
   310     bool started = false;
   325     bool started = false;
   311 
   326 
   312     delete mFetchRequestADN;
   327     delete mFetchRequestADN;
   313     mFetchRequestADN = 0;
   328     mContactSimManagerADN = mViewManager->contactManager(SIM_BACKEND_ADN);
       
   329     mFetchRequestADN = new QContactFetchRequest;
       
   330     mFetchRequestADN->setManager(mContactSimManagerADN);   
       
   331     
   314     delete mFetchRequestSDN;
   332     delete mFetchRequestSDN;
   315     mFetchRequestSDN = 0;
   333     mContactSimManagerSDN = mViewManager->contactManager(SIM_BACKEND_SDN);
       
   334     mFetchRequestSDN = new QContactFetchRequest;
       
   335     mFetchRequestSDN->setManager(mContactSimManagerSDN);        
   316         
   336         
   317     if (mWaitingForAdnCache)
   337     if (mWaitingForAdnCache)
   318     {
   338     {
   319         //show progress dialog and wait when ADN cache is ready
   339         //show progress dialog and wait when ADN cache is ready
   320         started = true;
   340         started = true;
   321     }
   341     }
   322     else
   342     else
   323     {
   343     {
   324         if(mAdnStorePresent)
   344         if(mAdnStorePresent)
   325         {
   345         {
   326             mContactSimManagerADN = mViewManager->contactManager(SIM_BACKEND_ADN);
       
   327             mFetchRequestADN = new QContactFetchRequest;
       
   328             mFetchRequestADN->setManager(mContactSimManagerADN);
       
   329             connect(mFetchRequestADN, SIGNAL(resultsAvailable()), this, SLOT(importFetchResultReceivedADN()));
   346             connect(mFetchRequestADN, SIGNAL(resultsAvailable()), this, SLOT(importFetchResultReceivedADN()));
   330         }
   347         }
   331       
   348       
   332         if(mSdnStorePresent)
   349         if(mSdnStorePresent)
   333         {
   350         {
   334             mContactSimManagerSDN = mViewManager->contactManager(SIM_BACKEND_SDN);
       
   335             // SDN store fetch request
       
   336             mFetchRequestSDN = new QContactFetchRequest;
       
   337             mFetchRequestSDN->setManager(mContactSimManagerSDN);
       
   338             connect(mFetchRequestSDN, SIGNAL(resultsAvailable()), this, SLOT(importFetchResultReceivedSDN()));
   351             connect(mFetchRequestSDN, SIGNAL(resultsAvailable()), this, SLOT(importFetchResultReceivedSDN()));
   339         }
   352         }
   340         
   353         
   341         if(mAdnEntriesPresent > 0 && mContactSimManagerADN->error() == QContactManager::NoError) 
   354         if(mAdnEntriesPresent > 0 && mContactSimManagerADN->error() == QContactManager::NoError) 
   342         {
   355         {
   374     if (mFetchRequestSDN != NULL)
   387     if (mFetchRequestSDN != NULL)
   375     {
   388     {
   376         mFetchRequestSDN->cancel();
   389         mFetchRequestSDN->cancel();
   377     }
   390     }
   378     
   391     
       
   392     // save import time
       
   393     int error = 0;
       
   394     mAdnSimUtility->setLastImportTime(error);
       
   395     
       
   396     //update sim import row with last import time
       
   397     if (error == 0) {
       
   398         QList<QStandardItem*> importSimItems = mModel->takeRow(0);
       
   399         QStandardItem* importSimItem = 0;
       
   400         if (importSimItems.count() > 0) {
       
   401             importSimItem = importSimItems.at(0);
       
   402         }
       
   403         
       
   404         if (importSimItem != 0) {
       
   405             QDateTime date = mAdnSimUtility->getLastImportTime(error);
       
   406             if (error == 0) {
       
   407                 QStringList simList;
       
   408                 QString simImport(hbTrId("txt_phob_dblist_import_from_sim"));
       
   409                 simList << simImport;
       
   410                 
       
   411                 HbExtendedLocale locale = HbExtendedLocale::system();
       
   412                 QString dateStr = locale.format(date.date(), r_qtn_date_usual);
       
   413                 QString dateStrLocaleDigits = HbStringUtil::convertDigits(dateStr);
       
   414                 QString dateStrFull = 
       
   415                     HbParameterLengthLimiter(hbTrId("txt_phob_dblist_import_from_1_val_updated_1")).arg(dateStrLocaleDigits);
       
   416                 simList << dateStrFull;
       
   417                 
       
   418                 importSimItem->setData(simList, Qt::DisplayRole);
       
   419                 importSimItem->setData(HbIcon("qtg_large_sim"), Qt::DecorationRole);
       
   420             }
       
   421             mModel->insertRow(0, importSimItem);
       
   422             mListView->reset();
       
   423         }
       
   424     }
   379 }
   425 }
   380 
   426 
   381 void CntImportsView::importFetchResultReceivedADN()
   427 void CntImportsView::importFetchResultReceivedADN()
   382 {
   428 {
       
   429     //save import time
       
   430     int error = 0;
       
   431     mAdnSimUtility->setLastImportTime(error);
       
   432 
   383     QList<QContact> simContactsList = mFetchRequestADN->contacts();
   433     QList<QContact> simContactsList = mFetchRequestADN->contacts();
   384     if (simContactsList.isEmpty())
   434     if (simContactsList.isEmpty())
   385     {
   435     {
   386         // No sim contacts, jump to fetching SDN contacts
   436         // No sim contacts, jump to fetching SDN contacts
   387         fetchSDNContacts();
   437         fetchSDNContacts();
   444             
   494             
   445             mTimerId = startTimer(KTimerValue); // starting a 1 msec timer
   495             mTimerId = startTimer(KTimerValue); // starting a 1 msec timer
   446             mFetchIsDone = true;
   496             mFetchIsDone = true;
   447             mSaveCount = 0;    
   497             mSaveCount = 0;    
   448         }
   498         }
   449     
       
   450     }
   499     }
   451 }
   500 }
   452 
   501 
   453 void CntImportsView::timerEvent(QTimerEvent *event)
   502 void CntImportsView::timerEvent(QTimerEvent *event)
   454 {
   503 {
   539     }
   588     }
   540 }
   589 }
   541 
   590 
   542 void CntImportsView::importFetchResultReceivedSDN()
   591 void CntImportsView::importFetchResultReceivedSDN()
   543 {
   592 {
       
   593     //save import time
       
   594     int error = 0;
       
   595     mAdnSimUtility->setLastImportTime(error);
       
   596 
   544     QList<QContact> simContactsListSDN = mFetchRequestSDN->contacts();
   597     QList<QContact> simContactsListSDN = mFetchRequestSDN->contacts();
   545     if (simContactsListSDN.isEmpty())
   598     if (simContactsListSDN.isEmpty())
   546     {
   599     {
   547         //No sdn contacts present
   600         //No sdn contacts present
   548         showSimImportResults();
   601         showSimImportResults();