emailuis/nmailui/src/nmmessagelistview.cpp
changeset 56 15bc1d5d6267
parent 51 d845db10c0d4
child 62 a8c646b56683
equal deleted inserted replaced
51:d845db10c0d4 56:15bc1d5d6267
   144                          this, SLOT(handleSyncStateEvent(NmSyncState, const NmId &)));
   144                          this, SLOT(handleSyncStateEvent(NmSyncState, const NmId &)));
   145 
   145 
   146         // Menu needs one dummy item so that aboutToShow signal is emitted.
   146         // Menu needs one dummy item so that aboutToShow signal is emitted.
   147         NmAction *dummy = new NmAction(0);
   147         NmAction *dummy = new NmAction(0);
   148         menu()->addAction(dummy);
   148         menu()->addAction(dummy);
       
   149         // Set sync icon if needed
       
   150         updateSyncIcon();
   149     }
   151     }
   150     else {
   152     else {
   151         NM_ERROR(1,"nmailui: resource loading failed");
   153         NM_ERROR(1,"nmailui: resource loading failed");
   152     }
   154     }
   153 }
   155 }
   226 {
   228 {
   227     NM_FUNCTION;
   229     NM_FUNCTION;
   228 
   230 
   229     // Check start parameter validity, message view cannot
   231     // Check start parameter validity, message view cannot
   230     // be updated if given parameter is zero.
   232     // be updated if given parameter is zero.
   231     if (startParam&&startParam->viewId()==NmUiViewMessageList&&
   233     if (startParam&&startParam->viewId()==NmUiViewMessageList &&
   232         startParam->folderId()!=0) {
   234         startParam->folderId()!=0) {
   233         // Delete existing start parameter data
   235         // Delete existing start parameter data
   234         delete mStartParam;
   236         delete mStartParam;
   235         mStartParam=NULL;
   237         mStartParam = NULL;
   236         // Store new start parameter data
   238         // Store new start parameter data
   237         mStartParam=startParam;
   239         mStartParam = startParam;
   238         // Disconnect signals from previous model
   240         // Disconnect signals from previous model
   239         QObject::disconnect(mMessageListModel, SIGNAL(rowsInserted(const QModelIndex&,int,int)),
   241         QObject::disconnect(mMessageListModel, SIGNAL(rowsInserted(const QModelIndex&,int,int)),
   240                 this, SLOT(itemsAdded(const QModelIndex&,int,int)));
   242                 this, SLOT(itemsAdded(const QModelIndex&,int,int)));
   241         QObject::disconnect(mMessageListModel, SIGNAL(rowsRemoved(const QModelIndex&,int,int)),
   243         QObject::disconnect(mMessageListModel, SIGNAL(rowsRemoved(const QModelIndex&,int,int)),
   242                 this, SLOT(itemsRemoved()));
   244                 this, SLOT(itemsRemoved()));
   243         QObject::disconnect(mMessageListModel, SIGNAL(setNewParam(NmUiStartParam*)),
   245         QObject::disconnect(mMessageListModel, SIGNAL(setNewParam(NmUiStartParam*)),
   244                 this, SLOT(reloadViewContents(NmUiStartParam*)));
   246                 this, SLOT(reloadViewContents(NmUiStartParam*)));
   245         // Update model pointer and refresh mailbox with new model
   247         // Update model pointer and refresh mailbox with new model
   246         mMessageListModel = &mUiEngine.messageListModel(startParam->mailboxId(), startParam->folderId());
   248         mMessageListModel = &mUiEngine.messageListModel(startParam->mailboxId(), startParam->folderId());
       
   249         
   247         refreshList();
   250         refreshList();
   248         // Refresh the mailboxname
   251         
       
   252         // Refresh the mailbox name
   249         setMailboxName();
   253         setMailboxName();
       
   254         
       
   255         // Store active folder type
       
   256         mCurrentFolderType = mUiEngine.folderTypeById(startParam->mailboxId(),startParam->folderId());
       
   257 
       
   258         // Update folder name
       
   259         setFolderName();
       
   260         
       
   261         // Set sync icon if needed
       
   262         updateSyncIcon();
   250     }
   263     }
   251     else {
   264     else {
   252         NM_ERROR(1,"nmailui: invalid message list start parameter");
   265         NM_ERROR(1,"nmailui: invalid message list start parameter");
   253         // Unused start parameter needs to be deleted
   266         // Unused start parameter needs to be deleted
   254         delete startParam;
   267         delete startParam;
   352         // Store active folder type
   365         // Store active folder type
   353         mCurrentFolderType = mUiEngine.folderTypeById(startParam->mailboxId(),startParam->folderId());
   366         mCurrentFolderType = mUiEngine.folderTypeById(startParam->mailboxId(),startParam->folderId());
   354         // Reload view, ownership of the startparams is passed and old startparams
   367         // Reload view, ownership of the startparams is passed and old startparams
   355         // are deleted within reloadViewContents function
   368         // are deleted within reloadViewContents function
   356         reloadViewContents(startParam);
   369         reloadViewContents(startParam);
   357         //Set folder text to status bar
   370         // Set folder text to status bar
   358         setFolderName();
   371         setFolderName();
   359     }
   372     }
   360 }
   373 }
   361 
   374 
   362 
   375 
   614 */
   627 */
   615 void NmMessageListView::setFolderName()
   628 void NmMessageListView::setFolderName()
   616 {
   629 {
   617     NM_FUNCTION;
   630     NM_FUNCTION;
   618 
   631 
   619     if (mStartParam&&mFolderLabel){
   632     if (mStartParam && mFolderLabel){
   620         switch (mCurrentFolderType) {
   633         switch (mCurrentFolderType) {
   621         case NmFolderOutbox:
   634         case NmFolderOutbox:
   622             {
   635             {
   623             mFolderLabel->setHeading(hbTrId("txt_mail_subhead_outbox"));
   636             mFolderLabel->setHeading(hbTrId("txt_mail_subhead_outbox"));
   624             }
   637             }
   736         mNoMessagesLabel->hide();
   749         mNoMessagesLabel->hide();
   737         mMessageListWidget->show();
   750         mMessageListWidget->show();
   738     }
   751     }
   739 }
   752 }
   740 
   753 
       
   754 /*!
       
   755     Updates sync icon based on sync status from the plugin.
       
   756 */
       
   757 void NmMessageListView::updateSyncIcon()
       
   758 {
       
   759     if (mStartParam) {
       
   760         NmSyncState syncState = mUiEngine.syncState(mStartParam->mailboxId());
       
   761         if (syncState==Synchronizing) {
       
   762             mUiEngine.enableSyncIndicator(true);
       
   763         } 
       
   764         else {
       
   765             mUiEngine.enableSyncIndicator(false);
       
   766         }
       
   767     }
       
   768 }
       
   769