--- a/emailuis/nmailui/src/nmmessagelistview.cpp Wed Jun 23 18:00:21 2010 +0300
+++ b/emailuis/nmailui/src/nmmessagelistview.cpp Tue Jul 06 14:04:34 2010 +0300
@@ -20,11 +20,11 @@
static const char *NMUI_MESSAGE_LIST_TREE_LIST = "MessageTreeList";
static const char *NMUI_MESSAGE_LIST_NO_MESSAGES = "MessageListNoMessages";
static const char *NMUI_MESSAGE_LIST_FOLDER_LABEL = "labelGroupBox";
-// Old sync icon implementation commented out but preserved so it could be put back if need be
-// static const char *NMUI_MESSAGE_LIST_SYNC_ICON = "syncIcon";
#include "nmuiheaders.h"
+const QString syncIndicatorName = "com.nokia.nmail.indicatorplugin.sync/1.0";
+
/*!
\class NmMessageListView
\brief Message list view
@@ -52,23 +52,18 @@
mLongPressedItem(NULL),
mNoMessagesLabel(NULL),
mFolderLabel(NULL),
-mSyncIcon(NULL),
mViewReady(false),
mCurrentFolderType(NmFolderInbox),
mSettingsLaunched(false),
-mPreviousModelCount(0)
+mPreviousModelCount(0),
+mIsFirstSyncInMessageList(true)
{
NM_FUNCTION;
- // Load view layout
loadViewLayout();
- //create toolbar
createToolBar();
- // Init tree view
initTreeView();
- // set title
setMailboxName();
- // Set folder name
setFolderName();
}
@@ -95,7 +90,7 @@
NM_FUNCTION;
// Use document loader to load the view
- bool ok = false;
+ bool ok(false);
setObjectName(QString(NMUI_MESSAGE_LIST_VIEW));
QObjectList objectList;
objectList.append(this);
@@ -106,7 +101,7 @@
mWidgetList = mDocumentLoader->load(NMUI_MESSAGE_LIST_VIEW_XML, &ok);
}
- if (ok == true && mWidgetList.count()) {
+ if (ok) {
// Get message list widget
mMessageListWidget = qobject_cast<HbTreeView *>
(mDocumentLoader->findWidget(NMUI_MESSAGE_LIST_TREE_LIST));
@@ -144,19 +139,11 @@
mFolderLabel = qobject_cast<HbGroupBox *>(mDocumentLoader->findWidget(NMUI_MESSAGE_LIST_FOLDER_LABEL));
- // Disable the old sync icon implementation for the time being (commment out loading the icon here)
- //mSyncIcon = qobject_cast<HbLabel *>(mDocumentLoader->findWidget(NMUI_MESSAGE_LIST_SYNC_ICON));
- if (mSyncIcon) {
- mSyncIcon->setIcon(NmIcons::getIcon(NmIcons::NmIconOffline));
- }
-
// Connect options menu about to show to create options menu function
QObject::connect(menu(), SIGNAL(aboutToShow()),
this, SLOT(createOptionsMenu()));
QObject::connect(&mUiEngine, SIGNAL(syncStateEvent(NmSyncState, const NmId &)),
this, SLOT(handleSyncStateEvent(NmSyncState, const NmId &)));
- QObject::connect(&mUiEngine, SIGNAL(connectionEvent(NmConnectState, const NmId &)),
- this, SLOT(handleConnectionEvent(NmConnectState, const NmId &)));
// Menu needs one dummy item so that aboutToShow signal is emitted.
NmAction *dummy = new NmAction(0);
@@ -235,7 +222,7 @@
/*!
Reload view contents with new start parameters
Typically when view is already open and external view activation occurs
- for this same view
+ for this same view. Startparam ownership is transferred to this view
*/
void NmMessageListView::reloadViewContents(NmUiStartParam* startParam)
{
@@ -281,44 +268,38 @@
{
NM_FUNCTION;
- NmId mailboxId = mMessageListModel->currentMailboxId();
- if (mSyncIcon && mailboxId == mMessageListModel->currentMailboxId()) {
- if (mUiEngine.syncState(mailboxId) == Synchronizing) {
- mSyncIcon->setIcon(NmIcons::getIcon(NmIcons::NmIconSynching));
- }
- else {
- if (mUiEngine.connectionState(mailboxId) == Connected) {
- mSyncIcon->setIcon(NmIcons::getIcon(NmIcons::NmIconOnline));
- }
- else {
- mSyncIcon->setIcon(NmIcons::getIcon(NmIcons::NmIconOffline));
+ if (mMessageListModel) {
+ NmId mailboxId = mMessageListModel->currentMailboxId();
+ // In each refresh, e.g. in folder change the UI signals
+ // lower layer about the folder that has been opened.
+ if (mStartParam){
+ mUiEngine.updateActiveFolder(mailboxId, mStartParam->folderId());
+
+ NmFolderType folderType = mUiEngine.folderTypeById(mStartParam->mailboxId(),
+ mStartParam->folderId());
+ if (folderType == NmFolderInbox) { // If the new folder is an inbox, first automatic sync should be shown
+ mIsFirstSyncInMessageList = true;
}
}
- }
-
- // In each refresh, e.g. in folder change the UI signals
- // lower layer about the folder that has been opened.
- if (mStartParam){
- mUiEngine.updateActiveFolder(mailboxId, mStartParam->folderId());
- }
- // Set item model to message list widget
- if (mMessageListWidget) {
- mMessageListWidget->setModel(static_cast<QStandardItemModel*>(mMessageListModel));
- QObject::connect(mMessageListModel, SIGNAL(rowsInserted(const QModelIndex&,int,int)),
- this, SLOT(itemsAdded(const QModelIndex&,int,int)));
- QObject::connect(mMessageListModel, SIGNAL(rowsRemoved(const QModelIndex&,int,int)),
- this, SLOT(itemsRemoved()));
- QObject::connect(mMessageListModel, SIGNAL(setNewParam(NmUiStartParam*)),
- this, SLOT(reloadViewContents(NmUiStartParam*)));
+ // Set item model to message list widget
+ if (mMessageListWidget) {
+ mMessageListWidget->setModel(static_cast<QStandardItemModel*>(mMessageListModel));
+ QObject::connect(mMessageListModel, SIGNAL(rowsInserted(const QModelIndex&,int,int)),
+ this, SLOT(itemsAdded(const QModelIndex&,int,int)));
+ QObject::connect(mMessageListModel, SIGNAL(rowsRemoved(const QModelIndex&,int,int)),
+ this, SLOT(itemsRemoved()));
+ QObject::connect(mMessageListModel, SIGNAL(setNewParam(NmUiStartParam*)),
+ this, SLOT(reloadViewContents(NmUiStartParam*)));
- mPreviousModelCount=mMessageListModel->rowCount();
- if (mPreviousModelCount==0){
- showNoMessagesText();
- }
- else{
- hideNoMessagesText();
- }
+ mPreviousModelCount=mMessageListModel->rowCount();
+ if (mPreviousModelCount==0){
+ showNoMessagesText();
+ }
+ else{
+ hideNoMessagesText();
+ }
+ }
}
}
@@ -328,11 +309,9 @@
void NmMessageListView::handleSyncStateEvent(NmSyncState syncState, const NmId & mailboxId)
{
NM_FUNCTION;
-
- if (mSyncIcon && mailboxId == mMessageListModel->currentMailboxId()) {
+ if (mMessageListModel && mailboxId == mMessageListModel->currentMailboxId()) {
if (syncState == Synchronizing) {
- mSyncIcon->setIcon(NmIcons::getIcon(NmIcons::NmIconSynching));
- // before first sync inbox id might be zero
+ // before first sync inbox id might be zero
if (mStartParam->folderId() == 0) {
// after sync inbox id should be updated to correct value
NmId folderId = mUiEngine.standardFolderId(
@@ -340,35 +319,17 @@
NmFolderInbox);
mStartParam->setFolderId(folderId);
}
- }
- else {
- if (mUiEngine.connectionState(mailboxId) == Connected) {
- mSyncIcon->setIcon(NmIcons::getIcon(NmIcons::NmIconOnline));
- }
- else {
- mSyncIcon->setIcon(NmIcons::getIcon(NmIcons::NmIconOffline));
+ // Show sync icon only for the first automatic sync after opening message list.
+ // Sync icon for manual sync is shown in NmUiEngine::refreshMailbox, not here.
+ if (mIsFirstSyncInMessageList) {
+ HbIndicator indicator;
+ indicator.activate(syncIndicatorName, QVariant());
+ mIsFirstSyncInMessageList = false;
}
}
}
}
-/*!
- Connection event handling
-*/
-void NmMessageListView::handleConnectionEvent(NmConnectState connectState, const NmId &mailboxId)
-{
- NM_FUNCTION;
-
- if (mSyncIcon && mailboxId == mMessageListModel->currentMailboxId() && mUiEngine.syncState(mailboxId) != Synchronizing) {
- if (connectState == Connected) {
- mSyncIcon->setIcon(NmIcons::getIcon(NmIcons::NmIconOnline));
- }
- else {
- mSyncIcon->setIcon(NmIcons::getIcon(NmIcons::NmIconOffline));
- }
- }
-}
-
/*!
folder selection handling within current mailbox
*/