# HG changeset patch # User hgs # Date 1281031749 -10800 # Node ID ae34e1715e212809d15aad87be6c56dd52e8cbf9 # Parent 15bc1d5d6267e91a96197458050e5e7f4ba5dec9 201031 diff -r 15bc1d5d6267 -r ae34e1715e21 emailservices/emailstore/base_plugin/src/baseplugindelayedops.cpp --- a/emailservices/emailstore/base_plugin/src/baseplugindelayedops.cpp Fri Jul 23 19:09:50 2010 +0300 +++ b/emailservices/emailstore/base_plugin/src/baseplugindelayedops.cpp Thu Aug 05 21:09:09 2010 +0300 @@ -336,8 +336,9 @@ //save parentId TMsgStoreId msgParentId; msgParentId = theMessage->ParentId(); - //check if message is in deleted folder or not. - if (msgParentId != mailBoxInfo.iRootFolders.iFolders[EFSDeleted]) + //check if message is in deleted or drafts folder or not. + if (msgParentId != mailBoxInfo.iRootFolders.iFolders[EFSDeleted] && + msgParentId != mailBoxInfo.iRootFolders.iFolders[EFSDraftsFolder]) { //if not in deleted items then move it there. __LOG_WRITE8_FORMAT1_INFO("Moving message 0x%X to the deleted items.", msgId ); diff -r 15bc1d5d6267 -r ae34e1715e21 emailservices/nmregister/src/nmmailboxregisterinterface.cpp --- a/emailservices/nmregister/src/nmmailboxregisterinterface.cpp Fri Jul 23 19:09:50 2010 +0300 +++ b/emailservices/nmregister/src/nmmailboxregisterinterface.cpp Thu Aug 05 21:09:09 2010 +0300 @@ -54,7 +54,7 @@ //parameter values const QString NmPublisherName("NmMailboxRegisterInterface"); -const QString NmLaunchUri("appto://0x200255BA?activityname=EmailInboxView&accountId="); +const QString NmLaunchUri("appto://0x200255BA?activityname=EmailInboxView"); //URI for the defined service const QLatin1String interfaceUri("com.nokia.symbian.IEmailRegisterAccount"); diff -r 15bc1d5d6267 -r ae34e1715e21 emailuis/nmailui/conf/nmmessagelistviewitem.css --- a/emailuis/nmailui/conf/nmmessagelistviewitem.css Fri Jul 23 19:09:50 2010 +0300 +++ b/emailuis/nmailui/conf/nmmessagelistviewitem.css Thu Aug 05 21:09:09 2010 +0300 @@ -1,32 +1,38 @@ -NmMessageListViewItem:portrait{ +NmMessageListViewItem:portrait { layout:portrait; } -NmMessageListViewItem:landscape{ +NmMessageListViewItem:landscape { layout:landscape; } -NmMessageListViewItem::sender{ - fixed-height: var(hb-param-text-height-primary); +NmMessageListViewItem::sender { + fixed-height: var(hb-param-text-height-primary); text-align: left; + text-wrap-mode: no-wrap; } + NmMessageListViewItem::time { - pref-height: var(hb-param-text-height-secondary); - pref-width: 12un; - size-policy: fixed, fixed; + fixed-height: var(hb-param-text-height-secondary); + fixed-width: 12un; text-align: right; + text-wrap-mode: no-wrap; } -NmMessageListViewItem::subject{ - fixed-height: var(hb-param-text-height-secondary); + +NmMessageListViewItem::subject { + fixed-height: var(hb-param-text-height-secondary); text-align: left; + text-wrap-mode: no-wrap; } -NmMessageListViewItem::icon1::icon{ - pref-height: var(hb-param-graphic-size-primary-small); - pref-width: var(hb-param-graphic-size-primary-small); - size-policy: fixed fixed; + +NmMessageListViewItem::icon1::icon { + alignment: right; + fixed-height: var(hb-param-graphic-size-primary-small); + fixed-width: var(hb-param-graphic-size-primary-small); } -NmMessageListViewItem::icon2::icon{ - pref-height: var(hb-param-graphic-size-primary-small); - pref-width: var(hb-param-graphic-size-primary-small); - size-policy: fixed fixed; + +NmMessageListViewItem::icon2::icon { + alignment: right; + fixed-height: var(hb-param-graphic-size-primary-small); + fixed-width: var(hb-param-graphic-size-primary-small); } diff -r 15bc1d5d6267 -r ae34e1715e21 emailuis/nmailui/inc/nmapplication.h --- a/emailuis/nmailui/inc/nmapplication.h Fri Jul 23 19:09:50 2010 +0300 +++ b/emailuis/nmailui/inc/nmapplication.h Thu Aug 05 21:09:09 2010 +0300 @@ -44,7 +44,7 @@ { Q_OBJECT public: - NmApplication(QObject *parent, quint32 accountId=0); + NmApplication(QObject *parent, quint64 accountId=0); ~NmApplication(); void enterNmUiView(NmUiStartParam *startParam); HbMainWindow* mainWindow(); @@ -68,9 +68,10 @@ void pushView(NmBaseView *view); void resetViewStack(); void hideApplication(); + void updateActivity(); private slots: - void updateActivity(); + void activityActivated(); signals: void applicationReady(); @@ -99,7 +100,6 @@ HbMessageBox *mQueryDialog; // Owned bool mBackButtonPressed; NmId mCurrentMailboxId; - bool mActivityUpdateNeeded; }; #endif // NMAPPLICATION_H diff -r 15bc1d5d6267 -r ae34e1715e21 emailuis/nmailui/inc/nmeditorview.h --- a/emailuis/nmailui/inc/nmeditorview.h Fri Jul 23 19:09:50 2010 +0300 +++ b/emailuis/nmailui/inc/nmeditorview.h Thu Aug 05 21:09:09 2010 +0300 @@ -148,6 +148,7 @@ QPointer mServiceSendingDialog; // Owned. bool mIsNotFetchedBefore; HbListWidget *mTBExtnContentWidget; // Owned + QString mHiddenPriorityName; }; diff -r 15bc1d5d6267 -r ae34e1715e21 emailuis/nmailui/inc/nmmessagelistviewitem.h --- a/emailuis/nmailui/inc/nmmessagelistviewitem.h Fri Jul 23 19:09:50 2010 +0300 +++ b/emailuis/nmailui/inc/nmmessagelistviewitem.h Thu Aug 05 21:09:09 2010 +0300 @@ -1,19 +1,19 @@ /* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ + * Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: + * + */ #ifndef NMMESSAGELISTVIEWITEM_H_ #define NMMESSAGELISTVIEWITEM_H_ @@ -32,7 +32,7 @@ class NmMessageListViewItem : public HbTreeViewItem { Q_OBJECT - + public: explicit NmMessageListViewItem(QGraphicsItem *parent = 0); virtual ~NmMessageListViewItem(); @@ -40,7 +40,7 @@ HbTreeViewItem *createItem(); bool canSetModelIndex(const QModelIndex &index) const; QRectF contiguousSelectionArea() const { return QRectF(); }; - + private: void createMessageItemLayout(); void setContentsToMessageItem(const NmMessageEnvelope &envelope, bool dividersActive); @@ -49,18 +49,17 @@ void setFonts(const QColor &colorRole, HbFontSpec &fontSpec); void getFontSizes(); QString senderFieldText(const NmMessageEnvelope &envelope); - + private: - HbTextItem *mSender; // Owned - HbTextItem *mSubject; // Owned - HbTextItem *mTime; // Owned - HbLabel *mDividerTitle; // Owned - HbFrameItem *mNewMsgIcon; // Owned - HbIconItem *mIcon1; // Owned - HbIconItem *mIcon2; // Owned + HbTextItem *mSender; // Owned + HbTextItem *mSubject; // Owned + HbTextItem *mTime; // Owned + HbLabel *mDividerTitle; // Owned + HbFrameItem *mNewMsgIcon; // Owned + HbIconItem *mIcon1; // Owned + HbIconItem *mIcon2; // Owned qreal mPrimarySize; qreal mSecondarySize; }; - #endif /* NMMESSAGELISTVIEWITEM_H_ */ diff -r 15bc1d5d6267 -r ae34e1715e21 emailuis/nmailui/nmailui.pro --- a/emailuis/nmailui/nmailui.pro Fri Jul 23 19:09:50 2010 +0300 +++ b/emailuis/nmailui/nmailui.pro Thu Aug 05 21:09:09 2010 +0300 @@ -125,3 +125,10 @@ RESOURCES += nmmessagelistviewitem.qrc RESOURCES += nmviewerheader.qrc TRANSLATIONS = mail.ts + +DOCML += conf/nmeditorview.docml \ + conf/nmmailboxlistview.docml \ + conf/nmmailboxselectiondialog.docml \ + conf/nmmailviewer.docml \ + conf/nmmessagelistview.docml \ + conf/nmmessagesearchlistview.docml diff -r 15bc1d5d6267 -r ae34e1715e21 emailuis/nmailui/nmailui.qrc --- a/emailuis/nmailui/nmailui.qrc Fri Jul 23 19:09:50 2010 +0300 +++ b/emailuis/nmailui/nmailui.qrc Thu Aug 05 21:09:09 2010 +0300 @@ -1,13 +1,13 @@ - - conf/nmeditorview.docml - conf/nmmailboxlistview.docml - conf/nmmailboxselectiondialog.docml - conf/nmmailviewer.docml - conf/nmmessagelistview.docml - conf/nmmessagesearchlistview.docml + + conf/nmeditorview.docml.bin + conf/nmmailboxlistview.docml.bin + conf/nmmailboxselectiondialog.docml.bin + conf/nmmailviewer.docml.bin + conf/nmmessagelistview.docml.bin + conf/nmmessagesearchlistview.docml.bin - - resources/mail_send.fxml + + resources/mail_send.fxml diff -r 15bc1d5d6267 -r ae34e1715e21 emailuis/nmailui/src/main.cpp --- a/emailuis/nmailui/src/main.cpp Fri Jul 23 19:09:50 2010 +0300 +++ b/emailuis/nmailui/src/main.cpp Thu Aug 05 21:09:09 2010 +0300 @@ -37,11 +37,11 @@ app.setApplicationName(hbTrId("txt_mail_title_mail")); NmApplication *nmApplication = NULL; - quint32 accountId = 0; + quint64 accountId = 0; + QString activateId = app.activateId(); if (app.activateReason() == Hb::ActivationReasonActivity && - app.activateId() == NmActivityName) { - QVariant data = app.activateParams().take("accountId"); - QString accountIdString = data.toString(); + activateId.startsWith(NmActivityName) ) { + QString accountIdString = activateId.mid(NmActivityName.length()); accountId = accountIdString.toULongLong(); nmApplication = new NmApplication(&app,accountId); } else { diff -r 15bc1d5d6267 -r ae34e1715e21 emailuis/nmailui/src/nmapplication.cpp --- a/emailuis/nmailui/src/nmapplication.cpp Fri Jul 23 19:09:50 2010 +0300 +++ b/emailuis/nmailui/src/nmapplication.cpp Thu Aug 05 21:09:09 2010 +0300 @@ -21,10 +21,6 @@ static const QString NmSendServiceName = "nmail.com.nokia.symbian.IFileShare"; -// Delay before a screenshot is taken after view activation so that view has time to draw itself, -// testing seems to indicate 500ms to be a good value -static const int NmActivityUpdateDelayMs = 500; - static const QString NmActivityName = "EmailInboxView"; /*! @@ -32,10 +28,11 @@ \brief Application class, creates main window and handles view switching. */ + /*! Constructor. */ -NmApplication::NmApplication(QObject *parent, quint32 accountId) +NmApplication::NmApplication(QObject *parent, quint64 accountId) : QObject(parent), mMainWindow(NULL), mViewStack(NULL), @@ -51,8 +48,7 @@ mSettingsViewLauncher(NULL), mViewReady(false), mQueryDialog(NULL), - mBackButtonPressed(false), - mActivityUpdateNeeded(false) + mBackButtonPressed(false) { TRAP_IGNORE(mUiEngine = NmUiEngine::instance()); @@ -82,18 +78,25 @@ if(accountId != 0) { QVariant mailbox; - mailbox.setValue(mUiEngine->getPluginIdByMailboxId(accountId).id()); + mailbox.setValue(accountId); mMailboxServiceInterface->displayInboxByMailboxId(mailbox); } mEffects = new NmUiEffects(*mMainWindow); + + QObject::connect(parent, SIGNAL(activate()), this, SLOT(activityActivated())); } + /*! Destructor. */ NmApplication::~NmApplication() { + // Remove the event filter early since catching application activated/ + // deactivated events now may cause a crash. + QCoreApplication::instance()->removeEventFilter(this); + if (mQueryDialog) { delete mQueryDialog; mQueryDialog = NULL; @@ -109,6 +112,7 @@ delete mViewStack; NmIcons::freeIcons(); + NmUiEngine::releaseInstance(mUiEngine); mUiEngine = NULL; @@ -129,8 +133,9 @@ if (mNetManager->cache()) { mNetManager->cache()->clear(); } - delete mNetManager; - mNetManager = NULL; + + delete mNetManager; + mNetManager = NULL; } // Effects need to be deleted before MainWindow. @@ -140,6 +145,7 @@ delete mSettingsViewLauncher; } + /*! Main application window creation. */ @@ -217,18 +223,22 @@ mMainWindow->setOptimizationFlag(QGraphicsView::DontSavePainterState); } - // installed to get ApplicationActivate/Deactivate events + // Install the event filter in order to receive ApplicationActivate/Deactivate + // events. QCoreApplication::instance()->installEventFilter(this); } + /*! Slot. React to view ready signal and call current view method. */ void NmApplication::viewReady() { mViewReady = true; + if (mViewStack && !mViewStack->isEmpty()) { NmBaseView *currentView = mViewStack->top(); + if (currentView) { currentView->viewReady(); emit applicationReady(); @@ -236,14 +246,15 @@ } } + /*! - Event filter. End key is filtered from the main window and either the - view takes case of the or the app is exited by default. + Event filter. End key is filtered from the main window and either the view + takes case or the app is exited by default. */ bool NmApplication::eventFilter(QObject *obj, QEvent *event) { bool consumed(false); - + if (obj && obj == mMainWindow && event && event->type() == QEvent::KeyPress) { QKeyEvent *keyEvent = static_cast(event); if (keyEvent->key() == Qt::Key_No) { @@ -251,18 +262,15 @@ // Exit application if no pending operations are on-going. } } - else if (event->type()==QEvent::ApplicationActivate) { + else if (event && event->type() == QEvent::ApplicationActivate) { NM_COMMENT("NmApplication::eventFilter ApplicationActivate"); - - // Activity thumbnails must be shown again - if (mActivityUpdateNeeded) { - mActivityUpdateNeeded = false; - updateActivity(); - } + // Update task switcher name & screenshot, we could have activated into some other mailbox + updateActivity(); } - else if (event->type()==QEvent::ApplicationDeactivate) { + else if (event && event->type() == QEvent::ApplicationDeactivate) { NM_COMMENT("NmApplication::eventFilter ApplicationDeactivate"); - + // Update the screenshot in the taskswitcher to represent current state + updateActivity(); // hide the sync indicator when app goes to background mUiEngine->enableSyncIndicator(false); } @@ -274,6 +282,7 @@ return consumed; } + /*! Push view to view stack. */ @@ -313,7 +322,6 @@ if (hideView) { mMainWindow->removeView(hideView); } - QTimer::singleShot(NmActivityUpdateDelayMs, this, SLOT(updateActivity())); } } @@ -346,6 +354,7 @@ } } + /*! Hide the application */ @@ -366,11 +375,9 @@ if (hbApp) { hbApp->activityManager()->removeActivity(NmActivityName); } - - // Update the activity when needed - mActivityUpdateNeeded = true; } + /*! Pop view from view stack. View object is deleted. */ @@ -425,7 +432,6 @@ mActiveViewId=showView->nmailViewId(); // Perform send animation if requested. mEffects->startEffect(NmUiEffects::NmEditorSendMessageAnimation); - QTimer::singleShot(NmActivityUpdateDelayMs, this, SLOT(updateActivity())); } delete view; @@ -454,6 +460,7 @@ } } + /*! Reset view stack. Remove and destroy view objects. */ @@ -471,6 +478,7 @@ } } + /*! Function activates view based on viewId parameter. If requested view is already open, it is requested to reload. Otherwise view object is created @@ -586,6 +594,7 @@ } } + /*! Function can be used from views to exit the application. View stack is cleared. Views can connect exit menu selection to this slot. @@ -611,6 +620,7 @@ qApp->quit(); } + /*! Exit the application in the next event loop. */ @@ -620,6 +630,7 @@ QMetaObject::invokeMethod(this, "exitApplication", Qt::QueuedConnection); } + /*! Getter for main window instance. */ @@ -628,6 +639,7 @@ return mMainWindow; } + /*! Getter for main UI extension manager. */ @@ -636,6 +648,7 @@ return *mExtensionManager; } + /*! Getter for network access manager. */ @@ -644,6 +657,7 @@ return *mNetManager; } + /*! Get the screen size. Function returns curtent screen size. */ @@ -677,6 +691,7 @@ return ret; } + /*! Handles all asynchronous operation's completions at UI level. */ @@ -708,6 +723,7 @@ } } + /*! Launches settings view of the specified mailbox. */ @@ -724,11 +740,11 @@ if( mailboxMetaData ) { // Launch. mSettingsViewLauncher->launchSettingsView(mLastOperationMailbox, mailboxMetaData->name()); - QTimer::singleShot(NmActivityUpdateDelayMs, this, SLOT(updateActivity())); } } } + /*! Stores the visibility state, e.g. when the service was launched. \return true if the app was visible. @@ -742,13 +758,15 @@ return mForegroundService; } + /*! - Update the thumbnail in the task switcher + Update the thumbnail in the task switcher. */ void NmApplication::updateActivity() { NmMailboxMetaData *meta = mUiEngine->mailboxById(mCurrentMailboxId); HbApplication* hbApp = dynamic_cast(parent()); + if (hbApp) { if (meta) { TsTaskSettings tasksettings; @@ -767,3 +785,25 @@ } } } + + +/*! + Switch to activated mailbox +*/ +void NmApplication::activityActivated() +{ + HbApplication* hbApp = dynamic_cast(parent()); + if (hbApp) { + quint64 accountId(0); + QString activateId = hbApp->activateId(); + if (hbApp->activateReason() == Hb::ActivationReasonActivity && + activateId.startsWith(NmActivityName) ) { + QString accountIdString = activateId.mid(NmActivityName.length()); + accountId = accountIdString.toULongLong(); + QVariant mailbox; + mailbox.setValue(accountId); + mMailboxServiceInterface->displayInboxByMailboxId(mailbox); + } + } +} + diff -r 15bc1d5d6267 -r ae34e1715e21 emailuis/nmailui/src/nmeditorheader.cpp --- a/emailuis/nmailui/src/nmeditorheader.cpp Fri Jul 23 19:09:50 2010 +0300 +++ b/emailuis/nmailui/src/nmeditorheader.cpp Thu Aug 05 21:09:09 2010 +0300 @@ -124,6 +124,7 @@ mAttachmentList = new NmAttachmentList(*mAttachmentListWidget); mAttachmentList->setParent(this); // ownership changes mAttachmentListWidget->hide(); + mLayout->removeItem(&mAttachmentList->listWidget()); // Add priority icon mPriorityIcon = qobject_cast @@ -409,6 +410,8 @@ mAttachmentList->insertAttachment(fileName, fileSize, nmid); if (!mAttachmentList->listWidget().isVisible()) { + // attachment list is inserted just before the body widget (see docml). + mLayout->insertItem(mLayout->count() - 1, &mAttachmentList->listWidget()); mAttachmentList->listWidget().show(); } diff -r 15bc1d5d6267 -r ae34e1715e21 emailuis/nmailui/src/nmeditorview.cpp --- a/emailuis/nmailui/src/nmeditorview.cpp Fri Jul 23 19:09:50 2010 +0300 +++ b/emailuis/nmailui/src/nmeditorview.cpp Thu Aug 05 21:09:09 2010 +0300 @@ -22,8 +22,10 @@ // extension list item frame. static const QString NmPopupListFrame = "qtg_fr_popup_list_normal"; - static const QString NmDelimiter("; "); +static const QString NmPriorityLow("low"); +static const QString NmPriorityNormal("normal"); +static const QString NmPriorityHigh("high"); /*! \class NmEditorView @@ -56,7 +58,8 @@ mAttachmentPicker(NULL), mCcBccFieldVisible(false), mServiceSendingDialog(NULL), - mIsNotFetchedBefore(true) + mIsNotFetchedBefore(true), + mHiddenPriorityName(NmPriorityNormal) { NM_FUNCTION; @@ -409,11 +412,12 @@ startParam.mailboxId(), startParam.folderId(), startParam.messageId()); - mIsNotFetchedBefore = false; } else { startMessageCreation(startParam); } + + mIsNotFetchedBefore = false; } } @@ -958,7 +962,10 @@ QList list; extMngr.getActions(request, list); for (int i = 0; i < list.count(); i++) { - mPrioritySubMenu->addAction(list[i]); + // check what priority has already been selected and hide it from options menu + if (!list[i]->objectName().contains(mHiddenPriorityName)) { + mPrioritySubMenu->addAction(list[i]); + } } mPrioritySubMenu->setObjectName("editorPrioritySubMenu"); mPrioritySubMenu->setTitle(hbTrId("txt_mail_opt_add_priority")); @@ -1371,12 +1378,15 @@ if (mMessage) { NmMessagePriority messagePriority = NmMessagePriorityNormal; + mHiddenPriorityName = NmPriorityNormal; if (priority == NmActionResponseCommandPriorityHigh) { messagePriority = NmMessagePriorityHigh; + mHiddenPriorityName = NmPriorityHigh; } else if (priority == NmActionResponseCommandPriorityLow) { messagePriority = NmMessagePriorityLow; + mHiddenPriorityName = NmPriorityLow; } mMessage->envelope().setPriority(messagePriority); } diff -r 15bc1d5d6267 -r ae34e1715e21 emailuis/nmailui/src/nmmessagelistviewitem.cpp --- a/emailuis/nmailui/src/nmmessagelistviewitem.cpp Fri Jul 23 19:09:50 2010 +0300 +++ b/emailuis/nmailui/src/nmmessagelistviewitem.cpp Thu Aug 05 21:09:09 2010 +0300 @@ -1,96 +1,90 @@ /* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* -*/ + * Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: + * + */ #include "nmuiheaders.h" /*! \class NmMessageListViewItem - \brief list view item for message list view -*/ + \brief List view item for message list view. + */ static const int NmFolderTypeRole = Qt::UserRole+1; /*! - Constructor -*/ -NmMessageListViewItem::NmMessageListViewItem(QGraphicsItem *parent): - HbTreeViewItem(parent), - mSender(NULL), - mSubject(NULL), - mTime(NULL), - mDividerTitle(NULL), - mNewMsgIcon(NULL), - mIcon1(NULL), - mIcon2(NULL), - mPrimarySize(0), - mSecondarySize(0) + Constructor. + */ +NmMessageListViewItem::NmMessageListViewItem(QGraphicsItem *parent) +: HbTreeViewItem(parent), + mSender(NULL), + mSubject(NULL), + mTime(NULL), + mDividerTitle(NULL), + mNewMsgIcon(NULL), + mIcon1(NULL), + mIcon2(NULL), + mPrimarySize(0), + mSecondarySize(0) { - NM_FUNCTION; } /*! - Destruction. -*/ + Destructor. + */ NmMessageListViewItem::~NmMessageListViewItem() { - NM_FUNCTION; } /*! -*/ + Create item. + */ HbTreeViewItem *NmMessageListViewItem::createItem() { - NM_FUNCTION; - return new NmMessageListViewItem(*this); } /*! - boolean value indicating model index availability. Always true since - this item prototype is used for both divider and message -*/ + Boolean value indicating model index availability. Always true since + this item prototype is used for both divider and message. + */ bool NmMessageListViewItem::canSetModelIndex(const QModelIndex &index) const { - NM_FUNCTION; - Q_UNUSED(index); - // This item class can handle all items in message list + // This item class can handle all items in message list. return true; } /*! - update child items. List calls this function whenever item is needed + Update child items. List calls this function whenever item is needed to be updated. -*/ + */ void NmMessageListViewItem::updateChildItems() { - NM_FUNCTION; - // Get model pointer NmMessageListModelItem *msgModelItem = modelIndex().data( - Qt::DisplayRole).value(); + Qt::DisplayRole).value(); // Check whether item is message item or title divider - // and set the layout accordingly, dividers not currently used + // and set the layout accordingly. Dividers are not currently used. if (msgModelItem && msgModelItem->itemType() == NmMessageListModelItem::NmMessageItemMessage){ NmMessageListModel *model = static_cast(msgModelItem->model()); if (model){ - // First set item layout + // First set item layout. createMessageItemLayout(); - // Set content data to item after layout is created + // Set content data to item after layout is created. setContentsToMessageItem(msgModelItem->envelope(), model->dividersActive()); } } @@ -99,67 +93,57 @@ /*! Set item layout. - Function does not take ownership of model or model item -*/ + Function does not take ownership of model or model item. + */ void NmMessageListViewItem::createMessageItemLayout() -{ - NM_FUNCTION; - +{ getFontSizes(); - // Create sender label and set name from widgetml - if (!mSender){ + // Create sender label and set name from widgetml. + if (!mSender) { mSender = new HbTextItem(this); HbStyle::setItemName(mSender, "sender"); mSender->setObjectName("ListViewItemMessageSender"); - mSender->setTextWrapping(Hb::TextNoWrap); } - // Create time label and set name from widgetml - if (!mTime){ + // Create time label and set name from widgetml. + if (!mTime) { mTime = new HbTextItem(this); HbStyle::setItemName(mTime, "time"); mTime->setObjectName("ListViewItemMessageTime"); } - // Create subject label and set name from widgetml - if (!mSubject){ + // Create subject label and set name from widgetml. + if (!mSubject) { mSubject = new HbTextItem(this); HbStyle::setItemName(mSubject, "subject"); mSubject->setObjectName("ListViewItemMessageSubject"); - mSubject->setTextWrapping(Hb::TextNoWrap); } - // Set new message icon + // Set new message icon. if (!mNewMsgIcon) { mNewMsgIcon = new HbFrameItem(this); - } - // Create priority icon and set name from widgetml - if (!mIcon1){ + } + // Create priority icon and set name from widgetml. + if (!mIcon1) { mIcon1 = new HbIconItem(this); HbStyle::setItemName(mIcon1, "icon1"); - // According to layout guide, icon alignment is always right - mIcon1->setAlignment(Qt::AlignRight); } - // Create attachment icon and set name from widgetml - if (!mIcon2){ + // Create attachment icon and set name from widgetml. + if (!mIcon2) { mIcon2 = new HbIconItem(this); HbStyle::setItemName(mIcon2, "icon2"); - // According to layout guide, icon alignment is always right - mIcon2->setAlignment(Qt::AlignRight); } setObjectName("ListViewItemMessage"); } /*! - set item text label contents, icons, etc. - Function does not take ownership of model or model item + Set item text label contents, icons, etc. + Function does not take ownership of model or model item. */ void NmMessageListViewItem::setContentsToMessageItem(const NmMessageEnvelope &envelope, bool dividersActive) { - NM_FUNCTION; - - // member variables are created in previous function - // sender + // Member variables are created in previous function. + // Sender. mSender->setText(senderFieldText(envelope)); - // time + // Time. HbExtendedLocale locale = HbExtendedLocale::system(); QDateTime localTime = envelope.sentTime().addSecs(locale.universalTimeOffset()); QDate sentLocalDate = localTime.date(); @@ -172,14 +156,14 @@ QString shortDateSpec = r_qtn_date_without_year; mTime->setText(locale.format(sentLocalDate, shortDateSpec)); } - // subject + // Subject. QString subjectText = envelope.subject(); if (subjectText.length()) { mSubject->setText(subjectText); } else { mSubject->setText(hbTrId("txt_mail_dblist_val_no_subject")); } - // priority + // Priority. bool priorityIs(false); mIcon1->hide(); mIcon2->hide(); @@ -200,7 +184,7 @@ default: break; } - // attachments + // Attachments. HbIconItem *attaIcon = (priorityIs ? mIcon2 : mIcon1); if (envelope.hasAttachments()) { HbIcon &icon = NmIcons::getIcon(NmIcons::NmIconAttachment); @@ -208,12 +192,11 @@ attaIcon->setObjectName("ListViewItemMessageIconAttachment"); attaIcon->show(); } - // message read status + // Message read status. bool msgReadStatus(envelope.isRead()); HbFrameDrawer *drawer(NULL); HbStyle::setItemName(mNewMsgIcon, "msgicon"); if (!msgReadStatus) { - setFontsUnread(); mNewMsgIcon->setObjectName("ListViewItemMessageIconUnread"); drawer = new HbFrameDrawer("qtg_fr_list_new_item", @@ -223,10 +206,9 @@ mNewMsgIcon->setFrameDrawer(drawer); mNewMsgIcon->show(); } else { - setFontsRead(); mNewMsgIcon->setObjectName("ListViewItemMessageIconRead"); - drawer = new HbFrameDrawer(); // Create empty drawer + drawer = new HbFrameDrawer(); // Create empty drawer. drawer->setFillWholeRect(false); // Set drawer. Takes ownership of the drawer and deletes previous drawer. mNewMsgIcon->setFrameDrawer(drawer); @@ -235,37 +217,31 @@ } /*! - setFontsUnread -*/ + Set fonts unread. + */ void NmMessageListViewItem::setFontsUnread() -{ - NM_FUNCTION; - +{ static QColor colorRole = HbColorScheme::color("qtc_list_item_title_normal"); HbFontSpec fontSpec(HbFontSpec::Primary); setFonts(colorRole, fontSpec); } /*! - setFontsRead -*/ + Set fonts read. + */ void NmMessageListViewItem::setFontsRead() { - NM_FUNCTION; - static QColor colorRole = HbColorScheme::color("qtc_list_item_content_normal"); HbFontSpec fontSpec(HbFontSpec::Secondary); setFonts(colorRole, fontSpec); } /*! - getFontSizes. -*/ + Get font sizes. + */ void NmMessageListViewItem::getFontSizes() { - NM_FUNCTION; - - // Get font sizes from style + // Get font sizes from style. qreal currentSize; bool found = style()->parameter(QString("hb-param-text-height-primary"), currentSize ); if (found) { @@ -278,22 +254,18 @@ } /*! - setFonts. -*/ + Set fonts. + */ void NmMessageListViewItem::setFonts(const QColor &colorRole, HbFontSpec &fontSpec) { - NM_FUNCTION; - // Change sizes explicitly since css is overwritten in polish now. if (mSender && mSubject && mTime) { - if (mPrimarySize) { fontSpec.setTextHeight(mPrimarySize); } mSender->setFontSpec(fontSpec); mSender->setTextColor(colorRole); - if (mSecondarySize) { fontSpec.setTextHeight(mSecondarySize); } @@ -305,19 +277,17 @@ } /*! - senderFieldText. Function returns sender field text from - envelope based on currently used function -*/ + Get sender field text. Function returns sender field text from + envelope based on currently used function. + */ QString NmMessageListViewItem::senderFieldText(const NmMessageEnvelope &envelope) { - NM_FUNCTION; - QString ret; QVariant folderType = modelIndex().data( NmFolderTypeRole).value(); switch (folderType.toInt()) { // Outbox, drafts and sent folder, sender name is - // replaced with first recipient from to/cc list + // replaced with first recipient from to/cc list. case NmFolderOutbox: case NmFolderDrafts: case NmFolderSent: @@ -343,10 +313,9 @@ ret += addressToUse.address(); } } - } break; - // All other folders will show sender display name + // All other folders will show sender display name. default: { QString displayName = envelope.sender().displayName(); @@ -361,4 +330,3 @@ } return ret; } - diff -r 15bc1d5d6267 -r ae34e1715e21 emailuis/nmailui/src/nmrecipientfield.cpp --- a/emailuis/nmailui/src/nmrecipientfield.cpp Fri Jul 23 19:09:50 2010 +0300 +++ b/emailuis/nmailui/src/nmrecipientfield.cpp Thu Aug 05 21:09:09 2010 +0300 @@ -17,9 +17,9 @@ #include "nmuiheaders.h" -static const QString NmContactsServiceName = "com.nokia.services.phonebookservices"; -static const QString NmContactsInterfaceName = "Fetch"; -static const QString NmContactsOperationName = "fetch(QString,QString,QString)"; +static const QString NmContactsServiceName = "phonebookservices"; +static const QString NmContactsInterfaceName = "com.nokia.symbian.IContactsFetch"; +static const QString NmContactsOperationName = "multiFetch(QString,QString)"; static const int NmMaxRows = 10000; @@ -36,7 +36,7 @@ mLaunchContactsPickerButton(NULL) { NM_FUNCTION; - + // Load the widgets from nmeditorview.docml. The names match to the definitions in that docml. mWidget = qobject_cast (mDocumentLoader.findWidget(mObjectPrefix + "Field")); @@ -47,13 +47,13 @@ mRecipientsEditor = qobject_cast (mDocumentLoader.findWidget(mObjectPrefix + "Edit")); if (mRecipientsEditor) { - mRecipientsEditor->setMaxRows(NmMaxRows); + mRecipientsEditor->setMaxRows(NmMaxRows); } mLaunchContactsPickerButton = qobject_cast (mDocumentLoader.findWidget(mObjectPrefix + "Button")); if (mLaunchContactsPickerButton) { - mLaunchContactsPickerButton->setIcon(NmIcons::getIcon(NmIcons::NmIconContacts)); + mLaunchContactsPickerButton->setIcon(NmIcons::getIcon(NmIcons::NmIconContacts)); } createConnections(); @@ -65,7 +65,7 @@ void NmRecipientField::createConnections() { NM_FUNCTION; - + connect(mRecipientsEditor, SIGNAL(textChanged(const QString &)), this, SIGNAL(textChanged(const QString &))); connect(mRecipientsEditor, SIGNAL(cursorPositionChanged(int, int)), @@ -76,7 +76,7 @@ this, SIGNAL(selectionChanged())); connect(mLaunchContactsPickerButton, SIGNAL(pressed()), this, SIGNAL(launchContactsPickerButtonClicked())); - connect(mLaunchContactsPickerButton, SIGNAL(pressed()), + connect(mLaunchContactsPickerButton, SIGNAL(pressed()), this, SLOT(launchContactsPicker())); } @@ -95,7 +95,7 @@ qreal NmRecipientField::height() { NM_FUNCTION; - + return mWidget->geometry().height(); } @@ -105,7 +105,7 @@ NmRecipientLineEdit *NmRecipientField::editor() const { NM_FUNCTION; - + return mRecipientsEditor; } @@ -116,7 +116,7 @@ const QString NmRecipientField::text() const { NM_FUNCTION; - + return mRecipientsEditor->text(); } @@ -127,7 +127,7 @@ void NmRecipientField::setText(const QString &newText) { NM_FUNCTION; - + if (newText != mRecipientsEditor->text()) { mRecipientsEditor->setText(newText); emit textChanged(newText); @@ -141,36 +141,35 @@ void NmRecipientField::launchContactsPicker() { NM_FUNCTION; - + XQApplicationManager mAppmgr; XQAiwRequest *launchContactsPickerRequest; - + bool isEmbeded = true; - launchContactsPickerRequest = mAppmgr.create(NmContactsServiceName, NmContactsInterfaceName, + launchContactsPickerRequest = mAppmgr.create(NmContactsServiceName, NmContactsInterfaceName, NmContactsOperationName, isEmbeded); - + if (launchContactsPickerRequest) { connect(launchContactsPickerRequest, SIGNAL(requestOk(QVariant)), mRecipientsEditor, SLOT(addSelectedContacts(QVariant))); } else { - // Failed creating request + // Failed creating request NM_ERROR(1,"XQApplicationManager: failed creating fecth contactspicker request"); return; } - QVariantList args; + QVariantList args; args << hbTrId("txt_mail_select_contacts"); - args << KCntActionEmail; - args << KCntFilterDisplayAll; - launchContactsPickerRequest->setArguments(args); - + args << KCntActionEmail; + launchContactsPickerRequest->setArguments(args); + // Send request if (!launchContactsPickerRequest->send()) { - //Failed sending request + //Failed sending request NM_ERROR(1,"XQApplicationManager: failed sending request"); } - + delete launchContactsPickerRequest; launchContactsPickerRequest = NULL; } diff -r 15bc1d5d6267 -r ae34e1715e21 emailuis/nmailui/src/nmviewerview.cpp --- a/emailuis/nmailui/src/nmviewerview.cpp Fri Jul 23 19:09:50 2010 +0300 +++ b/emailuis/nmailui/src/nmviewerview.cpp Thu Aug 05 21:09:09 2010 +0300 @@ -34,6 +34,9 @@ static const QString NmHttpsLinkScheme = "https"; static const QString NmMailtoLinkScheme = "mailto"; +// Local constants +const qreal NmZoomFactor = 1.5; + /*! \class NmViewerView \brief Mail viewer class @@ -194,7 +197,7 @@ QWebSettings *settings = mWebView->settings(); if (settings) { settings->setAttribute(QWebSettings::AutoLoadImages, true); - settings->setAttribute(QWebSettings::PrivateBrowsingEnabled, true); + settings->setAttribute(QWebSettings::PrivateBrowsingEnabled, true); } QWebPage *page = mWebView->page(); if (page) { @@ -202,6 +205,7 @@ if (frame) { frame->setScrollBarPolicy(Qt::Vertical,Qt::ScrollBarAlwaysOff); frame->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAlwaysOff); + frame->setTextSizeMultiplier(NmZoomFactor); connect(mWebView->page()->mainFrame(), SIGNAL(contentsSizeChanged(const QSize&)), this, SLOT(scaleWebViewWhenLoading(const QSize&))); @@ -688,7 +692,7 @@ else { mWebView->setPreferredWidth(width); } - mWebView->setPreferredHeight(height); + mWebView->setMinimumHeight(height); } } mLatestLoadingSize = size; @@ -702,12 +706,9 @@ QRectF myGeometry = geometry(); QWebPage *page = mWebView->page(); if (mWebView && page) { - page->setViewportSize(myGeometry.size().toSize()); + page->setPreferredContentsSize(myGeometry.size().toSize()); QSizeF contentSize = page->mainFrame()->contentsSize(); - int width = (int)contentSize.width(); - int height = (int)contentSize.height(); - mWebView->setPreferredWidth(width); - mWebView->setPreferredHeight(height); + mWebView->setPreferredSize(contentSize); } } diff -r 15bc1d5d6267 -r ae34e1715e21 emailuis/nmailui/src/nmviewerwebview.cpp --- a/emailuis/nmailui/src/nmviewerwebview.cpp Fri Jul 23 19:09:50 2010 +0300 +++ b/emailuis/nmailui/src/nmviewerwebview.cpp Thu Aug 05 21:09:09 2010 +0300 @@ -29,7 +29,7 @@ grabGesture(Qt::TapGesture); grabGesture(Qt::PinchGesture); // Prevent this widget from accepting focus. - setFocusPolicy(Qt::NoFocus); + setFocusPolicy(Qt::NoFocus); } /*! diff -r 15bc1d5d6267 -r ae34e1715e21 emailuis/nmailuiwidgets/bwins/nmailuiwidgetsu.def --- a/emailuis/nmailuiwidgets/bwins/nmailuiwidgetsu.def Fri Jul 23 19:09:50 2010 +0300 +++ b/emailuis/nmailuiwidgets/bwins/nmailuiwidgetsu.def Thu Aug 05 21:09:09 2010 +0300 @@ -130,4 +130,6 @@ ?tr@NmHtmlLineEdit@@SA?AVQString@@PBD0@Z @ 129 NONAME ; class QString NmHtmlLineEdit::tr(char const *, char const *) ?qt_metacall@NmHtmlLineEdit@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 130 NONAME ; int NmHtmlLineEdit::qt_metacall(enum QMetaObject::Call, int, void * *) ?qt_metacall@NmBaseViewScrollArea@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 131 NONAME ; int NmBaseViewScrollArea::qt_metacall(enum QMetaObject::Call, int, void * *) + ?checkColor@NmAttachmentListWidget@@AAE?AVQColor@@XZ @ 132 NONAME ; class QColor NmAttachmentListWidget::checkColor(void) + ?changeEvent@NmAttachmentListWidget@@MAEXPAVQEvent@@@Z @ 133 NONAME ; void NmAttachmentListWidget::changeEvent(class QEvent *) diff -r 15bc1d5d6267 -r ae34e1715e21 emailuis/nmailuiwidgets/nmailuiwidgets.pro --- a/emailuis/nmailuiwidgets/nmailuiwidgets.pro Fri Jul 23 19:09:50 2010 +0300 +++ b/emailuis/nmailuiwidgets/nmailuiwidgets.pro Thu Aug 05 21:09:09 2010 +0300 @@ -61,3 +61,5 @@ } RESOURCES += nmailuiwidgets.qrc + +DOCML += resources/nmattachmentlistwidget.docml diff -r 15bc1d5d6267 -r ae34e1715e21 emailuis/nmailuiwidgets/nmailuiwidgets.qrc --- a/emailuis/nmailuiwidgets/nmailuiwidgets.qrc Fri Jul 23 19:09:50 2010 +0300 +++ b/emailuis/nmailuiwidgets/nmailuiwidgets.qrc Thu Aug 05 21:09:09 2010 +0300 @@ -1,10 +1,10 @@ - - resources/nmattachmentlistwidget.docml - resources/nmattachmentlistitem.widgetml - resources/nmattachmentlistitem.css - resources/nmeditortexteditblack.css - resources/nmeditortexteditblue.css - resources/nmeditortextedit.widgetml + + resources/nmattachmentlistwidget.docml.bin + resources/nmattachmentlistitem.widgetml + resources/nmattachmentlistitem.css + resources/nmeditortexteditblack.css + resources/nmeditortexteditblue.css + resources/nmeditortextedit.widgetml diff -r 15bc1d5d6267 -r ae34e1715e21 emailuis/nmhswidget/nmhswidget.pro --- a/emailuis/nmhswidget/nmhswidget.pro Fri Jul 23 19:09:50 2010 +0300 +++ b/emailuis/nmhswidget/nmhswidget.pro Thu Aug 05 21:09:09 2010 +0300 @@ -73,3 +73,6 @@ DEPENDPATH += . TRANSLATIONS = mailwidget.ts + +DOCML += conf/nmhswidgetmail.docml \ + conf/nmhswidget.docml diff -r 15bc1d5d6267 -r ae34e1715e21 emailuis/nmhswidget/nmhswidget.qrc --- a/emailuis/nmhswidget/nmhswidget.qrc Fri Jul 23 19:09:50 2010 +0300 +++ b/emailuis/nmhswidget/nmhswidget.qrc Thu Aug 05 21:09:09 2010 +0300 @@ -1,6 +1,6 @@ - conf/nmhswidgetmail.docml - conf/nmhswidget.docml + conf/nmhswidgetmail.docml.bin + conf/nmhswidget.docml.bin diff -r 15bc1d5d6267 -r ae34e1715e21 emailuis/nmindicatorplugin/src/nmsendingindicator.cpp --- a/emailuis/nmindicatorplugin/src/nmsendingindicator.cpp Fri Jul 23 19:09:50 2010 +0300 +++ b/emailuis/nmindicatorplugin/src/nmsendingindicator.cpp Thu Aug 05 21:09:09 2010 +0300 @@ -49,7 +49,7 @@ */ QVariant NmSendingIndicator::indicatorData(int role) const { - if (role==DecorationNameRole) { + if (role==DecorationNameRole || role==MonoDecorationNameRole) { // Must return non-empty to make the indicator visible return " "; } diff -r 15bc1d5d6267 -r ae34e1715e21 emailuis/nmindicatorplugin/src/nmsyncindicator.cpp --- a/emailuis/nmindicatorplugin/src/nmsyncindicator.cpp Fri Jul 23 19:09:50 2010 +0300 +++ b/emailuis/nmindicatorplugin/src/nmsyncindicator.cpp Thu Aug 05 21:09:09 2010 +0300 @@ -30,7 +30,7 @@ QVariant NmSyncIndicator::indicatorData(int role) const { - if (role == DecorationNameRole ) { + if (role == DecorationNameRole || role == MonoDecorationNameRole) { // Must return non-empty to make the indicator visible return " "; } diff -r 15bc1d5d6267 -r ae34e1715e21 emailuis/nmsettingui/inc/nmmailboxsettingview.h --- a/emailuis/nmsettingui/inc/nmmailboxsettingview.h Fri Jul 23 19:09:50 2010 +0300 +++ b/emailuis/nmsettingui/inc/nmmailboxsettingview.h Thu Aug 05 21:09:09 2010 +0300 @@ -22,10 +22,11 @@ #include #include "nmsettingscommon.h" +class QModelIndex; +class QGraphicsItem; class HbDataForm; class HbDataFormModel; class NmMailboxSettingsManager; -class QGraphicsItem; class NmId; @@ -50,6 +51,7 @@ void mailboxPropertyChanged(const NmId &mailboxId, QVariant property, QVariant value); + void itemPress(const QModelIndex &index); private: diff -r 15bc1d5d6267 -r ae34e1715e21 emailuis/nmsettingui/nmsettingui.pro --- a/emailuis/nmsettingui/nmsettingui.pro Fri Jul 23 19:09:50 2010 +0300 +++ b/emailuis/nmsettingui/nmsettingui.pro Thu Aug 05 21:09:09 2010 +0300 @@ -86,4 +86,6 @@ RESOURCES += nmsettingui.qrc +DOCML += conf/nmmailboxsettingview.docml + # End of file. diff -r 15bc1d5d6267 -r ae34e1715e21 emailuis/nmsettingui/nmsettingui.qrc --- a/emailuis/nmsettingui/nmsettingui.qrc Fri Jul 23 19:09:50 2010 +0300 +++ b/emailuis/nmsettingui/nmsettingui.qrc Thu Aug 05 21:09:09 2010 +0300 @@ -1,6 +1,6 @@ - - conf/nmmailboxsettingview.docml + + conf/nmmailboxsettingview.docml.bin \ No newline at end of file diff -r 15bc1d5d6267 -r ae34e1715e21 emailuis/nmsettingui/src/nmmailboxsettingview.cpp --- a/emailuis/nmsettingui/src/nmmailboxsettingview.cpp Fri Jul 23 19:09:50 2010 +0300 +++ b/emailuis/nmsettingui/src/nmmailboxsettingview.cpp Thu Aug 05 21:09:09 2010 +0300 @@ -15,6 +15,8 @@ * */ +#include + #include #include #include @@ -76,6 +78,10 @@ } if (mForm) { + + connect(mForm, SIGNAL(pressed(QModelIndex)), + this, SLOT(itemPress(QModelIndex))); + // Fix for dataform item recycling. mForm->setItemRecycling(false); @@ -163,4 +169,39 @@ return mMailboxId; } +/*! + Called when item is pressed on the view. + + \param index Index to the pressed item. +*/ +void NmMailboxSettingView::itemPress(const QModelIndex &index) +{ + NM_FUNCTION; + + int type(index.data(HbDataFormModelItem::ItemTypeRole).toInt()); + + if (type == HbDataFormModelItem::GroupItem) { + // Scroll the groupitem to top if needed. + HbDataFormViewItem *item = static_cast(mForm->itemByIndex(index)); + + if (!item->isExpanded()) { + mForm->scrollTo(index, HbAbstractItemView::PositionAtTop); + }else { + // Hide the virtual keyboard + QInputContext *ic = qApp->inputContext(); + if (ic) { + QEvent *closeEvent = new QEvent(QEvent::CloseSoftwareInputPanel); + ic->filterEvent(closeEvent); + delete closeEvent; + } + } + } + + if (type == HbDataFormModelItem::TextItem) { + // Turn off predictive input for line-edit. + HbDataFormViewItem *item = static_cast(mForm->itemByIndex(index)); + HbWidget *widget = item->dataItemContentWidget(); + widget->setInputMethodHints(Qt::ImhNoPredictiveText); + } +} // End of file. diff -r 15bc1d5d6267 -r ae34e1715e21 ipsservices/ipssosaoplugin/inc/IpsSosAOBaseAgent.h --- a/ipsservices/ipssosaoplugin/inc/IpsSosAOBaseAgent.h Fri Jul 23 19:09:50 2010 +0300 +++ b/ipsservices/ipssosaoplugin/inc/IpsSosAOBaseAgent.h Thu Aug 05 21:09:09 2010 +0300 @@ -22,9 +22,6 @@ #include #include -#include - -#include "ipsplgcommon.h" class CIpsSetDataApi; class CIpsSosAOImapSyncOp; diff -r 15bc1d5d6267 -r ae34e1715e21 ipsservices/ipssosaoplugin/inc/IpsSosAOSettingsHandler.h --- a/ipsservices/ipssosaoplugin/inc/IpsSosAOSettingsHandler.h Fri Jul 23 19:09:50 2010 +0300 +++ b/ipsservices/ipssosaoplugin/inc/IpsSosAOSettingsHandler.h Thu Aug 05 21:09:09 2010 +0300 @@ -21,7 +21,6 @@ #define IPSSOSAOSETTINGSHANDLER_H_ #include -#include #include "ipsplgcommon.h" #include "nmipssettingitems.h" diff -r 15bc1d5d6267 -r ae34e1715e21 ipsservices/ipssosaoplugin/inc/ipssosaopluginheaders.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ipsservices/ipssosaoplugin/inc/ipssosaopluginheaders.h Thu Aug 05 21:09:09 2010 +0300 @@ -0,0 +1,84 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* Contains mailbox specified always online logic +* +*/ + +#ifndef IPSSOSAOPLUGINHEADERS_H_ +#define IPSSOSAOPLUGINHEADERS_H_ + +// Symbian +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// qt +#include + +// qt extensions +#include +#include +#include + +// emailcommon +#include "CFSMailCommon.h" + +// emaildebug +#include "emailtrace.h" + +// nmailbase +#include "nmcommon.h" + +// nmipssettings +#include "nmipssettingitems.h" +#include "ipssettingkeys.h" + +// ipssosplugin +#include "ipsplgsosbaseplugin.hrh" +#include "ipsplgcommon.h" +#include "ipsplgsmtpoperation.h" +#include "ipsplgimap4populateop.h" + +// ipssosaoplugin +#include "IpsSosAOBaseAgent.h" +#include "IpsSosAOEMNResolver.h" +#include "IpsSosAoExtendedSettingsManager.h" +#include "IpsSosAOImapAgent.h" +#include "IpsSosAOImapPopLogic.h" +#include "IpsSosAOMboxLogic.h" +#include "IpsSosAOPlugin.hrh" +#include "IpsSosAOPluginEComInterface.h" +#include "IpsSosAOPluginTimer.h" +#include "IpsSosAOPopAgent.h" +#include "IpsSosAOSchedulerUtils.h" +#include "IpsSosAOSettingsHandler.h" +#include "IpsSosAOSmtpAgent.h" +#include "IpsSosAOSmtpSendWatcher.h" + +#endif /* IPSSOSAOPLUGINHEADERS_H_ */ diff -r 15bc1d5d6267 -r ae34e1715e21 ipsservices/ipssosaoplugin/src/IpsPlgAOPluginImplementationTable.cpp --- a/ipsservices/ipssosaoplugin/src/IpsPlgAOPluginImplementationTable.cpp Fri Jul 23 19:09:50 2010 +0300 +++ b/ipsservices/ipssosaoplugin/src/IpsPlgAOPluginImplementationTable.cpp Thu Aug 05 21:09:09 2010 +0300 @@ -15,12 +15,7 @@ * */ - -#include "emailtrace.h" -#include -#include - -#include "IpsSosAOPluginEComInterface.h" +#include "ipssosaopluginheaders.h" //-------------------------------- // Exported proxy for instantiation method resolution diff -r 15bc1d5d6267 -r ae34e1715e21 ipsservices/ipssosaoplugin/src/IpsSosAOBaseAgent.cpp --- a/ipsservices/ipssosaoplugin/src/IpsSosAOBaseAgent.cpp Fri Jul 23 19:09:50 2010 +0300 +++ b/ipsservices/ipssosaoplugin/src/IpsSosAOBaseAgent.cpp Thu Aug 05 21:09:09 2010 +0300 @@ -16,14 +16,7 @@ * */ -#include "emailtrace.h" -#include - -#include "ipsplgsosbaseplugin.hrh" - -#include "IpsSosAOBaseAgent.h" -#include "IpsSosAOImapAgent.h" -#include "IpsSosAOPopAgent.h" +#include "ipssosaopluginheaders.h" _LIT( KIpsAOPlgPanicLit, "IpsAOPlg"); // ---------------------------------------------------------------------------- diff -r 15bc1d5d6267 -r ae34e1715e21 ipsservices/ipssosaoplugin/src/IpsSosAOEMNResolver.cpp --- a/ipsservices/ipssosaoplugin/src/IpsSosAOEMNResolver.cpp Fri Jul 23 19:09:50 2010 +0300 +++ b/ipsservices/ipssosaoplugin/src/IpsSosAOEMNResolver.cpp Thu Aug 05 21:09:09 2010 +0300 @@ -16,15 +16,8 @@ * */ - // INCLUDE FILES -#include "emailtrace.h" -#include -#include - -#include "IpsSosAOEMNResolver.h" -#include "IpsSosAOMboxLogic.h" -#include "IpsSosAOBaseAgent.h" +#include "ipssosaopluginheaders.h" // Literals used when trying to match a mailbox // to a received EMN message diff -r 15bc1d5d6267 -r ae34e1715e21 ipsservices/ipssosaoplugin/src/IpsSosAOImapAgent.cpp --- a/ipsservices/ipssosaoplugin/src/IpsSosAOImapAgent.cpp Fri Jul 23 19:09:50 2010 +0300 +++ b/ipsservices/ipssosaoplugin/src/IpsSosAOImapAgent.cpp Thu Aug 05 21:09:09 2010 +0300 @@ -16,29 +16,7 @@ * */ - -#include "emailtrace.h" -#include -#include -#include -#include -#include -#include -#include "CFSMailCommon.h" - -#include "IpsSosAOImapAgent.h" -#include "IpsSosAOImapPopLogic.h" - - -// -#include "IpsSosAOSettingsHandler.h" - -// removed -// - -// from ipsplugin -#include "ipsplgimap4populateop.h" -#include "ipsplgcommon.h" +#include "ipssosaopluginheaders.h" // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- diff -r 15bc1d5d6267 -r ae34e1715e21 ipsservices/ipssosaoplugin/src/IpsSosAOImapPopLogic.cpp --- a/ipsservices/ipssosaoplugin/src/IpsSosAOImapPopLogic.cpp Fri Jul 23 19:09:50 2010 +0300 +++ b/ipsservices/ipssosaoplugin/src/IpsSosAOImapPopLogic.cpp Thu Aug 05 21:09:09 2010 +0300 @@ -16,30 +16,7 @@ * */ - -#include "emailtrace.h" -#include -#include -#include -#include - - -// becuase of RD_IPS_AO_PLUGIN flag, can be removed -// when flag is removed -#include "ipsplgsosbaseplugin.hrh" - -#include "IpsSosAOImapPopLogic.h" -#include "IpsSosAOMboxLogic.h" -#include "IpsSosAOEMNResolver.h" -// - -#include "IpsSosAOSettingsHandler.h" -#include "IpsSosAoExtendedSettingsManager.h" -// - - - -#include "ipsplgcommon.h" +#include "ipssosaopluginheaders.h" //const TInt KAOSmtpStartDelaySeconds = 310; const TInt KIpsSosAOImapPopLogicDefGra = 1; diff -r 15bc1d5d6267 -r ae34e1715e21 ipsservices/ipssosaoplugin/src/IpsSosAOMboxLogic.cpp --- a/ipsservices/ipssosaoplugin/src/IpsSosAOMboxLogic.cpp Fri Jul 23 19:09:50 2010 +0300 +++ b/ipsservices/ipssosaoplugin/src/IpsSosAOMboxLogic.cpp Thu Aug 05 21:09:09 2010 +0300 @@ -16,21 +16,11 @@ * */ -// -#include -// - -#include "emailtrace.h" -#include "IpsSosAOMboxLogic.h" -// -#include "IpsSosAOSettingsHandler.h" -// -#include "IpsSosAOSchedulerUtils.h" -#include "IpsSosAOPlugin.hrh" -#include "IpsSosAOImapPopLogic.h" +#include "ipssosaopluginheaders.h" // const TInt KAOSecondsInMinute = 60; +const TInt KAODefaultInboxSyncTimeSecs = 3600; // const TInt KIpsSosAOMboxLogicMinGra = 1; @@ -775,9 +765,21 @@ CIpsSosAOSettingsHandler* settings = CIpsSosAOSettingsHandler::NewL(iSession, iMailboxId); CleanupStack::PushL(settings); - TInt secs = settings->InboxRefreshTime() * KAOSecondsInMinute; + TInt inboxRefreshTime = settings->InboxRefreshTime(); + TInt secs = inboxRefreshTime * KAOSecondsInMinute; + INFO_1("CIpsSosAOMBoxLogic: inboxRefreshTime: %d", inboxRefreshTime); INFO_1("CIpsSosAOMBoxLogic: timer scheduled: %d", secs); - iTimer->After(secs); + if (secs > 0) + { + iTimer->After(TTimeIntervalSeconds(secs)); + } + else + { + // panic at this point when we get zero time from settings + __ASSERT_DEBUG( EFalse, User::Panic( KIpsSosAOPanicLit, KErrGeneral) ); + iTimer->After(TTimeIntervalSeconds(KAODefaultInboxSyncTimeSecs)); + } + CleanupStack::PopAndDestroy(settings); // NM_COMMENT("CIpsSosAOMBoxLogic: switching state: EStateWaitSyncStart"); diff -r 15bc1d5d6267 -r ae34e1715e21 ipsservices/ipssosaoplugin/src/IpsSosAOPluginEComInterface.cpp --- a/ipsservices/ipssosaoplugin/src/IpsSosAOPluginEComInterface.cpp Fri Jul 23 19:09:50 2010 +0300 +++ b/ipsservices/ipssosaoplugin/src/IpsSosAOPluginEComInterface.cpp Thu Aug 05 21:09:09 2010 +0300 @@ -16,15 +16,7 @@ * */ -#include "emailtrace.h" -#include - -#include -#include - -#include "IpsSosAOPluginEComInterface.h" -#include "IpsSosAOSmtpSendWatcher.h" -#include "IpsSosAOImapPopLogic.h" +#include "ipssosaopluginheaders.h" const TInt KIpsSosAOPluginCommandBufferGra = 1; diff -r 15bc1d5d6267 -r ae34e1715e21 ipsservices/ipssosaoplugin/src/IpsSosAOPluginTimer.cpp --- a/ipsservices/ipssosaoplugin/src/IpsSosAOPluginTimer.cpp Fri Jul 23 19:09:50 2010 +0300 +++ b/ipsservices/ipssosaoplugin/src/IpsSosAOPluginTimer.cpp Thu Aug 05 21:09:09 2010 +0300 @@ -16,10 +16,7 @@ * */ - -#include "emailtrace.h" -#include "IpsSosAOPluginTimer.h" - +#include "ipssosaopluginheaders.h" // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- diff -r 15bc1d5d6267 -r ae34e1715e21 ipsservices/ipssosaoplugin/src/IpsSosAOPopAgent.cpp --- a/ipsservices/ipssosaoplugin/src/IpsSosAOPopAgent.cpp Fri Jul 23 19:09:50 2010 +0300 +++ b/ipsservices/ipssosaoplugin/src/IpsSosAOPopAgent.cpp Thu Aug 05 21:09:09 2010 +0300 @@ -16,18 +16,7 @@ * */ - - -#include "emailtrace.h" -#include -#include -#include -#include -#include - -#include "IpsSosAOPopAgent.h" -#include "IpsSosAOImapPopLogic.h" - +#include "ipssosaopluginheaders.h" // from settings // diff -r 15bc1d5d6267 -r ae34e1715e21 ipsservices/ipssosaoplugin/src/IpsSosAOSchedulerUtils.cpp --- a/ipsservices/ipssosaoplugin/src/IpsSosAOSchedulerUtils.cpp Fri Jul 23 19:09:50 2010 +0300 +++ b/ipsservices/ipssosaoplugin/src/IpsSosAOSchedulerUtils.cpp Thu Aug 05 21:09:09 2010 +0300 @@ -16,13 +16,7 @@ * */ - -#include "emailtrace.h" -#include "IpsSosAOSchedulerUtils.h" -// -#include "IpsSosAOSettingsHandler.h" -// - +#include "ipssosaopluginheaders.h" const TInt KAOSecondsIn24Hours = 86400; //const TUint KAOEveryDayMask = 0x7f; diff -r 15bc1d5d6267 -r ae34e1715e21 ipsservices/ipssosaoplugin/src/IpsSosAOSettingsHandler.cpp --- a/ipsservices/ipssosaoplugin/src/IpsSosAOSettingsHandler.cpp Fri Jul 23 19:09:50 2010 +0300 +++ b/ipsservices/ipssosaoplugin/src/IpsSosAOSettingsHandler.cpp Thu Aug 05 21:09:09 2010 +0300 @@ -15,15 +15,8 @@ * * */ -#include "IpsSosAOSettingsHandler.h" -#include "IpsSosAoExtendedSettingsManager.h" -#include "nmipssettingitems.h" -#include "ipssettingkeys.h" -#include -#include -#include -#include -#include + +#include "ipssosaopluginheaders.h" const TInt KAOMinutesInHour = 60; diff -r 15bc1d5d6267 -r ae34e1715e21 ipsservices/ipssosaoplugin/src/IpsSosAOSmtpAgent.cpp --- a/ipsservices/ipssosaoplugin/src/IpsSosAOSmtpAgent.cpp Fri Jul 23 19:09:50 2010 +0300 +++ b/ipsservices/ipssosaoplugin/src/IpsSosAOSmtpAgent.cpp Thu Aug 05 21:09:09 2010 +0300 @@ -16,18 +16,7 @@ * */ -#include "emailtrace.h" -#include - -// -#include "CFSMailCommon.h" -// -#include "IpsSosAOSmtpAgent.h" -#include "ipsplgsmtpoperation.h" -// - -// - +#include "ipssosaopluginheaders.h" #ifdef _DEBUG _LIT( KIpsSosAOSmtpLogicPanicLit, "AOsmtp"); diff -r 15bc1d5d6267 -r ae34e1715e21 ipsservices/ipssosaoplugin/src/IpsSosAOSmtpSendWatcher.cpp --- a/ipsservices/ipssosaoplugin/src/IpsSosAOSmtpSendWatcher.cpp Fri Jul 23 19:09:50 2010 +0300 +++ b/ipsservices/ipssosaoplugin/src/IpsSosAOSmtpSendWatcher.cpp Thu Aug 05 21:09:09 2010 +0300 @@ -16,14 +16,7 @@ * */ -//#include -#include "emailtrace.h" -#include - -#include "IpsSosAOSmtpSendWatcher.h" -#include "IpsSosAOSmtpAgent.h" - -#include "ipsplgcommon.h" +#include "ipssosaopluginheaders.h" // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- diff -r 15bc1d5d6267 -r ae34e1715e21 ipsservices/ipssosaoplugin/src/IpsSosAoExtendedSettingsManager.cpp --- a/ipsservices/ipssosaoplugin/src/IpsSosAoExtendedSettingsManager.cpp Fri Jul 23 19:09:50 2010 +0300 +++ b/ipsservices/ipssosaoplugin/src/IpsSosAoExtendedSettingsManager.cpp Thu Aug 05 21:09:09 2010 +0300 @@ -15,15 +15,7 @@ * */ -#include -#include -#include -#include - -#include "IpsSosAoExtendedSettingsManager.h" -#include "nmipssettingitems.h" -#include "ipssettingkeys.h" -#include "nmcommon.h" +#include "ipssosaopluginheaders.h" /*! \class NmIpsSosAoExtendedSettingsManager diff -r 15bc1d5d6267 -r ae34e1715e21 ipsservices/nmipssettings/inc/nmipssettingsplugin.h --- a/ipsservices/nmipssettings/inc/nmipssettingsplugin.h Fri Jul 23 19:09:50 2010 +0300 +++ b/ipsservices/nmipssettings/inc/nmipssettingsplugin.h Thu Aug 05 21:09:09 2010 +0300 @@ -62,7 +62,6 @@ void createUserDefinedMode(); void showMailInInboxModified(QPersistentModelIndex, QVariant value); - void itemPress(const QModelIndex &index); private: diff -r 15bc1d5d6267 -r ae34e1715e21 ipsservices/nmipssettings/src/nmipssettingshelper.cpp --- a/ipsservices/nmipssettings/src/nmipssettingshelper.cpp Fri Jul 23 19:09:50 2010 +0300 +++ b/ipsservices/nmipssettings/src/nmipssettingshelper.cpp Thu Aug 05 21:09:09 2010 +0300 @@ -635,7 +635,7 @@ progressNote.close(); HbNotificationDialog *note = new HbNotificationDialog(); - QString noteText = hbTrId("txt_mail_dpophead_1_deleted").arg(mailboxName.toString()); + QString noteText = hbTrId("txt_mail_dialog_1_deleted").arg(mailboxName.toString()); note->setTitle(noteText); note->setAttribute(Qt::WA_DeleteOnClose); note->open(this, SLOT(handleMailboxDeleteUpdate(HbAction *))); diff -r 15bc1d5d6267 -r ae34e1715e21 ipsservices/nmipssettings/src/nmipssettingsplugin.cpp --- a/ipsservices/nmipssettings/src/nmipssettingsplugin.cpp Fri Jul 23 19:09:50 2010 +0300 +++ b/ipsservices/nmipssettings/src/nmipssettingsplugin.cpp Thu Aug 05 21:09:09 2010 +0300 @@ -135,8 +135,6 @@ connect(mSettingsHelper, SIGNAL(createUserDefinedMode()), this, SLOT(createUserDefinedMode())); - connect(mForm, SIGNAL(pressed(QModelIndex)), - this, SLOT(itemPress(QModelIndex))); // Get the value if some ui items need to be hidden. QVariant data; mSettingsManager->readSetting(IpsServices::UserNameHidden, data); @@ -657,32 +655,4 @@ } } -/*! - Called when item is pressed on the view. - - \param index Index to the pressed item. -*/ -void NmIpsSettingsPlugin::itemPress(const QModelIndex &index) -{ - NM_FUNCTION; - - int type(index.data(HbDataFormModelItem::ItemTypeRole).toInt()); - - if (type == HbDataFormModelItem::GroupItem) { - // Scroll the groupitem to top if needed. - HbDataFormViewItem *item = static_cast(mForm->itemByIndex(index)); - bool expanded = item->isExpanded(); - - if (!expanded) { - mForm->scrollTo(index, HbAbstractItemView::PositionAtTop); - } - } - - if (type == HbDataFormModelItem::TextItem) { - // Turn off predictive input for line-edit. - HbDataFormViewItem *item = static_cast(mForm->itemByIndex(index)); - HbWidget *widget = item->dataItemContentWidget(); - widget->setInputMethodHints(Qt::ImhNoPredictiveText); - } -} Q_EXPORT_PLUGIN2(nmipssettings, NmIpsSettingsPlugin);