# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1286139937 -10800 # Node ID 47d84de1c8930d93a92877044f69c3c085be7573 # Parent 64e38f08e49cfa2e2d6b6bf702aac9932ca6f299 Revision: 201037 Kit: 201039 diff -r 64e38f08e49c -r 47d84de1c893 email_plat/contact_history_model_api/contact_history_model_api.metaxml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email_plat/contact_history_model_api/contact_history_model_api.metaxml Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,15 @@ + + + Contact History Model API + API for getting MVC model for stored contact history email addresses. + c++ + commonemail + + + + + + no + no + + diff -r 64e38f08e49c -r 47d84de1c893 email_plat/contact_history_model_api/contact_history_model_api.pri --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email_plat/contact_history_model_api/contact_history_model_api.pri Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,23 @@ +# +# 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: +# +# + +symbian*: { + # Build.inf rules + BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include " \ + "contact_history_model_api/inc/nmcontacthistorymodel.h APP_LAYER_PLATFORM_EXPORT_PATH(nmcontacthistorymodel.h)" \ + "contact_history_model_api/inc/nmcontacthistorymodelcommon.h APP_LAYER_PLATFORM_EXPORT_PATH(nmcontacthistorymodelcommon.h)" +} diff -r 64e38f08e49c -r 47d84de1c893 email_plat/contact_history_model_api/inc/nmcontacthistorymodel.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email_plat/contact_history_model_api/inc/nmcontacthistorymodel.h Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,142 @@ +/* +* 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: Public declaration of Contact History Model API +* +*/ +#ifndef NMCONTACTHISTORYMODEL_H +#define NMCONTACTHISTORYMODEL_H + +#include +#include + +#include "nmcontacthistorymodelcommon.h" + +// NmContactHistoryModelSubItem - display name is one item, email address/phone number another +class NmContactHistoryModelSubItem +{ +public: + +inline NmContactHistoryModelSubItem() +{ +} + +inline ~NmContactHistoryModelSubItem() +{ +} + // email address, or concatenated firstName+' '+lastName. + QString mItemText; + // amount of items in mMatchingRanges is 2*mItemTexts.length() because for each text there is begin/end index + // TODO: Fix above^ always two indeces + // for example "Ville Virtanen" with query "vi" returns indeces 0,1,6,7 + QList mMatchingRanges; +}; + +class NmContactHistoryModelPrivate; +class NmContactHistoryModelItemData; + +class NMCHMAPI_EXPORT NmContactHistoryModelItem +{ +public: + NmContactHistoryModelItem(); + NmContactHistoryModelItem(const NmContactHistoryModelItem &other); + ~NmContactHistoryModelItem(); + +public: + // contact id is 0xDEAD if not associated with a contact item + unsigned int contactId() const; + + void setContactId(unsigned int contactId); + + int subItemCount() const; + + NmContactHistoryModelSubItem subItemAt(int index) const; + + // First entry is display name, second email address. + QList subEntries() const; + + void appendSubItem(NmContactHistoryModelSubItem entry); + +private: + // + QSharedDataPointer d; +}; +Q_DECLARE_METATYPE(NmContactHistoryModelItem) + +/** + * Model for contact history queries. + * + */ +class NMCHMAPI_EXPORT NmContactHistoryModel : public QAbstractListModel +{ + Q_OBJECT + +public: // The exported API + + /** + * Constructor + * @param modelType + */ + explicit NmContactHistoryModel( + const NmContactHistoryModelType modelType); + + /** + * Destructor + */ + ~NmContactHistoryModel(); + +public: // From QAbstractItemModel + + /** + * Get number of rows currently in the model. + * @return number of rows + */ + virtual int rowCount(const QModelIndex &parent) const; + + /** + * Get various data from the model. Fetched data type is defined + * by role input parameter. Only Qt::DisplayRole is supported. + */ + virtual QVariant data(const QModelIndex &index, int role) const; + +signals: + + /** + * Signaled once model is ready. + * @param err, 0 if building model was success + */ + void modelCompleted(int err); + +public slots: + + // TODO: query could keep previous query in order to check if results will only get narrowed (a char is appended) + void query(const QString &query); + +private slots: + + /** + * Signaled once query is completed, emits modelCompleted. + * @param err, 0 if building model was success + */ + void handleQueryCompleted(int err); + +private: + /* + * Private Implementation + * Own + */ + NmContactHistoryModelPrivate *d_ptr; + +}; + +#endif //NMCONTACTHISTORYMODEL_H diff -r 64e38f08e49c -r 47d84de1c893 email_plat/contact_history_model_api/inc/nmcontacthistorymodelcommon.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email_plat/contact_history_model_api/inc/nmcontacthistorymodelcommon.h Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,32 @@ +/* + * 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: common header for contact history model. + * + */ + +#ifndef NMCONTACTHISTORYMODELCOMMONHEADERS_H_ +#define NMCONTACTHISTORYMODELCOMMONHEADERS_H_ + + enum NmContactHistoryModelType { + EmailAddressModel, + PhoneNumberModel + }; + + #if defined(NMCHMAPI_LIBRARY) + #define NMCHMAPI_EXPORT Q_DECL_EXPORT + #else + #define NMCHMAPI_EXPORT Q_DECL_IMPORT + #endif + +#endif /* NMCONTACTHISTORYMODELCOMMONHEADERS_H_ */ diff -r 64e38f08e49c -r 47d84de1c893 email_plat/email_plat.pro --- a/email_plat/email_plat.pro Fri Sep 17 08:27:21 2010 +0300 +++ b/email_plat/email_plat.pro Mon Oct 04 00:05:37 2010 +0300 @@ -22,4 +22,5 @@ include(nmail_settings_api/nmail_settings_api.pri) include(nmail_client_api/nmail_client_api.pri) include(email_client_api/email_client_api.pri) + include(contact_history_model_api/contact_history_model_api.pri) } diff -r 64e38f08e49c -r 47d84de1c893 email_plat/email_services_api/email_services_api.h --- a/email_plat/email_services_api/email_services_api.h Fri Sep 17 08:27:21 2010 +0300 +++ b/email_plat/email_services_api/email_services_api.h Mon Oct 04 00:05:37 2010 +0300 @@ -44,10 +44,14 @@ static const QString emailSendToKey = "to"; static const QString emailSendCcKey = "cc"; static const QString emailSendBccKey = "bcc"; + +// MIME type for body text, e.g. "text/html". If this key is not defined, +// emailSendBodyValueKey is treated as "text/plain". +static const QString emailSendBodyMimeTypeKey = "mimeType"; + static const QString emailSendBodyTextKey = "body"; static const QString emailSendAttachmentKey = "attachment"; - /*! Mail service name */ @@ -157,7 +161,7 @@ given mailbox and folder IDs) into the view stack. This means that when the back button is pressed from the viewer view, the message list view will be shown. - + \return 1 if message was opened. 0 if one of the IDs was incorrect. diff -r 64e38f08e49c -r 47d84de1c893 email_plat/nmail_client_api/nmail_client_api.pri --- a/email_plat/nmail_client_api/nmail_client_api.pri Fri Sep 17 08:27:21 2010 +0300 +++ b/email_plat/nmail_client_api/nmail_client_api.pri Mon Oct 04 00:05:37 2010 +0300 @@ -31,5 +31,11 @@ "nmail_client_api/nmapimessagebody.h APP_LAYER_PLATFORM_EXPORT_PATH(nmapimessagebody.h)" \ "nmail_client_api/nmapimessageenvelope.h APP_LAYER_PLATFORM_EXPORT_PATH(nmapimessageenvelope.h)" \ "nmail_client_api/nmapimessagetask.h APP_LAYER_PLATFORM_EXPORT_PATH(nmapimessagetask.h)" \ - "nmail_client_api/nmapimessagemanager.h APP_LAYER_PLATFORM_EXPORT_PATH(nmapimessagemanager.h)" + "nmail_client_api/nmapimessagemanager.h APP_LAYER_PLATFORM_EXPORT_PATH(nmapimessagemanager.h)" \ + "nmail_client_api/nmapimessagesearch.h APP_LAYER_PLATFORM_EXPORT_PATH(nmapimessagesearch.h)" \ + "nmail_client_api/nmapimessage.h APP_LAYER_PLATFORM_EXPORT_PATH(nmapimessage.h)" \ + "nmail_client_api/nmapimessagecontent.h APP_LAYER_PLATFORM_EXPORT_PATH(nmapimessagecontent.h)" \ + "nmail_client_api/nmapitextcontent.h APP_LAYER_PLATFORM_EXPORT_PATH(nmapitextcontent.h)" \ + "nmail_client_api/nmapiattachment.h APP_LAYER_PLATFORM_EXPORT_PATH(nmapiattachment.h)" + } diff -r 64e38f08e49c -r 47d84de1c893 email_plat/nmail_client_api/nmapiattachment.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email_plat/nmail_client_api/nmapiattachment.h Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,47 @@ +/* + * 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: + * Email message attachment public header. + */ + +#ifndef NMAPIATTACHMENT_H_ +#define NMAPIATTACHMENT_H_ + +#include +#include +#include +#include + +namespace EmailClientApi +{ +class NmApiAttachmentPrivate; + +class NMAPI_EXPORT NmApiAttachment : public NmApiMessageContent +{ +public: + NmApiAttachment(); + virtual ~NmApiAttachment(); + + QString fileName(); + XQSharableFile file(); + + void setFileName(const QString &fileName); + +private: + + NmApiAttachmentPrivate *d; +}; +} + +#endif /* NMAPIATTACHMENT_H_ */ diff -r 64e38f08e49c -r 47d84de1c893 email_plat/nmail_client_api/nmapicommon.h --- a/email_plat/nmail_client_api/nmapicommon.h Fri Sep 17 08:27:21 2010 +0300 +++ b/email_plat/nmail_client_api/nmapicommon.h Mon Oct 04 00:05:37 2010 +0300 @@ -29,7 +29,40 @@ { MailboxCreated, MailboxDeleted }; - + + /*! + Email to message priority + */ + enum NmApiMessagePriority + { + NmApiMessagePriorityLow, + NmApiMessagePriorityNormal, + NmApiMessagePriorityHigh + }; + + /*! + Enum to message flags + */ + enum NmApiMessageFlag + { + NmApiMessageFlagRead = 1, + NmApiMessageFlagReadLocally = 2, + NmApiMessageFlagLow = 4, + NmApiMessageFlagImportant = 8, + NmApiMessageFlagFollowUpComplete = 16, + NmApiMessageFlagFollowUp = 32, + NmApiMessageFlagAttachments = 64, + NmApiMessageFlagMultiple = 128, + NmApiMessageFlagCalendarMsg = 256, + NmApiMessageFlagAnswered = 512, + NmApiMessageFlagForwarded = 1024, + NmApiMessageFlagOnlyToMe = 2048, + NmApiMessageFlagRemoteDeleted = 4096, + NmApiMessageFlagHasMsgSender = 8192 + }; + Q_DECLARE_FLAGS(NmApiMessageFlags, NmApiMessageFlag) + Q_DECLARE_OPERATORS_FOR_FLAGS(NmApiMessageFlags) + /*! Enum to describe message events. */ @@ -47,6 +80,33 @@ { Inbox, Drafts, Outbox, Sent, Deleted, EOther }; + + /*! + Email list sorting options + */ + enum NmApiMailSortField + { + MailDontCare, // user accepts any sort order + MailSortByDate, // sorting is done by date + MailSortBySender, // sorting is done by sender + MailSortByRecipient, // sorting is done by recipients + MailSortBySubject, // sorting is done by subject + MailSortByPriority, // sorting is done by priority + MailSortByFlagStatus, // follow up and completed + MailSortByUnread, // sorting is based on unread + MailSortBySize, // sorting is done by size + MailSortByAttachment // sorting is based on if message has attachments + }; + + /*! + Email list sort order + */ + enum NmApiMailSortOrder + { + MailDescending, + MailAscending + }; + /*! Enum to describe error types @@ -56,6 +116,37 @@ GeneralError = -1, NotSupportedError }; + /*! + Sort criteria definion Class for searching email messages + */ + class NmApiMailSortCriteria + { + public: + NmApiMailSortField iField; + NmApiMailSortOrder iOrder; + }; + + /*! + NmApi error codes + */ + const int NmApiNoError = 0; + const int NmApiNotFoundError = -1; + const int NmApiGeneralError = -2; + const int NmApiCancelError = -3; + + /*! + NmApi predefined constants for ContentTypes + */ + const QString NmApiContentTypeMultipartMixed = "multipart/mixed"; + const QString NmApiContentTypeMultipartAlternative = "multipart/alternative"; + const QString NmApiContentTypeMultipartDigest = "multipart/digest"; + const QString NmApiContentTypeMultipartParallel = "multipart/parallel"; + const QString NmApiContentTypeMultipartRelated = "multipart/related"; + const QString NmApiContentTypeTextPlain = "text/plain"; + const QString NmApiContentTypeTextHtml = "text/html"; + const QString NmApiContentTypeTypeMessage = "message/rfc822"; + const QString NmApiContentTypeParamName = " name="; + const QString NmApiContentTypeParamCharset = " charset="; } Q_DECLARE_METATYPE (EmailClientApi::NmApiMailboxEvent) Q_DECLARE_METATYPE(EmailClientApi::NmApiMessageEvent) diff -r 64e38f08e49c -r 47d84de1c893 email_plat/nmail_client_api/nmapiemailservice.h --- a/email_plat/nmail_client_api/nmapiemailservice.h Fri Sep 17 08:27:21 2010 +0300 +++ b/email_plat/nmail_client_api/nmapiemailservice.h Mon Oct 04 00:05:37 2010 +0300 @@ -33,6 +33,7 @@ class NmApiMessageEnvelope; class NmApiMailbox; +class NmApiMessage; class NMAPI_EXPORT NmApiEmailService : public QObject { @@ -74,6 +75,16 @@ bool getMailbox(const quint64 mailboxId, EmailClientApi::NmApiMailbox &mailboxInfo); /*! + gets mail message by id (see also NmApiEventNotifier) + */ + bool getMessage(const quint64 mailboxId, + const quint64 folderId, + const quint64 messageId, + EmailClientApi::NmApiMessage &message); + + + + /*! returns isrunning flag value */ bool isRunning() const; diff -r 64e38f08e49c -r 47d84de1c893 email_plat/nmail_client_api/nmapieventnotifier.h --- a/email_plat/nmail_client_api/nmapieventnotifier.h Fri Sep 17 08:27:21 2010 +0300 +++ b/email_plat/nmail_client_api/nmapieventnotifier.h Mon Oct 04 00:05:37 2010 +0300 @@ -22,7 +22,7 @@ #include #include -struct NmApiMessage; +struct NmApiEvent; namespace EmailClientApi { diff -r 64e38f08e49c -r 47d84de1c893 email_plat/nmail_client_api/nmapimessage.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email_plat/nmail_client_api/nmapimessage.h Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,58 @@ +/* +* 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: +* Api's email message class. +*/ + +#ifndef NMAPIMESSAGE_H_ +#define NMAPIMESSAGE_H_ + +#include +#include +#include +#include +#include + +namespace EmailClientApi +{ +class NmApiMessagePrivate; +class NmApiMessageEnvelope; + +class NMAPI_EXPORT NmApiMessage +{ +public: + NmApiMessage(); + virtual ~NmApiMessage(); + + NmApiTextContent plainTextContent(); + NmApiTextContent htmlContent(); + bool isComplete(); + QList attachments(); + void addAttachment(NmApiAttachment &attachment); + NmApiMessageEnvelope& envelope(); + void setPlainTextContent(NmApiTextContent &textContent); + void setHtmlContent(NmApiTextContent &textContent); + void setComplete(bool complete); + void setAttachments(QList &attachments); + void setEnvelope(NmApiMessageEnvelope &envelope); + +private: + + NmApiMessagePrivate *d; +}; +} // namespace EmailClientApi + +Q_DECLARE_METATYPE(EmailClientApi::NmApiMessage) + +#endif /* NMAPIMESSAGE_H_ */ diff -r 64e38f08e49c -r 47d84de1c893 email_plat/nmail_client_api/nmapimessagecontent.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email_plat/nmail_client_api/nmapimessagecontent.h Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,48 @@ +/* +* 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: +* Email message content public header. +*/ + +#ifndef NMAPIMESSAGECONTENT_H_ +#define NMAPIMESSAGECONTENT_H_ + +#include + +namespace EmailClientApi +{ +class NmApiMessageContentPrivate; + +class NMAPI_EXPORT NmApiMessageContent +{ +public: + NmApiMessageContent(); + virtual ~NmApiMessageContent(); + + QString contentType() const; + bool isComplete(); + quint32 size() const; + quint64 id() const; + + void setContentType(const QString &contentType); + void setComplete(bool complete); + void setSize(quint32 size); + void setId(quint64 id); + +private: + + NmApiMessageContentPrivate *d; +}; +} +#endif /*NMAPIMESSAGECONTENT_H_ */ diff -r 64e38f08e49c -r 47d84de1c893 email_plat/nmail_client_api/nmapimessageenvelope.h --- a/email_plat/nmail_client_api/nmapimessageenvelope.h Fri Sep 17 08:27:21 2010 +0300 +++ b/email_plat/nmail_client_api/nmapimessageenvelope.h Mon Oct 04 00:05:37 2010 +0300 @@ -23,6 +23,7 @@ #include #include +#include class QString; class QDateTime; @@ -72,6 +73,11 @@ quint64 parentFolder() const; /*! + getter for id of mailbox + */ + quint64 mailboxId() const; + + /*! getter for subject */ QString subject() const; @@ -92,6 +98,11 @@ void getCcRecipients(QList &ccRecipients); /*! + getter for bcc recipients + */ + void getBccRecipients(QList &bccRecipients); + + /*! getter for sent time */ QDateTime sentTime() const; @@ -142,6 +153,21 @@ quint64 fetchedSize() const; /*! + getter for priority + */ + NmApiMessagePriority priority() const; + + /*! + getter for flags + */ + NmApiMessageFlags flags() const; + + /*! + getter for flag + */ + bool isFlagSet(const NmApiMessageFlag flag) const; + + /*! setter for id */ void setId(quint64 id); @@ -152,6 +178,11 @@ void setParentFolder(quint64 parentFolder); /*! + setter for mailbox id + */ + void setMailboxId(quint64 mailboxId); + + /*! setter for subject */ void setSubject(const QString &subject); @@ -172,6 +203,11 @@ void setCcRecipients(const QList &ccRecipients); /*! + setter for bcc recipients + */ + void setBccRecipients(const QList &bccRecipients); + + /*! setter for sent time */ void setSentTime(QDateTime sentTime); @@ -202,20 +238,35 @@ void setContentType(const QString &contentType); /*! - getter for messages plain text + setter for messages plain text */ void setPlainText(const QString &plainText); /*! - getter for messages fetched size + setter for messages fetched size */ void setTotalSize(quint64 totalSize); /*! - getter for messages fetched size + setter for messages fetched size */ void setFetchedSize(quint64 fetchedSize); + /*! + setter for priority + */ + void setPriority(NmApiMessagePriority forwarded); + + /*! + setter for flags + */ + void setFlags(const NmApiMessageFlags flags, bool set); + + /*! + setter for flag + */ + void setFlag(const NmApiMessageFlag flag, bool set); + private: QExplicitlySharedDataPointer d; }; diff -r 64e38f08e49c -r 47d84de1c893 email_plat/nmail_client_api/nmapimessagemanager.h --- a/email_plat/nmail_client_api/nmapimessagemanager.h Fri Sep 17 08:27:21 2010 +0300 +++ b/email_plat/nmail_client_api/nmapimessagemanager.h Mon Oct 04 00:05:37 2010 +0300 @@ -20,65 +20,49 @@ #include #include +#include #include - -struct NmApiMessage; -class NmApiEmailMessage; +#include namespace EmailClientApi { -class NmApiFolder; class NmApiMessageManagerPrivate; class NMAPI_EXPORT NmApiMessageManager : public QObject { Q_OBJECT - public: - NmApiMessageManager(quint64 mailboxId,QObject *parent = 0); + NmApiMessageManager(QObject *parent,quint64 mailboxId); virtual ~NmApiMessageManager(); public slots: bool createDraftMessage(const QVariant *initData); - bool createForwardMessage(const QVariant *initData); + bool createForwardMessage(NmApiMessage *orig,const QVariant *initData); - bool createReplyMessage(const QVariant *initData,bool replyAll); + bool createReplyMessage(const NmApiMessage *orig,const QVariant *initData,bool replyAll); - bool moveMessages(const QList messageIds, - quint64 sourceFolderId,quint64 targetFolderId); + bool moveMessages(const QList messageIds,quint64 sourceFolderId,quint64 targetFolderId); - bool copyMessages(const QList messageIds, - quint64 sourceFolder, - quint64 targetFolder); - - bool saveMessage(const ::NmApiMessage &message); + bool saveMessage(const NmApiMessage &message); bool deleteMessages(const QList messageIds); - bool fetch(const NmApiMessage &message); - - bool send(const NmApiMessage &message); + bool fetchMessage(quint64 messageId); - bool createAttachment(NmApiEmailMessage &message,const QVariant &attachmenSpec); - - bool removeAttachment(NmApiEmailMessage &message,quint64 attachmentId); + bool sendMessage(const NmApiMessage &message); -signals: - void messagesCopied(int result); - - void messagesCreated(int result); + bool createAttachment(NmApiMessage &message,const QVariant &attachmenSpec); - void messagesMoved(int result); - - void messagesDeleted(int result); - + bool removeAttachment(NmApiMessage &message,quint64 attachmentId); + + bool fetchAttachment(const NmApiMessage &relatedMessage,quint64 attachmentId); + private: - NmApiMessageManagerPrivate *d; + NmApiMessageManagerPrivate* d; }; -} - -#endif +} // namespace EmailClientApi +#endif /*NMAPIMESSAGEMANAGER_H_ */ diff -r 64e38f08e49c -r 47d84de1c893 email_plat/nmail_client_api/nmapimessagesearch.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email_plat/nmail_client_api/nmapimessagesearch.h Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,60 @@ +/* + * 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: + * Email messages search public header. + */ + +#ifndef NMAPIMESSAGESEARCH_H_ +#define NMAPIMESSAGESEARCH_H_ + +#include +#include +#include +#include + +class NmApiMessageSearchPrivate; + +namespace EmailClientApi +{ + +class NMAPI_EXPORT NmApiMessageSearch : public NmApiMessageTask +{ + Q_OBJECT +public: + NmApiMessageSearch(QObject *parent, quint64 mailboxId); + + virtual ~NmApiMessageSearch(); + + bool isRunning() const; + + bool initialise(const QList &searchStrings, EmailClientApi::NmApiMailSortCriteria sortCriteria); + +public slots: + + bool start(); + + void cancel(); + +signals: + + void messageFound(EmailClientApi::NmApiMessage &message); + + void searchComplete(int result = NmApiNoError); + +private: + NmApiMessageSearchPrivate* d; +}; + +} // namespace EmailClientApi +#endif /* NMAPIMESSAGESEARCH_H_ */ diff -r 64e38f08e49c -r 47d84de1c893 email_plat/nmail_client_api/nmapitextcontent.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email_plat/nmail_client_api/nmapitextcontent.h Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,45 @@ +/* + * 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: + * Email message text content public header. + */ + +#ifndef NMAPITEXTCONTENT_H_ +#define NMAPITEXTCONTENT_H_ + +#include + +#include +#include + +namespace EmailClientApi +{ +class NmApiTextContentPrivate; + +class NMAPI_EXPORT NmApiTextContent : public NmApiMessageContent +{ +public: + NmApiTextContent(); + virtual ~NmApiTextContent(); + + QString content() const; + void setContent(const QString &content); + +private: + + NmApiTextContentPrivate *d; +}; +} + +#endif /* NMAPITEXTCONTENT_H_ */ diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailclientapi/emailclientapi.pro --- a/emailservices/emailclientapi/emailclientapi.pro Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailclientapi/emailclientapi.pro Mon Oct 04 00:05:37 2010 +0300 @@ -94,6 +94,7 @@ "$${LITERAL_HASH}endif" MMP_RULES += defBlock + MMP_RULES += SMPSAFE BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include " \ "rom/emailclientapi.iby CORE_APP_LAYER_IBY_EXPORT_PATH(emailclientapi.iby)" diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailcommon/bwins/fsfwcommonlibu.def --- a/emailservices/emailcommon/bwins/fsfwcommonlibu.def Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailcommon/bwins/fsfwcommonlibu.def Mon Oct 04 00:05:37 2010 +0300 @@ -30,55 +30,55 @@ ?AddPluginL@CFSMailRequestHandler@@QAEXVTUid@@PAVCFSMailPlugin@@@Z @ 29 NONAME ; void CFSMailRequestHandler::AddPluginL(class TUid, class CFSMailPlugin *) ?SetContentDisposition@CFSMailMessagePart@@QAEXABVTDesC16@@@Z @ 30 NONAME ; void CFSMailMessagePart::SetContentDisposition(class TDesC16 const &) ??1CFSMailMessageBase@@UAE@XZ @ 31 NONAME ; CFSMailMessageBase::~CFSMailMessageBase(void) - ?CurrentSyncState@CFSMailBox@@QBE?AW4TSSMailSyncState@@XZ @ 32 NONAME ; enum TSSMailSyncState CFSMailBox::CurrentSyncState(void) const - ?NewL@CFSMailFolderBase@@SAPAV1@VTFSMailMsgId@@@Z @ 33 NONAME ; class CFSMailFolderBase * CFSMailFolderBase::NewL(class TFSMailMsgId) - ?SetAttachmentNameL@CFSMailMessagePart@@QAEXABVTDesC16@@@Z @ 34 NONAME ; void CFSMailMessagePart::SetAttachmentNameL(class TDesC16 const &) - ?GetMessageCount@CFSMailFolderBase@@QBEIXZ @ 35 NONAME ; unsigned int CFSMailFolderBase::GetMessageCount(void) const - ?RemoveChildPartL@CFSMailMessagePart@@QAEXVTFSMailMsgId@@@Z @ 36 NONAME ; void CFSMailMessagePart::RemoveChildPartL(class TFSMailMsgId) - ?SaveMessagePartsL@CFSMailMessage@@QAEHAAVMFSMailRequestObserver@@@Z @ 37 NONAME ; int CFSMailMessage::SaveMessagePartsL(class MFSMailRequestObserver &) - ?MoveMessagesL@CFSMailBox@@QAEXABV?$RArray@VTFSMailMsgId@@@@VTFSMailMsgId@@1@Z @ 38 NONAME ; void CFSMailBox::MoveMessagesL(class RArray const &, class TFSMailMsgId, class TFSMailMsgId) - ?GetFolderName@CFSMailFolderBase@@QBEAAVTDesC16@@XZ @ 39 NONAME ; class TDesC16 & CFSMailFolderBase::GetFolderName(void) const - ?GetDisplayName@CFSMailAddress@@QBEAAVTDesC16@@XZ @ 40 NONAME ; class TDesC16 & CFSMailAddress::GetDisplayName(void) const - ?ConstructL@CFSMailFolderBase@@IAEXVTFSMailMsgId@@@Z @ 41 NONAME ; void CFSMailFolderBase::ConstructL(class TFSMailMsgId) - ?SetSubject@CFSMailMessageBase@@QAEXABVTDesC16@@@Z @ 42 NONAME ; void CFSMailMessageBase::SetSubject(class TDesC16 const &) - ?CreateReplyMessage@CFSMailBox@@QAEPAVCFSMailMessage@@VTFSMailMsgId@@HABVTDesC16@@@Z @ 43 NONAME ; class CFSMailMessage * CFSMailBox::CreateReplyMessage(class TFSMailMsgId, int, class TDesC16 const &) - ?CopyContentFileL@CFSMailMessagePart@@QAEXABVTDesC16@@@Z @ 44 NONAME ; void CFSMailMessagePart::CopyContentFileL(class TDesC16 const &) - ??1CFSMailBoxBase@@UAE@XZ @ 45 NONAME ; CFSMailBoxBase::~CFSMailBoxBase(void) - ?NewLC@CFSMailBox@@SAPAV1@VTFSMailMsgId@@@Z @ 46 NONAME ; class CFSMailBox * CFSMailBox::NewLC(class TFSMailMsgId) - ?GetParentFolderId@CFSMailFolderBase@@QBE?AVTFSMailMsgId@@XZ @ 47 NONAME ; class TFSMailMsgId CFSMailFolderBase::GetParentFolderId(void) const - ?ConstructL@CFSMailMessageBase@@IAEXABVNmMessageEnvelope@@@Z @ 48 NONAME ; void CFSMailMessageBase::ConstructL(class NmMessageEnvelope const &) - ?ReleaseExtension@CFSMailMessageBase@@UAEXPAVCEmailExtension@@@Z @ 49 NONAME ; void CFSMailMessageBase::ReleaseExtension(class CEmailExtension *) - ??_ECFSMailRequestHandler@@UAE@I@Z @ 50 NONAME ; CFSMailRequestHandler::~CFSMailRequestHandler(unsigned int) - ?NewLC@CFSMailFolder@@SAPAV1@VTFSMailMsgId@@@Z @ 51 NONAME ; class CFSMailFolder * CFSMailFolder::NewLC(class TFSMailMsgId) - ?NewL@CFSMailAddress@@SAPAV1@XZ @ 52 NONAME ; class CFSMailAddress * CFSMailAddress::NewL(void) - ?IsMessageL@CFSMailMessagePart@@UBEHXZ @ 53 NONAME ; int CFSMailMessagePart::IsMessageL(void) const - ?Uid@CEmailExtension@@QBE?AVTUid@@XZ @ 54 NONAME ; class TUid CEmailExtension::Uid(void) const - ?GetNmMessage@CFSMailMessage@@QAEPAVNmMessage@@XZ @ 55 NONAME ; class NmMessage * CFSMailMessage::GetNmMessage(void) - ?GetContentToBufferL@CFSMailMessagePart@@QAEXAAVTDes16@@I@Z @ 56 NONAME ; void CFSMailMessagePart::GetContentToBufferL(class TDes16 &, unsigned int) - ?AddNewAttachmentL@CFSMailMessagePart@@QAEPAV1@ABVTDesC16@@VTFSMailMsgId@@0@Z @ 57 NONAME ; class CFSMailMessagePart * CFSMailMessagePart::AddNewAttachmentL(class TDesC16 const &, class TFSMailMsgId, class TDesC16 const &) - ?BlockCopyFromL@CFSMailFolderBase@@QAEXV?$RArray@W4TFSFolderType@@@@W4TFSMailBoxStatus@@@Z @ 58 NONAME ; void CFSMailFolderBase::BlockCopyFromL(class RArray, enum TFSMailBoxStatus) - ?GetSender@CFSMailMessageBase@@QBEPAVCFSMailAddress@@XZ @ 59 NONAME ; class CFSMailAddress * CFSMailMessageBase::GetSender(void) const - ?ClearSearchResultCache@CFSMailBox@@QAEXXZ @ 60 NONAME ; void CFSMailBox::ClearSearchResultCache(void) - ?CancelRequestL@CFSMailRequestHandler@@QAEXH@Z @ 61 NONAME ; void CFSMailRequestHandler::CancelRequestL(int) - ?ExtensionL@CFSMailBox@@UAEPAVCEmailExtension@@ABVTUid@@@Z @ 62 NONAME ; class CEmailExtension * CFSMailBox::ExtensionL(class TUid const &) - ?GetMailBoxId@CFSMailMessageBase@@QBE?AVTFSMailMsgId@@XZ @ 63 NONAME ; class TFSMailMsgId CFSMailMessageBase::GetMailBoxId(void) const - ?ExtensionL@CExtendableEmail@@UAEPAVCEmailExtension@@ABVTUid@@@Z @ 64 NONAME ; class CEmailExtension * CExtendableEmail::ExtensionL(class TUid const &) - ?ListFolders@CFSMailBox@@QAEXVTFSMailMsgId@@AAV?$RPointerArray@VCFSMailFolder@@@@@Z @ 65 NONAME ; void CFSMailBox::ListFolders(class TFSMailMsgId, class RPointerArray &) - ?NewL@CFSMailMessage@@SAPAV1@ABVNmMessage@@@Z @ 66 NONAME ; class CFSMailMessage * CFSMailMessage::NewL(class NmMessage const &) - ?HtmlBodyPartL@CFSMailMessage@@QAEPAVCFSMailMessagePart@@W4TFSMailMessagePartDataSource@2@@Z @ 67 NONAME ; class CFSMailMessagePart * CFSMailMessage::HtmlBodyPartL(enum CFSMailMessagePart::TFSMailMessagePartDataSource) - ?ContentDescription@CFSMailMessagePart@@QAEABVTDesC16@@XZ @ 68 NONAME ; class TDesC16 const & CFSMailMessagePart::ContentDescription(void) - ?SendMessageL@CFSMailBox@@QAEHAAVCFSMailMessage@@AAVMFSMailRequestObserver@@@Z @ 69 NONAME ; int CFSMailBox::SendMessageL(class CFSMailMessage &, class MFSMailRequestObserver &) - ?GetFolderType@CFSMailFolderBase@@QBE?AW4TFSFolderType@@XZ @ 70 NONAME ; enum TFSFolderType CFSMailFolderBase::GetFolderType(void) const - ?GetEmailAddress@CFSMailAddress@@QBEAAVTDesC16@@XZ @ 71 NONAME ; class TDesC16 & CFSMailAddress::GetEmailAddress(void) const - ?FSMailSortCriteria2NM@NmConverter@@SA?AVNmMailSortCriteria@@VTFSMailSortCriteria@@@Z @ 72 NONAME ; class NmMailSortCriteria NmConverter::FSMailSortCriteria2NM(class TFSMailSortCriteria) - ?NewL@CFSMailBox@@SAPAV1@VTFSMailMsgId@@@Z @ 73 NONAME ; class CFSMailBox * CFSMailBox::NewL(class TFSMailMsgId) - ?CreateMessageToSendL@CFSMailBox@@QAEHAAVMFSMailRequestObserver@@@Z @ 74 NONAME ; int CFSMailBox::CreateMessageToSendL(class MFSMailRequestObserver &) - ?FetchMessagesL@CFSMailFolder@@QAEHABV?$RArray@VTFSMailMsgId@@@@W4TFSMailDetails@@AAVMFSMailRequestObserver@@@Z @ 75 NONAME ; int CFSMailFolder::FetchMessagesL(class RArray const &, enum TFSMailDetails, class MFSMailRequestObserver &) - ?ContentID@CFSMailMessagePart@@QAEABVTDesC16@@XZ @ 76 NONAME ; class TDesC16 const & CFSMailMessagePart::ContentID(void) - ?RemoveChildPartL@CFSMailMessagePart@@QAEHVTFSMailMsgId@@AAVMFSMailRequestObserver@@@Z @ 77 NONAME ; int CFSMailMessagePart::RemoveChildPartL(class TFSMailMsgId, class MFSMailRequestObserver &) - ??1CFSMailFolder@@UAE@XZ @ 78 NONAME ; CFSMailFolder::~CFSMailFolder(void) - ?toQDateTime@NmConverter@@SA?AVQDateTime@@ABVTTime@@@Z @ 79 NONAME ; class QDateTime NmConverter::toQDateTime(class TTime const &) - ?GetContentFileL@CFSMailMessagePart@@QAE?AVRFile@@XZ @ 80 NONAME ; class RFile CFSMailMessagePart::GetContentFileL(void) + ?GetTempFileL@CFSMailRequestHandler@@QAE?AVRFile@@VTFSMailMsgId@@AAV?$TBuf@$0BAA@@@@Z @ 32 NONAME ; class RFile CFSMailRequestHandler::GetTempFileL(class TFSMailMsgId, class TBuf<256> &) + ?CurrentSyncState@CFSMailBox@@QBE?AW4TSSMailSyncState@@XZ @ 33 NONAME ; enum TSSMailSyncState CFSMailBox::CurrentSyncState(void) const + ?NewL@CFSMailFolderBase@@SAPAV1@VTFSMailMsgId@@@Z @ 34 NONAME ; class CFSMailFolderBase * CFSMailFolderBase::NewL(class TFSMailMsgId) + ?SetAttachmentNameL@CFSMailMessagePart@@QAEXABVTDesC16@@@Z @ 35 NONAME ; void CFSMailMessagePart::SetAttachmentNameL(class TDesC16 const &) + ?GetMessageCount@CFSMailFolderBase@@QBEIXZ @ 36 NONAME ; unsigned int CFSMailFolderBase::GetMessageCount(void) const + ?RemoveChildPartL@CFSMailMessagePart@@QAEXVTFSMailMsgId@@@Z @ 37 NONAME ; void CFSMailMessagePart::RemoveChildPartL(class TFSMailMsgId) + ?SaveMessagePartsL@CFSMailMessage@@QAEHAAVMFSMailRequestObserver@@@Z @ 38 NONAME ; int CFSMailMessage::SaveMessagePartsL(class MFSMailRequestObserver &) + ?MoveMessagesL@CFSMailBox@@QAEXABV?$RArray@VTFSMailMsgId@@@@VTFSMailMsgId@@1@Z @ 39 NONAME ; void CFSMailBox::MoveMessagesL(class RArray const &, class TFSMailMsgId, class TFSMailMsgId) + ?GetFolderName@CFSMailFolderBase@@QBEAAVTDesC16@@XZ @ 40 NONAME ; class TDesC16 & CFSMailFolderBase::GetFolderName(void) const + ?GetDisplayName@CFSMailAddress@@QBEAAVTDesC16@@XZ @ 41 NONAME ; class TDesC16 & CFSMailAddress::GetDisplayName(void) const + ?ConstructL@CFSMailFolderBase@@IAEXVTFSMailMsgId@@@Z @ 42 NONAME ; void CFSMailFolderBase::ConstructL(class TFSMailMsgId) + ?SetSubject@CFSMailMessageBase@@QAEXABVTDesC16@@@Z @ 43 NONAME ; void CFSMailMessageBase::SetSubject(class TDesC16 const &) + ?CreateReplyMessage@CFSMailBox@@QAEPAVCFSMailMessage@@VTFSMailMsgId@@HABVTDesC16@@@Z @ 44 NONAME ; class CFSMailMessage * CFSMailBox::CreateReplyMessage(class TFSMailMsgId, int, class TDesC16 const &) + ?CopyContentFileL@CFSMailMessagePart@@QAEXABVTDesC16@@@Z @ 45 NONAME ; void CFSMailMessagePart::CopyContentFileL(class TDesC16 const &) + ??1CFSMailBoxBase@@UAE@XZ @ 46 NONAME ; CFSMailBoxBase::~CFSMailBoxBase(void) + ?NewLC@CFSMailBox@@SAPAV1@VTFSMailMsgId@@@Z @ 47 NONAME ; class CFSMailBox * CFSMailBox::NewLC(class TFSMailMsgId) + ?GetParentFolderId@CFSMailFolderBase@@QBE?AVTFSMailMsgId@@XZ @ 48 NONAME ; class TFSMailMsgId CFSMailFolderBase::GetParentFolderId(void) const + ?ConstructL@CFSMailMessageBase@@IAEXABVNmMessageEnvelope@@@Z @ 49 NONAME ; void CFSMailMessageBase::ConstructL(class NmMessageEnvelope const &) + ?ReleaseExtension@CFSMailMessageBase@@UAEXPAVCEmailExtension@@@Z @ 50 NONAME ; void CFSMailMessageBase::ReleaseExtension(class CEmailExtension *) + ??_ECFSMailRequestHandler@@UAE@I@Z @ 51 NONAME ; CFSMailRequestHandler::~CFSMailRequestHandler(unsigned int) + ?NewLC@CFSMailFolder@@SAPAV1@VTFSMailMsgId@@@Z @ 52 NONAME ; class CFSMailFolder * CFSMailFolder::NewLC(class TFSMailMsgId) + ?NewL@CFSMailAddress@@SAPAV1@XZ @ 53 NONAME ; class CFSMailAddress * CFSMailAddress::NewL(void) + ?IsMessageL@CFSMailMessagePart@@UBEHXZ @ 54 NONAME ; int CFSMailMessagePart::IsMessageL(void) const + ?Uid@CEmailExtension@@QBE?AVTUid@@XZ @ 55 NONAME ; class TUid CEmailExtension::Uid(void) const + ?GetNmMessage@CFSMailMessage@@QAEPAVNmMessage@@XZ @ 56 NONAME ; class NmMessage * CFSMailMessage::GetNmMessage(void) + ?GetContentToBufferL@CFSMailMessagePart@@QAEXAAVTDes16@@I@Z @ 57 NONAME ; void CFSMailMessagePart::GetContentToBufferL(class TDes16 &, unsigned int) + ?AddNewAttachmentL@CFSMailMessagePart@@QAEPAV1@ABVTDesC16@@VTFSMailMsgId@@0@Z @ 58 NONAME ; class CFSMailMessagePart * CFSMailMessagePart::AddNewAttachmentL(class TDesC16 const &, class TFSMailMsgId, class TDesC16 const &) + ?BlockCopyFromL@CFSMailFolderBase@@QAEXV?$RArray@W4TFSFolderType@@@@W4TFSMailBoxStatus@@@Z @ 59 NONAME ; void CFSMailFolderBase::BlockCopyFromL(class RArray, enum TFSMailBoxStatus) + ?GetSender@CFSMailMessageBase@@QBEPAVCFSMailAddress@@XZ @ 60 NONAME ; class CFSMailAddress * CFSMailMessageBase::GetSender(void) const + ?ClearSearchResultCache@CFSMailBox@@QAEXXZ @ 61 NONAME ; void CFSMailBox::ClearSearchResultCache(void) + ?CancelRequestL@CFSMailRequestHandler@@QAEXH@Z @ 62 NONAME ; void CFSMailRequestHandler::CancelRequestL(int) + ?ExtensionL@CFSMailBox@@UAEPAVCEmailExtension@@ABVTUid@@@Z @ 63 NONAME ; class CEmailExtension * CFSMailBox::ExtensionL(class TUid const &) + ?GetMailBoxId@CFSMailMessageBase@@QBE?AVTFSMailMsgId@@XZ @ 64 NONAME ; class TFSMailMsgId CFSMailMessageBase::GetMailBoxId(void) const + ?ExtensionL@CExtendableEmail@@UAEPAVCEmailExtension@@ABVTUid@@@Z @ 65 NONAME ; class CEmailExtension * CExtendableEmail::ExtensionL(class TUid const &) + ?ListFolders@CFSMailBox@@QAEXVTFSMailMsgId@@AAV?$RPointerArray@VCFSMailFolder@@@@@Z @ 66 NONAME ; void CFSMailBox::ListFolders(class TFSMailMsgId, class RPointerArray &) + ?NewL@CFSMailMessage@@SAPAV1@ABVNmMessage@@@Z @ 67 NONAME ; class CFSMailMessage * CFSMailMessage::NewL(class NmMessage const &) + ?HtmlBodyPartL@CFSMailMessage@@QAEPAVCFSMailMessagePart@@W4TFSMailMessagePartDataSource@2@@Z @ 68 NONAME ; class CFSMailMessagePart * CFSMailMessage::HtmlBodyPartL(enum CFSMailMessagePart::TFSMailMessagePartDataSource) + ?ContentDescription@CFSMailMessagePart@@QAEABVTDesC16@@XZ @ 69 NONAME ; class TDesC16 const & CFSMailMessagePart::ContentDescription(void) + ?SendMessageL@CFSMailBox@@QAEHAAVCFSMailMessage@@AAVMFSMailRequestObserver@@@Z @ 70 NONAME ; int CFSMailBox::SendMessageL(class CFSMailMessage &, class MFSMailRequestObserver &) + ?GetFolderType@CFSMailFolderBase@@QBE?AW4TFSFolderType@@XZ @ 71 NONAME ; enum TFSFolderType CFSMailFolderBase::GetFolderType(void) const + ?GetEmailAddress@CFSMailAddress@@QBEAAVTDesC16@@XZ @ 72 NONAME ; class TDesC16 & CFSMailAddress::GetEmailAddress(void) const + ?FSMailSortCriteria2NM@NmConverter@@SA?AVNmMailSortCriteria@@VTFSMailSortCriteria@@@Z @ 73 NONAME ; class NmMailSortCriteria NmConverter::FSMailSortCriteria2NM(class TFSMailSortCriteria) + ?NewL@CFSMailBox@@SAPAV1@VTFSMailMsgId@@@Z @ 74 NONAME ; class CFSMailBox * CFSMailBox::NewL(class TFSMailMsgId) + ?CreateMessageToSendL@CFSMailBox@@QAEHAAVMFSMailRequestObserver@@@Z @ 75 NONAME ; int CFSMailBox::CreateMessageToSendL(class MFSMailRequestObserver &) + ?FetchMessagesL@CFSMailFolder@@QAEHABV?$RArray@VTFSMailMsgId@@@@W4TFSMailDetails@@AAVMFSMailRequestObserver@@@Z @ 76 NONAME ; int CFSMailFolder::FetchMessagesL(class RArray const &, enum TFSMailDetails, class MFSMailRequestObserver &) + ?ContentID@CFSMailMessagePart@@QAEABVTDesC16@@XZ @ 77 NONAME ; class TDesC16 const & CFSMailMessagePart::ContentID(void) + ?RemoveChildPartL@CFSMailMessagePart@@QAEHVTFSMailMsgId@@AAVMFSMailRequestObserver@@@Z @ 78 NONAME ; int CFSMailMessagePart::RemoveChildPartL(class TFSMailMsgId, class MFSMailRequestObserver &) + ??1CFSMailFolder@@UAE@XZ @ 79 NONAME ; CFSMailFolder::~CFSMailFolder(void) + ?toQDateTime@NmConverter@@SA?AVQDateTime@@ABVTTime@@@Z @ 80 NONAME ; class QDateTime NmConverter::toQDateTime(class TTime const &) ?AddNewAttachmentL@CFSMailMessage@@QAEHABVTDesC16@@AAVMFSMailRequestObserver@@@Z @ 81 NONAME ; int CFSMailMessage::AddNewAttachmentL(class TDesC16 const &, class MFSMailRequestObserver &) ?AppendBCCRecipient@CFSMailMessageBase@@QAEXPAVCFSMailAddress@@@Z @ 82 NONAME ; void CFSMailMessageBase::AppendBCCRecipient(class CFSMailAddress *) ?ExtensionL@CFSMailFolder@@UAEPAVCEmailExtension@@ABVTUid@@@Z @ 83 NONAME ; class CEmailExtension * CFSMailFolder::ExtensionL(class TUid const &) @@ -139,65 +139,65 @@ ?SetSender@CFSMailMessageBase@@QAEXPAVCFSMailAddress@@@Z @ 138 NONAME ; void CFSMailMessageBase::SetSender(class CFSMailAddress *) ?FindBodyPartL@CFSMailMessagePart@@QAEPAV1@ABVTDesC16@@W4TFSMailMessagePartDataSource@1@@Z @ 139 NONAME ; class CFSMailMessagePart * CFSMailMessagePart::FindBodyPartL(class TDesC16 const &, enum CFSMailMessagePart::TFSMailMessagePartDataSource) ?CreateForwardMessageL@CFSMailBox@@QAEHVTFSMailMsgId@@AAVMFSMailRequestObserver@@ABVTDesC16@@@Z @ 140 NONAME ; int CFSMailBox::CreateForwardMessageL(class TFSMailMsgId, class MFSMailRequestObserver &, class TDesC16 const &) - ?GetTempFileL@CFSMailRequestHandler@@QAE?AVRFile@@VTFSMailMsgId@@V?$TBuf@$0BAA@@@@Z @ 141 NONAME ; class RFile CFSMailRequestHandler::GetTempFileL(class TFSMailMsgId, class TBuf<256>) - ?SetMailBoxId@CFSMailFolderBase@@QAEXVTFSMailMsgId@@@Z @ 142 NONAME ; void CFSMailFolderBase::SetMailBoxId(class TFSMailMsgId) - ?OwnMailAddress@CFSMailBoxBase@@QAEAAVCFSMailAddress@@XZ @ 143 NONAME ; class CFSMailAddress & CFSMailBoxBase::OwnMailAddress(void) - ?SetContent@CFSMailMessagePart@@QAEXAAVTDes16@@@Z @ 144 NONAME ; void CFSMailMessagePart::SetContent(class TDes16 &) - ?RemoveMessageL@CFSMailFolder@@QAEXVTFSMailMsgId@@@Z @ 145 NONAME ; void CFSMailFolder::RemoveMessageL(class TFSMailMsgId) - ?NewLC@CFSMailMessageBase@@SAPAV1@VTFSMailMsgId@@@Z @ 146 NONAME ; class CFSMailMessageBase * CFSMailMessageBase::NewLC(class TFSMailMsgId) - ?CompleteRequest@CFSMailRequestHandler@@QAEXH@Z @ 147 NONAME ; void CFSMailRequestHandler::CompleteRequest(int) - ?GetFolderId@CFSMailFolderBase@@QBE?AVTFSMailMsgId@@XZ @ 148 NONAME ; class TFSMailMsgId CFSMailFolderBase::GetFolderId(void) const - ?SetMRInfo@CFSMailMessagePart@@QAEXPAVMMRInfoObject@@@Z @ 149 NONAME ; void CFSMailMessagePart::SetMRInfo(class MMRInfoObject *) - ??0CFSMailRequestHandler@@IAE@XZ @ 150 NONAME ; CFSMailRequestHandler::CFSMailRequestHandler(void) - ?GoOnlineL@CFSMailBox@@QAEXXZ @ 151 NONAME ; void CFSMailBox::GoOnlineL(void) - ?SetMessageCount@CFSMailFolderBase@@QAEXI@Z @ 152 NONAME ; void CFSMailFolderBase::SetMessageCount(unsigned int) - ?NewLC@CFSMailMessagePart@@SAPAV1@VTFSMailMsgId@@0@Z @ 153 NONAME ; class CFSMailMessagePart * CFSMailMessagePart::NewLC(class TFSMailMsgId, class TFSMailMsgId) - ??1CFSMailMessagePart@@UAE@XZ @ 154 NONAME ; CFSMailMessagePart::~CFSMailMessagePart(void) - ?NewLC@CFSMailMessagePart@@SAPAV1@ABVNmId@@ABVNmMessagePart@@@Z @ 155 NONAME ; class CFSMailMessagePart * CFSMailMessagePart::NewLC(class NmId const &, class NmMessagePart const &) - ??1TEmailExtensions@@QAE@XZ @ 156 NONAME ; TEmailExtensions::~TEmailExtensions(void) - ?ContentTypeParameters@CFSMailMessagePart@@QAEAAVCDesC16Array@@XZ @ 157 NONAME ; class CDesC16Array & CFSMailMessagePart::ContentTypeParameters(void) - ?GetNmMessagePart@CFSMailMessagePart@@QAEPAVNmMessagePart@@XZ @ 158 NONAME ; class NmMessagePart * CFSMailMessagePart::GetNmMessagePart(void) - ??1CFSMailAddress@@UAE@XZ @ 159 NONAME ; CFSMailAddress::~CFSMailAddress(void) - ?SetParentFolderId@CFSMailFolderBase@@QAEXVTFSMailMsgId@@@Z @ 160 NONAME ; void CFSMailFolderBase::SetParentFolderId(class TFSMailMsgId) - ?AttachmentNameL@CFSMailMessagePart@@QAEAAVTDesC16@@XZ @ 161 NONAME ; class TDesC16 & CFSMailMessagePart::AttachmentNameL(void) - ?GetToRecipients@CFSMailMessageBase@@QAE?AV?$RPointerArray@VCFSMailAddress@@@@XZ @ 162 NONAME ; class RPointerArray CFSMailMessageBase::GetToRecipients(void) - ?SetContentDescription@CFSMailMessagePart@@QAEXABVTDesC16@@@Z @ 163 NONAME ; void CFSMailMessagePart::SetContentDescription(class TDesC16 const &) - ?NMMailSortCriteria2FS@NmConverter@@SA?AVTFSMailSortCriteria@@VNmMailSortCriteria@@@Z @ 164 NONAME ; class TFSMailSortCriteria NmConverter::NMMailSortCriteria2FS(class NmMailSortCriteria) - ?GetContentClass@CFSMailMessagePart@@QAEABVTDesC16@@XZ @ 165 NONAME ; class TDesC16 const & CFSMailMessagePart::GetContentClass(void) - ?GetContentType@CFSMailMessagePart@@QBEABVTDesC16@@XZ @ 166 NONAME ; class TDesC16 const & CFSMailMessagePart::GetContentType(void) const - ?SetOwnMailAddressL@CFSMailBoxBase@@QAEXPAVCFSMailAddress@@@Z @ 167 NONAME ; void CFSMailBoxBase::SetOwnMailAddressL(class CFSMailAddress *) - ?GetPluginByUid@CFSMailRequestHandler@@QAEPAVCFSMailPlugin@@VTFSMailMsgId@@@Z @ 168 NONAME ; class CFSMailPlugin * CFSMailRequestHandler::GetPluginByUid(class TFSMailMsgId) - ?GetSubFolderCount@CFSMailFolderBase@@QBEIXZ @ 169 NONAME ; unsigned int CFSMailFolderBase::GetSubFolderCount(void) const - ?SetMRInfoProcessorL@CFSMailBoxBase@@QAEXPAVMMRInfoProcessor@@@Z @ 170 NONAME ; void CFSMailBoxBase::SetMRInfoProcessorL(class MMRInfoProcessor *) - ?FetchMessagePartL@CFSMailMessagePart@@QAEHVTFSMailMsgId@@AAVMFSMailRequestObserver@@I@Z @ 171 NONAME ; int CFSMailMessagePart::FetchMessagePartL(class TFSMailMsgId, class MFSMailRequestObserver &, unsigned int) - ?ContentSize@CFSMailMessagePart@@QBEIXZ @ 172 NONAME ; unsigned int CFSMailMessagePart::ContentSize(void) const - ?InitAsyncRequestL@CFSMailRequestHandler@@QAE?AVTFSPendingRequest@@VTUid@@AAVMFSMailRequestObserver@@@Z @ 173 NONAME ; class TFSPendingRequest CFSMailRequestHandler::InitAsyncRequestL(class TUid, class MFSMailRequestObserver &) - ?toQString@NmConverter@@SA?AVQString@@ABVTDesC16@@@Z @ 174 NONAME ; class QString NmConverter::toQString(class TDesC16 const &) - ?GetNmAddress@CFSMailAddress@@QAE?AVNmAddress@@XZ @ 175 NONAME ; class NmAddress CFSMailAddress::GetNmAddress(void) - ?NewLC@CFSMailRequestHandler@@SAPAV1@AAV?$RPointerArray@VCImplementationInformation@@@@AAV?$RPointerArray@VCFSMailPlugin@@@@@Z @ 176 NONAME ; class CFSMailRequestHandler * CFSMailRequestHandler::NewLC(class RPointerArray &, class RPointerArray &) - ?NewL@CFSMailFolder@@SAPAV1@VTFSMailMsgId@@@Z @ 177 NONAME ; class CFSMailFolder * CFSMailFolder::NewL(class TFSMailMsgId) - ?SetFetchedContentSize@CFSMailMessagePart@@QAEXI@Z @ 178 NONAME ; void CFSMailMessagePart::SetFetchedContentSize(unsigned int) - ?RemoveAllRequests@CFSMailRequestHandler@@AAEXXZ @ 179 NONAME ; void CFSMailRequestHandler::RemoveAllRequests(void) - ?SetMessagePartsStatus@CFSMailMessagePart@@QAEXW4TFSPartFetchState@@@Z @ 180 NONAME ; void CFSMailMessagePart::SetMessagePartsStatus(enum TFSPartFetchState) - ?SearchL@CFSMailBox@@QAEXABV?$RPointerArray@VTDesC16@@@@ABVTFSMailSortCriteria@@AAVMFSMailBoxSearchObserver@@@Z @ 181 NONAME ; void CFSMailBox::SearchL(class RPointerArray const &, class TFSMailSortCriteria const &, class MFSMailBoxSearchObserver &) - ?SetMessageId@CFSMailMessageBase@@IAEXVTFSMailMsgId@@@Z @ 182 NONAME ; void CFSMailMessageBase::SetMessageId(class TFSMailMsgId) - ?SetContentType@CFSMailMessagePart@@QAEXABVTDesC16@@@Z @ 183 NONAME ; void CFSMailMessagePart::SetContentType(class TDesC16 const &) - ??_ECExtendableEmail@@UAE@I@Z @ 184 NONAME ; CExtendableEmail::~CExtendableEmail(unsigned int) - ?NextL@CFSMailIterator@@UAEHABVTDesC16@@IAAV?$RPointerArray@VCFSMailMessage@@@@@Z @ 185 NONAME ; int CFSMailIterator::NextL(class TDesC16 const &, unsigned int, class RPointerArray &) - ?ListMessagesL@CFSMailFolder@@QAEPAVMFSMailIterator@@W4TFSMailDetails@@ABV?$RArray@VTFSMailSortCriteria@@@@@Z @ 186 NONAME ; class MFSMailIterator * CFSMailFolder::ListMessagesL(enum TFSMailDetails, class RArray const &) - ?NewLC@CFSMailBoxBase@@SAPAV1@VTFSMailMsgId@@@Z @ 187 NONAME ; class CFSMailBoxBase * CFSMailBoxBase::NewLC(class TFSMailMsgId) - ?AppendAttachmentsL@CFSMailMessagePart@@QAEXAAV?$RPointerArray@VCFSMailMessagePart@@@@@Z @ 188 NONAME ; void CFSMailMessagePart::AppendAttachmentsL(class RPointerArray &) - ?SetFolderName@CFSMailFolderBase@@QAEXABVTDesC16@@@Z @ 189 NONAME ; void CFSMailFolderBase::SetFolderName(class TDesC16 const &) - ?AppendToRecipient@CFSMailMessageBase@@QAEXPAVCFSMailAddress@@@Z @ 190 NONAME ; void CFSMailMessageBase::AppendToRecipient(class CFSMailAddress *) - ?AddNewAttachmentL@CFSMailMessage@@QAEPAVCFSMailMessagePart@@ABVTDesC16@@VTFSMailMsgId@@@Z @ 191 NONAME ; class CFSMailMessagePart * CFSMailMessage::AddNewAttachmentL(class TDesC16 const &, class TFSMailMsgId) - ?SetSettingsUid@CFSMailBoxBase@@QAEXVTUid@@@Z @ 192 NONAME ; void CFSMailBoxBase::SetSettingsUid(class TUid) - ??0CEmailExtension@@IAE@ABVTUid@@@Z @ 193 NONAME ; CEmailExtension::CEmailExtension(class TUid const &) - ?GetUnseenCount@CFSMailFolderBase@@QBEIXZ @ 194 NONAME ; unsigned int CFSMailFolderBase::GetUnseenCount(void) const - ?SetReadOnlyPartSize@CFSMailMessagePart@@QAEXI@Z @ 195 NONAME ; void CFSMailMessagePart::SetReadOnlyPartSize(unsigned int) - ?SetDate@CFSMailMessageBase@@QAEXVTTime@@@Z @ 196 NONAME ; void CFSMailMessageBase::SetDate(class TTime) - ?NewL@CFSMailMessage@@SAPAV1@VTFSMailMsgId@@@Z @ 197 NONAME ; class CFSMailMessage * CFSMailMessage::NewL(class TFSMailMsgId) - ?mailMsgIdToNmId@NmConverter@@SA?AVNmId@@VTFSMailMsgId@@@Z @ 198 NONAME ; class NmId NmConverter::mailMsgIdToNmId(class TFSMailMsgId) - ?SetEmailAddress@CFSMailAddress@@QAEXABVTDesC16@@@Z @ 199 NONAME ; void CFSMailAddress::SetEmailAddress(class TDesC16 const &) + ?SetMailBoxId@CFSMailFolderBase@@QAEXVTFSMailMsgId@@@Z @ 141 NONAME ; void CFSMailFolderBase::SetMailBoxId(class TFSMailMsgId) + ?OwnMailAddress@CFSMailBoxBase@@QAEAAVCFSMailAddress@@XZ @ 142 NONAME ; class CFSMailAddress & CFSMailBoxBase::OwnMailAddress(void) + ?SetContent@CFSMailMessagePart@@QAEXAAVTDes16@@@Z @ 143 NONAME ; void CFSMailMessagePart::SetContent(class TDes16 &) + ?RemoveMessageL@CFSMailFolder@@QAEXVTFSMailMsgId@@@Z @ 144 NONAME ; void CFSMailFolder::RemoveMessageL(class TFSMailMsgId) + ?NewLC@CFSMailMessageBase@@SAPAV1@VTFSMailMsgId@@@Z @ 145 NONAME ; class CFSMailMessageBase * CFSMailMessageBase::NewLC(class TFSMailMsgId) + ?CompleteRequest@CFSMailRequestHandler@@QAEXH@Z @ 146 NONAME ; void CFSMailRequestHandler::CompleteRequest(int) + ?GetFolderId@CFSMailFolderBase@@QBE?AVTFSMailMsgId@@XZ @ 147 NONAME ; class TFSMailMsgId CFSMailFolderBase::GetFolderId(void) const + ?SetMRInfo@CFSMailMessagePart@@QAEXPAVMMRInfoObject@@@Z @ 148 NONAME ; void CFSMailMessagePart::SetMRInfo(class MMRInfoObject *) + ??0CFSMailRequestHandler@@IAE@XZ @ 149 NONAME ; CFSMailRequestHandler::CFSMailRequestHandler(void) + ?GoOnlineL@CFSMailBox@@QAEXXZ @ 150 NONAME ; void CFSMailBox::GoOnlineL(void) + ?SetMessageCount@CFSMailFolderBase@@QAEXI@Z @ 151 NONAME ; void CFSMailFolderBase::SetMessageCount(unsigned int) + ?NewLC@CFSMailMessagePart@@SAPAV1@VTFSMailMsgId@@0@Z @ 152 NONAME ; class CFSMailMessagePart * CFSMailMessagePart::NewLC(class TFSMailMsgId, class TFSMailMsgId) + ??1CFSMailMessagePart@@UAE@XZ @ 153 NONAME ; CFSMailMessagePart::~CFSMailMessagePart(void) + ?NewLC@CFSMailMessagePart@@SAPAV1@ABVNmId@@ABVNmMessagePart@@@Z @ 154 NONAME ; class CFSMailMessagePart * CFSMailMessagePart::NewLC(class NmId const &, class NmMessagePart const &) + ??1TEmailExtensions@@QAE@XZ @ 155 NONAME ; TEmailExtensions::~TEmailExtensions(void) + ?ContentTypeParameters@CFSMailMessagePart@@QAEAAVCDesC16Array@@XZ @ 156 NONAME ; class CDesC16Array & CFSMailMessagePart::ContentTypeParameters(void) + ?GetNmMessagePart@CFSMailMessagePart@@QAEPAVNmMessagePart@@XZ @ 157 NONAME ; class NmMessagePart * CFSMailMessagePart::GetNmMessagePart(void) + ??1CFSMailAddress@@UAE@XZ @ 158 NONAME ; CFSMailAddress::~CFSMailAddress(void) + ?SetParentFolderId@CFSMailFolderBase@@QAEXVTFSMailMsgId@@@Z @ 159 NONAME ; void CFSMailFolderBase::SetParentFolderId(class TFSMailMsgId) + ?AttachmentNameL@CFSMailMessagePart@@QAEAAVTDesC16@@XZ @ 160 NONAME ; class TDesC16 & CFSMailMessagePart::AttachmentNameL(void) + ?GetToRecipients@CFSMailMessageBase@@QAE?AV?$RPointerArray@VCFSMailAddress@@@@XZ @ 161 NONAME ; class RPointerArray CFSMailMessageBase::GetToRecipients(void) + ?SetContentDescription@CFSMailMessagePart@@QAEXABVTDesC16@@@Z @ 162 NONAME ; void CFSMailMessagePart::SetContentDescription(class TDesC16 const &) + ?NMMailSortCriteria2FS@NmConverter@@SA?AVTFSMailSortCriteria@@VNmMailSortCriteria@@@Z @ 163 NONAME ; class TFSMailSortCriteria NmConverter::NMMailSortCriteria2FS(class NmMailSortCriteria) + ?GetContentClass@CFSMailMessagePart@@QAEABVTDesC16@@XZ @ 164 NONAME ; class TDesC16 const & CFSMailMessagePart::GetContentClass(void) + ?GetContentType@CFSMailMessagePart@@QBEABVTDesC16@@XZ @ 165 NONAME ; class TDesC16 const & CFSMailMessagePart::GetContentType(void) const + ?SetOwnMailAddressL@CFSMailBoxBase@@QAEXPAVCFSMailAddress@@@Z @ 166 NONAME ; void CFSMailBoxBase::SetOwnMailAddressL(class CFSMailAddress *) + ?GetPluginByUid@CFSMailRequestHandler@@QAEPAVCFSMailPlugin@@VTFSMailMsgId@@@Z @ 167 NONAME ; class CFSMailPlugin * CFSMailRequestHandler::GetPluginByUid(class TFSMailMsgId) + ?GetSubFolderCount@CFSMailFolderBase@@QBEIXZ @ 168 NONAME ; unsigned int CFSMailFolderBase::GetSubFolderCount(void) const + ?SetMRInfoProcessorL@CFSMailBoxBase@@QAEXPAVMMRInfoProcessor@@@Z @ 169 NONAME ; void CFSMailBoxBase::SetMRInfoProcessorL(class MMRInfoProcessor *) + ?FetchMessagePartL@CFSMailMessagePart@@QAEHVTFSMailMsgId@@AAVMFSMailRequestObserver@@I@Z @ 170 NONAME ; int CFSMailMessagePart::FetchMessagePartL(class TFSMailMsgId, class MFSMailRequestObserver &, unsigned int) + ?ContentSize@CFSMailMessagePart@@QBEIXZ @ 171 NONAME ; unsigned int CFSMailMessagePart::ContentSize(void) const + ?InitAsyncRequestL@CFSMailRequestHandler@@QAE?AVTFSPendingRequest@@VTUid@@AAVMFSMailRequestObserver@@@Z @ 172 NONAME ; class TFSPendingRequest CFSMailRequestHandler::InitAsyncRequestL(class TUid, class MFSMailRequestObserver &) + ?toQString@NmConverter@@SA?AVQString@@ABVTDesC16@@@Z @ 173 NONAME ; class QString NmConverter::toQString(class TDesC16 const &) + ?GetNmAddress@CFSMailAddress@@QAE?AVNmAddress@@XZ @ 174 NONAME ; class NmAddress CFSMailAddress::GetNmAddress(void) + ?NewLC@CFSMailRequestHandler@@SAPAV1@AAV?$RPointerArray@VCImplementationInformation@@@@AAV?$RPointerArray@VCFSMailPlugin@@@@@Z @ 175 NONAME ; class CFSMailRequestHandler * CFSMailRequestHandler::NewLC(class RPointerArray &, class RPointerArray &) + ?NewL@CFSMailFolder@@SAPAV1@VTFSMailMsgId@@@Z @ 176 NONAME ; class CFSMailFolder * CFSMailFolder::NewL(class TFSMailMsgId) + ?SetFetchedContentSize@CFSMailMessagePart@@QAEXI@Z @ 177 NONAME ; void CFSMailMessagePart::SetFetchedContentSize(unsigned int) + ?RemoveAllRequests@CFSMailRequestHandler@@AAEXXZ @ 178 NONAME ; void CFSMailRequestHandler::RemoveAllRequests(void) + ?SetMessagePartsStatus@CFSMailMessagePart@@QAEXW4TFSPartFetchState@@@Z @ 179 NONAME ; void CFSMailMessagePart::SetMessagePartsStatus(enum TFSPartFetchState) + ?SearchL@CFSMailBox@@QAEXABV?$RPointerArray@VTDesC16@@@@ABVTFSMailSortCriteria@@AAVMFSMailBoxSearchObserver@@@Z @ 180 NONAME ; void CFSMailBox::SearchL(class RPointerArray const &, class TFSMailSortCriteria const &, class MFSMailBoxSearchObserver &) + ?SetMessageId@CFSMailMessageBase@@IAEXVTFSMailMsgId@@@Z @ 181 NONAME ; void CFSMailMessageBase::SetMessageId(class TFSMailMsgId) + ?SetContentType@CFSMailMessagePart@@QAEXABVTDesC16@@@Z @ 182 NONAME ; void CFSMailMessagePart::SetContentType(class TDesC16 const &) + ??_ECExtendableEmail@@UAE@I@Z @ 183 NONAME ; CExtendableEmail::~CExtendableEmail(unsigned int) + ?NextL@CFSMailIterator@@UAEHABVTDesC16@@IAAV?$RPointerArray@VCFSMailMessage@@@@@Z @ 184 NONAME ; int CFSMailIterator::NextL(class TDesC16 const &, unsigned int, class RPointerArray &) + ?ListMessagesL@CFSMailFolder@@QAEPAVMFSMailIterator@@W4TFSMailDetails@@ABV?$RArray@VTFSMailSortCriteria@@@@@Z @ 185 NONAME ; class MFSMailIterator * CFSMailFolder::ListMessagesL(enum TFSMailDetails, class RArray const &) + ?NewLC@CFSMailBoxBase@@SAPAV1@VTFSMailMsgId@@@Z @ 186 NONAME ; class CFSMailBoxBase * CFSMailBoxBase::NewLC(class TFSMailMsgId) + ?AppendAttachmentsL@CFSMailMessagePart@@QAEXAAV?$RPointerArray@VCFSMailMessagePart@@@@@Z @ 187 NONAME ; void CFSMailMessagePart::AppendAttachmentsL(class RPointerArray &) + ?SetFolderName@CFSMailFolderBase@@QAEXABVTDesC16@@@Z @ 188 NONAME ; void CFSMailFolderBase::SetFolderName(class TDesC16 const &) + ?AppendToRecipient@CFSMailMessageBase@@QAEXPAVCFSMailAddress@@@Z @ 189 NONAME ; void CFSMailMessageBase::AppendToRecipient(class CFSMailAddress *) + ?AddNewAttachmentL@CFSMailMessage@@QAEPAVCFSMailMessagePart@@ABVTDesC16@@VTFSMailMsgId@@@Z @ 190 NONAME ; class CFSMailMessagePart * CFSMailMessage::AddNewAttachmentL(class TDesC16 const &, class TFSMailMsgId) + ?SetSettingsUid@CFSMailBoxBase@@QAEXVTUid@@@Z @ 191 NONAME ; void CFSMailBoxBase::SetSettingsUid(class TUid) + ??0CEmailExtension@@IAE@ABVTUid@@@Z @ 192 NONAME ; CEmailExtension::CEmailExtension(class TUid const &) + ?GetUnseenCount@CFSMailFolderBase@@QBEIXZ @ 193 NONAME ; unsigned int CFSMailFolderBase::GetUnseenCount(void) const + ?SetReadOnlyPartSize@CFSMailMessagePart@@QAEXI@Z @ 194 NONAME ; void CFSMailMessagePart::SetReadOnlyPartSize(unsigned int) + ?SetDate@CFSMailMessageBase@@QAEXVTTime@@@Z @ 195 NONAME ; void CFSMailMessageBase::SetDate(class TTime) + ?NewL@CFSMailMessage@@SAPAV1@VTFSMailMsgId@@@Z @ 196 NONAME ; class CFSMailMessage * CFSMailMessage::NewL(class TFSMailMsgId) + ?mailMsgIdToNmId@NmConverter@@SA?AVNmId@@VTFSMailMsgId@@@Z @ 197 NONAME ; class NmId NmConverter::mailMsgIdToNmId(class TFSMailMsgId) + ?SetEmailAddress@CFSMailAddress@@QAEXABVTDesC16@@@Z @ 198 NONAME ; void CFSMailAddress::SetEmailAddress(class TDesC16 const &) + ?GetContentFileL@CFSMailMessagePart@@QAE?AVRFile@@H@Z @ 199 NONAME ; class RFile CFSMailMessagePart::GetContentFileL(int) ?NextL@CFSMailIterator@@UAEHVTFSMailMsgId@@IAAV?$RPointerArray@VCFSMailMessage@@@@@Z @ 200 NONAME ; int CFSMailIterator::NextL(class TFSMailMsgId, unsigned int, class RPointerArray &) ?SetUnreadCount@CFSMailFolderBase@@QAEXI@Z @ 201 NONAME ; void CFSMailFolderBase::SetUnreadCount(unsigned int) ?SetRCLInfo@CFSMailBoxBase@@QAEXVTUid@@I@Z @ 202 NONAME ; void CFSMailBoxBase::SetRCLInfo(class TUid, unsigned int) @@ -205,30 +205,31 @@ ?qstringToHBufCLC@NmConverter@@SAPAVHBufC16@@ABVQString@@@Z @ 204 NONAME ; class HBufC16 * NmConverter::qstringToHBufCLC(class QString const &) ?NewLC@CFSMailFolderBase@@SAPAV1@VTFSMailMsgId@@@Z @ 205 NONAME ; class CFSMailFolderBase * CFSMailFolderBase::NewLC(class TFSMailMsgId) ?AppendCCRecipient@CFSMailMessageBase@@QAEXPAVCFSMailAddress@@@Z @ 206 NONAME ; void CFSMailMessageBase::AppendCCRecipient(class CFSMailAddress *) - ?GetMessageId@CFSMailMessageBase@@QBE?AVTFSMailMsgId@@XZ @ 207 NONAME ; class TFSMailMsgId CFSMailMessageBase::GetMessageId(void) const - ?GetSubject@CFSMailMessageBase@@QBEAAVTDesC16@@XZ @ 208 NONAME ; class TDesC16 & CFSMailMessageBase::GetSubject(void) const - ?NewL@CFSMailIterator@@SAPAV1@AAVMFSMailIterator@@PAVCFSMailRequestHandler@@@Z @ 209 NONAME ; class CFSMailIterator * CFSMailIterator::NewL(class MFSMailIterator &, class CFSMailRequestHandler *) - ?RefreshNowL@CFSMailBox@@QAEHAAVMFSMailRequestObserver@@@Z @ 210 NONAME ; int CFSMailBox::RefreshNowL(class MFSMailRequestObserver &) - ?Extension@TEmailExtensions@@QBEPAVCEmailExtension@@H@Z @ 211 NONAME ; class CEmailExtension * TEmailExtensions::Extension(int) const - ??1CFSMailRequestHandler@@UAE@XZ @ 212 NONAME ; CFSMailRequestHandler::~CFSMailRequestHandler(void) - ?DecRef@CEmailExtension@@QAEIXZ @ 213 NONAME ; unsigned int CEmailExtension::DecRef(void) - ?SetSubFolderCount@CFSMailFolderBase@@QAEXI@Z @ 214 NONAME ; void CFSMailFolderBase::SetSubFolderCount(unsigned int) - ?AddL@TEmailExtensions@@QAEXPAVCEmailExtension@@@Z @ 215 NONAME ; void TEmailExtensions::AddL(class CEmailExtension *) - ?ClearCcRecipients@CFSMailMessageBase@@QAEXXZ @ 216 NONAME ; void CFSMailMessageBase::ClearCcRecipients(void) - ?GetPartId@CFSMailMessagePart@@QBE?AVTFSMailMsgId@@XZ @ 217 NONAME ; class TFSMailMsgId CFSMailMessagePart::GetPartId(void) const - ?ExtensionL@CFSMailMessageBase@@UAEPAVCEmailExtension@@ABVTUid@@@Z @ 218 NONAME ; class CEmailExtension * CFSMailMessageBase::ExtensionL(class TUid const &) - ?GetReplyToAddress@CFSMailMessageBase@@QAEABVCFSMailAddress@@XZ @ 219 NONAME ; class CFSMailAddress const & CFSMailMessageBase::GetReplyToAddress(void) - ?IncRef@CEmailExtension@@QAEXXZ @ 220 NONAME ; void CEmailExtension::IncRef(void) - ?GetMailBoxId@CFSMailFolderBase@@QBE?AVTFSMailMsgId@@XZ @ 221 NONAME ; class TFSMailMsgId CFSMailFolderBase::GetMailBoxId(void) const - ??1CFSMailBox@@UAE@XZ @ 222 NONAME ; CFSMailBox::~CFSMailBox(void) - ?FetchedContentSize@CFSMailMessagePart@@QBEIXZ @ 223 NONAME ; unsigned int CFSMailMessagePart::FetchedContentSize(void) const - ?GetSubFoldersL@CFSMailFolder@@QAEXAAV?$RPointerArray@VCFSMailFolder@@@@@Z @ 224 NONAME ; void CFSMailFolder::GetSubFoldersL(class RPointerArray &) - ?SetFlag@CFSMailMessageBase@@QAEXH@Z @ 225 NONAME ; void CFSMailMessageBase::SetFlag(int) - ?ConstructL@CFSMailRequestHandler@@IAEXV?$RPointerArray@VCImplementationInformation@@@@V?$RPointerArray@VCFSMailPlugin@@@@@Z @ 226 NONAME ; void CFSMailRequestHandler::ConstructL(class RPointerArray, class RPointerArray) - ?NewLC@CFSMailIterator@@SAPAV1@AAVMFSMailIterator@@PAVCFSMailRequestHandler@@@Z @ 227 NONAME ; class CFSMailIterator * CFSMailIterator::NewLC(class MFSMailIterator &, class CFSMailRequestHandler *) - ?MoveMessagesL@CFSMailBox@@QAEHAAVMFSMailRequestObserver@@ABV?$RArray@VTFSMailMsgId@@@@VTFSMailMsgId@@2@Z @ 228 NONAME ; int CFSMailBox::MoveMessagesL(class MFSMailRequestObserver &, class RArray const &, class TFSMailMsgId, class TFSMailMsgId) - ??_ECEmailExtension@@UAE@I@Z @ 229 NONAME ; CEmailExtension::~CEmailExtension(unsigned int) - ?SetContentSize@CFSMailMessagePart@@QAEXI@Z @ 230 NONAME ; void CFSMailMessagePart::SetContentSize(unsigned int) - ?GetCCRecipients@CFSMailMessageBase@@QAE?AV?$RPointerArray@VCFSMailAddress@@@@XZ @ 231 NONAME ; class RPointerArray CFSMailMessageBase::GetCCRecipients(void) - ?NewL@CFSMailMessagePart@@SAPAV1@VTFSMailMsgId@@0@Z @ 232 NONAME ; class CFSMailMessagePart * CFSMailMessagePart::NewL(class TFSMailMsgId, class TFSMailMsgId) + ?HasCapability@CFSMailBox@@QBEHW4TFSMailBoxCapabilities@@@Z @ 207 NONAME ; int CFSMailBox::HasCapability(enum TFSMailBoxCapabilities) const + ?GetMessageId@CFSMailMessageBase@@QBE?AVTFSMailMsgId@@XZ @ 208 NONAME ; class TFSMailMsgId CFSMailMessageBase::GetMessageId(void) const + ?GetSubject@CFSMailMessageBase@@QBEAAVTDesC16@@XZ @ 209 NONAME ; class TDesC16 & CFSMailMessageBase::GetSubject(void) const + ?NewL@CFSMailIterator@@SAPAV1@AAVMFSMailIterator@@PAVCFSMailRequestHandler@@@Z @ 210 NONAME ; class CFSMailIterator * CFSMailIterator::NewL(class MFSMailIterator &, class CFSMailRequestHandler *) + ?RefreshNowL@CFSMailBox@@QAEHAAVMFSMailRequestObserver@@@Z @ 211 NONAME ; int CFSMailBox::RefreshNowL(class MFSMailRequestObserver &) + ?Extension@TEmailExtensions@@QBEPAVCEmailExtension@@H@Z @ 212 NONAME ; class CEmailExtension * TEmailExtensions::Extension(int) const + ??1CFSMailRequestHandler@@UAE@XZ @ 213 NONAME ; CFSMailRequestHandler::~CFSMailRequestHandler(void) + ?DecRef@CEmailExtension@@QAEIXZ @ 214 NONAME ; unsigned int CEmailExtension::DecRef(void) + ?SetSubFolderCount@CFSMailFolderBase@@QAEXI@Z @ 215 NONAME ; void CFSMailFolderBase::SetSubFolderCount(unsigned int) + ?AddL@TEmailExtensions@@QAEXPAVCEmailExtension@@@Z @ 216 NONAME ; void TEmailExtensions::AddL(class CEmailExtension *) + ?ClearCcRecipients@CFSMailMessageBase@@QAEXXZ @ 217 NONAME ; void CFSMailMessageBase::ClearCcRecipients(void) + ?GetPartId@CFSMailMessagePart@@QBE?AVTFSMailMsgId@@XZ @ 218 NONAME ; class TFSMailMsgId CFSMailMessagePart::GetPartId(void) const + ?ExtensionL@CFSMailMessageBase@@UAEPAVCEmailExtension@@ABVTUid@@@Z @ 219 NONAME ; class CEmailExtension * CFSMailMessageBase::ExtensionL(class TUid const &) + ?GetReplyToAddress@CFSMailMessageBase@@QAEABVCFSMailAddress@@XZ @ 220 NONAME ; class CFSMailAddress const & CFSMailMessageBase::GetReplyToAddress(void) + ?IncRef@CEmailExtension@@QAEXXZ @ 221 NONAME ; void CEmailExtension::IncRef(void) + ?GetMailBoxId@CFSMailFolderBase@@QBE?AVTFSMailMsgId@@XZ @ 222 NONAME ; class TFSMailMsgId CFSMailFolderBase::GetMailBoxId(void) const + ??1CFSMailBox@@UAE@XZ @ 223 NONAME ; CFSMailBox::~CFSMailBox(void) + ?FetchedContentSize@CFSMailMessagePart@@QBEIXZ @ 224 NONAME ; unsigned int CFSMailMessagePart::FetchedContentSize(void) const + ?GetSubFoldersL@CFSMailFolder@@QAEXAAV?$RPointerArray@VCFSMailFolder@@@@@Z @ 225 NONAME ; void CFSMailFolder::GetSubFoldersL(class RPointerArray &) + ?SetFlag@CFSMailMessageBase@@QAEXH@Z @ 226 NONAME ; void CFSMailMessageBase::SetFlag(int) + ?ConstructL@CFSMailRequestHandler@@IAEXV?$RPointerArray@VCImplementationInformation@@@@V?$RPointerArray@VCFSMailPlugin@@@@@Z @ 227 NONAME ; void CFSMailRequestHandler::ConstructL(class RPointerArray, class RPointerArray) + ?NewLC@CFSMailIterator@@SAPAV1@AAVMFSMailIterator@@PAVCFSMailRequestHandler@@@Z @ 228 NONAME ; class CFSMailIterator * CFSMailIterator::NewLC(class MFSMailIterator &, class CFSMailRequestHandler *) + ?MoveMessagesL@CFSMailBox@@QAEHAAVMFSMailRequestObserver@@ABV?$RArray@VTFSMailMsgId@@@@VTFSMailMsgId@@2@Z @ 229 NONAME ; int CFSMailBox::MoveMessagesL(class MFSMailRequestObserver &, class RArray const &, class TFSMailMsgId, class TFSMailMsgId) + ??_ECEmailExtension@@UAE@I@Z @ 230 NONAME ; CEmailExtension::~CEmailExtension(unsigned int) + ?SetContentSize@CFSMailMessagePart@@QAEXI@Z @ 231 NONAME ; void CFSMailMessagePart::SetContentSize(unsigned int) + ?GetCCRecipients@CFSMailMessageBase@@QAE?AV?$RPointerArray@VCFSMailAddress@@@@XZ @ 232 NONAME ; class RPointerArray CFSMailMessageBase::GetCCRecipients(void) + ?NewL@CFSMailMessagePart@@SAPAV1@VTFSMailMsgId@@0@Z @ 233 NONAME ; class CFSMailMessagePart * CFSMailMessagePart::NewL(class TFSMailMsgId, class TFSMailMsgId) diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailcommon/eabi/fsfwcommonlibu.def --- a/emailservices/emailcommon/eabi/fsfwcommonlibu.def Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailcommon/eabi/fsfwcommonlibu.def Mon Oct 04 00:05:37 2010 +0300 @@ -174,7 +174,7 @@ _ZN18CFSMailMessagePart14SetContentTypeERK7TDesC16 @ 173 NONAME _ZN18CFSMailMessagePart15AttachmentNameLEv @ 174 NONAME _ZN18CFSMailMessagePart15GetContentClassEv @ 175 NONAME - _ZN18CFSMailMessagePart15GetContentFileLEv @ 176 NONAME + _ZN18CFSMailMessagePart15GetContentFileLEi @ 176 NONAME _ZN18CFSMailMessagePart15SetContentClassERK7TDesC16 @ 177 NONAME _ZN18CFSMailMessagePart16CopyContentFileLERK7TDesC16 @ 178 NONAME _ZN18CFSMailMessagePart16GetNmMessagePartEv @ 179 NONAME @@ -208,7 +208,7 @@ _ZN18CFSMailMessagePartD2Ev @ 207 NONAME _ZN21CFSMailRequestHandler10AddPluginLE4TUidP13CFSMailPlugin @ 208 NONAME _ZN21CFSMailRequestHandler10ConstructLE13RPointerArrayI26CImplementationInformationES0_I13CFSMailPluginE @ 209 NONAME - _ZN21CFSMailRequestHandler12GetTempFileLE12TFSMailMsgId4TBufILi256EE @ 210 NONAME + _ZN21CFSMailRequestHandler12GetTempFileLE12TFSMailMsgIdR4TBufILi256EE @ 210 NONAME _ZN21CFSMailRequestHandler14CancelRequestLEi @ 211 NONAME _ZN21CFSMailRequestHandler14GetPluginByUidE12TFSMailMsgId @ 212 NONAME _ZN21CFSMailRequestHandler15CompleteRequestEi @ 213 NONAME @@ -222,48 +222,49 @@ _ZN21CFSMailRequestHandlerD0Ev @ 221 NONAME _ZN21CFSMailRequestHandlerD1Ev @ 222 NONAME _ZN21CFSMailRequestHandlerD2Ev @ 223 NONAME - _ZNK10CFSMailBox16CurrentSyncStateEv @ 224 NONAME - _ZNK14CFSMailAddress14GetDisplayNameEv @ 225 NONAME - _ZNK14CFSMailAddress15GetEmailAddressEv @ 226 NONAME - _ZNK14CFSMailBoxBase5GetIdEv @ 227 NONAME - _ZNK14CFSMailBoxBase7GetNameEv @ 228 NONAME - _ZNK15CEmailExtension3UidEv @ 229 NONAME - _ZNK16TEmailExtensions13FindExtensionERK4TUid @ 230 NONAME - _ZNK16TEmailExtensions9ExtensionEi @ 231 NONAME - _ZNK17CFSMailFolderBase11GetFolderIdEv @ 232 NONAME - _ZNK17CFSMailFolderBase12GetMailBoxIdEv @ 233 NONAME - _ZNK17CFSMailFolderBase13GetFolderNameEv @ 234 NONAME - _ZNK17CFSMailFolderBase13GetFolderTypeEv @ 235 NONAME - _ZNK17CFSMailFolderBase14GetUnreadCountEv @ 236 NONAME - _ZNK17CFSMailFolderBase14GetUnseenCountEv @ 237 NONAME - _ZNK17CFSMailFolderBase15GetMessageCountEv @ 238 NONAME - _ZNK17CFSMailFolderBase17GetParentFolderIdEv @ 239 NONAME - _ZNK17CFSMailFolderBase17GetSubFolderCountEv @ 240 NONAME - _ZNK18CFSMailMessageBase10GetSubjectEv @ 241 NONAME - _ZNK18CFSMailMessageBase11GetFolderIdEv @ 242 NONAME - _ZNK18CFSMailMessageBase12GetMailBoxIdEv @ 243 NONAME - _ZNK18CFSMailMessageBase12GetMessageIdEv @ 244 NONAME - _ZNK18CFSMailMessageBase7GetDateEv @ 245 NONAME - _ZNK18CFSMailMessageBase8GetFlagsEv @ 246 NONAME - _ZNK18CFSMailMessageBase9GetSenderEv @ 247 NONAME - _ZNK18CFSMailMessageBase9IsFlagSetEi @ 248 NONAME - _ZNK18CFSMailMessagePart10IsMessageLEv @ 249 NONAME - _ZNK18CFSMailMessagePart11ContentSizeEv @ 250 NONAME - _ZNK18CFSMailMessagePart14FetchLoadStateEv @ 251 NONAME - _ZNK18CFSMailMessagePart14GetContentTypeEv @ 252 NONAME - _ZNK18CFSMailMessagePart16ReadOnlyPartSizeEv @ 253 NONAME - _ZNK18CFSMailMessagePart18FetchedContentSizeEv @ 254 NONAME - _ZNK18CFSMailMessagePart9GetPartIdEv @ 255 NONAME - _ZTI15CEmailExtension @ 256 NONAME - _ZTI16CExtendableEmail @ 257 NONAME - _ZTI21CFSMailRequestHandler @ 258 NONAME - _ZTV15CEmailExtension @ 259 NONAME - _ZTV16CExtendableEmail @ 260 NONAME - _ZTV21CFSMailRequestHandler @ 261 NONAME - _ZThn4_N15CFSMailIterator5NextLE12TFSMailMsgIdjR13RPointerArrayI14CFSMailMessageE @ 262 NONAME - _ZThn4_N15CFSMailIterator5NextLERK7TDesC16jR13RPointerArrayI14CFSMailMessageE @ 263 NONAME - _ZThn4_N15CFSMailIterator9PreviousLE12TFSMailMsgIdjR13RPointerArrayI14CFSMailMessageE @ 264 NONAME - _ZThn4_N15CFSMailIterator9PreviousLERK7TDesC16jR13RPointerArrayI14CFSMailMessageE @ 265 NONAME - _ZThn4_N15CFSMailIteratorD0Ev @ 266 NONAME - _ZThn4_N15CFSMailIteratorD1Ev @ 267 NONAME + _ZNK10CFSMailBox13HasCapabilityE22TFSMailBoxCapabilities @ 224 NONAME + _ZNK10CFSMailBox16CurrentSyncStateEv @ 225 NONAME + _ZNK14CFSMailAddress14GetDisplayNameEv @ 226 NONAME + _ZNK14CFSMailAddress15GetEmailAddressEv @ 227 NONAME + _ZNK14CFSMailBoxBase5GetIdEv @ 228 NONAME + _ZNK14CFSMailBoxBase7GetNameEv @ 229 NONAME + _ZNK15CEmailExtension3UidEv @ 230 NONAME + _ZNK16TEmailExtensions13FindExtensionERK4TUid @ 231 NONAME + _ZNK16TEmailExtensions9ExtensionEi @ 232 NONAME + _ZNK17CFSMailFolderBase11GetFolderIdEv @ 233 NONAME + _ZNK17CFSMailFolderBase12GetMailBoxIdEv @ 234 NONAME + _ZNK17CFSMailFolderBase13GetFolderNameEv @ 235 NONAME + _ZNK17CFSMailFolderBase13GetFolderTypeEv @ 236 NONAME + _ZNK17CFSMailFolderBase14GetUnreadCountEv @ 237 NONAME + _ZNK17CFSMailFolderBase14GetUnseenCountEv @ 238 NONAME + _ZNK17CFSMailFolderBase15GetMessageCountEv @ 239 NONAME + _ZNK17CFSMailFolderBase17GetParentFolderIdEv @ 240 NONAME + _ZNK17CFSMailFolderBase17GetSubFolderCountEv @ 241 NONAME + _ZNK18CFSMailMessageBase10GetSubjectEv @ 242 NONAME + _ZNK18CFSMailMessageBase11GetFolderIdEv @ 243 NONAME + _ZNK18CFSMailMessageBase12GetMailBoxIdEv @ 244 NONAME + _ZNK18CFSMailMessageBase12GetMessageIdEv @ 245 NONAME + _ZNK18CFSMailMessageBase7GetDateEv @ 246 NONAME + _ZNK18CFSMailMessageBase8GetFlagsEv @ 247 NONAME + _ZNK18CFSMailMessageBase9GetSenderEv @ 248 NONAME + _ZNK18CFSMailMessageBase9IsFlagSetEi @ 249 NONAME + _ZNK18CFSMailMessagePart10IsMessageLEv @ 250 NONAME + _ZNK18CFSMailMessagePart11ContentSizeEv @ 251 NONAME + _ZNK18CFSMailMessagePart14FetchLoadStateEv @ 252 NONAME + _ZNK18CFSMailMessagePart14GetContentTypeEv @ 253 NONAME + _ZNK18CFSMailMessagePart16ReadOnlyPartSizeEv @ 254 NONAME + _ZNK18CFSMailMessagePart18FetchedContentSizeEv @ 255 NONAME + _ZNK18CFSMailMessagePart9GetPartIdEv @ 256 NONAME + _ZTI15CEmailExtension @ 257 NONAME + _ZTI16CExtendableEmail @ 258 NONAME + _ZTI21CFSMailRequestHandler @ 259 NONAME + _ZTV15CEmailExtension @ 260 NONAME + _ZTV16CExtendableEmail @ 261 NONAME + _ZTV21CFSMailRequestHandler @ 262 NONAME + _ZThn4_N15CFSMailIterator5NextLE12TFSMailMsgIdjR13RPointerArrayI14CFSMailMessageE @ 263 NONAME + _ZThn4_N15CFSMailIterator5NextLERK7TDesC16jR13RPointerArrayI14CFSMailMessageE @ 264 NONAME + _ZThn4_N15CFSMailIterator9PreviousLE12TFSMailMsgIdjR13RPointerArrayI14CFSMailMessageE @ 265 NONAME + _ZThn4_N15CFSMailIterator9PreviousLERK7TDesC16jR13RPointerArrayI14CFSMailMessageE @ 266 NONAME + _ZThn4_N15CFSMailIteratorD0Ev @ 267 NONAME + _ZThn4_N15CFSMailIteratorD1Ev @ 268 NONAME diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailcommon/emailcommon.pro --- a/emailservices/emailcommon/emailcommon.pro Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailcommon/emailcommon.pro Mon Oct 04 00:05:37 2010 +0300 @@ -79,7 +79,8 @@ -lecom \ -lcntmodel \ -lQtCore \ - -lnmailbase + -lnmailbase \ + -lnmutilities defBlock = \ "$${LITERAL_HASH}if defined(MARM)" \ @@ -89,8 +90,8 @@ "$${LITERAL_HASH}endif" MMP_RULES += defBlock - - MMP_RULES -= "OPTION_REPLACE ARMCC --export_all_vtbl -D__QT_NOEFFECTMACRO_DONOTUSE" + MMP_RULES += SMPSAFE + MMP_RULES -= "OPTION_REPLACE ARMCC --export_all_vtbl -D__QT_NOEFFECTMACRO_DONOTUSE" } win32 { diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailcommon/inc/CFSMailBox.h --- a/emailservices/emailcommon/inc/CFSMailBox.h Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailcommon/inc/CFSMailBox.h Mon Oct 04 00:05:37 2010 +0300 @@ -37,6 +37,8 @@ class CFSMailRequestHandler; // +class EmailMRU; + /** * mailbox data handling * @@ -396,6 +398,13 @@ * @return connection status, online / offline */ IMPORT_C TFSMailBoxStatus GetMailBoxStatus( ); + + /** + * mailbox capability check for user + * + * @param aCapa mailbox capability to be checked + */ + IMPORT_C TBool HasCapability(const TFSMailBoxCapabilities aCapability) const; public: // from CExtendableEmail @@ -425,6 +434,21 @@ */ CFSMailBox(); + /** + * Function used internally to inform that Mru list related to this + * mailbox should now be updated using the given recipient info. In + * other words this function makes sure that the given recipients are + * found from the common email mru list. + * + * @param aRecipients email recipients in TO-field + * @param aCCRecipients email recipients in CC-field + * @param aBCCRecipients email recipients in BCC-field + */ + void UpdateMrusL( + const RPointerArray& aRecipients, + const RPointerArray& aCCRecipients, + const RPointerArray& aBCCRecipients ) const; + private: // data /** @@ -437,6 +461,11 @@ */ RPointerArray iFolders; + /** + * MRU list + */ + EmailMRU* iMru; + }; #endif diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailcommon/inc/CFSMailCommon.h --- a/emailservices/emailcommon/inc/CFSMailCommon.h Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailcommon/inc/CFSMailCommon.h Mon Oct 04 00:05:37 2010 +0300 @@ -312,7 +312,7 @@ _LIT(KFSMailContentTypeTextCalendar, "text/calendar"); -_LIT(KFSMailContentDispAttachment, " attachment"); +_LIT(KFSMailContentDispAttachment, "attachment"); // _LIT(KFSMailContentDispInline, "inline"); // diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailcommon/inc/CFSMailMessagePart.h --- a/emailservices/emailcommon/inc/CFSMailMessagePart.h Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailcommon/inc/CFSMailMessagePart.h Mon Oct 04 00:05:37 2010 +0300 @@ -262,10 +262,12 @@ /** * Retrieves a read-only file handle for the content file of this message part. * The caller must close the file handle. + * + * @param aForWriting Open the file for writing * * @return content file handle */ - IMPORT_C RFile GetContentFileL(); + IMPORT_C RFile GetContentFileL( TBool aForWriting = EFalse ); /** * copies contents of this message part to given file diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailcommon/inc/CFSMailRequestHandler.h --- a/emailservices/emailcommon/inc/CFSMailRequestHandler.h Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailcommon/inc/CFSMailRequestHandler.h Mon Oct 04 00:05:37 2010 +0300 @@ -153,7 +153,7 @@ * @param aFileName file name */ // - RFile GetTempFileL( TFSMailMsgId aContentId,TFileName aFileName ); + RFile GetTempFileL( TFSMailMsgId aContentId, TFileName &aFileName ); // protected: diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailcommon/src/CFSMailBox.cpp --- a/emailservices/emailcommon/src/CFSMailBox.cpp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailcommon/src/CFSMailBox.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -31,6 +31,7 @@ #include "CFSMailFolder.h" #include "CFSMailAddress.h" // +#include // ================= MEMBER FUNCTIONS ========================================== @@ -68,6 +69,9 @@ // get requesthandler pointer iRequestHandler = static_cast(Dll::Tls()); + QT_TRYCATCH_LEAVING({ + iMru = new EmailMRU(); + }); } // ----------------------------------------------------------------------------- @@ -78,6 +82,9 @@ NM_FUNCTION; // Not using KMailboxExtMrCalInfo iFolders.ResetAndDestroy(); + QT_TRYCATCH_LEAVING({ + delete iMru; + }); } // ----------------------------------------------------------------------------- @@ -424,7 +431,9 @@ if(CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid(GetId())) { - // Removed UpdateMrusL. + UpdateMrusL( aMessage.GetToRecipients(), + aMessage.GetCCRecipients(), + aMessage.GetBCCRecipients() ); plugin->SendMessageL( aMessage ); } } @@ -445,7 +454,10 @@ if ( plugin ) { - // Removed UpdateMrusL. + UpdateMrusL( aMessage.GetToRecipients(), + aMessage.GetCCRecipients(), + aMessage.GetBCCRecipients() ); + // init asynchronous request request = iRequestHandler->InitAsyncRequestL( GetId().PluginId(), @@ -663,6 +675,79 @@ } // ----------------------------------------------------------------------------- +// CFSMailBox::HasCapability +// ----------------------------------------------------------------------------- +EXPORT_C TBool CFSMailBox::HasCapability( const TFSMailBoxCapabilities aCapability ) const +{ + NM_FUNCTION; + + TBool capability = EFalse; + if ( CFSMailPlugin* plugin = iRequestHandler->GetPluginByUid( GetId() ) ) + { + TRAPD( err,capability = plugin->MailboxHasCapabilityL( aCapability,GetId() )) ; + if ( err != KErrNone ) + { + capability = EFalse; + } + } + return capability; +} + +// ----------------------------------------------------------------------------- + +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// CFSMailBox::UpdateMrusL +// ----------------------------------------------------------------------------- +void CFSMailBox::UpdateMrusL( + const RPointerArray& aRecipients, + const RPointerArray& aCCRecipients, + const RPointerArray& aBCCRecipients ) const + { + NM_FUNCTION; + + QT_TRYCATCH_LEAVING({ + TUint count( aRecipients.Count() ); + TUint indexer( 0 ); + while ( indexer < count ) + { + TDesC& address(aRecipients[indexer]->GetEmailAddress() ); + TDesC& name(aRecipients[indexer]->GetDisplayName() ); + QString qaddress = QString::fromUtf16(address.Ptr(), address.Length()); + QString qname = QString::fromUtf16(name.Ptr(), name.Length()); + iMru->updateMRU(qname, qaddress); + indexer++; + } + + count = aCCRecipients.Count(); + indexer = 0 ; + while ( indexer < count ) + { + TDesC& address(aCCRecipients[indexer]->GetEmailAddress() ); + TDesC& name(aCCRecipients[indexer]->GetDisplayName() ); + QString qaddress = QString::fromUtf16(address.Ptr(), address.Length()); + QString qname = QString::fromUtf16(name.Ptr(), name.Length()); + iMru->updateMRU(qname, qaddress); + indexer++; + } + + count = aBCCRecipients.Count(); + indexer = 0 ; + while ( indexer < count ) + { + TDesC& address(aBCCRecipients[indexer]->GetEmailAddress() ); + TDesC& name(aBCCRecipients[indexer]->GetDisplayName() ); + QString qaddress = QString::fromUtf16(address.Ptr(), address.Length()); + QString qname = QString::fromUtf16(name.Ptr(), name.Length()); + iMru->updateMRU(qname, qaddress); + indexer++; + } + + }); + + } + +// ----------------------------------------------------------------------------- // CFSMailBox::ReleaseExtension // ----------------------------------------------------------------------------- EXPORT_C void CFSMailBox::ReleaseExtension( CEmailExtension* aExtension ) @@ -716,4 +801,5 @@ } return extension; } + diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailcommon/src/CFSMailMessagePart.cpp --- a/emailservices/emailcommon/src/CFSMailMessagePart.cpp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailcommon/src/CFSMailMessagePart.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -493,7 +493,7 @@ // ----------------------------------------------------------------------------- // CFSMailMessagePart::GetContentFileL // ----------------------------------------------------------------------------- -EXPORT_C RFile CFSMailMessagePart::GetContentFileL() +EXPORT_C RFile CFSMailMessagePart::GetContentFileL( TBool aForWriting ) { NM_FUNCTION; @@ -501,7 +501,7 @@ { TInt rcode = plugin->GetMessagePartFileL( GetMailBoxId(), GetFolderId(), GetMessageId(), GetPartId(), - iFile ); + iFile, aForWriting); // if content is encrypted, use temp dir files if(rcode == KErrNotSupported) { @@ -960,7 +960,7 @@ { buffer->Des().Append(KFSMailContentDispInline); } - else + else if (ContentDisposition().FindF(KFSMailContentDispAttachment) != KErrNotFound) { buffer->Des().Append(KFSMailContentDispAttachment); } diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailcommon/src/CFSMailRequestHandler.cpp --- a/emailservices/emailcommon/src/CFSMailRequestHandler.cpp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailcommon/src/CFSMailRequestHandler.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -251,7 +251,7 @@ // ----------------------------------------------------------------------------- // CFSMailRequestHandler::GetTempFileL( ) // ----------------------------------------------------------------------------- - RFile CFSMailRequestHandler::GetTempFileL( TFSMailMsgId aContentId, TFileName aFileName ) + RFile CFSMailRequestHandler::GetTempFileL( TFSMailMsgId aContentId, TFileName &aFileName ) { NM_FUNCTION; diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emaildebug/inc/emailtrace.h --- a/emailservices/emaildebug/inc/emailtrace.h Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emaildebug/inc/emailtrace.h Mon Oct 04 00:05:37 2010 +0300 @@ -19,54 +19,78 @@ #define EMAILTRACE_H #include +#include #include #include -#include -#include +#include +#include /* - * The macros NM_COMMENT_TRACES, NM_ERROR_TRACES, and NM_FUNCTION_TRACES - * control which debug messages are printed. The trace logging is controlled - * with the NM_LOG_TO_FILE macro, whereas the NM_LOG_DIRECTORY macro defines - * which directory is to be used to store the log files. The print_trace() - * helper function implements printing. Log files are named according to - * process and thread IDs. If NM_LOG_TO_FILE is zero or a log file cannot be - * opened, the messages are printed to qDebug(). The DSC2STR() function can - * be used to convert Symbian descriptors to QString objects. + * The macros NM_COMMENT_TRACES, NM_ERROR_TRACES, NM_FUNCTION_TRACES, and + * NM_TIMESTAMP_TRACES control which debug messages are printed. The trace + * logging is controlled with the NM_LOG_TO_FILE macro, whereas the + * NM_LOG_DIRECTORY macro defines which directory is to be used to store the + * log files. The print_trace() helper function implements printing. Log + * files are named according to process thread IDs. If NM_LOG_TO_FILE is zero + * or a log file cannot be opened, the messages are printed to qDebug(). The + * DSC2STR() function can be used to convert Symbian descriptors to QString + * objects. + * + * NOTICE that you can control the tracing system for a component tree by + * using qmake. For example, if you only want to enable timestamps for a + * component, you can invoke + * + * qmake "DEFINES += DEBUG NM_TIMESTAMP_TRACES=1" -r + * + * before compiling the component. You can add as many macro definitions + * between the quotation marks as you wish. For example, if you want to log + * the trace messages to "c:/logs", add the definitions + * + * NM_LOG_TO_FILE=1 NM_LOG_DIRECTORY=\\\"c:/logs/\\\" + * + * between the quotation marks. Do not forget to add the terminating slash + * character and notice how the quotation marks around the directory path + * have been escaped. This does not work if the log directory does not exist. */ -#if defined(DEBUG) || defined(_DEBUG) || NM_COMMENT_TRACES || NM_ERROR_TRACES || NM_FUNCTION_TRACES + +// Timestamp traces always ON +#ifndef NM_TIMESTAMP_TRACES +#define NM_TIMESTAMP_TRACES 1 +#endif + +#ifndef NM_LOG_TO_FILE +#define NM_LOG_TO_FILE 1 +#endif +#ifndef NM_LOG_DIRECTORY +#define NM_LOG_DIRECTORY "c:/data/logs/" +#endif + +#if defined(DEBUG) || defined(_DEBUG) #ifndef NM_COMMENT_TRACES -#define NM_COMMENT_TRACES 0 +#define NM_COMMENT_TRACES 0 #endif - #ifndef NM_ERROR_TRACES -#define NM_ERROR_TRACES 0 +#define NM_ERROR_TRACES 0 #endif - #ifndef NM_FUNCTION_TRACES -#define NM_FUNCTION_TRACES 0 +#define NM_FUNCTION_TRACES 0 #endif #if NM_COMMENT_TRACES || NM_ERROR_TRACES || NM_FUNCTION_TRACES -#define NM_LOG_TO_FILE 1 -#define NM_LOG_DIRECTORY "c:/data/logs/" - inline void print_trace(const QString& msg) { static QFile file(NM_LOG_DIRECTORY+ - QString("nmail_p%1_t%2.log"). - arg(QCoreApplication::applicationPid()). - arg(QThread::currentThreadId())); + QString("nmail_p%1.log"). + arg(QCoreApplication::applicationPid())); if (NM_LOG_TO_FILE && !file.isOpen()) { file.open(QIODevice::Append | QIODevice::Text); } - QDateTime dt = QDateTime::currentDateTime (); if (file.isWritable()) { - QDebug(&file).nospace() << dt.toString(Qt::ISODate) << " " << msg << '\n'; + QTextStream(&file) << msg << '\n'; } else { - qDebug().nospace() << "[Nmail] " << msg; + qDebug("[Nmail] %s",msg.toLatin1().data()); } } @@ -217,4 +241,39 @@ #endif /* NM_FUNCTION_TRACES */ +/* + * The function NM_TIMESTAMP() prints a timestamp with a message. These traces do not + * go to class specific log -files, but to one file called nmail_timestamps.log. + */ +#if NM_TIMESTAMP_TRACES + +inline void NM_TIMESTAMP(const QString& msg) +{ + QString timestamp ("TIMESTAMP : " + + QDateTime::currentDateTime().toUTC().toString("hh:mm:ss.zzz ") + + msg); + + QDir directory("c:/data/"); + if (directory.exists()) { + directory.mkdir("logs"); + } + + static QFile file(NM_LOG_DIRECTORY + + QString("nmail_timestamps.log")); + if (NM_LOG_TO_FILE && !file.isOpen()) { + file.open(QIODevice::Append | QIODevice::Text | QIODevice::ReadWrite); + } + if (file.isWritable()) { + QTextStream(&file) << timestamp << '\n'; + } else { + qDebug("[Nmail] %s",timestamp.toLatin1().data()); + } +} + +#else + +#define NM_TIMESTAMP(msg) + +#endif /* NM_TIMESTAMP_TRACES */ + #endif /* EMAILTRACE_H */ diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailframework/emailframework.pro --- a/emailservices/emailframework/emailframework.pro Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailframework/emailframework.pro Mon Oct 04 00:05:37 2010 +0300 @@ -67,7 +67,8 @@ MMP_RULES += debuggerBlock \ - defBlock + defBlock \ + SMPSAFE LIBS += -lbafl \ -leuser \ diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailframework/inc/CFSMailPlugin.h --- a/emailservices/emailframework/inc/CFSMailPlugin.h Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailframework/inc/CFSMailPlugin.h Mon Oct 04 00:05:37 2010 +0300 @@ -160,6 +160,17 @@ virtual TFSMailBoxStatus GetMailBoxStatus( const TFSMailMsgId& aMailBoxId ) = 0; /** + * checks if mailbox supports given capability + * + * @param aCapability capability to be checked + * @param aMailBoxId id of the target mailbox + * + * @return true/false + */ + virtual TBool MailboxHasCapabilityL( TFSMailBoxCapabilities aCapability, + TFSMailMsgId aMailBoxId ) = 0; + + /** * lists existing mailboxes contained by plugin * * @param aMailBoxes plugin writes list of existing mailboxes into this @@ -796,7 +807,7 @@ const TFSMailMsgId& aMessagePartId) = 0; /** - * Retrieves a read-only file handle for the content file of this message part. + * Retrieves a file handle for the content file of this message part. * Should return KErrNotSupported if handle can not be given directly. In that case * FW will next ask to copy file to a temporary location so that FW can open the RFile * itself. Ownership of the handle is transferred. Caller is responsible for closing the @@ -806,13 +817,15 @@ * @param aParentFolderId id of the parent folder where email is located * @param aMessageId id of the email part belongs to * @param aMessagePartId id of the message part - * @param aFileHandle returns the opened read-only file handle + * @param aFileHandle returns the opened file handle + * @param aForWriting pass ETrue if the file should be opened for writing instead of read-only */ virtual TInt GetMessagePartFileL( const TFSMailMsgId& aMailBoxId, const TFSMailMsgId& aParentFolderId, const TFSMailMsgId& aMessageId, const TFSMailMsgId& aMessagePartId, - RFile& aFileHandle) = 0; + RFile& aFileHandle, + TBool aForWriting = EFalse) = 0; /** * copies contents of this message part to given file @@ -1046,6 +1059,11 @@ * @param aMailboxId mailbox id */ virtual HBufC* GetSignatureL( const TFSMailMsgId& aMailBoxId ); + + /** + * Returns plugin implementation uid + */ + inline TUid Id( ) const; protected: diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailframework/inc/CFSMailPlugin.inl --- a/emailservices/emailframework/inc/CFSMailPlugin.inl Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailframework/inc/CFSMailPlugin.inl Mon Oct 04 00:05:37 2010 +0300 @@ -152,3 +152,14 @@ return NULL; } // + +// +// ----------------------------------------------------------------------------- +// CFSMailPlugin::Id +// ----------------------------------------------------------------------------- +inline TUid CFSMailPlugin::Id( ) const + { + return iDtor_ID_Key; + } +// + diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/base_plugin/BWINS/basepluginU.DEF --- a/emailservices/emailstore/base_plugin/BWINS/basepluginU.DEF Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/base_plugin/BWINS/basepluginU.DEF Mon Oct 04 00:05:37 2010 +0300 @@ -1,225 +1,225 @@ EXPORTS - ?NewL@CBasePlugin@@SAPAV1@XZ @ 1 NONAME ; class CBasePlugin * CBasePlugin::NewL(void) - ?AlarmInUtcL@CBaseMrInfoObject@@UBE?AVTTime@@XZ @ 2 NONAME ; class TTime CBaseMrInfoObject::AlarmInUtcL(void) const - ?AttendeesL@CBaseMrInfoObject@@UAEAAV?$RPointerArray@VMMRAttendee@@@@XZ @ 3 NONAME ; class RPointerArray & CBaseMrInfoObject::AttendeesL(void) - ?NewChildPartL@CBasePlugin@@UAEPAVCFSMailMessagePart@@ABVTFSMailMsgId@@0000ABVTDesC16@@@Z @ 4 NONAME ; class CFSMailMessagePart * CBasePlugin::NewChildPartL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &) - ?AccountEventNotify@CBasePlugin@@UAEXW4TMsgStoreAccountEvent@@JABVTDesC16@@1I@Z @ 5 NONAME ; void CBasePlugin::AccountEventNotify(enum TMsgStoreAccountEvent, long, class TDesC16 const &, class TDesC16 const &, unsigned int) - ?MRResponse@CBaseMrInfoObject@@UBE?AW4TResponse@MMRInfoObject@@XZ @ 6 NONAME ; enum MMRInfoObject::TResponse CBaseMrInfoObject::MRResponse(void) const - ?SetDescriptionL@CBaseMrInfoObject@@UAEXABVTDesC16@@@Z @ 7 NONAME ; void CBaseMrInfoObject::SetDescriptionL(class TDesC16 const &) - ?RefreshNowL@CBasePlugin@@UAEXABVTFSMailMsgId@@AAVMFSMailRequestObserver@@HH@Z @ 8 NONAME ; void CBasePlugin::RefreshNowL(class TFSMailMsgId const &, class MFSMailRequestObserver &, int, int) - ?RecurrenceStartTime@CBaseMrRecurrenceRule@@UBE?AVTTime@@XZ @ 9 NONAME ; class TTime CBaseMrRecurrenceRule::RecurrenceStartTime(void) const - ?NewL@CResourceLoader@@SAPAV1@ABVTDesC16@@@Z @ 10 NONAME ; class CResourceLoader * CResourceLoader::NewL(class TDesC16 const &) - ?MRSequenceNumberL@CBaseMrInfoObject@@UBEHXZ @ 11 NONAME ; int CBaseMrInfoObject::MRSequenceNumberL(void) const - ?SetMRRecurrenceIdL@CBaseMrInfoObject@@UAEXVTTime@@@Z @ 12 NONAME ; void CBaseMrInfoObject::SetMRRecurrenceIdL(class TTime) - ?RemoveChildPartL@CBasePlugin@@UAEXABVTFSMailMsgId@@0000@Z @ 13 NONAME ; void CBasePlugin::RemoveChildPartL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &) - ?TranslateEmailFwMessageL@CBasePlugin@@MAEXAAVCFSMailMessagePart@@AAVCMsgStoreMessagePart@@H@Z @ 14 NONAME ; void CBasePlugin::TranslateEmailFwMessageL(class CFSMailMessagePart &, class CMsgStoreMessagePart &, int) - ?GetAccountForMsgBoxL@CBasePlugin@@IAEPAVCMsgStoreAccount@@ABVTFSMailMsgId@@@Z @ 15 NONAME ; class CMsgStoreAccount * CBasePlugin::GetAccountForMsgBoxL(class TFSMailMsgId const &) - ?TranslateEmailFwAttendeeL@CBasePlugin@@IAEXAAVMMROrganizer@@AAVRMsgStoreAddress@@@Z @ 16 NONAME ; void CBasePlugin::TranslateEmailFwAttendeeL(class MMROrganizer &, class RMsgStoreAddress &) - ?RecurrentMonths@CBaseMrRecurrenceRule@@UBEABV?$RArray@W4TMRRecurrenceMonth@MRRecurrenceRule@@@@XZ @ 17 NONAME ; class RArray const & CBaseMrRecurrenceRule::RecurrentMonths(void) const - ?SetRecurrenceStartTimeL@CBaseMrRecurrenceRule@@UAEXVTTime@@@Z @ 18 NONAME ; void CBaseMrRecurrenceRule::SetRecurrenceStartTimeL(class TTime) - ?RecurrentMonthDays@CBaseMrRecurrenceRule@@UBEABV?$RArray@H@@XZ @ 19 NONAME ; class RArray const & CBaseMrRecurrenceRule::RecurrentMonthDays(void) const - ?ListFoldersL@CBasePlugin@@UAEXABVTFSMailMsgId@@0AAV?$RPointerArray@VCFSMailFolder@@@@@Z @ 20 NONAME ; void CBasePlugin::ListFoldersL(class TFSMailMsgId const &, class TFSMailMsgId const &, class RPointerArray &) - ?GetStandardFolderIdL@CBasePlugin@@UAE?AVTFSMailMsgId@@ABV2@W4TFSFolderType@@@Z @ 21 NONAME ; class TFSMailMsgId CBasePlugin::GetStandardFolderIdL(class TFSMailMsgId const &, enum TFSFolderType) - ?DeleteMailBoxByUidL@CBasePlugin@@UAEXABVTFSMailMsgId@@AAVMFSMailRequestObserver@@H@Z @ 22 NONAME ; void CBasePlugin::DeleteMailBoxByUidL(class TFSMailMsgId const &, class MFSMailRequestObserver &, int) - ?NewChildPartFromFileL@CBasePlugin@@UAEPAVCFSMailMessagePart@@ABVTFSMailMsgId@@000ABVTDesC16@@1@Z @ 23 NONAME ; class CFSMailMessagePart * CBasePlugin::NewChildPartFromFileL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &, class TDesC16 const &) - ?CopyMessagesL@CBasePlugin@@UAEXABVTFSMailMsgId@@ABV?$RArray@VTFSMailMsgId@@@@AAV3@00@Z @ 24 NONAME ; void CBasePlugin::CopyMessagesL(class TFSMailMsgId const &, class RArray const &, class RArray &, class TFSMailMsgId const &, class TFSMailMsgId const &) - ?RefreshCachedMailBoxDisplayNameL@CBasePlugin@@IAEXAAHABI@Z @ 25 NONAME ; void CBasePlugin::RefreshCachedMailBoxDisplayNameL(int &, unsigned int const &) - ?StatusL@CBasePlugin@@UAE?AVTFSProgress@@H@Z @ 26 NONAME ; class TFSProgress CBasePlugin::StatusL(int) - ?CurrentSyncState@CBasePlugin@@UAE?AW4TSSMailSyncState@@ABVTFSMailMsgId@@@Z @ 27 NONAME ; enum TSSMailSyncState CBasePlugin::CurrentSyncState(class TFSMailMsgId const &) - ?CreateFolderL@CBasePlugin@@UAEPAVCFSMailFolder@@ABVTFSMailMsgId@@0ABVTDesC16@@H@Z @ 28 NONAME ; class CFSMailFolder * CBasePlugin::CreateFolderL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &, int) - ?AccountEventNotifyL@CBasePlugin@@IAEXW4TMsgStoreAccountEvent@@JABVTDesC16@@1I@Z @ 29 NONAME ; void CBasePlugin::AccountEventNotifyL(enum TMsgStoreAccountEvent, long, class TDesC16 const &, class TDesC16 const &, unsigned int) - ?NotifyEventL@CBasePlugin@@IAEXIIIW4TFSMailEvent@@I@Z @ 30 NONAME ; void CBasePlugin::NotifyEventL(unsigned int, unsigned int, unsigned int, enum TFSMailEvent, unsigned int) - ?ResetBodyCache@CBasePlugin@@IAEXXZ @ 31 NONAME ; void CBasePlugin::ResetBodyCache(void) - ?UnsubscribeMailboxEventsL@CBasePlugin@@IAEXABVTFSMailMsgId@@AAVMFSMailEventObserver@@@Z @ 32 NONAME ; void CBasePlugin::UnsubscribeMailboxEventsL(class TFSMailMsgId const &, class MFSMailEventObserver &) - ?SetAttendeeStatusL@CBaseMrAttendee@@UAEXAAW4TAttendeeStatus@MMRAttendee@@@Z @ 33 NONAME ; void CBaseMrAttendee::SetAttendeeStatusL(enum MMRAttendee::TAttendeeStatus &) - ?GetCachedBodyChildrenL@CBasePlugin@@IAEAAV?$RPointerArray@VCMsgStoreMessagePart@@@@XZ @ 34 NONAME ; class RPointerArray & CBasePlugin::GetCachedBodyChildrenL(void) - ?DoCancel@CDelayedOp@@EAEXXZ @ 35 NONAME ; void CDelayedOp::DoCancel(void) - ?AttachmentsL@CBaseMrInfoObject@@UBEABV?$RPointerArray@VMMRAttachment@@@@XZ @ 36 NONAME ; class RPointerArray const & CBaseMrInfoObject::AttachmentsL(void) const - ??1CBaseMrInfoObject@@UAE@XZ @ 37 NONAME ; CBaseMrInfoObject::~CBaseMrInfoObject(void) - ??_ECBasePlugin@@UAE@I@Z @ 38 NONAME ; CBasePlugin::~CBasePlugin(unsigned int) - ?GetSignatureL@CBasePlugin@@MAEPAVHBufC16@@ABVTFSMailMsgId@@@Z @ 39 NONAME ; class HBufC16 * CBasePlugin::GetSignatureL(class TFSMailMsgId const &) - ?GetBrandingIdL@CBasePlugin@@UAEAAVTDesC16@@ABVTFSMailMsgId@@@Z @ 40 NONAME ; class TDesC16 & CBasePlugin::GetBrandingIdL(class TFSMailMsgId const &) - ?StoreMessagePartsL@CBasePlugin@@UAEXAAV?$RPointerArray@VCFSMailMessagePart@@@@AAVMFSMailRequestObserver@@H@Z @ 41 NONAME ; void CBasePlugin::StoreMessagePartsL(class RPointerArray &, class MFSMailRequestObserver &, int) - ??1CBasePlugin@@UAE@XZ @ 42 NONAME ; CBasePlugin::~CBasePlugin(void) - ?SetRecurrenceTypeL@CBaseMrRecurrenceRule@@UAEXW4TMRRecurrenceType@MRRecurrenceRule@@@Z @ 43 NONAME ; void CBaseMrRecurrenceRule::SetRecurrenceTypeL(enum MRRecurrenceRule::TMRRecurrenceType) - ?FetchEmailAddressL@CBasePlugin@@IAEPAVCFSMailAddress@@AAVCMsgStorePropertyContainer@@I@Z @ 44 NONAME ; class CFSMailAddress * CBasePlugin::FetchEmailAddressL(class CMsgStorePropertyContainer &, unsigned int) - ?ConstructL@CBasePlugin@@IAEXXZ @ 45 NONAME ; void CBasePlugin::ConstructL(void) - ?ExtensionL@CBaseMrInfoObject@@UAEPAXVTUid@@@Z @ 46 NONAME ; void * CBaseMrInfoObject::ExtensionL(class TUid) - ?LoadLC@CResourceLoader@@QAEPAVHBufC16@@H@Z @ 47 NONAME ; class HBufC16 * CResourceLoader::LoadLC(int) - ?SetAlarmInUtcL@CBaseMrInfoObject@@UAEXVTTime@@@Z @ 48 NONAME ; void CBaseMrInfoObject::SetAlarmInUtcL(class TTime) - ?HandleRemovePartContentL@CBasePlugin@@MAEXAAVCMsgStoreMessage@@AAVCMsgStoreMessagePart@@@Z @ 49 NONAME ; void CBasePlugin::HandleRemovePartContentL(class CMsgStoreMessage &, class CMsgStoreMessagePart &) - ?CancelSyncL@CBasePlugin@@UAEHABVTFSMailMsgId@@@Z @ 50 NONAME ; int CBasePlugin::CancelSyncL(class TFSMailMsgId const &) - ?BlockCopyMoveFromFoldersL@CBasePlugin@@MAEXVTFSMailMsgId@@W4TFSFolderType@@AAVCFSMailFolder@@@Z @ 51 NONAME ; void CBasePlugin::BlockCopyMoveFromFoldersL(class TFSMailMsgId, enum TFSFolderType, class CFSMailFolder &) - ?NewL@CBaseMrRecurrenceRule@@SAPAV1@XZ @ 52 NONAME ; class CBaseMrRecurrenceRule * CBaseMrRecurrenceRule::NewL(void) - ?NewL@CBaseMrAttendee@@SAPAV1@XZ @ 53 NONAME ; class CBaseMrAttendee * CBaseMrAttendee::NewL(void) + ?CancelL@CBasePlugin@@UAEXH@Z @ 1 NONAME ; void CBasePlugin::CancelL(int) + ?NewL@CBaseMrAttendee@@SAPAV1@XZ @ 2 NONAME ; class CBaseMrAttendee * CBaseMrAttendee::NewL(void) + ?FindFetchRequestL@CBasePlugin@@IAEHIIIIAAUTOngoingFetchInfo@1@@Z @ 3 NONAME ; int CBasePlugin::FindFetchRequestL(unsigned int, unsigned int, unsigned int, unsigned int, struct CBasePlugin::TOngoingFetchInfo &) + ?WizardDataAvailableL@CBasePlugin@@UAEHXZ @ 4 NONAME ; int CBasePlugin::WizardDataAvailableL(void) + ?ReportRequestStatusL@CBasePlugin@@MAEXIIIIH@Z @ 5 NONAME ; void CBasePlugin::ReportRequestStatusL(unsigned int, unsigned int, unsigned int, unsigned int, int) + ?Load2LC@CResourceLoader@@QAEPAVHBufC16@@HH@Z @ 6 NONAME ; class HBufC16 * CResourceLoader::Load2LC(int, int) + ?DoCancel@CDelayedOp@@EAEXXZ @ 7 NONAME ; void CDelayedOp::DoCancel(void) + ??1CBaseMrRecurrenceRule@@UAE@XZ @ 8 NONAME ; CBaseMrRecurrenceRule::~CBaseMrRecurrenceRule(void) + ?GoOnlineL@CBasePlugin@@UAEXABVTFSMailMsgId@@@Z @ 9 NONAME ; void CBasePlugin::GoOnlineL(class TFSMailMsgId const &) + ??1CDelayedOp@@UAE@XZ @ 10 NONAME ; CDelayedOp::~CDelayedOp(void) + ?SetStartTimeInUtcL@CBaseMrInfoObject@@UAEXVTTime@@@Z @ 11 NONAME ; void CBaseMrInfoObject::SetStartTimeInUtcL(class TTime) + ?NewL@CBaseMrAttendee@@SAPAV1@ABVMMROrganizer@@@Z @ 12 NONAME ; class CBaseMrAttendee * CBaseMrAttendee::NewL(class MMROrganizer const &) + ?CancelSearch@CBasePlugin@@UAEXABVTFSMailMsgId@@@Z @ 13 NONAME ; void CBasePlugin::CancelSearch(class TFSMailMsgId const &) + ?RecurrentInterval@CBaseMrRecurrenceRule@@UBEHXZ @ 14 NONAME ; int CBaseMrRecurrenceRule::RecurrentInterval(void) const + ?CalendarFileName@CBasePlugin@@MBEABVTDesC16@@XZ @ 15 NONAME ; class TDesC16 const & CBasePlugin::CalendarFileName(void) const + ?AddRecurrenceExceptionL@CBaseMrInfoObject@@UAEXPAVMMRInfoObject@@@Z @ 16 NONAME ; void CBaseMrInfoObject::AddRecurrenceExceptionL(class MMRInfoObject *) + ?SetRecurrentDaysofMonthL@CBaseMrRecurrenceRule@@UAEXAAV?$RArray@UTRecurrentDaysofMonth@MRRecurrenceRule@@@@@Z @ 17 NONAME ; void CBaseMrRecurrenceRule::SetRecurrentDaysofMonthL(class RArray &) + ?SetCredentialsL@CBasePlugin@@UAEXABVTFSMailMsgId@@ABVTDesC16@@1@Z @ 18 NONAME ; void CBasePlugin::SetCredentialsL(class TFSMailMsgId const &, class TDesC16 const &, class TDesC16 const &) + ?SetAlarmInUtcL@CBaseMrInfoObject@@UAEXVTTime@@@Z @ 19 NONAME ; void CBaseMrInfoObject::SetAlarmInUtcL(class TTime) + ?NewL@CBaseMrAttendee@@SAPAV1@ABVMMRAttendee@@@Z @ 20 NONAME ; class CBaseMrAttendee * CBaseMrAttendee::NewL(class MMRAttendee const &) + ?TranslateMsgStoreDayOfWeek@CBasePlugin@@IAEXKAAVTDayOfWeekFtor@@@Z @ 21 NONAME ; void CBasePlugin::TranslateMsgStoreDayOfWeek(unsigned long, class TDayOfWeekFtor &) + ?GetStandardFolderIdL@CBasePlugin@@UAE?AVTFSMailMsgId@@ABV2@W4TFSFolderType@@@Z @ 22 NONAME ; class TFSMailMsgId CBasePlugin::GetStandardFolderIdL(class TFSMailMsgId const &, enum TFSFolderType) + ?DeleteFetchRequest@CBasePlugin@@IAEXAAUTOngoingFetchInfo@1@@Z @ 23 NONAME ; void CBasePlugin::DeleteFetchRequest(struct CBasePlugin::TOngoingFetchInfo &) + ?CommonName@CBaseMrAttendee@@UBEABVTDesC16@@XZ @ 24 NONAME ; class TDesC16 const & CBaseMrAttendee::CommonName(void) const + ?RecurrentDaysofMonth@CBaseMrRecurrenceRule@@UBEABV?$RArray@UTRecurrentDaysofMonth@MRRecurrenceRule@@@@XZ @ 25 NONAME ; class RArray const & CBaseMrRecurrenceRule::RecurrentDaysofMonth(void) const + ?MRSequenceNumberL@CBaseMrInfoObject@@UBEHXZ @ 26 NONAME ; int CBaseMrInfoObject::MRSequenceNumberL(void) const + ?MRRecurrenceId@CBaseMrInfoObject@@UBE?AVTTime@@XZ @ 27 NONAME ; class TTime CBaseMrInfoObject::MRRecurrenceId(void) const + ?SubjectL@CBaseMrInfoObject@@UBEABVTDesC16@@XZ @ 28 NONAME ; class TDesC16 const & CBaseMrInfoObject::SubjectL(void) const + ?GetMessageByUidL@CBasePlugin@@UAEPAVCFSMailMessage@@ABVTFSMailMsgId@@00W4TFSMailDetails@@@Z @ 29 NONAME ; class CFSMailMessage * CBasePlugin::GetMessageByUidL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, enum TFSMailDetails) + ?InvalidateCacheIfNecessary@CBasePlugin@@IAEXIII@Z @ 30 NONAME ; void CBasePlugin::InvalidateCacheIfNecessary(unsigned int, unsigned int, unsigned int) + ?TranslateEmailFwRecipientsL@CBasePlugin@@IAEXAAVCMsgStoreMessagePart@@ABVTDesC8@@AAV?$RPointerArray@VCFSMailAddress@@@@@Z @ 31 NONAME ; void CBasePlugin::TranslateEmailFwRecipientsL(class CMsgStoreMessagePart &, class TDesC8 const &, class RPointerArray &) + ?SetRecurrenceRuleL@CBaseMrInfoObject@@UAEXABVMRRecurrenceRule@@@Z @ 32 NONAME ; void CBaseMrInfoObject::SetRecurrenceRuleL(class MRRecurrenceRule const &) + ?Load2L@CResourceLoader@@QAEPAVHBufC16@@H@Z @ 33 NONAME ; class HBufC16 * CResourceLoader::Load2L(int) + ?RemoveAllPropertiesL@CBasePlugin@@KAXAAVCMsgStorePropertyContainer@@ABVTDesC8@@@Z @ 34 NONAME ; void CBasePlugin::RemoveAllPropertiesL(class CMsgStorePropertyContainer &, class TDesC8 const &) + ?DoCancelSearchL@CBasePlugin@@IAEXABVTFSMailMsgId@@@Z @ 35 NONAME ; void CBasePlugin::DoCancelSearchL(class TFSMailMsgId const &) + ?GetMessagesL@CBasePlugin@@UAEXABVTFSMailMsgId@@0ABV?$RArray@VTFSMailMsgId@@@@AAV?$RPointerArray@VCFSMailMessage@@@@W4TFSMailDetails@@@Z @ 36 NONAME ; void CBasePlugin::GetMessagesL(class TFSMailMsgId const &, class TFSMailMsgId const &, class RArray const &, class RPointerArray &, enum TFSMailDetails) + ?GetPlugin@CDelayedOp@@IAEAAVCBasePlugin@@XZ @ 37 NONAME ; class CBasePlugin & CDelayedOp::GetPlugin(void) + ?LoadLC@CResourceLoader@@QAEPAVHBufC16@@H@Z @ 38 NONAME ; class HBufC16 * CResourceLoader::LoadLC(int) + ?HandleRemovePartContentL@CBasePlugin@@MAEXAAVCMsgStoreMessage@@AAVCMsgStoreMessagePart@@@Z @ 39 NONAME ; void CBasePlugin::HandleRemovePartContentL(class CMsgStoreMessage &, class CMsgStoreMessagePart &) + ?SetMRRecurrenceIdL@CBaseMrInfoObject@@UAEXVTTime@@@Z @ 40 NONAME ; void CBaseMrInfoObject::SetMRRecurrenceIdL(class TTime) + ?CreateReplyMessageL@CBasePlugin@@UAEPAVCFSMailMessage@@ABVTFSMailMsgId@@0HABVTDesC16@@@Z @ 41 NONAME ; class CFSMailMessage * CBasePlugin::CreateReplyMessageL(class TFSMailMsgId const &, class TFSMailMsgId const &, int, class TDesC16 const &) + ?UnsubscribeMailboxEventsL@CBasePlugin@@IAEXABVTFSMailMsgId@@AAVMFSMailEventObserver@@@Z @ 42 NONAME ; void CBasePlugin::UnsubscribeMailboxEventsL(class TFSMailMsgId const &, class MFSMailEventObserver &) + ?CreateForwardMessageL@CBasePlugin@@UAEPAVCFSMailMessage@@ABVTFSMailMsgId@@0ABVTDesC16@@@Z @ 43 NONAME ; class CFSMailMessage * CBasePlugin::CreateForwardMessageL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &) + ?UnregisterRequestObserver@CBasePlugin@@UAEXH@Z @ 44 NONAME ; void CBasePlugin::UnregisterRequestObserver(int) + ?DeleteFolderByUidL@CBasePlugin@@UAEXABVTFSMailMsgId@@0@Z @ 45 NONAME ; void CBasePlugin::DeleteFolderByUidL(class TFSMailMsgId const &, class TFSMailMsgId const &) + ?NewL@CBaseMrInfoObject@@SAPAV1@AAVMMRInfoObject@@@Z @ 46 NONAME ; class CBaseMrInfoObject * CBaseMrInfoObject::NewL(class MMRInfoObject &) + ?GoOfflineL@CBasePlugin@@UAEXABVTFSMailMsgId@@@Z @ 47 NONAME ; void CBasePlugin::GoOfflineL(class TFSMailMsgId const &) + ?ResponseRequested@CBaseMrAttendee@@UBEHXZ @ 48 NONAME ; int CBaseMrAttendee::ResponseRequested(void) const + ?GetAccountForMsgBoxL@CBasePlugin@@IAEPAVCMsgStoreAccount@@ABVTFSMailMsgId@@@Z @ 49 NONAME ; class CMsgStoreAccount * CBasePlugin::GetAccountForMsgBoxL(class TFSMailMsgId const &) + ?DeleteDelayedOpsManager@CBasePlugin@@QAEXXZ @ 50 NONAME ; void CBasePlugin::DeleteDelayedOpsManager(void) + ?SearchL@CBasePlugin@@UAEXABVTFSMailMsgId@@ABV?$RArray@VTFSMailMsgId@@@@ABV?$RPointerArray@VTDesC16@@@@ABVTFSMailSortCriteria@@AAVMFSMailBoxSearchObserver@@@Z @ 51 NONAME ; void CBasePlugin::SearchL(class TFSMailMsgId const &, class RArray const &, class RPointerArray const &, class TFSMailSortCriteria const &, class MFSMailBoxSearchObserver &) + ?StoreMessageL@CBasePlugin@@UAEXABVTFSMailMsgId@@AAVCFSMailMessage@@@Z @ 52 NONAME ; void CBasePlugin::StoreMessageL(class TFSMailMsgId const &, class CFSMailMessage &) + ?Fs@CResourceLoader@@QAEAAVRFs@@XZ @ 53 NONAME ; class RFs & CResourceLoader::Fs(void) ?ModificationNotifyL@CBasePlugin@@IAEXIW4TMsgStoreOperation@@W4TMsgStoreContainerType@@KIII@Z @ 54 NONAME ; void CBasePlugin::ModificationNotifyL(unsigned int, enum TMsgStoreOperation, enum TMsgStoreContainerType, unsigned long, unsigned int, unsigned int, unsigned int) - ?MRRecurrenceId@CBaseMrInfoObject@@UBE?AVTTime@@XZ @ 55 NONAME ; class TTime CBaseMrInfoObject::MRRecurrenceId(void) const - ?AddAttendeeL@CBaseMrInfoObject@@UAEXPAVMMRAttendee@@@Z @ 56 NONAME ; void CBaseMrInfoObject::AddAttendeeL(class MMRAttendee *) - ?SetAddressL@CBaseMrAttendee@@UAEXABVTDesC16@@@Z @ 57 NONAME ; void CBaseMrAttendee::SetAddressL(class TDesC16 const &) - ?GetPluginId@CBasePlugin@@MAEIXZ @ 58 NONAME ; unsigned int CBasePlugin::GetPluginId(void) - ?NewChildPartFromFilePathOrHandleL@CBasePlugin@@IAEPAVCFSMailMessagePart@@ABVTFSMailMsgId@@000ABVTDesC16@@1HAAVRFile@@@Z @ 59 NONAME ; class CFSMailMessagePart * CBasePlugin::NewChildPartFromFilePathOrHandleL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &, class TDesC16 const &, int, class RFile &) - ?NewL@CBaseMrInfoObject@@SAPAV1@AAVMMRInfoObject@@@Z @ 60 NONAME ; class CBaseMrInfoObject * CBaseMrInfoObject::NewL(class MMRInfoObject &) - ??1CBaseMrRecurrenceRule@@UAE@XZ @ 61 NONAME ; CBaseMrRecurrenceRule::~CBaseMrRecurrenceRule(void) - ?SetCommonNameL@CBaseMrAttendee@@UAEXABVTDesC16@@@Z @ 62 NONAME ; void CBaseMrAttendee::SetCommonNameL(class TDesC16 const &) - ?SetMethod@CBaseMrInfoObject@@QAEXW4TMRMethod@MMRInfoObject@@@Z @ 63 NONAME ; void CBaseMrInfoObject::SetMethod(enum MMRInfoObject::TMRMethod) - ?NewL@CBaseMrInfoObject@@SAPAV1@XZ @ 64 NONAME ; class CBaseMrInfoObject * CBaseMrInfoObject::NewL(void) - ?StoreMessagesL@CBasePlugin@@UAEXABVTFSMailMsgId@@AAV?$RPointerArray@VCFSMailMessage@@@@AAVMFSMailRequestObserver@@H@Z @ 65 NONAME ; void CBasePlugin::StoreMessagesL(class TFSMailMsgId const &, class RPointerArray &, class MFSMailRequestObserver &, int) - ?SetRecurrentDaysofMonthL@CBaseMrRecurrenceRule@@UAEXAAV?$RArray@UTRecurrentDaysofMonth@MRRecurrenceRule@@@@@Z @ 66 NONAME ; void CBaseMrRecurrenceRule::SetRecurrentDaysofMonthL(class RArray &) - ?DoClearSearchResultCacheL@CBasePlugin@@IAEXABVTFSMailMsgId@@@Z @ 67 NONAME ; void CBasePlugin::DoClearSearchResultCacheL(class TFSMailMsgId const &) - ?SupportedFields@CBaseMrInfoObject@@UBEHAAV?$RArray@W4TESMRInfoField@MMRInfoObject@@@@@Z @ 68 NONAME ; int CBaseMrInfoObject::SupportedFields(class RArray &) const - ?SetPriorityL@CBaseMrInfoObject@@UAEXI@Z @ 69 NONAME ; void CBaseMrInfoObject::SetPriorityL(unsigned int) - ?SetMRResponseL@CBaseMrInfoObject@@UAEXW4TResponse@MMRInfoObject@@@Z @ 70 NONAME ; void CBaseMrInfoObject::SetMRResponseL(enum MMRInfoObject::TResponse) - ?SetContext@CDelayedOp@@QAEXAAVCBasePlugin@@AAVMDelayedOpsManager@@@Z @ 71 NONAME ; void CDelayedOp::SetContext(class CBasePlugin &, class MDelayedOpsManager &) - ?CreateForwardReplyMessageL@CBasePlugin@@IAEPAVCFSMailMessage@@ABVTFSMailMsgId@@0HABVTDesC16@@HH@Z @ 72 NONAME ; class CFSMailMessage * CBasePlugin::CreateForwardReplyMessageL(class TFSMailMsgId const &, class TFSMailMsgId const &, int, class TDesC16 const &, int, int) - ?StoreMessagePartL@CBasePlugin@@UAEXABVTFSMailMsgId@@00AAVCFSMailMessagePart@@@Z @ 73 NONAME ; void CBasePlugin::StoreMessagePartL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class CFSMailMessagePart &) - ?GetCachedMsgChildrenL@CBasePlugin@@IAEAAV?$RPointerArray@VCMsgStoreMessagePart@@@@XZ @ 74 NONAME ; class RPointerArray & CBasePlugin::GetCachedMsgChildrenL(void) - ?GetCachedBodyL@CBasePlugin@@IAEPAVCMsgStoreMessagePart@@I@Z @ 75 NONAME ; class CMsgStoreMessagePart * CBasePlugin::GetCachedBodyL(unsigned int) - ?CreationTimeInUtcL@CBaseMrInfoObject@@UBE?AVTTime@@XZ @ 76 NONAME ; class TTime CBaseMrInfoObject::CreationTimeInUtcL(void) const - ?RecurrentCount@CBaseMrRecurrenceRule@@UBEIXZ @ 77 NONAME ; unsigned int CBaseMrRecurrenceRule::RecurrentCount(void) const - ?NewL@CBaseMrRecurrenceRule@@SAPAV1@ABVMRRecurrenceRule@@@Z @ 78 NONAME ; class CBaseMrRecurrenceRule * CBaseMrRecurrenceRule::NewL(class MRRecurrenceRule const &) - ??1CDelayedOp@@UAE@XZ @ 79 NONAME ; CDelayedOp::~CDelayedOp(void) - ?ResponseRequested@CBaseMrAttendee@@UBEHXZ @ 80 NONAME ; int CBaseMrAttendee::ResponseRequested(void) const - ?ListFoldersL@CBasePlugin@@UAEXABVTFSMailMsgId@@AAV?$RPointerArray@VCFSMailFolder@@@@@Z @ 81 NONAME ; void CBasePlugin::ListFoldersL(class TFSMailMsgId const &, class RPointerArray &) - ?TranslateEmailFwMrL@CBasePlugin@@MAEXAAVMMRInfoObject@@AAVCMsgStorePropertyContainer@@@Z @ 82 NONAME ; void CBasePlugin::TranslateEmailFwMrL(class MMRInfoObject &, class CMsgStorePropertyContainer &) - ?Load2L@CResourceLoader@@QAEPAVHBufC16@@HH@Z @ 83 NONAME ; class HBufC16 * CResourceLoader::Load2L(int, int) - ?SetRecurrentMonthsL@CBaseMrRecurrenceRule@@UAEXAAV?$RArray@W4TMRRecurrenceMonth@MRRecurrenceRule@@@@@Z @ 84 NONAME ; void CBaseMrRecurrenceRule::SetRecurrentMonthsL(class RArray &) - ?GoOfflineL@CBasePlugin@@UAEXABVTFSMailMsgId@@@Z @ 85 NONAME ; void CBasePlugin::GoOfflineL(class TFSMailMsgId const &) - ?FetchMessagesL@CBasePlugin@@UAEXABVTFSMailMsgId@@0ABV?$RArray@VTFSMailMsgId@@@@W4TFSMailDetails@@AAVMFSMailRequestObserver@@H@Z @ 86 NONAME ; void CBasePlugin::FetchMessagesL(class TFSMailMsgId const &, class TFSMailMsgId const &, class RArray const &, enum TFSMailDetails, class MFSMailRequestObserver &, int) - ?SetRecurrentMonthDaysL@CBaseMrRecurrenceRule@@UAEXAAV?$RArray@H@@@Z @ 87 NONAME ; void CBaseMrRecurrenceRule::SetRecurrentMonthDaysL(class RArray &) - ?MoveMessagesL@CBasePlugin@@UAEXABVTFSMailMsgId@@ABV?$RArray@VTFSMailMsgId@@@@00@Z @ 88 NONAME ; void CBasePlugin::MoveMessagesL(class TFSMailMsgId const &, class RArray const &, class TFSMailMsgId const &, class TFSMailMsgId const &) - ?Load2LC@CResourceLoader@@QAEPAVHBufC16@@H@Z @ 89 NONAME ; class HBufC16 * CResourceLoader::Load2LC(int) - ?DeleteFolderByUidL@CBasePlugin@@UAEXABVTFSMailMsgId@@0@Z @ 90 NONAME ; void CBasePlugin::DeleteFolderByUidL(class TFSMailMsgId const &, class TFSMailMsgId const &) - ??_ECDelayedOp@@UAE@I@Z @ 91 NONAME ; CDelayedOp::~CDelayedOp(unsigned int) - ?SetRecurrentWeekDaysL@CBaseMrRecurrenceRule@@UAEXAAV?$RArray@W4TMRRecurrentDay@MRRecurrenceRule@@@@@Z @ 92 NONAME ; void CBaseMrRecurrenceRule::SetRecurrentWeekDaysL(class RArray &) - ?Load2L@CResourceLoader@@QAEPAVHBufC16@@HABVTDesC16@@@Z @ 93 NONAME ; class HBufC16 * CResourceLoader::Load2L(int, class TDesC16 const &) - ?StoreMessageL@CBasePlugin@@UAEXABVTFSMailMsgId@@AAVCFSMailMessage@@@Z @ 94 NONAME ; void CBasePlugin::StoreMessageL(class TFSMailMsgId const &, class CFSMailMessage &) - ?ReportRequestStatusL@CBasePlugin@@MAEXIIIIH@Z @ 95 NONAME ; void CBasePlugin::ReportRequestStatusL(unsigned int, unsigned int, unsigned int, unsigned int, int) - ?CreateMrReplyMessageL@CBasePlugin@@MAEPAVCFSMailMessage@@ABVTFSMailMsgId@@AAVMMRInfoObject@@0@Z @ 96 NONAME ; class CFSMailMessage * CBasePlugin::CreateMrReplyMessageL(class TFSMailMsgId const &, class MMRInfoObject &, class TFSMailMsgId const &) - ?SetRecurrentCountL@CBaseMrRecurrenceRule@@UAEXH@Z @ 97 NONAME ; void CBaseMrRecurrenceRule::SetRecurrentCountL(int) - ?MRMethodL@CBaseMrInfoObject@@UBE?AW4TMRMethod@MMRInfoObject@@XZ @ 98 NONAME ; enum MMRInfoObject::TMRMethod CBaseMrInfoObject::MRMethodL(void) const - ?UnsubscribeMailboxEvents@CBasePlugin@@UAEXABVTFSMailMsgId@@AAVMFSMailEventObserver@@@Z @ 99 NONAME ; void CBasePlugin::UnsubscribeMailboxEvents(class TFSMailMsgId const &, class MFSMailEventObserver &) - ?FetchMessagePartsL@CBasePlugin@@UAEXABVTFSMailMsgId@@00ABV?$RArray@VTFSMailMsgId@@@@AAVMFSMailRequestObserver@@HI@Z @ 100 NONAME ; void CBasePlugin::FetchMessagePartsL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class RArray const &, class MFSMailRequestObserver &, int, unsigned int) - ?CancelL@CBasePlugin@@UAEXH@Z @ 101 NONAME ; void CBasePlugin::CancelL(int) - ?AddAttachmentsL@CBaseMrInfoObject@@UAEXPAVMMRAttachment@@@Z @ 102 NONAME ; void CBaseMrInfoObject::AddAttachmentsL(class MMRAttachment *) - ?MailboxHasCapabilityL@CBasePlugin@@UAEHW4TFSMailBoxCapabilities@@VTFSMailMsgId@@@Z @ 103 NONAME ; int CBasePlugin::MailboxHasCapabilityL(enum TFSMailBoxCapabilities, class TFSMailMsgId) - ?LocationL@CBaseMrInfoObject@@UBEABVTDesC16@@XZ @ 104 NONAME ; class TDesC16 const & CBaseMrInfoObject::LocationL(void) const - ?DoListFoldersL@CBasePlugin@@IAEXVTFSMailMsgId@@IHAAV?$RPointerArray@VCFSMailFolder@@@@@Z @ 105 NONAME ; void CBasePlugin::DoListFoldersL(class TFSMailMsgId, unsigned int, int, class RPointerArray &) - ?SetUidL@CBaseMrInfoObject@@QAEXPAVHBufC16@@@Z @ 106 NONAME ; void CBaseMrInfoObject::SetUidL(class HBufC16 *) - ?GetContentToBufferL@CBasePlugin@@UAEXABVTFSMailMsgId@@000AAVTDes16@@I@Z @ 107 NONAME ; void CBasePlugin::GetContentToBufferL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TDes16 &, unsigned int) - ?CreateMessageToSendL@CBasePlugin@@UAEXABVTFSMailMsgId@@AAVMFSMailRequestObserver@@H@Z @ 108 NONAME ; void CBasePlugin::CreateMessageToSendL(class TFSMailMsgId const &, class MFSMailRequestObserver &, int) - ?SendMessageL@CBasePlugin@@QAEXAAVCMsgStoreMailBox@@AAVCMsgStoreMessage@@ABVTTime@@@Z @ 109 NONAME ; void CBasePlugin::SendMessageL(class CMsgStoreMailBox &, class CMsgStoreMessage &, class TTime const &) - ?GetMessagesL@CBasePlugin@@UAEXABVTFSMailMsgId@@0ABV?$RArray@VTFSMailMsgId@@@@AAV?$RPointerArray@VCFSMailMessage@@@@W4TFSMailDetails@@@Z @ 110 NONAME ; void CBasePlugin::GetMessagesL(class TFSMailMsgId const &, class TFSMailMsgId const &, class RArray const &, class RPointerArray &, enum TFSMailDetails) - ?GetFolderByUidL@CBasePlugin@@UAEPAVCFSMailFolder@@ABVTFSMailMsgId@@0@Z @ 111 NONAME ; class CFSMailFolder * CBasePlugin::GetFolderByUidL(class TFSMailMsgId const &, class TFSMailMsgId const &) - ?DeleteFetchRequest@CBasePlugin@@IAEXAAUTOngoingFetchInfo@1@@Z @ 112 NONAME ; void CBasePlugin::DeleteFetchRequest(struct CBasePlugin::TOngoingFetchInfo &) - ?ResetCache@CBasePlugin@@IAEXXZ @ 113 NONAME ; void CBasePlugin::ResetCache(void) - ?NewL@CBaseMrInfoProcessor@@SAPAV1@AAVCBasePlugin@@@Z @ 114 NONAME ; class CBaseMrInfoProcessor * CBaseMrInfoProcessor::NewL(class CBasePlugin &) - ?NewChildPartFromFileL@CBasePlugin@@UAEPAVCFSMailMessagePart@@ABVTFSMailMsgId@@000ABVTDesC16@@AAVRFile@@@Z @ 115 NONAME ; class CFSMailMessagePart * CBasePlugin::NewChildPartFromFileL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &, class RFile &) - ?GetBodyPartL@CBasePlugin@@IAEPAVCMsgStoreMessagePart@@AAVCMsgStoreMessage@@ABVTDesC16@@@Z @ 116 NONAME ; class CMsgStoreMessagePart * CBasePlugin::GetBodyPartL(class CMsgStoreMessage &, class TDesC16 const &) - ?GoOnlineL@CBasePlugin@@UAEXABVTFSMailMsgId@@@Z @ 117 NONAME ; void CBasePlugin::GoOnlineL(class TFSMailMsgId const &) - ?InvalidateCacheIfNecessary@CBasePlugin@@IAEXIII@Z @ 118 NONAME ; void CBasePlugin::InvalidateCacheIfNecessary(unsigned int, unsigned int, unsigned int) - ?TranslateMsgStoreDayOfWeek@CBasePlugin@@IAEXKAAVTDayOfWeekFtor@@@Z @ 119 NONAME ; void CBasePlugin::TranslateMsgStoreDayOfWeek(unsigned long, class TDayOfWeekFtor &) - ?SetRecurrentInterval@CBaseMrRecurrenceRule@@UAEXH@Z @ 120 NONAME ; void CBaseMrRecurrenceRule::SetRecurrentInterval(int) - ?SetEndTimeInUtcL@CBaseMrInfoObject@@UAEXVTTime@@@Z @ 121 NONAME ; void CBaseMrInfoObject::SetEndTimeInUtcL(class TTime) - ?GetDelayedOpsManager@CBasePlugin@@QAEAAVMDelayedOpsManager@@XZ @ 122 NONAME ; class MDelayedOpsManager & CBasePlugin::GetDelayedOpsManager(void) - ?CreateReplyMessageL@CBasePlugin@@UAEPAVCFSMailMessage@@ABVTFSMailMsgId@@0HABVTDesC16@@@Z @ 123 NONAME ; class CFSMailMessage * CBasePlugin::CreateReplyMessageL(class TFSMailMsgId const &, class TFSMailMsgId const &, int, class TDesC16 const &) - ?GetCachedMsgL@CBasePlugin@@IAEPAVCMsgStoreMessage@@II@Z @ 124 NONAME ; class CMsgStoreMessage * CBasePlugin::GetCachedMsgL(unsigned int, unsigned int) - ?UnregisterRequestObserver@CBasePlugin@@UAEXH@Z @ 125 NONAME ; void CBasePlugin::UnregisterRequestObserver(int) - ?ClearSearchResultCache@CBasePlugin@@UAEXABVTFSMailMsgId@@@Z @ 126 NONAME ; void CBasePlugin::ClearSearchResultCache(class TFSMailMsgId const &) - ??1CResourceLoader@@UAE@XZ @ 127 NONAME ; CResourceLoader::~CResourceLoader(void) - ?CommonName@CBaseMrAttendee@@UBEABVTDesC16@@XZ @ 128 NONAME ; class TDesC16 const & CBaseMrAttendee::CommonName(void) const - ?GetMailboxDisplayNameL@CBasePlugin@@IAEXIAAVRBuf16@@@Z @ 129 NONAME ; void CBasePlugin::GetMailboxDisplayNameL(unsigned int, class RBuf16 &) - ?Address@CBaseMrAttendee@@UBEABVTDesC16@@XZ @ 130 NONAME ; class TDesC16 const & CBaseMrAttendee::Address(void) const - ?GetReplyToAddressL@CBasePlugin@@MAEPAVHBufC16@@VTFSMailMsgId@@@Z @ 131 NONAME ; class HBufC16 * CBasePlugin::GetReplyToAddressL(class TFSMailMsgId) - ?GetMailboxInfoL@CBasePlugin@@IAEAAVCMailboxInfo@@I@Z @ 132 NONAME ; class CMailboxInfo & CBasePlugin::GetMailboxInfoL(unsigned int) - ?HandleMailboxDeleteL@CBasePlugin@@MAEXABVTFSMailMsgId@@@Z @ 133 NONAME ; void CBasePlugin::HandleMailboxDeleteL(class TFSMailMsgId const &) - ?SetPartContentFromFileL@CBasePlugin@@UAEXABVTFSMailMsgId@@000ABVTDesC16@@@Z @ 134 NONAME ; void CBasePlugin::SetPartContentFromFileL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &) - ?DeleteMessagesByUidL@CBasePlugin@@UAEXABVTFSMailMsgId@@0ABV?$RArray@VTFSMailMsgId@@@@@Z @ 135 NONAME ; void CBasePlugin::DeleteMessagesByUidL(class TFSMailMsgId const &, class TFSMailMsgId const &, class RArray const &) - ?SetRecurrenceRuleL@CBaseMrInfoObject@@UAEXABVMRRecurrenceRule@@@Z @ 136 NONAME ; void CBaseMrInfoObject::SetRecurrenceRuleL(class MRRecurrenceRule const &) - ?SetCreationTimeInUtcL@CBaseMrInfoObject@@UAEXVTTime@@@Z @ 137 NONAME ; void CBaseMrInfoObject::SetCreationTimeInUtcL(class TTime) - ?AttendeeRole@CBaseMrAttendee@@UBE?AW4TAttendeeRole@MMRAttendee@@XZ @ 138 NONAME ; enum MMRAttendee::TAttendeeRole CBaseMrAttendee::AttendeeRole(void) const - ?RecurrentUntil@CBaseMrRecurrenceRule@@UBE?AVTTime@@XZ @ 139 NONAME ; class TTime CBaseMrRecurrenceRule::RecurrentUntil(void) const - ?AttendeeStatus@CBaseMrAttendee@@UBE?AW4TAttendeeStatus@MMRAttendee@@XZ @ 140 NONAME ; enum MMRAttendee::TAttendeeStatus CBaseMrAttendee::AttendeeStatus(void) const - ?ListMailBoxesL@CBasePlugin@@UAEXAAV?$RArray@VTFSMailMsgId@@@@@Z @ 141 NONAME ; void CBasePlugin::ListMailBoxesL(class RArray &) - ?WizardDataAvailableL@CBasePlugin@@UAEHXZ @ 142 NONAME ; int CBasePlugin::WizardDataAvailableL(void) - ?CancelSearch@CBasePlugin@@UAEXABVTFSMailMsgId@@@Z @ 143 NONAME ; void CBasePlugin::CancelSearch(class TFSMailMsgId const &) - ?RemoveChildPartL@CBasePlugin@@UAEXABVTFSMailMsgId@@0000AAVMFSMailRequestObserver@@H@Z @ 144 NONAME ; void CBasePlugin::RemoveChildPartL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class MFSMailRequestObserver &, int) - ??0CDelayedOp@@IAE@XZ @ 145 NONAME ; CDelayedOp::CDelayedOp(void) - ?NotifyMailboxEventL@CBasePlugin@@MAEXW4TFSMailEvent@@VTFSMailMsgId@@PAX22@Z @ 146 NONAME ; void CBasePlugin::NotifyMailboxEventL(enum TFSMailEvent, class TFSMailMsgId, void *, void *, void *) - ?MROrganizerL@CBaseMrInfoObject@@UAEAAVMMROrganizer@@XZ @ 147 NONAME ; class MMROrganizer & CBaseMrInfoObject::MROrganizerL(void) - ?CalendarFileName@CBasePlugin@@MBEABVTDesC16@@XZ @ 148 NONAME ; class TDesC16 const & CBasePlugin::CalendarFileName(void) const - ?DeleteDelayedOpsManager@CBasePlugin@@QAEXXZ @ 149 NONAME ; void CBasePlugin::DeleteDelayedOpsManager(void) - ?NewL@CBaseMrAttendee@@SAPAV1@ABVMMROrganizer@@@Z @ 150 NONAME ; class CBaseMrAttendee * CBaseMrAttendee::NewL(class MMROrganizer const &) - ?TranslateEmailFwRecipientsL@CBasePlugin@@IAEXAAVCMsgStoreMessagePart@@ABVTDesC8@@AAV?$RPointerArray@VCFSMailAddress@@@@@Z @ 151 NONAME ; void CBasePlugin::TranslateEmailFwRecipientsL(class CMsgStoreMessagePart &, class TDesC8 const &, class RPointerArray &) - ?NotifyGlobalEventL@CBasePlugin@@IAEXW4TFSMailEvent@@VTFSMailMsgId@@PAX22@Z @ 152 NONAME ; void CBasePlugin::NotifyGlobalEventL(enum TFSMailEvent, class TFSMailMsgId, void *, void *, void *) - ?CreateMessageToSendL@CBasePlugin@@UAEPAVCFSMailMessage@@ABVTFSMailMsgId@@@Z @ 153 NONAME ; class CFSMailMessage * CBasePlugin::CreateMessageToSendL(class TFSMailMsgId const &) - ?DescriptionL@CBaseMrInfoObject@@UBEABVTDesC16@@XZ @ 154 NONAME ; class TDesC16 const & CBaseMrInfoObject::DescriptionL(void) const - ?SetMRSequenceNumber@CBaseMrInfoObject@@QAEXH@Z @ 155 NONAME ; void CBaseMrInfoObject::SetMRSequenceNumber(int) - ?TranslateEmailFwDayOfWeek@CBasePlugin@@IAEXW4TMRRecurrentDay@MRRecurrenceRule@@AAK@Z @ 156 NONAME ; void CBasePlugin::TranslateEmailFwDayOfWeek(enum MRRecurrenceRule::TMRRecurrentDay, unsigned long &) - ?GetMailBoxStatus@CBasePlugin@@UAE?AW4TFSMailBoxStatus@@ABVTFSMailMsgId@@@Z @ 157 NONAME ; enum TFSMailBoxStatus CBasePlugin::GetMailBoxStatus(class TFSMailMsgId const &) - ?ListMessagesL@CBasePlugin@@UAEPAVMFSMailIterator@@ABVTFSMailMsgId@@0W4TFSMailDetails@@ABV?$RArray@VTFSMailSortCriteria@@@@@Z @ 158 NONAME ; class MFSMailIterator * CBasePlugin::ListMessagesL(class TFSMailMsgId const &, class TFSMailMsgId const &, enum TFSMailDetails, class RArray const &) - ?Type@CBaseMrRecurrenceRule@@UBE?AW4TMRRecurrenceType@MRRecurrenceRule@@XZ @ 159 NONAME ; enum MRRecurrenceRule::TMRRecurrenceType CBaseMrRecurrenceRule::Type(void) const - ?Load2LC@CResourceLoader@@QAEPAVHBufC16@@HH@Z @ 160 NONAME ; class HBufC16 * CResourceLoader::Load2LC(int, int) - ?CopyMessageAsChildPartL@CBasePlugin@@UAEPAVCFSMailMessagePart@@ABVTFSMailMsgId@@0000ABVCFSMailMessage@@@Z @ 161 NONAME ; class CFSMailMessagePart * CBasePlugin::CopyMessageAsChildPartL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class CFSMailMessage const &) - ?TranslateMsgStoreMrL@CBasePlugin@@MAEXABVTFSMailMsgId@@AAVCMsgStorePropertyContainer@@1AAVCFSMailMessagePart@@@Z @ 162 NONAME ; void CBasePlugin::TranslateMsgStoreMrL(class TFSMailMsgId const &, class CMsgStorePropertyContainer &, class CMsgStorePropertyContainer &, class CFSMailMessagePart &) - ?SetSubjectL@CBaseMrInfoObject@@UAEXABVTDesC16@@@Z @ 163 NONAME ; void CBaseMrInfoObject::SetSubjectL(class TDesC16 const &) - ?SetStartTimeInUtcL@CBaseMrInfoObject@@UAEXVTTime@@@Z @ 164 NONAME ; void CBaseMrInfoObject::SetStartTimeInUtcL(class TTime) - ?RecurrentWeekDays@CBaseMrRecurrenceRule@@UBEABV?$RArray@W4TMRRecurrentDay@MRRecurrenceRule@@@@XZ @ 165 NONAME ; class RArray const & CBaseMrRecurrenceRule::RecurrentWeekDays(void) const - ?GetLastSyncStatusL@CBasePlugin@@QAE?BVTFSProgress@@ABVTFSMailMsgId@@@Z @ 166 NONAME ; class TFSProgress const CBasePlugin::GetLastSyncStatusL(class TFSMailMsgId const &) - ?PriorityL@CBaseMrInfoObject@@UBEIXZ @ 167 NONAME ; unsigned int CBaseMrInfoObject::PriorityL(void) const - ?GetMailBoxByUidL@CBasePlugin@@UAEPAVCFSMailBox@@ABVTFSMailMsgId@@@Z @ 168 NONAME ; class CFSMailBox * CBasePlugin::GetMailBoxByUidL(class TFSMailMsgId const &) - ?ReplyToMeetingRequestL@CBaseMrInfoProcessor@@UAEXABVTFSMailMsgId@@0AAVMMRInfoObject@@AAW4TMRInfoResponseMode@MMRInfoProcessor@@ABVTDesC16@@@Z @ 169 NONAME ; void CBaseMrInfoProcessor::ReplyToMeetingRequestL(class TFSMailMsgId const &, class TFSMailMsgId const &, class MMRInfoObject &, enum MMRInfoProcessor::TMRInfoResponseMode &, class TDesC16 const &) - ?AuthenticateL@CBasePlugin@@UAEXAAVMFSMailRequestObserver@@H@Z @ 170 NONAME ; void CBasePlugin::AuthenticateL(class MFSMailRequestObserver &, int) - ?MessagePartL@CBasePlugin@@UAEPAVCFSMailMessagePart@@ABVTFSMailMsgId@@000@Z @ 171 NONAME ; class CFSMailMessagePart * CBasePlugin::MessagePartL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &) - ?AddRecurrenceExceptionL@CBaseMrInfoObject@@UAEXPAVMMRInfoObject@@@Z @ 172 NONAME ; void CBaseMrInfoObject::AddRecurrenceExceptionL(class MMRInfoObject *) - ?SearchL@CBasePlugin@@UAEXABVTFSMailMsgId@@ABV?$RArray@VTFSMailMsgId@@@@ABV?$RPointerArray@VTDesC16@@@@ABVTFSMailSortCriteria@@AAVMFSMailBoxSearchObserver@@@Z @ 173 NONAME ; void CBasePlugin::SearchL(class TFSMailMsgId const &, class RArray const &, class RPointerArray const &, class TFSMailSortCriteria const &, class MFSMailBoxSearchObserver &) - ?EndTimeInUtcL@CBaseMrInfoObject@@UBE?AVTTime@@XZ @ 174 NONAME ; class TTime CBaseMrInfoObject::EndTimeInUtcL(void) const - ?RunL@CDelayedOp@@EAEXXZ @ 175 NONAME ; void CDelayedOp::RunL(void) - ?SetContentL@CBasePlugin@@UAEXABVTDesC16@@ABVTFSMailMsgId@@111@Z @ 176 NONAME ; void CBasePlugin::SetContentL(class TDesC16 const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &) - ?DeleteFetchRequestForPart@CBasePlugin@@IAEHAAUTOngoingFetchInfo@1@@Z @ 177 NONAME ; int CBasePlugin::DeleteFetchRequestForPart(struct CBasePlugin::TOngoingFetchInfo &) - ?ModificationNotify@CBasePlugin@@UAEXIW4TMsgStoreOperation@@W4TMsgStoreContainerType@@KIII@Z @ 178 NONAME ; void CBasePlugin::ModificationNotify(unsigned int, enum TMsgStoreOperation, enum TMsgStoreContainerType, unsigned long, unsigned int, unsigned int, unsigned int) - ?StartOp@CDelayedOp@@QAEXXZ @ 179 NONAME ; void CDelayedOp::StartOp(void) - ?SetReplyOrForwardToFieldL@CBasePlugin@@IAEXAAVCMsgStoreMessage@@@Z @ 180 NONAME ; void CBasePlugin::SetReplyOrForwardToFieldL(class CMsgStoreMessage &) - ?FindFetchRequestL@CBasePlugin@@IAEHIIIIAAUTOngoingFetchInfo@1@@Z @ 181 NONAME ; int CBasePlugin::FindFetchRequestL(unsigned int, unsigned int, unsigned int, unsigned int, struct CBasePlugin::TOngoingFetchInfo &) - ?RemovePartContentL@CBasePlugin@@UAEXABVTFSMailMsgId@@00ABV?$RArray@VTFSMailMsgId@@@@@Z @ 182 NONAME ; void CBasePlugin::RemovePartContentL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class RArray const &) - ?RecurrenceRuleL@CBaseMrInfoObject@@UBEABVMRRecurrenceRule@@XZ @ 183 NONAME ; class MRRecurrenceRule const & CBaseMrInfoObject::RecurrenceRuleL(void) const - ?Load2L@CResourceLoader@@QAEPAVHBufC16@@H@Z @ 184 NONAME ; class HBufC16 * CResourceLoader::Load2L(int) - ?CreateForwardMessageL@CBasePlugin@@UAEPAVCFSMailMessage@@ABVTFSMailMsgId@@0ABVTDesC16@@@Z @ 185 NONAME ; class CFSMailMessage * CBasePlugin::CreateForwardMessageL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &) - ?Fs@CResourceLoader@@QAEAAVRFs@@XZ @ 186 NONAME ; class RFs & CResourceLoader::Fs(void) - ?NewLC@CBasePlugin@@SAPAV1@XZ @ 187 NONAME ; class CBasePlugin * CBasePlugin::NewLC(void) - ?NewL@CBaseMrAttendee@@SAPAV1@ABVMMRAttendee@@@Z @ 188 NONAME ; class CBaseMrAttendee * CBaseMrAttendee::NewL(class MMRAttendee const &) - ?RecurrenceExceptionsL@CBaseMrInfoObject@@UBEABV?$RPointerArray@VMMRInfoObject@@@@XZ @ 189 NONAME ; class RPointerArray const & CBaseMrInfoObject::RecurrenceExceptionsL(void) const - ?SubscribeMailboxEventsL@CBasePlugin@@UAEXABVTFSMailMsgId@@AAVMFSMailEventObserver@@@Z @ 190 NONAME ; void CBasePlugin::SubscribeMailboxEventsL(class TFSMailMsgId const &, class MFSMailEventObserver &) - ?SetLocationL@CBaseMrInfoObject@@UAEXABVTDesC16@@@Z @ 191 NONAME ; void CBaseMrInfoObject::SetLocationL(class TDesC16 const &) - ?RecurrentDaysofMonth@CBaseMrRecurrenceRule@@UBEABV?$RArray@UTRecurrentDaysofMonth@MRRecurrenceRule@@@@XZ @ 192 NONAME ; class RArray const & CBaseMrRecurrenceRule::RecurrentDaysofMonth(void) const - ?ChildPartsL@CBasePlugin@@UAEXABVTFSMailMsgId@@000AAV?$RPointerArray@VCFSMailMessagePart@@@@@Z @ 193 NONAME ; void CBasePlugin::ChildPartsL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class RPointerArray &) - ?SetUidL@CBaseMrInfoObject@@QAEXABVTDesC16@@@Z @ 194 NONAME ; void CBaseMrInfoObject::SetUidL(class TDesC16 const &) - ??1CBaseMrInfoProcessor@@UAE@XZ @ 195 NONAME ; CBaseMrInfoProcessor::~CBaseMrInfoProcessor(void) - ??1CBaseMrAttendee@@UAE@XZ @ 196 NONAME ; CBaseMrAttendee::~CBaseMrAttendee(void) - ?SubjectL@CBaseMrInfoObject@@UBEABVTDesC16@@XZ @ 197 NONAME ; class TDesC16 const & CBaseMrInfoObject::SubjectL(void) const - ?UidL@CBaseMrInfoObject@@UBEABVTDesC16@@XZ @ 198 NONAME ; class TDesC16 const & CBaseMrInfoObject::UidL(void) const - ?RefreshMailboxCacheL@CBasePlugin@@IAEAAVCMailboxInfo@@I@Z @ 199 NONAME ; class CMailboxInfo & CBasePlugin::RefreshMailboxCacheL(unsigned int) - ?SystemEventNotifyL@CBasePlugin@@IAEXW4TMsgStoreSystemEvent@@@Z @ 200 NONAME ; void CBasePlugin::SystemEventNotifyL(enum TMsgStoreSystemEvent) - ?SetResponseRequestedL@CBaseMrAttendee@@UAEXH@Z @ 201 NONAME ; void CBaseMrAttendee::SetResponseRequestedL(int) - ?RecurrentInterval@CBaseMrRecurrenceRule@@UBEHXZ @ 202 NONAME ; int CBaseMrRecurrenceRule::RecurrentInterval(void) const - ?SetMailboxName@CBasePlugin@@UAEXABVTFSMailMsgId@@ABVTDesC16@@@Z @ 203 NONAME ; void CBasePlugin::SetMailboxName(class TFSMailMsgId const &, class TDesC16 const &) - ?GetMessagePartFileL@CBasePlugin@@UAEHABVTFSMailMsgId@@000AAVRFile@@@Z @ 204 NONAME ; int CBasePlugin::GetMessagePartFileL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class RFile &) - ?RemoveObserver@CBasePlugin@@UAEXAAVMFSMailEventObserver@@@Z @ 205 NONAME ; void CBasePlugin::RemoveObserver(class MFSMailEventObserver &) - ?DoCancelSearchL@CBasePlugin@@IAEXABVTFSMailMsgId@@@Z @ 206 NONAME ; void CBasePlugin::DoCancelSearchL(class TFSMailMsgId const &) - ?NewChildPartFromFileL@CBasePlugin@@UAEXABVTFSMailMsgId@@000ABVTDesC16@@1AAVMFSMailRequestObserver@@H@Z @ 207 NONAME ; void CBasePlugin::NewChildPartFromFileL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &, class TDesC16 const &, class MFSMailRequestObserver &, int) - ?AddObserverL@CBasePlugin@@UAEXAAVMFSMailEventObserver@@@Z @ 208 NONAME ; void CBasePlugin::AddObserverL(class MFSMailEventObserver &) - ?Load2LC@CResourceLoader@@QAEPAVHBufC16@@HABVTDesC16@@@Z @ 209 NONAME ; class HBufC16 * CResourceLoader::Load2LC(int, class TDesC16 const &) - ?GetMailBoxAddressL@CBasePlugin@@MAEPAVHBufC16@@VTFSMailMsgId@@@Z @ 210 NONAME ; class HBufC16 * CBasePlugin::GetMailBoxAddressL(class TFSMailMsgId) - ?SystemEventNotify@CBasePlugin@@UAEXW4TMsgStoreSystemEvent@@@Z @ 211 NONAME ; void CBasePlugin::SystemEventNotify(enum TMsgStoreSystemEvent) - ?GetPlugin@CDelayedOp@@IAEAAVCBasePlugin@@XZ @ 212 NONAME ; class CBasePlugin & CDelayedOp::GetPlugin(void) - ?TranslateMsgStorePropsL@CBasePlugin@@MAEXABVTFSMailMsgId@@AAVCMsgStorePropertyContainer@@AAVCFSMailMessagePart@@W4TFSMailDetails@@@Z @ 213 NONAME ; void CBasePlugin::TranslateMsgStorePropsL(class TFSMailMsgId const &, class CMsgStorePropertyContainer &, class CFSMailMessagePart &, enum TFSMailDetails) - ?SetAttendeeRoleL@CBaseMrAttendee@@UAEXW4TAttendeeRole@MMRAttendee@@@Z @ 214 NONAME ; void CBaseMrAttendee::SetAttendeeRoleL(enum MMRAttendee::TAttendeeRole) - ?SendMessageL@CBasePlugin@@UAEXAAVCFSMailMessage@@@Z @ 215 NONAME ; void CBasePlugin::SendMessageL(class CFSMailMessage &) - ??0CBasePlugin@@IAE@XZ @ 216 NONAME ; CBasePlugin::CBasePlugin(void) - ?SetRecurrenceUntilL@CBaseMrRecurrenceRule@@UAEXVTTime@@@Z @ 217 NONAME ; void CBaseMrRecurrenceRule::SetRecurrenceUntilL(class TTime) - ?CreateResourceReaderLC@CResourceLoader@@QBEPAVHBufC8@@AAVTResourceReader@@H@Z @ 218 NONAME ; class HBufC8 * CResourceLoader::CreateResourceReaderLC(class TResourceReader &, int) const - ?RemoveAllPropertiesL@CBasePlugin@@KAXAAVCMsgStorePropertyContainer@@ABVTDesC8@@@Z @ 219 NONAME ; void CBasePlugin::RemoveAllPropertiesL(class CMsgStorePropertyContainer &, class TDesC8 const &) - ?CopyMessagePartFileL@CBasePlugin@@UAEXABVTFSMailMsgId@@000ABVTDesC16@@@Z @ 220 NONAME ; void CBasePlugin::CopyMessagePartFileL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &) - ?StartTimeInUtcL@CBaseMrInfoObject@@UBE?AVTTime@@XZ @ 221 NONAME ; class TTime CBaseMrInfoObject::StartTimeInUtcL(void) const - ?GetMessageByUidL@CBasePlugin@@UAEPAVCFSMailMessage@@ABVTFSMailMsgId@@00W4TFSMailDetails@@@Z @ 222 NONAME ; class CFSMailMessage * CBasePlugin::GetMessageByUidL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, enum TFSMailDetails) - ?SetCredentialsL@CBasePlugin@@UAEXABVTFSMailMsgId@@ABVTDesC16@@1@Z @ 223 NONAME ; void CBasePlugin::SetCredentialsL(class TFSMailMsgId const &, class TDesC16 const &, class TDesC16 const &) + ?SetResponseRequestedL@CBaseMrAttendee@@UAEXH@Z @ 55 NONAME ; void CBaseMrAttendee::SetResponseRequestedL(int) + ?GetMailboxInfoL@CBasePlugin@@IAEAAVCMailboxInfo@@I@Z @ 56 NONAME ; class CMailboxInfo & CBasePlugin::GetMailboxInfoL(unsigned int) + ?SetCreationTimeInUtcL@CBaseMrInfoObject@@UAEXVTTime@@@Z @ 57 NONAME ; void CBaseMrInfoObject::SetCreationTimeInUtcL(class TTime) + ?FetchMessagePartsL@CBasePlugin@@UAEXABVTFSMailMsgId@@00ABV?$RArray@VTFSMailMsgId@@@@AAVMFSMailRequestObserver@@HI@Z @ 58 NONAME ; void CBasePlugin::FetchMessagePartsL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class RArray const &, class MFSMailRequestObserver &, int, unsigned int) + ?GetBodyPartL@CBasePlugin@@IAEPAVCMsgStoreMessagePart@@AAVCMsgStoreMessage@@ABVTDesC16@@@Z @ 59 NONAME ; class CMsgStoreMessagePart * CBasePlugin::GetBodyPartL(class CMsgStoreMessage &, class TDesC16 const &) + ?AddAttendeeL@CBaseMrInfoObject@@UAEXPAVMMRAttendee@@@Z @ 60 NONAME ; void CBaseMrInfoObject::AddAttendeeL(class MMRAttendee *) + ?EndTimeInUtcL@CBaseMrInfoObject@@UBE?AVTTime@@XZ @ 61 NONAME ; class TTime CBaseMrInfoObject::EndTimeInUtcL(void) const + ?SendMessageL@CBasePlugin@@QAEXAAVCMsgStoreMailBox@@AAVCMsgStoreMessage@@ABVTTime@@@Z @ 62 NONAME ; void CBasePlugin::SendMessageL(class CMsgStoreMailBox &, class CMsgStoreMessage &, class TTime const &) + ??_ECDelayedOp@@UAE@I@Z @ 63 NONAME ; CDelayedOp::~CDelayedOp(unsigned int) + ?SetAttendeeRoleL@CBaseMrAttendee@@UAEXW4TAttendeeRole@MMRAttendee@@@Z @ 64 NONAME ; void CBaseMrAttendee::SetAttendeeRoleL(enum MMRAttendee::TAttendeeRole) + ?RefreshMailboxCacheL@CBasePlugin@@IAEAAVCMailboxInfo@@I@Z @ 65 NONAME ; class CMailboxInfo & CBasePlugin::RefreshMailboxCacheL(unsigned int) + ?SetRecurrenceStartTimeL@CBaseMrRecurrenceRule@@UAEXVTTime@@@Z @ 66 NONAME ; void CBaseMrRecurrenceRule::SetRecurrenceStartTimeL(class TTime) + ?RecurrentCount@CBaseMrRecurrenceRule@@UBEIXZ @ 67 NONAME ; unsigned int CBaseMrRecurrenceRule::RecurrentCount(void) const + ?TranslateEmailFwDayOfWeek@CBasePlugin@@IAEXW4TMRRecurrentDay@MRRecurrenceRule@@AAK@Z @ 68 NONAME ; void CBasePlugin::TranslateEmailFwDayOfWeek(enum MRRecurrenceRule::TMRRecurrentDay, unsigned long &) + ?CopyMessagePartFileL@CBasePlugin@@UAEXABVTFSMailMsgId@@000ABVTDesC16@@@Z @ 69 NONAME ; void CBasePlugin::CopyMessagePartFileL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &) + ?MRResponse@CBaseMrInfoObject@@UBE?AW4TResponse@MMRInfoObject@@XZ @ 70 NONAME ; enum MMRInfoObject::TResponse CBaseMrInfoObject::MRResponse(void) const + ?GetCachedMsgL@CBasePlugin@@IAEPAVCMsgStoreMessage@@II@Z @ 71 NONAME ; class CMsgStoreMessage * CBasePlugin::GetCachedMsgL(unsigned int, unsigned int) + ?SetMethod@CBaseMrInfoObject@@QAEXW4TMRMethod@MMRInfoObject@@@Z @ 72 NONAME ; void CBaseMrInfoObject::SetMethod(enum MMRInfoObject::TMRMethod) + ??1CBasePlugin@@UAE@XZ @ 73 NONAME ; CBasePlugin::~CBasePlugin(void) + ?SetSubjectL@CBaseMrInfoObject@@UAEXABVTDesC16@@@Z @ 74 NONAME ; void CBaseMrInfoObject::SetSubjectL(class TDesC16 const &) + ?StoreMessagesL@CBasePlugin@@UAEXABVTFSMailMsgId@@AAV?$RPointerArray@VCFSMailMessage@@@@AAVMFSMailRequestObserver@@H@Z @ 75 NONAME ; void CBasePlugin::StoreMessagesL(class TFSMailMsgId const &, class RPointerArray &, class MFSMailRequestObserver &, int) + ?StartOp@CDelayedOp@@QAEXXZ @ 76 NONAME ; void CDelayedOp::StartOp(void) + ?MailboxHasCapabilityL@CBasePlugin@@UAEHW4TFSMailBoxCapabilities@@VTFSMailMsgId@@@Z @ 77 NONAME ; int CBasePlugin::MailboxHasCapabilityL(enum TFSMailBoxCapabilities, class TFSMailMsgId) + ?StoreMessagePartsL@CBasePlugin@@UAEXAAV?$RPointerArray@VCFSMailMessagePart@@@@AAVMFSMailRequestObserver@@H@Z @ 78 NONAME ; void CBasePlugin::StoreMessagePartsL(class RPointerArray &, class MFSMailRequestObserver &, int) + ?AccountEventNotifyL@CBasePlugin@@IAEXW4TMsgStoreAccountEvent@@JABVTDesC16@@1I@Z @ 79 NONAME ; void CBasePlugin::AccountEventNotifyL(enum TMsgStoreAccountEvent, long, class TDesC16 const &, class TDesC16 const &, unsigned int) + ?SupportedFields@CBaseMrInfoObject@@UBEHAAV?$RArray@W4TESMRInfoField@MMRInfoObject@@@@@Z @ 80 NONAME ; int CBaseMrInfoObject::SupportedFields(class RArray &) const + ?StatusL@CBasePlugin@@UAE?AVTFSProgress@@H@Z @ 81 NONAME ; class TFSProgress CBasePlugin::StatusL(int) + ?SetRecurrentMonthsL@CBaseMrRecurrenceRule@@UAEXAAV?$RArray@W4TMRRecurrenceMonth@MRRecurrenceRule@@@@@Z @ 82 NONAME ; void CBaseMrRecurrenceRule::SetRecurrentMonthsL(class RArray &) + ?SetContentL@CBasePlugin@@UAEXABVTDesC16@@ABVTFSMailMsgId@@111@Z @ 83 NONAME ; void CBasePlugin::SetContentL(class TDesC16 const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &) + ?GetMailBoxAddressL@CBasePlugin@@MAEPAVHBufC16@@VTFSMailMsgId@@@Z @ 84 NONAME ; class HBufC16 * CBasePlugin::GetMailBoxAddressL(class TFSMailMsgId) + ?TranslateEmailFwAttendeeL@CBasePlugin@@IAEXAAVMMROrganizer@@AAVRMsgStoreAddress@@@Z @ 85 NONAME ; void CBasePlugin::TranslateEmailFwAttendeeL(class MMROrganizer &, class RMsgStoreAddress &) + ?GetMailBoxStatus@CBasePlugin@@UAE?AW4TFSMailBoxStatus@@ABVTFSMailMsgId@@@Z @ 86 NONAME ; enum TFSMailBoxStatus CBasePlugin::GetMailBoxStatus(class TFSMailMsgId const &) + ??1CBaseMrAttendee@@UAE@XZ @ 87 NONAME ; CBaseMrAttendee::~CBaseMrAttendee(void) + ?NewChildPartFromFileL@CBasePlugin@@UAEXABVTFSMailMsgId@@000ABVTDesC16@@1AAVMFSMailRequestObserver@@H@Z @ 88 NONAME ; void CBasePlugin::NewChildPartFromFileL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &, class TDesC16 const &, class MFSMailRequestObserver &, int) + ?BlockCopyMoveFromFoldersL@CBasePlugin@@MAEXVTFSMailMsgId@@W4TFSFolderType@@AAVCFSMailFolder@@@Z @ 89 NONAME ; void CBasePlugin::BlockCopyMoveFromFoldersL(class TFSMailMsgId, enum TFSFolderType, class CFSMailFolder &) + ?RecurrentMonthDays@CBaseMrRecurrenceRule@@UBEABV?$RArray@H@@XZ @ 90 NONAME ; class RArray const & CBaseMrRecurrenceRule::RecurrentMonthDays(void) const + ??1CBaseMrInfoProcessor@@UAE@XZ @ 91 NONAME ; CBaseMrInfoProcessor::~CBaseMrInfoProcessor(void) + ?NewL@CBaseMrRecurrenceRule@@SAPAV1@ABVMRRecurrenceRule@@@Z @ 92 NONAME ; class CBaseMrRecurrenceRule * CBaseMrRecurrenceRule::NewL(class MRRecurrenceRule const &) + ?ChildPartsL@CBasePlugin@@UAEXABVTFSMailMsgId@@000AAV?$RPointerArray@VCFSMailMessagePart@@@@@Z @ 93 NONAME ; void CBasePlugin::ChildPartsL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class RPointerArray &) + ?SetPartContentFromFileL@CBasePlugin@@UAEXABVTFSMailMsgId@@000ABVTDesC16@@@Z @ 94 NONAME ; void CBasePlugin::SetPartContentFromFileL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &) + ?ResetBodyCache@CBasePlugin@@IAEXXZ @ 95 NONAME ; void CBasePlugin::ResetBodyCache(void) + ?Type@CBaseMrRecurrenceRule@@UBE?AW4TMRRecurrenceType@MRRecurrenceRule@@XZ @ 96 NONAME ; enum MRRecurrenceRule::TMRRecurrenceType CBaseMrRecurrenceRule::Type(void) const + ?ListFoldersL@CBasePlugin@@UAEXABVTFSMailMsgId@@0AAV?$RPointerArray@VCFSMailFolder@@@@@Z @ 97 NONAME ; void CBasePlugin::ListFoldersL(class TFSMailMsgId const &, class TFSMailMsgId const &, class RPointerArray &) + ?SetContext@CDelayedOp@@QAEXAAVCBasePlugin@@AAVMDelayedOpsManager@@@Z @ 98 NONAME ; void CDelayedOp::SetContext(class CBasePlugin &, class MDelayedOpsManager &) + ??_ECBasePlugin@@UAE@I@Z @ 99 NONAME ; CBasePlugin::~CBasePlugin(unsigned int) + ?ReplyToMeetingRequestL@CBaseMrInfoProcessor@@UAEXABVTFSMailMsgId@@0AAVMMRInfoObject@@AAW4TMRInfoResponseMode@MMRInfoProcessor@@ABVTDesC16@@@Z @ 100 NONAME ; void CBaseMrInfoProcessor::ReplyToMeetingRequestL(class TFSMailMsgId const &, class TFSMailMsgId const &, class MMRInfoObject &, enum MMRInfoProcessor::TMRInfoResponseMode &, class TDesC16 const &) + ?GetFolderByUidL@CBasePlugin@@UAEPAVCFSMailFolder@@ABVTFSMailMsgId@@0@Z @ 101 NONAME ; class CFSMailFolder * CBasePlugin::GetFolderByUidL(class TFSMailMsgId const &, class TFSMailMsgId const &) + ?RecurrenceRuleL@CBaseMrInfoObject@@UBEABVMRRecurrenceRule@@XZ @ 102 NONAME ; class MRRecurrenceRule const & CBaseMrInfoObject::RecurrenceRuleL(void) const + ?AuthenticateL@CBasePlugin@@UAEXAAVMFSMailRequestObserver@@H@Z @ 103 NONAME ; void CBasePlugin::AuthenticateL(class MFSMailRequestObserver &, int) + ?DeleteMessagesByUidL@CBasePlugin@@UAEXABVTFSMailMsgId@@0ABV?$RArray@VTFSMailMsgId@@@@@Z @ 104 NONAME ; void CBasePlugin::DeleteMessagesByUidL(class TFSMailMsgId const &, class TFSMailMsgId const &, class RArray const &) + ?UnsubscribeMailboxEvents@CBasePlugin@@UAEXABVTFSMailMsgId@@AAVMFSMailEventObserver@@@Z @ 105 NONAME ; void CBasePlugin::UnsubscribeMailboxEvents(class TFSMailMsgId const &, class MFSMailEventObserver &) + ?SetEndTimeInUtcL@CBaseMrInfoObject@@UAEXVTTime@@@Z @ 106 NONAME ; void CBaseMrInfoObject::SetEndTimeInUtcL(class TTime) + ?SetRecurrenceTypeL@CBaseMrRecurrenceRule@@UAEXW4TMRRecurrenceType@MRRecurrenceRule@@@Z @ 107 NONAME ; void CBaseMrRecurrenceRule::SetRecurrenceTypeL(enum MRRecurrenceRule::TMRRecurrenceType) + ?TranslateEmailFwMessageL@CBasePlugin@@MAEXAAVCFSMailMessagePart@@AAVCMsgStoreMessagePart@@H@Z @ 108 NONAME ; void CBasePlugin::TranslateEmailFwMessageL(class CFSMailMessagePart &, class CMsgStoreMessagePart &, int) + ?GetPluginId@CBasePlugin@@MAEIXZ @ 109 NONAME ; unsigned int CBasePlugin::GetPluginId(void) + ?CreateForwardReplyMessageL@CBasePlugin@@IAEPAVCFSMailMessage@@ABVTFSMailMsgId@@0HABVTDesC16@@HH@Z @ 110 NONAME ; class CFSMailMessage * CBasePlugin::CreateForwardReplyMessageL(class TFSMailMsgId const &, class TFSMailMsgId const &, int, class TDesC16 const &, int, int) + ?SetCommonNameL@CBaseMrAttendee@@UAEXABVTDesC16@@@Z @ 111 NONAME ; void CBaseMrAttendee::SetCommonNameL(class TDesC16 const &) + ?CreateMessageToSendL@CBasePlugin@@UAEPAVCFSMailMessage@@ABVTFSMailMsgId@@@Z @ 112 NONAME ; class CFSMailMessage * CBasePlugin::CreateMessageToSendL(class TFSMailMsgId const &) + ?MessagePartL@CBasePlugin@@UAEPAVCFSMailMessagePart@@ABVTFSMailMsgId@@000@Z @ 113 NONAME ; class CFSMailMessagePart * CBasePlugin::MessagePartL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &) + ?Load2LC@CResourceLoader@@QAEPAVHBufC16@@HABVTDesC16@@@Z @ 114 NONAME ; class HBufC16 * CResourceLoader::Load2LC(int, class TDesC16 const &) + ?RefreshNowL@CBasePlugin@@UAEXABVTFSMailMsgId@@AAVMFSMailRequestObserver@@HH@Z @ 115 NONAME ; void CBasePlugin::RefreshNowL(class TFSMailMsgId const &, class MFSMailRequestObserver &, int, int) + ?ResetCache@CBasePlugin@@IAEXXZ @ 116 NONAME ; void CBasePlugin::ResetCache(void) + ?MRMethodL@CBaseMrInfoObject@@UBE?AW4TMRMethod@MMRInfoObject@@XZ @ 117 NONAME ; enum MMRInfoObject::TMRMethod CBaseMrInfoObject::MRMethodL(void) const + ?RunL@CDelayedOp@@EAEXXZ @ 118 NONAME ; void CDelayedOp::RunL(void) + ?RemoveChildPartL@CBasePlugin@@UAEXABVTFSMailMsgId@@0000@Z @ 119 NONAME ; void CBasePlugin::RemoveChildPartL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &) + ?RecurrenceExceptionsL@CBaseMrInfoObject@@UBEABV?$RPointerArray@VMMRInfoObject@@@@XZ @ 120 NONAME ; class RPointerArray const & CBaseMrInfoObject::RecurrenceExceptionsL(void) const + ?SetRecurrentMonthDaysL@CBaseMrRecurrenceRule@@UAEXAAV?$RArray@H@@@Z @ 121 NONAME ; void CBaseMrRecurrenceRule::SetRecurrentMonthDaysL(class RArray &) + ?SetPriorityL@CBaseMrInfoObject@@UAEXI@Z @ 122 NONAME ; void CBaseMrInfoObject::SetPriorityL(unsigned int) + ?AttendeesL@CBaseMrInfoObject@@UAEAAV?$RPointerArray@VMMRAttendee@@@@XZ @ 123 NONAME ; class RPointerArray & CBaseMrInfoObject::AttendeesL(void) + ?Load2L@CResourceLoader@@QAEPAVHBufC16@@HH@Z @ 124 NONAME ; class HBufC16 * CResourceLoader::Load2L(int, int) + ?NewL@CBasePlugin@@SAPAV1@XZ @ 125 NONAME ; class CBasePlugin * CBasePlugin::NewL(void) + ?FetchEmailAddressL@CBasePlugin@@IAEPAVCFSMailAddress@@AAVCMsgStorePropertyContainer@@I@Z @ 126 NONAME ; class CFSMailAddress * CBasePlugin::FetchEmailAddressL(class CMsgStorePropertyContainer &, unsigned int) + ?NewL@CBaseMrInfoProcessor@@SAPAV1@AAVCBasePlugin@@@Z @ 127 NONAME ; class CBaseMrInfoProcessor * CBaseMrInfoProcessor::NewL(class CBasePlugin &) + ?CopyMessageAsChildPartL@CBasePlugin@@UAEPAVCFSMailMessagePart@@ABVTFSMailMsgId@@0000ABVCFSMailMessage@@@Z @ 128 NONAME ; class CFSMailMessagePart * CBasePlugin::CopyMessageAsChildPartL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class CFSMailMessage const &) + ?NotifyGlobalEventL@CBasePlugin@@IAEXW4TFSMailEvent@@VTFSMailMsgId@@PAX22@Z @ 129 NONAME ; void CBasePlugin::NotifyGlobalEventL(enum TFSMailEvent, class TFSMailMsgId, void *, void *, void *) + ?GetCachedBodyChildrenL@CBasePlugin@@IAEAAV?$RPointerArray@VCMsgStoreMessagePart@@@@XZ @ 130 NONAME ; class RPointerArray & CBasePlugin::GetCachedBodyChildrenL(void) + ?StartTimeInUtcL@CBaseMrInfoObject@@UBE?AVTTime@@XZ @ 131 NONAME ; class TTime CBaseMrInfoObject::StartTimeInUtcL(void) const + ?ListMailBoxesL@CBasePlugin@@UAEXAAV?$RArray@VTFSMailMsgId@@@@@Z @ 132 NONAME ; void CBasePlugin::ListMailBoxesL(class RArray &) + ?SetRecurrenceUntilL@CBaseMrRecurrenceRule@@UAEXVTTime@@@Z @ 133 NONAME ; void CBaseMrRecurrenceRule::SetRecurrenceUntilL(class TTime) + ?GetBrandingIdL@CBasePlugin@@UAEAAVTDesC16@@ABVTFSMailMsgId@@@Z @ 134 NONAME ; class TDesC16 & CBasePlugin::GetBrandingIdL(class TFSMailMsgId const &) + ?FetchMessagesL@CBasePlugin@@UAEXABVTFSMailMsgId@@0ABV?$RArray@VTFSMailMsgId@@@@W4TFSMailDetails@@AAVMFSMailRequestObserver@@H@Z @ 135 NONAME ; void CBasePlugin::FetchMessagesL(class TFSMailMsgId const &, class TFSMailMsgId const &, class RArray const &, enum TFSMailDetails, class MFSMailRequestObserver &, int) + ?RemovePartContentL@CBasePlugin@@UAEXABVTFSMailMsgId@@00ABV?$RArray@VTFSMailMsgId@@@@@Z @ 136 NONAME ; void CBasePlugin::RemovePartContentL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class RArray const &) + ?ClearSearchResultCache@CBasePlugin@@UAEXABVTFSMailMsgId@@@Z @ 137 NONAME ; void CBasePlugin::ClearSearchResultCache(class TFSMailMsgId const &) + ?Address@CBaseMrAttendee@@UBEABVTDesC16@@XZ @ 138 NONAME ; class TDesC16 const & CBaseMrAttendee::Address(void) const + ?NotifyEventL@CBasePlugin@@IAEXIIIW4TFSMailEvent@@I@Z @ 139 NONAME ; void CBasePlugin::NotifyEventL(unsigned int, unsigned int, unsigned int, enum TFSMailEvent, unsigned int) + ?GetMailBoxByUidL@CBasePlugin@@UAEPAVCFSMailBox@@ABVTFSMailMsgId@@@Z @ 140 NONAME ; class CFSMailBox * CBasePlugin::GetMailBoxByUidL(class TFSMailMsgId const &) + ?SetDescriptionL@CBaseMrInfoObject@@UAEXABVTDesC16@@@Z @ 141 NONAME ; void CBaseMrInfoObject::SetDescriptionL(class TDesC16 const &) + ?AccountEventNotify@CBasePlugin@@UAEXW4TMsgStoreAccountEvent@@JABVTDesC16@@1I@Z @ 142 NONAME ; void CBasePlugin::AccountEventNotify(enum TMsgStoreAccountEvent, long, class TDesC16 const &, class TDesC16 const &, unsigned int) + ?SetUidL@CBaseMrInfoObject@@QAEXPAVHBufC16@@@Z @ 143 NONAME ; void CBaseMrInfoObject::SetUidL(class HBufC16 *) + ?RemoveObserver@CBasePlugin@@UAEXAAVMFSMailEventObserver@@@Z @ 144 NONAME ; void CBasePlugin::RemoveObserver(class MFSMailEventObserver &) + ?SetRecurrentCountL@CBaseMrRecurrenceRule@@UAEXH@Z @ 145 NONAME ; void CBaseMrRecurrenceRule::SetRecurrentCountL(int) + ?HandleMailboxDeleteL@CBasePlugin@@MAEXABVTFSMailMsgId@@@Z @ 146 NONAME ; void CBasePlugin::HandleMailboxDeleteL(class TFSMailMsgId const &) + ?RecurrentMonths@CBaseMrRecurrenceRule@@UBEABV?$RArray@W4TMRRecurrenceMonth@MRRecurrenceRule@@@@XZ @ 147 NONAME ; class RArray const & CBaseMrRecurrenceRule::RecurrentMonths(void) const + ?AttendeeStatus@CBaseMrAttendee@@UBE?AW4TAttendeeStatus@MMRAttendee@@XZ @ 148 NONAME ; enum MMRAttendee::TAttendeeStatus CBaseMrAttendee::AttendeeStatus(void) const + ?NewL@CResourceLoader@@SAPAV1@ABVTDesC16@@@Z @ 149 NONAME ; class CResourceLoader * CResourceLoader::NewL(class TDesC16 const &) + ?SetRecurrentInterval@CBaseMrRecurrenceRule@@UAEXH@Z @ 150 NONAME ; void CBaseMrRecurrenceRule::SetRecurrentInterval(int) + ?GetDelayedOpsManager@CBasePlugin@@QAEAAVMDelayedOpsManager@@XZ @ 151 NONAME ; class MDelayedOpsManager & CBasePlugin::GetDelayedOpsManager(void) + ?GetContentToBufferL@CBasePlugin@@UAEXABVTFSMailMsgId@@000AAVTDes16@@I@Z @ 152 NONAME ; void CBasePlugin::GetContentToBufferL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TDes16 &, unsigned int) + ?SetUidL@CBaseMrInfoObject@@QAEXABVTDesC16@@@Z @ 153 NONAME ; void CBaseMrInfoObject::SetUidL(class TDesC16 const &) + ??1CResourceLoader@@UAE@XZ @ 154 NONAME ; CResourceLoader::~CResourceLoader(void) + ?CreateFolderL@CBasePlugin@@UAEPAVCFSMailFolder@@ABVTFSMailMsgId@@0ABVTDesC16@@H@Z @ 155 NONAME ; class CFSMailFolder * CBasePlugin::CreateFolderL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &, int) + ?UidL@CBaseMrInfoObject@@UBEABVTDesC16@@XZ @ 156 NONAME ; class TDesC16 const & CBaseMrInfoObject::UidL(void) const + ?DoClearSearchResultCacheL@CBasePlugin@@IAEXABVTFSMailMsgId@@@Z @ 157 NONAME ; void CBasePlugin::DoClearSearchResultCacheL(class TFSMailMsgId const &) + ?AddAttachmentsL@CBaseMrInfoObject@@UAEXPAVMMRAttachment@@@Z @ 158 NONAME ; void CBaseMrInfoObject::AddAttachmentsL(class MMRAttachment *) + ?MoveMessagesL@CBasePlugin@@UAEXABVTFSMailMsgId@@ABV?$RArray@VTFSMailMsgId@@@@00@Z @ 159 NONAME ; void CBasePlugin::MoveMessagesL(class TFSMailMsgId const &, class RArray const &, class TFSMailMsgId const &, class TFSMailMsgId const &) + ?SubscribeMailboxEventsL@CBasePlugin@@UAEXABVTFSMailMsgId@@AAVMFSMailEventObserver@@@Z @ 160 NONAME ; void CBasePlugin::SubscribeMailboxEventsL(class TFSMailMsgId const &, class MFSMailEventObserver &) + ?SetMRSequenceNumber@CBaseMrInfoObject@@QAEXH@Z @ 161 NONAME ; void CBaseMrInfoObject::SetMRSequenceNumber(int) + ?DescriptionL@CBaseMrInfoObject@@UBEABVTDesC16@@XZ @ 162 NONAME ; class TDesC16 const & CBaseMrInfoObject::DescriptionL(void) const + ?ListFoldersL@CBasePlugin@@UAEXABVTFSMailMsgId@@AAV?$RPointerArray@VCFSMailFolder@@@@@Z @ 163 NONAME ; void CBasePlugin::ListFoldersL(class TFSMailMsgId const &, class RPointerArray &) + ?SetRecurrentWeekDaysL@CBaseMrRecurrenceRule@@UAEXAAV?$RArray@W4TMRRecurrentDay@MRRecurrenceRule@@@@@Z @ 164 NONAME ; void CBaseMrRecurrenceRule::SetRecurrentWeekDaysL(class RArray &) + ?RemoveChildPartL@CBasePlugin@@UAEXABVTFSMailMsgId@@0000AAVMFSMailRequestObserver@@H@Z @ 165 NONAME ; void CBasePlugin::RemoveChildPartL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class MFSMailRequestObserver &, int) + ?CopyMessagesL@CBasePlugin@@UAEXABVTFSMailMsgId@@ABV?$RArray@VTFSMailMsgId@@@@AAV3@00@Z @ 166 NONAME ; void CBasePlugin::CopyMessagesL(class TFSMailMsgId const &, class RArray const &, class RArray &, class TFSMailMsgId const &, class TFSMailMsgId const &) + ?AlarmInUtcL@CBaseMrInfoObject@@UBE?AVTTime@@XZ @ 167 NONAME ; class TTime CBaseMrInfoObject::AlarmInUtcL(void) const + ?SendMessageL@CBasePlugin@@UAEXAAVCFSMailMessage@@@Z @ 168 NONAME ; void CBasePlugin::SendMessageL(class CFSMailMessage &) + ??0CBasePlugin@@IAE@XZ @ 169 NONAME ; CBasePlugin::CBasePlugin(void) + ?SetAddressL@CBaseMrAttendee@@UAEXABVTDesC16@@@Z @ 170 NONAME ; void CBaseMrAttendee::SetAddressL(class TDesC16 const &) + ?RecurrentUntil@CBaseMrRecurrenceRule@@UBE?AVTTime@@XZ @ 171 NONAME ; class TTime CBaseMrRecurrenceRule::RecurrentUntil(void) const + ?SetMRResponseL@CBaseMrInfoObject@@UAEXW4TResponse@MMRInfoObject@@@Z @ 172 NONAME ; void CBaseMrInfoObject::SetMRResponseL(enum MMRInfoObject::TResponse) + ?NewL@CBaseMrInfoObject@@SAPAV1@XZ @ 173 NONAME ; class CBaseMrInfoObject * CBaseMrInfoObject::NewL(void) + ?DoListFoldersL@CBasePlugin@@IAEXVTFSMailMsgId@@IHAAV?$RPointerArray@VCFSMailFolder@@@@@Z @ 174 NONAME ; void CBasePlugin::DoListFoldersL(class TFSMailMsgId, unsigned int, int, class RPointerArray &) + ?MROrganizerL@CBaseMrInfoObject@@UAEAAVMMROrganizer@@XZ @ 175 NONAME ; class MMROrganizer & CBaseMrInfoObject::MROrganizerL(void) + ?NotifyMailboxEventL@CBasePlugin@@MAEXW4TFSMailEvent@@VTFSMailMsgId@@PAX22@Z @ 176 NONAME ; void CBasePlugin::NotifyMailboxEventL(enum TFSMailEvent, class TFSMailMsgId, void *, void *, void *) + ??0CDelayedOp@@IAE@XZ @ 177 NONAME ; CDelayedOp::CDelayedOp(void) + ?GetReplyToAddressL@CBasePlugin@@MAEPAVHBufC16@@VTFSMailMsgId@@@Z @ 178 NONAME ; class HBufC16 * CBasePlugin::GetReplyToAddressL(class TFSMailMsgId) + ?LocationL@CBaseMrInfoObject@@UBEABVTDesC16@@XZ @ 179 NONAME ; class TDesC16 const & CBaseMrInfoObject::LocationL(void) const + ?DeleteFetchRequestForPart@CBasePlugin@@IAEHAAUTOngoingFetchInfo@1@@Z @ 180 NONAME ; int CBasePlugin::DeleteFetchRequestForPart(struct CBasePlugin::TOngoingFetchInfo &) + ?Load2LC@CResourceLoader@@QAEPAVHBufC16@@H@Z @ 181 NONAME ; class HBufC16 * CResourceLoader::Load2LC(int) + ?NewChildPartL@CBasePlugin@@UAEPAVCFSMailMessagePart@@ABVTFSMailMsgId@@0000ABVTDesC16@@@Z @ 182 NONAME ; class CFSMailMessagePart * CBasePlugin::NewChildPartL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &) + ?NewL@CBaseMrRecurrenceRule@@SAPAV1@XZ @ 183 NONAME ; class CBaseMrRecurrenceRule * CBaseMrRecurrenceRule::NewL(void) + ?SetAttendeeStatusL@CBaseMrAttendee@@UAEXAAW4TAttendeeStatus@MMRAttendee@@@Z @ 184 NONAME ; void CBaseMrAttendee::SetAttendeeStatusL(enum MMRAttendee::TAttendeeStatus &) + ?DeleteMailBoxByUidL@CBasePlugin@@UAEXABVTFSMailMsgId@@AAVMFSMailRequestObserver@@H@Z @ 185 NONAME ; void CBasePlugin::DeleteMailBoxByUidL(class TFSMailMsgId const &, class MFSMailRequestObserver &, int) + ?TranslateMsgStoreMrL@CBasePlugin@@MAEXABVTFSMailMsgId@@AAVCMsgStorePropertyContainer@@1AAVCFSMailMessagePart@@@Z @ 186 NONAME ; void CBasePlugin::TranslateMsgStoreMrL(class TFSMailMsgId const &, class CMsgStorePropertyContainer &, class CMsgStorePropertyContainer &, class CFSMailMessagePart &) + ?SystemEventNotifyL@CBasePlugin@@IAEXW4TMsgStoreSystemEvent@@@Z @ 187 NONAME ; void CBasePlugin::SystemEventNotifyL(enum TMsgStoreSystemEvent) + ??1CBaseMrInfoObject@@UAE@XZ @ 188 NONAME ; CBaseMrInfoObject::~CBaseMrInfoObject(void) + ?StoreMessagePartL@CBasePlugin@@UAEXABVTFSMailMsgId@@00AAVCFSMailMessagePart@@@Z @ 189 NONAME ; void CBasePlugin::StoreMessagePartL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class CFSMailMessagePart &) + ?CreateMessageToSendL@CBasePlugin@@UAEXABVTFSMailMsgId@@AAVMFSMailRequestObserver@@H@Z @ 190 NONAME ; void CBasePlugin::CreateMessageToSendL(class TFSMailMsgId const &, class MFSMailRequestObserver &, int) + ?AttachmentsL@CBaseMrInfoObject@@UBEABV?$RPointerArray@VMMRAttachment@@@@XZ @ 191 NONAME ; class RPointerArray const & CBaseMrInfoObject::AttachmentsL(void) const + ?RecurrenceStartTime@CBaseMrRecurrenceRule@@UBE?AVTTime@@XZ @ 192 NONAME ; class TTime CBaseMrRecurrenceRule::RecurrenceStartTime(void) const + ?GetMessagePartFileL@CBasePlugin@@UAEHABVTFSMailMsgId@@000AAVRFile@@H@Z @ 193 NONAME ; int CBasePlugin::GetMessagePartFileL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class RFile &, int) + ?CreationTimeInUtcL@CBaseMrInfoObject@@UBE?AVTTime@@XZ @ 194 NONAME ; class TTime CBaseMrInfoObject::CreationTimeInUtcL(void) const + ?GetLastSyncStatusL@CBasePlugin@@QAE?BVTFSProgress@@ABVTFSMailMsgId@@@Z @ 195 NONAME ; class TFSProgress const CBasePlugin::GetLastSyncStatusL(class TFSMailMsgId const &) + ?GetSignatureL@CBasePlugin@@MAEPAVHBufC16@@ABVTFSMailMsgId@@@Z @ 196 NONAME ; class HBufC16 * CBasePlugin::GetSignatureL(class TFSMailMsgId const &) + ?SetReplyOrForwardToFieldL@CBasePlugin@@IAEXAAVCMsgStoreMessage@@@Z @ 197 NONAME ; void CBasePlugin::SetReplyOrForwardToFieldL(class CMsgStoreMessage &) + ?CreateResourceReaderLC@CResourceLoader@@QBEPAVHBufC8@@AAVTResourceReader@@H@Z @ 198 NONAME ; class HBufC8 * CResourceLoader::CreateResourceReaderLC(class TResourceReader &, int) const + ?ModificationNotify@CBasePlugin@@UAEXIW4TMsgStoreOperation@@W4TMsgStoreContainerType@@KIII@Z @ 199 NONAME ; void CBasePlugin::ModificationNotify(unsigned int, enum TMsgStoreOperation, enum TMsgStoreContainerType, unsigned long, unsigned int, unsigned int, unsigned int) + ?SystemEventNotify@CBasePlugin@@UAEXW4TMsgStoreSystemEvent@@@Z @ 200 NONAME ; void CBasePlugin::SystemEventNotify(enum TMsgStoreSystemEvent) + ?GetCachedMsgChildrenL@CBasePlugin@@IAEAAV?$RPointerArray@VCMsgStoreMessagePart@@@@XZ @ 201 NONAME ; class RPointerArray & CBasePlugin::GetCachedMsgChildrenL(void) + ?CreateMrReplyMessageL@CBasePlugin@@MAEPAVCFSMailMessage@@ABVTFSMailMsgId@@AAVMMRInfoObject@@0@Z @ 202 NONAME ; class CFSMailMessage * CBasePlugin::CreateMrReplyMessageL(class TFSMailMsgId const &, class MMRInfoObject &, class TFSMailMsgId const &) + ?SetLocationL@CBaseMrInfoObject@@UAEXABVTDesC16@@@Z @ 203 NONAME ; void CBaseMrInfoObject::SetLocationL(class TDesC16 const &) + ?NewChildPartFromFilePathOrHandleL@CBasePlugin@@IAEPAVCFSMailMessagePart@@ABVTFSMailMsgId@@000ABVTDesC16@@1HAAVRFile@@@Z @ 204 NONAME ; class CFSMailMessagePart * CBasePlugin::NewChildPartFromFilePathOrHandleL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &, class TDesC16 const &, int, class RFile &) + ?TranslateEmailFwMrL@CBasePlugin@@MAEXAAVMMRInfoObject@@AAVCMsgStorePropertyContainer@@@Z @ 205 NONAME ; void CBasePlugin::TranslateEmailFwMrL(class MMRInfoObject &, class CMsgStorePropertyContainer &) + ?ConstructL@CBasePlugin@@IAEXXZ @ 206 NONAME ; void CBasePlugin::ConstructL(void) + ?NewChildPartFromFileL@CBasePlugin@@UAEPAVCFSMailMessagePart@@ABVTFSMailMsgId@@000ABVTDesC16@@1@Z @ 207 NONAME ; class CFSMailMessagePart * CBasePlugin::NewChildPartFromFileL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &, class TDesC16 const &) + ?CancelSyncL@CBasePlugin@@UAEHABVTFSMailMsgId@@@Z @ 208 NONAME ; int CBasePlugin::CancelSyncL(class TFSMailMsgId const &) + ?RefreshCachedMailBoxDisplayNameL@CBasePlugin@@IAEXAAHABI@Z @ 209 NONAME ; void CBasePlugin::RefreshCachedMailBoxDisplayNameL(int &, unsigned int const &) + ?CurrentSyncState@CBasePlugin@@UAE?AW4TSSMailSyncState@@ABVTFSMailMsgId@@@Z @ 210 NONAME ; enum TSSMailSyncState CBasePlugin::CurrentSyncState(class TFSMailMsgId const &) + ?AddObserverL@CBasePlugin@@UAEXAAVMFSMailEventObserver@@@Z @ 211 NONAME ; void CBasePlugin::AddObserverL(class MFSMailEventObserver &) + ?AttendeeRole@CBaseMrAttendee@@UBE?AW4TAttendeeRole@MMRAttendee@@XZ @ 212 NONAME ; enum MMRAttendee::TAttendeeRole CBaseMrAttendee::AttendeeRole(void) const + ?GetCachedBodyL@CBasePlugin@@IAEPAVCMsgStoreMessagePart@@I@Z @ 213 NONAME ; class CMsgStoreMessagePart * CBasePlugin::GetCachedBodyL(unsigned int) + ?PriorityL@CBaseMrInfoObject@@UBEIXZ @ 214 NONAME ; unsigned int CBaseMrInfoObject::PriorityL(void) const + ?RecurrentWeekDays@CBaseMrRecurrenceRule@@UBEABV?$RArray@W4TMRRecurrentDay@MRRecurrenceRule@@@@XZ @ 215 NONAME ; class RArray const & CBaseMrRecurrenceRule::RecurrentWeekDays(void) const + ?ListMessagesL@CBasePlugin@@UAEPAVMFSMailIterator@@ABVTFSMailMsgId@@0W4TFSMailDetails@@ABV?$RArray@VTFSMailSortCriteria@@@@@Z @ 216 NONAME ; class MFSMailIterator * CBasePlugin::ListMessagesL(class TFSMailMsgId const &, class TFSMailMsgId const &, enum TFSMailDetails, class RArray const &) + ?Load2L@CResourceLoader@@QAEPAVHBufC16@@HABVTDesC16@@@Z @ 217 NONAME ; class HBufC16 * CResourceLoader::Load2L(int, class TDesC16 const &) + ?NewChildPartFromFileL@CBasePlugin@@UAEPAVCFSMailMessagePart@@ABVTFSMailMsgId@@000ABVTDesC16@@AAVRFile@@@Z @ 218 NONAME ; class CFSMailMessagePart * CBasePlugin::NewChildPartFromFileL(class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TFSMailMsgId const &, class TDesC16 const &, class RFile &) + ?SetMailboxName@CBasePlugin@@UAEXABVTFSMailMsgId@@ABVTDesC16@@@Z @ 219 NONAME ; void CBasePlugin::SetMailboxName(class TFSMailMsgId const &, class TDesC16 const &) + ?NewLC@CBasePlugin@@SAPAV1@XZ @ 220 NONAME ; class CBasePlugin * CBasePlugin::NewLC(void) + ?ExtensionL@CBaseMrInfoObject@@UAEPAXVTUid@@@Z @ 221 NONAME ; void * CBaseMrInfoObject::ExtensionL(class TUid) + ?TranslateMsgStorePropsL@CBasePlugin@@MAEXABVTFSMailMsgId@@AAVCMsgStorePropertyContainer@@AAVCFSMailMessagePart@@W4TFSMailDetails@@@Z @ 222 NONAME ; void CBasePlugin::TranslateMsgStorePropsL(class TFSMailMsgId const &, class CMsgStorePropertyContainer &, class CFSMailMessagePart &, enum TFSMailDetails) + ?GetMailboxDisplayNameL@CBasePlugin@@IAEXIAAVRBuf16@@@Z @ 223 NONAME ; void CBasePlugin::GetMailboxDisplayNameL(unsigned int, class RBuf16 &) diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/base_plugin/EABI/basepluginU.DEF --- a/emailservices/emailstore/base_plugin/EABI/basepluginU.DEF Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/base_plugin/EABI/basepluginU.DEF Mon Oct 04 00:05:37 2010 +0300 @@ -71,7 +71,7 @@ _ZN11CBasePlugin19CreateReplyMessageLERK12TFSMailMsgIdS2_iRK7TDesC16 @ 70 NONAME _ZN11CBasePlugin19DeleteMailBoxByUidLERK12TFSMailMsgIdR22MFSMailRequestObserveri @ 71 NONAME _ZN11CBasePlugin19GetContentToBufferLERK12TFSMailMsgIdS2_S2_S2_R6TDes16j @ 72 NONAME - _ZN11CBasePlugin19GetMessagePartFileLERK12TFSMailMsgIdS2_S2_S2_R5RFile @ 73 NONAME + _ZN11CBasePlugin19GetMessagePartFileLERK12TFSMailMsgIdS2_S2_S2_R5RFilei @ 73 NONAME _ZN11CBasePlugin19ModificationNotifyLEj18TMsgStoreOperation22TMsgStoreContainerTypemjjj @ 74 NONAME _ZN11CBasePlugin19NotifyMailboxEventLE12TFSMailEvent12TFSMailMsgIdPvS2_S2_ @ 75 NONAME _ZN11CBasePlugin19TranslateEmailFwMrLER13MMRInfoObjectR26CMsgStorePropertyContainer @ 76 NONAME diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/base_plugin/base_plugin.pro --- a/emailservices/emailstore/base_plugin/base_plugin.pro Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/base_plugin/base_plugin.pro Mon Oct 04 00:05:37 2010 +0300 @@ -68,15 +68,17 @@ TARGET.UID2 = 0x1000008d TARGET.UID3 = 0x2001FDA9 - defBlock = \ - "$${LITERAL_HASH}if defined(MARM)" \ - "DEFFILE eabi/baseplugin.def" \ + defBlock = \ + "$${LITERAL_HASH}if defined(MARM)" \ + "DEFFILE eabi/baseplugin.def" \ "$${LITERAL_HASH}else" \ "DEFFILE bwins/baseplugin.def" \ "$${LITERAL_HASH}endif" - + MMP_RULES += "SYSTEMINCLUDE /epoc32/include/ecom" \ - defBlock + defBlock \ + SMPSAFE + MMP_RULES -= "OPTION_REPLACE ARMCC --export_all_vtbl -D__QT_NOEFFECTMACRO_DONOTUSE" } diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/base_plugin/group/BasePlugin.mmp --- a/emailservices/emailstore/base_plugin/group/BasePlugin.mmp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/base_plugin/group/BasePlugin.mmp Mon Oct 04 00:05:37 2010 +0300 @@ -92,3 +92,5 @@ #ifdef TRACE_INTO_FILE LIBRARY flogger.lib #endif // TRACE_INTO_FILE + +SMPSAFE diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/base_plugin/inc/BasePlugin.h --- a/emailservices/emailstore/base_plugin/inc/BasePlugin.h Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/base_plugin/inc/BasePlugin.h Mon Oct 04 00:05:37 2010 +0300 @@ -331,7 +331,8 @@ const TFSMailMsgId& aParentFolderId, const TFSMailMsgId& aMessageId, const TFSMailMsgId& aMessagePartId, - RFile& aFileHandle ); + RFile& aFileHandle, + TBool aForWriting = EFalse); virtual void CopyMessagePartFileL( const TFSMailMsgId& aMailBoxId, diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/base_plugin/src/BasePlugin.cpp --- a/emailservices/emailstore/base_plugin/src/BasePlugin.cpp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/base_plugin/src/BasePlugin.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* 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" @@ -1548,7 +1548,7 @@ //copy the body content from the original. TInt startOffset = 0; RBuf8 buf; - buf.Create( KQuotedReadBufferSize ); + buf.CreateL( KQuotedReadBufferSize ); CleanupClosePushL( buf ); do diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/base_plugin/src/basepluginparts.cpp --- a/emailservices/emailstore/base_plugin/src/basepluginparts.cpp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/base_plugin/src/basepluginparts.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -253,16 +253,21 @@ /** - * The method will leave with KErrNotSupported if the msgstore is encrypted. + * The method will leave with KErrNotSupported if the msgstore is encrypted or if trying to open the file for writing. */ EXPORT_C TInt CBasePlugin::GetMessagePartFileL( const TFSMailMsgId& aMailBoxId, const TFSMailMsgId& /*aParentFolderId*/, const TFSMailMsgId& aMessageId, const TFSMailMsgId& aMessagePartId, - RFile& aFileHandle ) + RFile& aFileHandle, + TBool aForWriting) { + if (aForWriting) + { + return KErrNotSupported; + } CMailboxInfo& mailBox = GetMailboxInfoL( aMailBoxId.Id() ); CMsgStoreMessage* msg = mailBox().FetchMessageL( aMessageId.Id(), KMsgStoreInvalidId ); diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/message_store/MsgStoreRfsPlugin/MsgStoreRfsPlugin.pro --- a/emailservices/emailstore/message_store/MsgStoreRfsPlugin/MsgStoreRfsPlugin.pro Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/message_store/MsgStoreRfsPlugin/MsgStoreRfsPlugin.pro Mon Oct 04 00:05:37 2010 +0300 @@ -51,8 +51,8 @@ "$${LITERAL_HASH}endif" MMP_RULES += defBlock - MMP_RULES += "SYSTEMINCLUDE /epoc32/include/ecom" + MMP_RULES += SMPSAFE } win32 { diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/message_store/MsgStoreRfsPlugin/group/RfsMsgStorePlugin.mmp --- a/emailservices/emailstore/message_store/MsgStoreRfsPlugin/group/RfsMsgStorePlugin.mmp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/message_store/MsgStoreRfsPlugin/group/RfsMsgStorePlugin.mmp Mon Oct 04 00:05:37 2010 +0300 @@ -58,5 +58,7 @@ LIBRARY bafl.lib LIBRARY estor.lib +SMPSAFE + // END FILE RfsMsgStorePlugin.mmp diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/message_store/PointSecMonitor/Group/ImsPointsecMonitor.mmp --- a/emailservices/emailstore/message_store/PointSecMonitor/Group/ImsPointsecMonitor.mmp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/message_store/PointSecMonitor/Group/ImsPointsecMonitor.mmp Mon Oct 04 00:05:37 2010 +0300 @@ -45,3 +45,5 @@ LIBRARY euser.lib LIBRARY DebugLog.lib + +SMPSAFE diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/message_store/PointSecMonitor/PointSecMonitor.pro --- a/emailservices/emailstore/message_store/PointSecMonitor/PointSecMonitor.pro Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/message_store/PointSecMonitor/PointSecMonitor.pro Mon Oct 04 00:05:37 2010 +0300 @@ -47,6 +47,7 @@ "$${LITERAL_HASH}endif" MMP_RULES += defBlock + MMP_RULES += SMPSAFE } win32 { diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/message_store/client/client.pro --- a/emailservices/emailstore/message_store/client/client.pro Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/message_store/client/client.pro Mon Oct 04 00:05:37 2010 +0300 @@ -88,14 +88,15 @@ TARGET.UID3 = 0x2001FDA2 defBlock = \ - "$${LITERAL_HASH}if defined(MARM)" \ - "DEFFILE eabi/messagestoreclient.def" \ + "$${LITERAL_HASH}if defined(MARM)" \ + "DEFFILE eabi/messagestoreclient.def" \ "$${LITERAL_HASH}else" \ "DEFFILE bwins/messagestoreclient.def" \ "$${LITERAL_HASH}endif" - + MMP_RULES += defBlock -} + MMP_RULES += SMPSAFE +} win32 { DESTDIR = ../../../.../bin diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/message_store/client/group/MessageStoreClient.mmp --- a/emailservices/emailstore/message_store/client/group/MessageStoreClient.mmp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/message_store/client/group/MessageStoreClient.mmp Mon Oct 04 00:05:37 2010 +0300 @@ -84,3 +84,5 @@ LIBRARY efsrv.lib LIBRARY debuglog.lib LIBRARY MessageStoreServer.lib + +SMPSAFE diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/message_store/client/src/RMessageStoreSession.cpp --- a/emailservices/emailstore/message_store/client/src/RMessageStoreSession.cpp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/message_store/client/src/RMessageStoreSession.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). +* 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" @@ -80,14 +80,14 @@ // ========================================================================== // FUNCTION: Connect // ========================================================================== -TInt RMessageStoreSession::Connect( TBool aLaunchServerIfNeeded, TBool aRetryIndefinitely ) +TInt RMessageStoreSession::Connect( TBool /*aLaunchServerIfNeeded*/, TBool aRetryIndefinitely ) { __LOG_ENTER( "Connect" ) // This flag should only be used in the case where the message store server is being launched as a separate // thread within some other process. In that case, the flag is used to control exactly which process the // server will be launched in. Otherwise, always launch the server on reference. - aLaunchServerIfNeeded = ETrue; + //aLaunchServerIfNeeded = ETrue; TBool again = ETrue; TInt returnValue; @@ -116,10 +116,18 @@ // Do not retry again. again = EFalse; } - else if( (returnValue == KErrNotFound) && aLaunchServerIfNeeded ) + else if( (returnValue == KErrNotFound) || (returnValue == KErrServerTerminated) ) { // Start the server as a thread within the current process. returnValue = StartServer(); + if ( returnValue != KErrNone ) + { + __LOG_WRITE8_FORMAT1_ERROR( "StartServer failed %i", returnValue ) + // Wait before trying again. + User::After( KServerRetryIntervalMicroSeconds ); + //stay in the loop even if we failed to start the server, + // in the next look, the CreateSession will fail but we get to try StartServer again + } } else { @@ -1622,7 +1630,7 @@ RBuf8 serializedBuf; CleanupClosePushL( serializedBuf ); - serializedBuf.Create( totalSize ); + serializedBuf.CreateL( totalSize ); for( TInt i = 0 ; i < count ; i++ ) { diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/message_store/debuglog/debuglog.pro --- a/emailservices/emailstore/message_store/debuglog/debuglog.pro Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/message_store/debuglog/debuglog.pro Mon Oct 04 00:05:37 2010 +0300 @@ -45,6 +45,7 @@ "$${LITERAL_HASH}endif" MMP_RULES += defBlock + MMP_RULES += SMPSAFE } win32 { diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/message_store/debuglog/group/DebugLog.mmp --- a/emailservices/emailstore/message_store/debuglog/group/DebugLog.mmp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/message_store/debuglog/group/DebugLog.mmp Mon Oct 04 00:05:37 2010 +0300 @@ -49,7 +49,9 @@ LIBRARY euser.lib LIBRARY efsrv.lib -LIBRARY sysutil.lib +LIBRARY sysutil.lib + +SMPSAFE // END FILE DebugLog.mmp diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/message_store/debuglog/src/DebugLog.cpp --- a/emailservices/emailstore/message_store/debuglog/src/DebugLog.cpp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/message_store/debuglog/src/DebugLog.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -402,7 +402,7 @@ TRefByValue< const TDesC16 > aFmt, ... ) const { - VA_LIST list; + VA_LIST list; // coverity[UNINIT] VA_START(list,aFmt); RDebugLog* self = const_cast(this); @@ -445,7 +445,7 @@ TRefByValue< const TDesC8 > aFmt, ... ) const { - VA_LIST list; + VA_LIST list; // coverity[UNINIT] VA_START(list,aFmt); RDebugLog* self = const_cast(this); diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/message_store/exe/exe.pro --- a/emailservices/emailstore/message_store/exe/exe.pro Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/message_store/exe/exe.pro Mon Oct 04 00:05:37 2010 +0300 @@ -37,6 +37,7 @@ TARGET.EPOCHEAPSIZE = 0x400 \ 0x200000 MMP_RULES += EXPORTUNFROZEN + MMP_RULES += SMPSAFE } win32 { diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/message_store/exe/group/MessageStoreExe.mmp --- a/emailservices/emailstore/message_store/exe/group/MessageStoreExe.mmp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/message_store/exe/group/MessageStoreExe.mmp Mon Oct 04 00:05:37 2010 +0300 @@ -50,4 +50,4 @@ LIBRARY euser.lib LIBRARY MessageStoreServer.lib - +SMPSAFE diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/message_store/server/group/MessageStoreServer.mmp --- a/emailservices/emailstore/message_store/server/group/MessageStoreServer.mmp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/message_store/server/group/MessageStoreServer.mmp Mon Oct 04 00:05:37 2010 +0300 @@ -95,3 +95,5 @@ LIBRARY DebugLog.lib LIBRARY ImsPointSecMonitor.lib LIBRARY platformenv.lib + +SMPSAFE diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/message_store/server/inc/MessageStoreSession.h --- a/emailservices/emailstore/message_store/server/inc/MessageStoreSession.h Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/message_store/server/inc/MessageStoreSession.h Mon Oct 04 00:05:37 2010 +0300 @@ -97,7 +97,7 @@ void ContainerStoreAvailable(); // Called by the server to propogate events to the session clients. - void SendEventToObserver( TMsgStoreEvent aEvent ); + void SendEventToObserver( TMsgStoreEvent &aEvent ); // inherited from CSession2 void CreateL(); diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/message_store/server/server.pro --- a/emailservices/emailstore/message_store/server/server.pro Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/message_store/server/server.pro Mon Oct 04 00:05:37 2010 +0300 @@ -106,6 +106,7 @@ "$${LITERAL_HASH}endif" MMP_RULES += defBlock + MMP_RULES += SMPSAFE } win32 { diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/message_store/server/src/ContainerStore.cpp --- a/emailservices/emailstore/message_store/server/src/ContainerStore.cpp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/message_store/server/src/ContainerStore.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). +* 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" @@ -2385,7 +2385,7 @@ totalLength += KMsgStorePropertyLocal().Length() + boolPckg.Length() + TPropertiesSerializer::EPerNodeOverhead; RBuf8 properties; - properties.Create( totalLength ); + properties.CreateL( totalLength ); CleanupClosePushL( properties ); for ( TUint32 i = EMsgStoreInbox; i <= EMsgStoreDeleted; i++ ) diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/message_store/server/src/ContainerStoreAccountTable.cpp --- a/emailservices/emailstore/message_store/server/src/ContainerStoreAccountTable.cpp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/message_store/server/src/ContainerStoreAccountTable.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). +* 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" @@ -179,7 +179,7 @@ iTable.SetColL( iOwnerIdColNum, aOwnerId ); iTable.SetColL( iMailBoxIdColNum, aMailboxId ); - totalCounts.Create( iCountsLength ); + totalCounts.CreateL( iCountsLength ); iCustomBehaviorProvider.InitializeCounts( totalCounts ); iTable.SetColL( iTotalCountsColNum, totalCounts ); diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/message_store/server/src/ContainerStoreContainersTable.cpp --- a/emailservices/emailstore/message_store/server/src/ContainerStoreContainersTable.cpp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/message_store/server/src/ContainerStoreContainersTable.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). +* 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" @@ -626,7 +626,7 @@ RBuf8 myDescendentCounts; CleanupClosePushL( myDescendentCounts ); - myDescendentCounts.Create( iTable.ColLength( iChildrenCountsColNum ) ); + myDescendentCounts.CreateL( iTable.ColLength( iChildrenCountsColNum ) ); ChildrenCountsL( myDescendentCounts, ETrue ); diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/message_store/server/src/ContainerStoreMRUAddressTable.cpp --- a/emailservices/emailstore/message_store/server/src/ContainerStoreMRUAddressTable.cpp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/message_store/server/src/ContainerStoreMRUAddressTable.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). +* 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" @@ -73,8 +73,8 @@ // ========================================================================== void CMruAddress::ConstructL( const TDesC& aEmailAddress, const TDesC& aDisplayName ) { - iEmailAddress.Create( aEmailAddress ); - iDisplayName.Create( aDisplayName ); + iEmailAddress.CreateL( aEmailAddress ); + iDisplayName.CreateL( aDisplayName ); } // ========================================================================== @@ -725,7 +725,7 @@ RBuf8 string8; CleanupClosePushL( string8 ); - string8.Create( iEncryptedBuffer.Length() ); + string8.CreateL( iEncryptedBuffer.Length() ); if( aString.Size() < iEncryptedBuffer.Length() ) { diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/message_store/server/src/ContainerStoreSearchHandler.cpp --- a/emailservices/emailstore/message_store/server/src/ContainerStoreSearchHandler.cpp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/message_store/server/src/ContainerStoreSearchHandler.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). +* 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" @@ -492,12 +492,12 @@ RBuf8 val8; CleanupClosePushL( val8 ); - val8.Create( aPtr8 ); + val8.CreateL( aPtr8 ); const TUint16* valuePtr16 = reinterpret_cast( val8.Ptr() ); TPtrC16 val16( valuePtr16, val8.Length() / 2 ); - aBuf.Create( val16.Length() ); + aBuf.CreateL( val16.Length() ); aBuf.Copy( val16 ); CleanupStack::PopAndDestroy( &val8 ); diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/message_store/server/src/ContainerStoreSortingTable.cpp --- a/emailservices/emailstore/message_store/server/src/ContainerStoreSortingTable.cpp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/message_store/server/src/ContainerStoreSortingTable.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). +* 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" @@ -947,7 +947,7 @@ RBuf8 string8; CleanupClosePushL( string8 ); - string8.Create( iEncryptedBuffer.Length() ); + string8.CreateL( iEncryptedBuffer.Length() ); if( aString.Size() < iEncryptedBuffer.Length() ) { diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/message_store/server/src/MessageStoreServer.cpp --- a/emailservices/emailstore/message_store/server/src/MessageStoreServer.cpp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/message_store/server/src/MessageStoreServer.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). +* 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" @@ -1042,12 +1042,12 @@ RBuf8 val8; CleanupClosePushL( val8 ); - val8.Create( aPtr8 ); + val8.CreateL( aPtr8 ); const TUint16* valuePtr16 = reinterpret_cast( val8.Ptr() ); TPtrC16 val16( valuePtr16, val8.Length() / 2 ); - aBuf.Create( val16 ); + aBuf.CreateL( val16 ); CleanupStack::PopAndDestroy( &val8 ); } diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/message_store/server/src/MessageStoreSession.cpp --- a/emailservices/emailstore/message_store/server/src/MessageStoreSession.cpp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/message_store/server/src/MessageStoreSession.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). +* 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" @@ -78,7 +78,7 @@ // ========================================================================== void CSearchResult::ConstructL( const TDesC8& aPropertyBuf ) { - iPropertyBuf.Create( aPropertyBuf ); + iPropertyBuf.CreateL( aPropertyBuf ); } // ========================================================================== @@ -686,7 +686,7 @@ // ========================================================================== // FUNCTION: SendEventToObserver // ========================================================================== -void CMessageStoreSession::SendEventToObserver( TMsgStoreEvent aEvent ) +void CMessageStoreSession::SendEventToObserver( TMsgStoreEvent &aEvent ) { __LOG_ENTER( "SendEventToObserver" ) @@ -2556,11 +2556,11 @@ RBuf8 addressBuf; CleanupClosePushL( addressBuf ); - addressBuf.Create( KInitialAddressBufSize ); + addressBuf.CreateL( KInitialAddressBufSize ); RBuf8 dispNameBuf; CleanupClosePushL( dispNameBuf ); - dispNameBuf.Create( KInitialAddressBufSize ); + dispNameBuf.CreateL( KInitialAddressBufSize ); TInt position = 0; while( position < bufSize ) @@ -2571,7 +2571,7 @@ if ( addressBuf.MaxLength() < length16 ) { - addressBuf.ReAlloc( length16 ); + addressBuf.ReAllocL( length16 ); } aMessage.ReadL( 1, addressBuf, position ); @@ -2587,7 +2587,7 @@ if ( dispNameBuf.MaxLength() < length16 ) { - dispNameBuf.ReAlloc( length16 ); + dispNameBuf.ReAllocL( length16 ); } aMessage.ReadL( 1, dispNameBuf, position ); diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/preinstall/group/EmailStorePreInstall.mmp --- a/emailservices/emailstore/preinstall/group/EmailStorePreInstall.mmp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/preinstall/group/EmailStorePreInstall.mmp Mon Oct 04 00:05:37 2010 +0300 @@ -59,3 +59,5 @@ LIBRARY apgrfx.lib //RApaLsSession LIBRARY bafl.lib LIBRARY DebugLog.lib + +SMPSAFE diff -r 64e38f08e49c -r 47d84de1c893 emailservices/emailstore/preinstall/preinstall.pro --- a/emailservices/emailstore/preinstall/preinstall.pro Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/emailstore/preinstall/preinstall.pro Mon Oct 04 00:05:37 2010 +0300 @@ -45,6 +45,7 @@ TARGET.UID3 = 0x20021190 MMP_RULES += "EPOCPROCESSPRIORITY background" MMP_RULES += EXPORTUNFROZEN + MMP_RULES += SMPSAFE } win32 { diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmailagent/nmailagent.pro --- a/emailservices/nmailagent/nmailagent.pro Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/nmailagent/nmailagent.pro Mon Oct 04 00:05:37 2010 +0300 @@ -64,6 +64,8 @@ TARGET.UID2 = 0x100039CE TARGET.UID3 = 0x2002C326 TARGET.CAPABILITY = CAP_APPLICATION + + MMP_RULES += SMPSAFE } win32 { diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmailbase/nmailbase.pro --- a/emailservices/nmailbase/nmailbase.pro Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/nmailbase/nmailbase.pro Mon Oct 04 00:05:37 2010 +0300 @@ -60,6 +60,7 @@ "$${LITERAL_HASH}endif" MMP_RULES += defBlock + MMP_RULES += SMPSAFE } win32 { diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/bwins/nmailclientapiu.def --- a/emailservices/nmclientapi/bwins/nmailclientapiu.def Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/nmclientapi/bwins/nmailclientapiu.def Mon Oct 04 00:05:37 2010 +0300 @@ -8,9 +8,9 @@ ?setPlainText@NmApiMessageEnvelope@EmailClientApi@@QAEXABVQString@@@Z @ 7 NONAME ; void EmailClientApi::NmApiMessageEnvelope::setPlainText(class QString const &) ??1NmApiSettingsManager@EmailClientApi@@UAE@XZ @ 8 NONAME ; EmailClientApi::NmApiSettingsManager::~NmApiSettingsManager(void) ?id@NmApiMailbox@EmailClientApi@@QBE_KXZ @ 9 NONAME ; unsigned long long EmailClientApi::NmApiMailbox::id(void) const - ?createReplyMessage@NmApiMessageManager@EmailClientApi@@QAE_NPBVQVariant@@_N@Z @ 10 NONAME ; bool EmailClientApi::NmApiMessageManager::createReplyMessage(class QVariant const *, bool) - ?saveMessage@NmApiMessageManager@EmailClientApi@@QAE_NABUNmApiMessage@@@Z @ 11 NONAME ; bool EmailClientApi::NmApiMessageManager::saveMessage(struct NmApiMessage const &) - ?messagesCopied@NmApiMessageManager@EmailClientApi@@IAEXH@Z @ 12 NONAME ; void EmailClientApi::NmApiMessageManager::messagesCopied(int) + ?createReplyMessage@NmApiMessageManager@EmailClientApi@@QAE_NPBVQVariant@@_N@Z @ 10 NONAME ABSENT ; bool EmailClientApi::NmApiMessageManager::createReplyMessage(class QVariant const *, bool) + ?saveMessage@NmApiMessageManager@EmailClientApi@@QAE_NABUNmApiMessage@@@Z @ 11 NONAME ABSENT ; bool EmailClientApi::NmApiMessageManager::saveMessage(struct NmApiMessage const &) + ?messagesCopied@NmApiMessageManager@EmailClientApi@@IAEXH@Z @ 12 NONAME ABSENT ; void EmailClientApi::NmApiMessageManager::messagesCopied(int) ?id@NmApiFolder@EmailClientApi@@QBE_KXZ @ 13 NONAME ; unsigned long long EmailClientApi::NmApiFolder::id(void) const ?foldersListed@NmApiFolderListing@EmailClientApi@@IAEXH@Z @ 14 NONAME ; void EmailClientApi::NmApiFolderListing::foldersListed(int) ??8NmApiFolder@EmailClientApi@@QAE_NABV01@@Z @ 15 NONAME ; bool EmailClientApi::NmApiFolder::operator==(class EmailClientApi::NmApiFolder const &) @@ -26,9 +26,9 @@ ?fetchedSize@NmApiMessageBody@EmailClientApi@@QBE_KXZ @ 25 NONAME ; unsigned long long EmailClientApi::NmApiMessageBody::fetchedSize(void) const ?setChildFolderIds@NmApiFolder@EmailClientApi@@QAEXAAV?$QList@_K@@@Z @ 26 NONAME ; void EmailClientApi::NmApiFolder::setChildFolderIds(class QList &) ??0NmApiMessageEnvelope@EmailClientApi@@QAE@XZ @ 27 NONAME ; EmailClientApi::NmApiMessageEnvelope::NmApiMessageEnvelope(void) - ?removeAttachment@NmApiMessageManager@EmailClientApi@@QAE_NAAVNmApiEmailMessage@@_K@Z @ 28 NONAME ; bool EmailClientApi::NmApiMessageManager::removeAttachment(class NmApiEmailMessage &, unsigned long long) + ?removeAttachment@NmApiMessageManager@EmailClientApi@@QAE_NAAVNmApiEmailMessage@@_K@Z @ 28 NONAME ABSENT ; bool EmailClientApi::NmApiMessageManager::removeAttachment(class NmApiEmailMessage &, unsigned long long) ??1NmApiMessageEnvelope@EmailClientApi@@UAE@XZ @ 29 NONAME ; EmailClientApi::NmApiMessageEnvelope::~NmApiMessageEnvelope(void) - ?copyMessages@NmApiMessageManager@EmailClientApi@@QAE_NV?$QList@_K@@_K1@Z @ 30 NONAME ; bool EmailClientApi::NmApiMessageManager::copyMessages(class QList, unsigned long long, unsigned long long) + ?copyMessages@NmApiMessageManager@EmailClientApi@@QAE_NV?$QList@_K@@_K1@Z @ 30 NONAME ABSENT ; bool EmailClientApi::NmApiMessageManager::copyMessages(class QList, unsigned long long, unsigned long long) ??4NmApiMailbox@EmailClientApi@@QAEAAV01@ABV01@@Z @ 31 NONAME ; class EmailClientApi::NmApiMailbox & EmailClientApi::NmApiMailbox::operator=(class EmailClientApi::NmApiMailbox const &) ??1NmApiMessageManager@EmailClientApi@@UAE@XZ @ 32 NONAME ; EmailClientApi::NmApiMessageManager::~NmApiMessageManager(void) ?setSentTime@NmApiMessageEnvelope@EmailClientApi@@QAEXVQDateTime@@@Z @ 33 NONAME ; void EmailClientApi::NmApiMessageEnvelope::setSentTime(class QDateTime) @@ -51,7 +51,7 @@ ?mailboxDeleted@NmApiMailboxSettings@EmailClientApi@@IAEXH@Z @ 50 NONAME ; void EmailClientApi::NmApiMailboxSettings::mailboxDeleted(int) ??_ENmApiMessageBody@EmailClientApi@@UAE@I@Z @ 51 NONAME ; EmailClientApi::NmApiMessageBody::~NmApiMessageBody(unsigned int) ?staticMetaObject@NmApiMailboxSettings@EmailClientApi@@2UQMetaObject@@B @ 52 NONAME ; struct QMetaObject const EmailClientApi::NmApiMailboxSettings::staticMetaObject - ?messagesDeleted@NmApiMessageManager@EmailClientApi@@IAEXH@Z @ 53 NONAME ; void EmailClientApi::NmApiMessageManager::messagesDeleted(int) + ?messagesDeleted@NmApiMessageManager@EmailClientApi@@IAEXH@Z @ 53 NONAME ABSENT ; void EmailClientApi::NmApiMessageManager::messagesDeleted(int) ?qt_metacall@NmApiMailboxListing@EmailClientApi@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 54 NONAME ; int EmailClientApi::NmApiMailboxListing::qt_metacall(enum QMetaObject::Call, int, void * *) ??_ENmApiMailbox@EmailClientApi@@UAE@I@Z @ 55 NONAME ; EmailClientApi::NmApiMailbox::~NmApiMailbox(unsigned int) ?setId@NmApiMessageEnvelope@EmailClientApi@@QAEX_K@Z @ 56 NONAME ; void EmailClientApi::NmApiMessageEnvelope::setId(unsigned long long) @@ -65,7 +65,7 @@ ?trUtf8@NmApiMessageManager@EmailClientApi@@SA?AVQString@@PBD0H@Z @ 64 NONAME ; class QString EmailClientApi::NmApiMessageManager::trUtf8(char const *, char const *, int) ?isRunning@NmApiFolderListing@EmailClientApi@@QBE_NXZ @ 65 NONAME ; bool EmailClientApi::NmApiFolderListing::isRunning(void) const ?metaObject@NmApiMailboxSettings@EmailClientApi@@UBEPBUQMetaObject@@XZ @ 66 NONAME ; struct QMetaObject const * EmailClientApi::NmApiMailboxSettings::metaObject(void) const - ?messagesMoved@NmApiMessageManager@EmailClientApi@@IAEXH@Z @ 67 NONAME ; void EmailClientApi::NmApiMessageManager::messagesMoved(int) + ?messagesMoved@NmApiMessageManager@EmailClientApi@@IAEXH@Z @ 67 NONAME ABSENT ; void EmailClientApi::NmApiMessageManager::messagesMoved(int) ?staticMetaObject@NmApiEventNotifier@EmailClientApi@@2UQMetaObject@@B @ 68 NONAME ; struct QMetaObject const EmailClientApi::NmApiEventNotifier::staticMetaObject ?tr@NmApiFolderListing@EmailClientApi@@SA?AVQString@@PBD0H@Z @ 69 NONAME ; class QString EmailClientApi::NmApiFolderListing::tr(char const *, char const *, int) ?trUtf8@NmApiFolderListing@EmailClientApi@@SA?AVQString@@PBD0H@Z @ 70 NONAME ; class QString EmailClientApi::NmApiFolderListing::trUtf8(char const *, char const *, int) @@ -74,7 +74,7 @@ ?tr@NmApiEventNotifier@EmailClientApi@@SA?AVQString@@PBD0@Z @ 73 NONAME ; class QString EmailClientApi::NmApiEventNotifier::tr(char const *, char const *) ?sentTime@NmApiMessageEnvelope@EmailClientApi@@QBE?AVQDateTime@@XZ @ 74 NONAME ; class QDateTime EmailClientApi::NmApiMessageEnvelope::sentTime(void) const ?saveSettings@NmApiMailboxSettings@EmailClientApi@@QAE_NABVNmApiMailboxSettingsData@2@@Z @ 75 NONAME ; bool EmailClientApi::NmApiMailboxSettings::saveSettings(class EmailClientApi::NmApiMailboxSettingsData const &) - ?fetch@NmApiMessageManager@EmailClientApi@@QAE_NABUNmApiMessage@@@Z @ 76 NONAME ; bool EmailClientApi::NmApiMessageManager::fetch(struct NmApiMessage const &) + ?fetch@NmApiMessageManager@EmailClientApi@@QAE_NABUNmApiMessage@@@Z @ 76 NONAME ABSENT ; bool EmailClientApi::NmApiMessageManager::fetch(struct NmApiMessage const &) ?setSubject@NmApiMessageEnvelope@EmailClientApi@@QAEXABVQString@@@Z @ 77 NONAME ; void EmailClientApi::NmApiMessageEnvelope::setSubject(class QString const &) ?folderType@NmApiFolder@EmailClientApi@@QBE?AW4NmApiEmailFolderType@2@XZ @ 78 NONAME ; enum EmailClientApi::NmApiEmailFolderType EmailClientApi::NmApiFolder::folderType(void) const ?setToRecipients@NmApiMessageEnvelope@EmailClientApi@@QAEXABV?$QList@VNmApiEmailAddress@EmailClientApi@@@@@Z @ 79 NONAME ; void EmailClientApi::NmApiMessageEnvelope::setToRecipients(class QList const &) @@ -86,7 +86,7 @@ ?qt_metacast@NmApiFolderListing@EmailClientApi@@UAEPAXPBD@Z @ 85 NONAME ; void * EmailClientApi::NmApiFolderListing::qt_metacast(char const *) ?messageEvent@NmApiEventNotifier@EmailClientApi@@IAEXW4NmApiMessageEvent@2@_K1V?$QList@_K@@@Z @ 86 NONAME ; void EmailClientApi::NmApiEventNotifier::messageEvent(enum EmailClientApi::NmApiMessageEvent, unsigned long long, unsigned long long, class QList) ?setTotalSize@NmApiMessageEnvelope@EmailClientApi@@QAEX_K@Z @ 87 NONAME ; void EmailClientApi::NmApiMessageEnvelope::setTotalSize(unsigned long long) - ??0NmApiMessageManager@EmailClientApi@@QAE@_KPAVQObject@@@Z @ 88 NONAME ; EmailClientApi::NmApiMessageManager::NmApiMessageManager(unsigned long long, class QObject *) + ??0NmApiMessageManager@EmailClientApi@@QAE@_KPAVQObject@@@Z @ 88 NONAME ABSENT ; EmailClientApi::NmApiMessageManager::NmApiMessageManager(unsigned long long, class QObject *) ?qt_metacall@NmApiMessageTask@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 89 NONAME ; int NmApiMessageTask::qt_metacall(enum QMetaObject::Call, int, void * *) ??1NmApiMailbox@EmailClientApi@@UAE@XZ @ 90 NONAME ; EmailClientApi::NmApiMailbox::~NmApiMailbox(void) ?getValue@NmApiMailboxSettingsData@EmailClientApi@@QBE_NHAAVQVariant@@@Z @ 91 NONAME ; bool EmailClientApi::NmApiMailboxSettingsData::getValue(int, class QVariant &) const @@ -123,7 +123,7 @@ ?trUtf8@NmApiMailboxSettings@EmailClientApi@@SA?AVQString@@PBD0H@Z @ 122 NONAME ; class QString EmailClientApi::NmApiMailboxSettings::trUtf8(char const *, char const *, int) ?setHasAttachments@NmApiMessageEnvelope@EmailClientApi@@QAEX_N@Z @ 123 NONAME ; void EmailClientApi::NmApiMessageEnvelope::setHasAttachments(bool) ??_ENmApiMessageEnvelope@EmailClientApi@@UAE@I@Z @ 124 NONAME ; EmailClientApi::NmApiMessageEnvelope::~NmApiMessageEnvelope(unsigned int) - ?createForwardMessage@NmApiMessageManager@EmailClientApi@@QAE_NPBVQVariant@@@Z @ 125 NONAME ; bool EmailClientApi::NmApiMessageManager::createForwardMessage(class QVariant const *) + ?createForwardMessage@NmApiMessageManager@EmailClientApi@@QAE_NPBVQVariant@@@Z @ 125 NONAME ABSENT ; bool EmailClientApi::NmApiMessageManager::createForwardMessage(class QVariant const *) ?displayName@NmApiEmailAddress@EmailClientApi@@QBE?AVQString@@XZ @ 126 NONAME ; class QString EmailClientApi::NmApiEmailAddress::displayName(void) const ?listMailboxIds@NmApiMailboxSettings@EmailClientApi@@QAE_NAAV?$QList@_K@@@Z @ 127 NONAME ; bool EmailClientApi::NmApiMailboxSettings::listMailboxIds(class QList &) ??_ENmApiMailboxSettings@EmailClientApi@@UAE@I@Z @ 128 NONAME ; EmailClientApi::NmApiMailboxSettings::~NmApiMailboxSettings(unsigned int) @@ -173,16 +173,16 @@ ??4NmApiMessageEnvelope@EmailClientApi@@QAEAAV01@ABV01@@Z @ 172 NONAME ; class EmailClientApi::NmApiMessageEnvelope & EmailClientApi::NmApiMessageEnvelope::operator=(class EmailClientApi::NmApiMessageEnvelope const &) ?initialise@NmApiEmailService@EmailClientApi@@QAEXXZ @ 173 NONAME ; void EmailClientApi::NmApiEmailService::initialise(void) ?tr@NmApiMailboxListing@EmailClientApi@@SA?AVQString@@PBD0H@Z @ 174 NONAME ; class QString EmailClientApi::NmApiMailboxListing::tr(char const *, char const *, int) - ?send@NmApiMessageManager@EmailClientApi@@QAE_NABUNmApiMessage@@@Z @ 175 NONAME ; bool EmailClientApi::NmApiMessageManager::send(struct NmApiMessage const &) + ?send@NmApiMessageManager@EmailClientApi@@QAE_NABUNmApiMessage@@@Z @ 175 NONAME ABSENT ; bool EmailClientApi::NmApiMessageManager::send(struct NmApiMessage const &) ?trUtf8@NmApiMailboxSettings@EmailClientApi@@SA?AVQString@@PBD0@Z @ 176 NONAME ; class QString EmailClientApi::NmApiMailboxSettings::trUtf8(char const *, char const *) ?setContent@NmApiMessageBody@EmailClientApi@@QAEXABVQString@@@Z @ 177 NONAME ; void EmailClientApi::NmApiMessageBody::setContent(class QString const &) - ?createAttachment@NmApiMessageManager@EmailClientApi@@QAE_NAAVNmApiEmailMessage@@ABVQVariant@@@Z @ 178 NONAME ; bool EmailClientApi::NmApiMessageManager::createAttachment(class NmApiEmailMessage &, class QVariant const &) + ?createAttachment@NmApiMessageManager@EmailClientApi@@QAE_NAAVNmApiEmailMessage@@ABVQVariant@@@Z @ 178 NONAME ABSENT ; bool EmailClientApi::NmApiMessageManager::createAttachment(class NmApiEmailMessage &, class QVariant const &) ?isReplied@NmApiMessageEnvelope@EmailClientApi@@QBE_NXZ @ 179 NONAME ; bool EmailClientApi::NmApiMessageEnvelope::isReplied(void) const ?cancel@NmApiEnvelopeListing@EmailClientApi@@UAEXXZ @ 180 NONAME ; void EmailClientApi::NmApiEnvelopeListing::cancel(void) ?getStaticMetaObject@NmApiEventNotifier@EmailClientApi@@SAABUQMetaObject@@XZ @ 181 NONAME ; struct QMetaObject const & EmailClientApi::NmApiEventNotifier::getStaticMetaObject(void) ??0NmApiMessageEnvelope@EmailClientApi@@QAE@ABV01@@Z @ 182 NONAME ; EmailClientApi::NmApiMessageEnvelope::NmApiMessageEnvelope(class EmailClientApi::NmApiMessageEnvelope const &) ?trUtf8@NmApiEnvelopeListing@EmailClientApi@@SA?AVQString@@PBD0H@Z @ 183 NONAME ; class QString EmailClientApi::NmApiEnvelopeListing::trUtf8(char const *, char const *, int) - ?messagesCreated@NmApiMessageManager@EmailClientApi@@IAEXH@Z @ 184 NONAME ; void EmailClientApi::NmApiMessageManager::messagesCreated(int) + ?messagesCreated@NmApiMessageManager@EmailClientApi@@IAEXH@Z @ 184 NONAME ABSENT ; void EmailClientApi::NmApiMessageManager::messagesCreated(int) ?setContentType@NmApiMessageEnvelope@EmailClientApi@@QAEXABVQString@@@Z @ 185 NONAME ; void EmailClientApi::NmApiMessageEnvelope::setContentType(class QString const &) ?initialized@NmApiEmailService@EmailClientApi@@IAEX_N@Z @ 186 NONAME ; void EmailClientApi::NmApiEmailService::initialized(bool) ?qt_metacast@NmApiEventNotifier@EmailClientApi@@UAEPAXPBD@Z @ 187 NONAME ; void * EmailClientApi::NmApiEventNotifier::qt_metacast(char const *) @@ -247,4 +247,84 @@ ?start@NmApiFolderListing@EmailClientApi@@UAE_NXZ @ 246 NONAME ; bool EmailClientApi::NmApiFolderListing::start(void) ?cancel@NmApiFolderListing@EmailClientApi@@UAEXXZ @ 247 NONAME ; void EmailClientApi::NmApiFolderListing::cancel(void) ??_ENmApiSettingsManager@EmailClientApi@@UAE@I@Z @ 248 NONAME ; EmailClientApi::NmApiSettingsManager::~NmApiSettingsManager(unsigned int) + ??1NmApiMessageContent@EmailClientApi@@UAE@XZ @ 249 NONAME ; EmailClientApi::NmApiMessageContent::~NmApiMessageContent(void) + ?isComplete@NmApiMessage@EmailClientApi@@QAE_NXZ @ 250 NONAME ; bool EmailClientApi::NmApiMessage::isComplete(void) + ?fetchMessage@NmApiMessageManager@EmailClientApi@@QAE_N_K@Z @ 251 NONAME ; bool EmailClientApi::NmApiMessageManager::fetchMessage(unsigned long long) + ??1NmApiAttachment@EmailClientApi@@UAE@XZ @ 252 NONAME ; EmailClientApi::NmApiAttachment::~NmApiAttachment(void) + ??_ENmApiMessage@EmailClientApi@@UAE@I@Z @ 253 NONAME ; EmailClientApi::NmApiMessage::~NmApiMessage(unsigned int) + ?file@NmApiAttachment@EmailClientApi@@QAE?AVXQSharableFile@@XZ @ 254 NONAME ; class XQSharableFile EmailClientApi::NmApiAttachment::file(void) + ?setAttachments@NmApiMessage@EmailClientApi@@QAEXAAV?$QList@VNmApiAttachment@EmailClientApi@@@@@Z @ 255 NONAME ; void EmailClientApi::NmApiMessage::setAttachments(class QList &) + ?getBccRecipients@NmApiMessageEnvelope@EmailClientApi@@QAEXAAV?$QList@VNmApiEmailAddress@EmailClientApi@@@@@Z @ 256 NONAME ; void EmailClientApi::NmApiMessageEnvelope::getBccRecipients(class QList &) + ?setMailboxId@NmApiMessageEnvelope@EmailClientApi@@QAEX_K@Z @ 257 NONAME ; void EmailClientApi::NmApiMessageEnvelope::setMailboxId(unsigned long long) + ?setContentType@NmApiMessageContent@EmailClientApi@@QAEXABVQString@@@Z @ 258 NONAME ; void EmailClientApi::NmApiMessageContent::setContentType(class QString const &) + ??0NmApiTextContent@EmailClientApi@@QAE@ABV01@@Z @ 259 NONAME ABSENT ; EmailClientApi::NmApiTextContent::NmApiTextContent(class EmailClientApi::NmApiTextContent const &) + ?createForwardMessage@NmApiMessageManager@EmailClientApi@@QAE_NPAVNmApiMessage@2@PBVQVariant@@@Z @ 260 NONAME ; bool EmailClientApi::NmApiMessageManager::createForwardMessage(class EmailClientApi::NmApiMessage *, class QVariant const *) + ?createReplyMessage@NmApiMessageManager@EmailClientApi@@QAE_NPBVNmApiMessage@2@PBVQVariant@@_N@Z @ 261 NONAME ; bool EmailClientApi::NmApiMessageManager::createReplyMessage(class EmailClientApi::NmApiMessage const *, class QVariant const *, bool) + ??0NmApiMessageContent@EmailClientApi@@QAE@ABV01@@Z @ 262 NONAME ABSENT ; EmailClientApi::NmApiMessageContent::NmApiMessageContent(class EmailClientApi::NmApiMessageContent const &) + ?setId@NmApiMessageContent@EmailClientApi@@QAEX_K@Z @ 263 NONAME ; void EmailClientApi::NmApiMessageContent::setId(unsigned long long) + ?setEnvelope@NmApiMessage@EmailClientApi@@QAEXAAVNmApiMessageEnvelope@2@@Z @ 264 NONAME ; void EmailClientApi::NmApiMessage::setEnvelope(class EmailClientApi::NmApiMessageEnvelope &) + ??0NmApiMessageManager@EmailClientApi@@QAE@PAVQObject@@_K@Z @ 265 NONAME ; EmailClientApi::NmApiMessageManager::NmApiMessageManager(class QObject *, unsigned long long) + ?isComplete@NmApiMessageContent@EmailClientApi@@QAE_NXZ @ 266 NONAME ; bool EmailClientApi::NmApiMessageContent::isComplete(void) + ?mailboxId@NmApiMessageEnvelope@EmailClientApi@@QBE_KXZ @ 267 NONAME ; unsigned long long EmailClientApi::NmApiMessageEnvelope::mailboxId(void) const + ?id@NmApiMessageContent@EmailClientApi@@QBE_KXZ @ 268 NONAME ; unsigned long long EmailClientApi::NmApiMessageContent::id(void) const + ?setHtmlContent@NmApiMessage@EmailClientApi@@QAEXAAVNmApiTextContent@2@@Z @ 269 NONAME ; void EmailClientApi::NmApiMessage::setHtmlContent(class EmailClientApi::NmApiTextContent &) + ??0NmApiMessage@EmailClientApi@@QAE@XZ @ 270 NONAME ; EmailClientApi::NmApiMessage::NmApiMessage(void) + ?sendMessage@NmApiMessageManager@EmailClientApi@@QAE_NABVNmApiMessage@2@@Z @ 271 NONAME ; bool EmailClientApi::NmApiMessageManager::sendMessage(class EmailClientApi::NmApiMessage const &) + ?setComplete@NmApiMessageContent@EmailClientApi@@QAEX_N@Z @ 272 NONAME ; void EmailClientApi::NmApiMessageContent::setComplete(bool) + ?size@NmApiMessageContent@EmailClientApi@@QBEIXZ @ 273 NONAME ; unsigned int EmailClientApi::NmApiMessageContent::size(void) const + ?plainTextContent@NmApiMessage@EmailClientApi@@QAE?AVNmApiTextContent@2@XZ @ 274 NONAME ; class EmailClientApi::NmApiTextContent EmailClientApi::NmApiMessage::plainTextContent(void) + ??_ENmApiAttachment@EmailClientApi@@UAE@I@Z @ 275 NONAME ; EmailClientApi::NmApiAttachment::~NmApiAttachment(unsigned int) + ??_ENmApiMessageContent@EmailClientApi@@UAE@I@Z @ 276 NONAME ; EmailClientApi::NmApiMessageContent::~NmApiMessageContent(unsigned int) + ?envelope@NmApiMessage@EmailClientApi@@QAEAAVNmApiMessageEnvelope@2@XZ @ 277 NONAME ; class EmailClientApi::NmApiMessageEnvelope & EmailClientApi::NmApiMessage::envelope(void) + ?fetchAttachment@NmApiMessageManager@EmailClientApi@@QAE_NABVNmApiMessage@2@_K@Z @ 278 NONAME ; bool EmailClientApi::NmApiMessageManager::fetchAttachment(class EmailClientApi::NmApiMessage const &, unsigned long long) + ?htmlContent@NmApiMessage@EmailClientApi@@QAE?AVNmApiTextContent@2@XZ @ 279 NONAME ; class EmailClientApi::NmApiTextContent EmailClientApi::NmApiMessage::htmlContent(void) + ??1NmApiTextContent@EmailClientApi@@UAE@XZ @ 280 NONAME ; EmailClientApi::NmApiTextContent::~NmApiTextContent(void) + ?setSize@NmApiMessageContent@EmailClientApi@@QAEXI@Z @ 281 NONAME ; void EmailClientApi::NmApiMessageContent::setSize(unsigned int) + ?saveMessage@NmApiMessageManager@EmailClientApi@@QAE_NABVNmApiMessage@2@@Z @ 282 NONAME ; bool EmailClientApi::NmApiMessageManager::saveMessage(class EmailClientApi::NmApiMessage const &) + ?content@NmApiTextContent@EmailClientApi@@QBE?AVQString@@XZ @ 283 NONAME ; class QString EmailClientApi::NmApiTextContent::content(void) const + ??0NmApiAttachment@EmailClientApi@@QAE@ABV01@@Z @ 284 NONAME ; EmailClientApi::NmApiAttachment::NmApiAttachment(class EmailClientApi::NmApiAttachment const &) + ??_ENmApiTextContent@EmailClientApi@@UAE@I@Z @ 285 NONAME ; EmailClientApi::NmApiTextContent::~NmApiTextContent(unsigned int) + ?removeAttachment@NmApiMessageManager@EmailClientApi@@QAE_NAAVNmApiMessage@2@_K@Z @ 286 NONAME ; bool EmailClientApi::NmApiMessageManager::removeAttachment(class EmailClientApi::NmApiMessage &, unsigned long long) + ??4NmApiMessageContent@EmailClientApi@@QAEAAV01@ABV01@@Z @ 287 NONAME ABSENT ; class EmailClientApi::NmApiMessageContent & EmailClientApi::NmApiMessageContent::operator=(class EmailClientApi::NmApiMessageContent const &) + ?setContent@NmApiTextContent@EmailClientApi@@QAEXABVQString@@@Z @ 288 NONAME ; void EmailClientApi::NmApiTextContent::setContent(class QString const &) + ??0NmApiMessageContent@EmailClientApi@@QAE@XZ @ 289 NONAME ; EmailClientApi::NmApiMessageContent::NmApiMessageContent(void) + ?fileName@NmApiAttachment@EmailClientApi@@QAE?AVQString@@XZ @ 290 NONAME ; class QString EmailClientApi::NmApiAttachment::fileName(void) + ??4NmApiTextContent@EmailClientApi@@QAEAAV01@ABV01@@Z @ 291 NONAME ABSENT ; class EmailClientApi::NmApiTextContent & EmailClientApi::NmApiTextContent::operator=(class EmailClientApi::NmApiTextContent const &) + ??1NmApiMessage@EmailClientApi@@UAE@XZ @ 292 NONAME ; EmailClientApi::NmApiMessage::~NmApiMessage(void) + ?setPlainTextContent@NmApiMessage@EmailClientApi@@QAEXAAVNmApiTextContent@2@@Z @ 293 NONAME ; void EmailClientApi::NmApiMessage::setPlainTextContent(class EmailClientApi::NmApiTextContent &) + ?setBccRecipients@NmApiMessageEnvelope@EmailClientApi@@QAEXABV?$QList@VNmApiEmailAddress@EmailClientApi@@@@@Z @ 294 NONAME ; void EmailClientApi::NmApiMessageEnvelope::setBccRecipients(class QList const &) + ?setFileName@NmApiAttachment@EmailClientApi@@QAEXABVQString@@@Z @ 295 NONAME ; void EmailClientApi::NmApiAttachment::setFileName(class QString const &) + ?attachments@NmApiMessage@EmailClientApi@@QAE?AV?$QList@VNmApiAttachment@EmailClientApi@@@@XZ @ 296 NONAME ; class QList EmailClientApi::NmApiMessage::attachments(void) + ??0NmApiAttachment@EmailClientApi@@QAE@XZ @ 297 NONAME ; EmailClientApi::NmApiAttachment::NmApiAttachment(void) + ?contentType@NmApiMessageContent@EmailClientApi@@QBE?AVQString@@XZ @ 298 NONAME ; class QString EmailClientApi::NmApiMessageContent::contentType(void) const + ?setComplete@NmApiMessage@EmailClientApi@@QAEX_N@Z @ 299 NONAME ; void EmailClientApi::NmApiMessage::setComplete(bool) + ?createAttachment@NmApiMessageManager@EmailClientApi@@QAE_NAAVNmApiMessage@2@ABVQVariant@@@Z @ 300 NONAME ; bool EmailClientApi::NmApiMessageManager::createAttachment(class EmailClientApi::NmApiMessage &, class QVariant const &) + ?addAttachment@NmApiMessage@EmailClientApi@@QAEXAAVNmApiAttachment@2@@Z @ 301 NONAME ; void EmailClientApi::NmApiMessage::addAttachment(class EmailClientApi::NmApiAttachment &) + ??0NmApiTextContent@EmailClientApi@@QAE@XZ @ 302 NONAME ; EmailClientApi::NmApiTextContent::NmApiTextContent(void) + ?trUtf8@NmApiMessageSearch@EmailClientApi@@SA?AVQString@@PBD0@Z @ 303 NONAME ; class QString EmailClientApi::NmApiMessageSearch::trUtf8(char const *, char const *) + ?searchComplete@NmApiMessageSearch@EmailClientApi@@IAEXH@Z @ 304 NONAME ; void EmailClientApi::NmApiMessageSearch::searchComplete(int) + ??_ENmApiMessageSearch@EmailClientApi@@UAE@I@Z @ 305 NONAME ; EmailClientApi::NmApiMessageSearch::~NmApiMessageSearch(unsigned int) + ?tr@NmApiMessageSearch@EmailClientApi@@SA?AVQString@@PBD0@Z @ 306 NONAME ; class QString EmailClientApi::NmApiMessageSearch::tr(char const *, char const *) + ?tr@NmApiMessageSearch@EmailClientApi@@SA?AVQString@@PBD0H@Z @ 307 NONAME ; class QString EmailClientApi::NmApiMessageSearch::tr(char const *, char const *, int) + ?getStaticMetaObject@NmApiMessageSearch@EmailClientApi@@SAABUQMetaObject@@XZ @ 308 NONAME ; struct QMetaObject const & EmailClientApi::NmApiMessageSearch::getStaticMetaObject(void) + ??0NmApiMessageSearch@EmailClientApi@@QAE@PAVQObject@@_K@Z @ 309 NONAME ; EmailClientApi::NmApiMessageSearch::NmApiMessageSearch(class QObject *, unsigned long long) + ?initialise@NmApiMessageSearch@EmailClientApi@@QAE_NABV?$QList@VQString@@@@VNmApiMailSortCriteria@2@@Z @ 310 NONAME ; bool EmailClientApi::NmApiMessageSearch::initialise(class QList const &, class EmailClientApi::NmApiMailSortCriteria) + ?qt_metacall@NmApiMessageSearch@EmailClientApi@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 311 NONAME ; int EmailClientApi::NmApiMessageSearch::qt_metacall(enum QMetaObject::Call, int, void * *) + ?start@NmApiMessageSearch@EmailClientApi@@UAE_NXZ @ 312 NONAME ; bool EmailClientApi::NmApiMessageSearch::start(void) + ?qt_metacast@NmApiMessageSearch@EmailClientApi@@UAEPAXPBD@Z @ 313 NONAME ; void * EmailClientApi::NmApiMessageSearch::qt_metacast(char const *) + ??1NmApiMessageSearch@EmailClientApi@@UAE@XZ @ 314 NONAME ; EmailClientApi::NmApiMessageSearch::~NmApiMessageSearch(void) + ?metaObject@NmApiMessageSearch@EmailClientApi@@UBEPBUQMetaObject@@XZ @ 315 NONAME ; struct QMetaObject const * EmailClientApi::NmApiMessageSearch::metaObject(void) const + ?messageFound@NmApiMessageSearch@EmailClientApi@@IAEXAAVNmApiMessage@2@@Z @ 316 NONAME ; void EmailClientApi::NmApiMessageSearch::messageFound(class EmailClientApi::NmApiMessage &) + ?isRunning@NmApiMessageSearch@EmailClientApi@@QBE_NXZ @ 317 NONAME ; bool EmailClientApi::NmApiMessageSearch::isRunning(void) const + ??0NmApiMessage@EmailClientApi@@QAE@ABV01@@Z @ 318 NONAME ABSENT ; EmailClientApi::NmApiMessage::NmApiMessage(class EmailClientApi::NmApiMessage const &) + ?trUtf8@NmApiMessageSearch@EmailClientApi@@SA?AVQString@@PBD0H@Z @ 319 NONAME ; class QString EmailClientApi::NmApiMessageSearch::trUtf8(char const *, char const *, int) + ?staticMetaObject@NmApiMessageSearch@EmailClientApi@@2UQMetaObject@@B @ 320 NONAME ; struct QMetaObject const EmailClientApi::NmApiMessageSearch::staticMetaObject + ?cancel@NmApiMessageSearch@EmailClientApi@@UAEXXZ @ 321 NONAME ; void EmailClientApi::NmApiMessageSearch::cancel(void) + ?setPriority@NmApiMessageEnvelope@EmailClientApi@@QAEXW4NmApiMessagePriority@2@@Z @ 322 NONAME ; void EmailClientApi::NmApiMessageEnvelope::setPriority(enum EmailClientApi::NmApiMessagePriority) + ?priority@NmApiMessageEnvelope@EmailClientApi@@QBE?AW4NmApiMessagePriority@2@XZ @ 323 NONAME ; enum EmailClientApi::NmApiMessagePriority EmailClientApi::NmApiMessageEnvelope::priority(void) const + ?setFlags@NmApiMessageEnvelope@EmailClientApi@@QAEXV?$QFlags@W4NmApiMessageFlag@EmailClientApi@@@@_N@Z @ 324 NONAME ; void EmailClientApi::NmApiMessageEnvelope::setFlags(class QFlags, bool) + ?isFlagSet@NmApiMessageEnvelope@EmailClientApi@@QBE_NW4NmApiMessageFlag@2@@Z @ 325 NONAME ; bool EmailClientApi::NmApiMessageEnvelope::isFlagSet(enum EmailClientApi::NmApiMessageFlag) const + ?setFlag@NmApiMessageEnvelope@EmailClientApi@@QAEXW4NmApiMessageFlag@2@_N@Z @ 326 NONAME ; void EmailClientApi::NmApiMessageEnvelope::setFlag(enum EmailClientApi::NmApiMessageFlag, bool) + ?flags@NmApiMessageEnvelope@EmailClientApi@@QBE?AV?$QFlags@W4NmApiMessageFlag@EmailClientApi@@@@XZ @ 327 NONAME ; class QFlags EmailClientApi::NmApiMessageEnvelope::flags(void) const + ?getMessage@NmApiEmailService@EmailClientApi@@QAE_N_K00AAVNmApiMessage@2@@Z @ 328 NONAME ; bool EmailClientApi::NmApiEmailService::getMessage(unsigned long long, unsigned long long, unsigned long long, class EmailClientApi::NmApiMessage &) diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/eabi/nmailclientapiu.def --- a/emailservices/nmclientapi/eabi/nmailclientapiu.def Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/nmclientapi/eabi/nmailclientapiu.def Mon Oct 04 00:05:37 2010 +0300 @@ -213,25 +213,25 @@ _ZTVN14EmailClientApi20NmApiMessageEnvelopeE @ 212 NONAME _ZN14EmailClientApi19NmApiMessageManager11qt_metacallEN11QMetaObject4CallEiPPv @ 213 NONAME _ZN14EmailClientApi19NmApiMessageManager11qt_metacastEPKc @ 214 NONAME - _ZN14EmailClientApi19NmApiMessageManager11saveMessageERK12NmApiMessage @ 215 NONAME - _ZN14EmailClientApi19NmApiMessageManager12copyMessagesE5QListIyEyy @ 216 NONAME + _ZN14EmailClientApi19NmApiMessageManager11saveMessageERK12NmApiMessage @ 215 NONAME ABSENT + _ZN14EmailClientApi19NmApiMessageManager12copyMessagesE5QListIyEyy @ 216 NONAME ABSENT _ZN14EmailClientApi19NmApiMessageManager12moveMessagesE5QListIyEyy @ 217 NONAME - _ZN14EmailClientApi19NmApiMessageManager13messagesMovedEi @ 218 NONAME + _ZN14EmailClientApi19NmApiMessageManager13messagesMovedEi @ 218 NONAME ABSENT _ZN14EmailClientApi19NmApiMessageManager14deleteMessagesE5QListIyE @ 219 NONAME - _ZN14EmailClientApi19NmApiMessageManager14messagesCopiedEi @ 220 NONAME - _ZN14EmailClientApi19NmApiMessageManager15messagesCreatedEi @ 221 NONAME - _ZN14EmailClientApi19NmApiMessageManager15messagesDeletedEi @ 222 NONAME - _ZN14EmailClientApi19NmApiMessageManager16createAttachmentER17NmApiEmailMessageRK8QVariant @ 223 NONAME - _ZN14EmailClientApi19NmApiMessageManager16removeAttachmentER17NmApiEmailMessagey @ 224 NONAME + _ZN14EmailClientApi19NmApiMessageManager14messagesCopiedEi @ 220 NONAME ABSENT + _ZN14EmailClientApi19NmApiMessageManager15messagesCreatedEi @ 221 NONAME ABSENT + _ZN14EmailClientApi19NmApiMessageManager15messagesDeletedEi @ 222 NONAME ABSENT + _ZN14EmailClientApi19NmApiMessageManager16createAttachmentER17NmApiEmailMessageRK8QVariant @ 223 NONAME ABSENT + _ZN14EmailClientApi19NmApiMessageManager16removeAttachmentER17NmApiEmailMessagey @ 224 NONAME ABSENT _ZN14EmailClientApi19NmApiMessageManager16staticMetaObjectE @ 225 NONAME DATA 16 _ZN14EmailClientApi19NmApiMessageManager18createDraftMessageEPK8QVariant @ 226 NONAME - _ZN14EmailClientApi19NmApiMessageManager18createReplyMessageEPK8QVariantb @ 227 NONAME + _ZN14EmailClientApi19NmApiMessageManager18createReplyMessageEPK8QVariantb @ 227 NONAME ABSENT _ZN14EmailClientApi19NmApiMessageManager19getStaticMetaObjectEv @ 228 NONAME - _ZN14EmailClientApi19NmApiMessageManager20createForwardMessageEPK8QVariant @ 229 NONAME - _ZN14EmailClientApi19NmApiMessageManager4sendERK12NmApiMessage @ 230 NONAME - _ZN14EmailClientApi19NmApiMessageManager5fetchERK12NmApiMessage @ 231 NONAME - _ZN14EmailClientApi19NmApiMessageManagerC1EyP7QObject @ 232 NONAME - _ZN14EmailClientApi19NmApiMessageManagerC2EyP7QObject @ 233 NONAME + _ZN14EmailClientApi19NmApiMessageManager20createForwardMessageEPK8QVariant @ 229 NONAME ABSENT + _ZN14EmailClientApi19NmApiMessageManager4sendERK12NmApiMessage @ 230 NONAME ABSENT + _ZN14EmailClientApi19NmApiMessageManager5fetchERK12NmApiMessage @ 231 NONAME ABSENT + _ZN14EmailClientApi19NmApiMessageManagerC1EyP7QObject @ 232 NONAME ABSENT + _ZN14EmailClientApi19NmApiMessageManagerC2EyP7QObject @ 233 NONAME ABSENT _ZN14EmailClientApi19NmApiMessageManagerD0Ev @ 234 NONAME _ZN14EmailClientApi19NmApiMessageManagerD1Ev @ 235 NONAME _ZN14EmailClientApi19NmApiMessageManagerD2Ev @ 236 NONAME @@ -277,4 +277,95 @@ _ZN14EmailClientApi20NmApiSettingsManagerD0Ev @ 276 NONAME _ZTIN14EmailClientApi20NmApiSettingsManagerE @ 277 NONAME _ZTVN14EmailClientApi20NmApiSettingsManagerE @ 278 NONAME + _ZN14EmailClientApi12NmApiMessage10isCompleteEv @ 279 NONAME + _ZN14EmailClientApi12NmApiMessage11attachmentsEv @ 280 NONAME + _ZN14EmailClientApi12NmApiMessage11htmlContentEv @ 281 NONAME + _ZN14EmailClientApi12NmApiMessage11setCompleteEb @ 282 NONAME + _ZN14EmailClientApi12NmApiMessage11setEnvelopeERNS_20NmApiMessageEnvelopeE @ 283 NONAME + _ZN14EmailClientApi12NmApiMessage13addAttachmentERNS_15NmApiAttachmentE @ 284 NONAME + _ZN14EmailClientApi12NmApiMessage14setAttachmentsER5QListINS_15NmApiAttachmentEE @ 285 NONAME + _ZN14EmailClientApi12NmApiMessage14setHtmlContentERNS_16NmApiTextContentE @ 286 NONAME + _ZN14EmailClientApi12NmApiMessage16plainTextContentEv @ 287 NONAME + _ZN14EmailClientApi12NmApiMessage19setPlainTextContentERNS_16NmApiTextContentE @ 288 NONAME + _ZN14EmailClientApi12NmApiMessage8envelopeEv @ 289 NONAME + _ZN14EmailClientApi12NmApiMessageC1Ev @ 290 NONAME + _ZN14EmailClientApi12NmApiMessageC2Ev @ 291 NONAME + _ZN14EmailClientApi12NmApiMessageD0Ev @ 292 NONAME + _ZN14EmailClientApi12NmApiMessageD1Ev @ 293 NONAME + _ZN14EmailClientApi12NmApiMessageD2Ev @ 294 NONAME + _ZN14EmailClientApi15NmApiAttachment11setFileNameERK7QString @ 295 NONAME + _ZN14EmailClientApi15NmApiAttachment4fileEv @ 296 NONAME + _ZN14EmailClientApi15NmApiAttachment8fileNameEv @ 297 NONAME + _ZN14EmailClientApi15NmApiAttachmentC1Ev @ 298 NONAME + _ZN14EmailClientApi15NmApiAttachmentC2Ev @ 299 NONAME + _ZN14EmailClientApi15NmApiAttachmentD0Ev @ 300 NONAME + _ZN14EmailClientApi15NmApiAttachmentD1Ev @ 301 NONAME + _ZN14EmailClientApi15NmApiAttachmentD2Ev @ 302 NONAME + _ZN14EmailClientApi16NmApiTextContent10setContentERK7QString @ 303 NONAME + _ZN14EmailClientApi16NmApiTextContentC1Ev @ 304 NONAME + _ZN14EmailClientApi16NmApiTextContentC2Ev @ 305 NONAME + _ZN14EmailClientApi16NmApiTextContentD0Ev @ 306 NONAME + _ZN14EmailClientApi16NmApiTextContentD1Ev @ 307 NONAME + _ZN14EmailClientApi16NmApiTextContentD2Ev @ 308 NONAME + _ZN14EmailClientApi19NmApiMessageContent10isCompleteEv @ 309 NONAME + _ZN14EmailClientApi19NmApiMessageContent11setCompleteEb @ 310 NONAME + _ZN14EmailClientApi19NmApiMessageContent14setContentTypeERK7QString @ 311 NONAME + _ZN14EmailClientApi19NmApiMessageContent5setIdEy @ 312 NONAME + _ZN14EmailClientApi19NmApiMessageContent7setSizeEj @ 313 NONAME + _ZN14EmailClientApi19NmApiMessageContentC1Ev @ 314 NONAME + _ZN14EmailClientApi19NmApiMessageContentC2Ev @ 315 NONAME + _ZN14EmailClientApi19NmApiMessageContentD0Ev @ 316 NONAME + _ZN14EmailClientApi19NmApiMessageContentD1Ev @ 317 NONAME + _ZN14EmailClientApi19NmApiMessageContentD2Ev @ 318 NONAME + _ZN14EmailClientApi19NmApiMessageManager11saveMessageERKNS_12NmApiMessageE @ 319 NONAME + _ZN14EmailClientApi19NmApiMessageManager11sendMessageERKNS_12NmApiMessageE @ 320 NONAME + _ZN14EmailClientApi19NmApiMessageManager12fetchMessageEy @ 321 NONAME + _ZN14EmailClientApi19NmApiMessageManager15fetchAttachmentERKNS_12NmApiMessageEy @ 322 NONAME + _ZN14EmailClientApi19NmApiMessageManager16createAttachmentERNS_12NmApiMessageERK8QVariant @ 323 NONAME + _ZN14EmailClientApi19NmApiMessageManager16removeAttachmentERNS_12NmApiMessageEy @ 324 NONAME + _ZN14EmailClientApi19NmApiMessageManager18createReplyMessageEPKNS_12NmApiMessageEPK8QVariantb @ 325 NONAME + _ZN14EmailClientApi19NmApiMessageManager20createForwardMessageEPNS_12NmApiMessageEPK8QVariant @ 326 NONAME + _ZN14EmailClientApi19NmApiMessageManagerC1EP7QObjecty @ 327 NONAME + _ZN14EmailClientApi19NmApiMessageManagerC2EP7QObjecty @ 328 NONAME + _ZN14EmailClientApi20NmApiMessageEnvelope12setMailboxIdEy @ 329 NONAME + _ZN14EmailClientApi20NmApiMessageEnvelope16getBccRecipientsER5QListINS_17NmApiEmailAddressEE @ 330 NONAME + _ZN14EmailClientApi20NmApiMessageEnvelope16setBccRecipientsERK5QListINS_17NmApiEmailAddressEE @ 331 NONAME + _ZNK14EmailClientApi16NmApiTextContent7contentEv @ 332 NONAME + _ZNK14EmailClientApi19NmApiMessageContent11contentTypeEv @ 333 NONAME + _ZNK14EmailClientApi19NmApiMessageContent2idEv @ 334 NONAME + _ZNK14EmailClientApi19NmApiMessageContent4sizeEv @ 335 NONAME + _ZNK14EmailClientApi20NmApiMessageEnvelope9mailboxIdEv @ 336 NONAME + _ZTIN14EmailClientApi12NmApiMessageE @ 337 NONAME + _ZTIN14EmailClientApi15NmApiAttachmentE @ 338 NONAME + _ZTIN14EmailClientApi16NmApiTextContentE @ 339 NONAME + _ZTIN14EmailClientApi19NmApiMessageContentE @ 340 NONAME + _ZTVN14EmailClientApi12NmApiMessageE @ 341 NONAME + _ZTVN14EmailClientApi15NmApiAttachmentE @ 342 NONAME + _ZTVN14EmailClientApi16NmApiTextContentE @ 343 NONAME + _ZTVN14EmailClientApi19NmApiMessageContentE @ 344 NONAME + _ZN14EmailClientApi18NmApiMessageSearch10initialiseERK5QListI7QStringENS_21NmApiMailSortCriteriaE @ 345 NONAME + _ZN14EmailClientApi18NmApiMessageSearch11qt_metacallEN11QMetaObject4CallEiPPv @ 346 NONAME + _ZN14EmailClientApi18NmApiMessageSearch11qt_metacastEPKc @ 347 NONAME + _ZN14EmailClientApi18NmApiMessageSearch12messageFoundERNS_12NmApiMessageE @ 348 NONAME + _ZN14EmailClientApi18NmApiMessageSearch14searchCompleteEi @ 349 NONAME + _ZN14EmailClientApi18NmApiMessageSearch16staticMetaObjectE @ 350 NONAME DATA 16 + _ZN14EmailClientApi18NmApiMessageSearch19getStaticMetaObjectEv @ 351 NONAME + _ZN14EmailClientApi18NmApiMessageSearch5startEv @ 352 NONAME + _ZN14EmailClientApi18NmApiMessageSearch6cancelEv @ 353 NONAME + _ZN14EmailClientApi18NmApiMessageSearchC1EP7QObjecty @ 354 NONAME + _ZN14EmailClientApi18NmApiMessageSearchC2EP7QObjecty @ 355 NONAME + _ZN14EmailClientApi18NmApiMessageSearchD0Ev @ 356 NONAME + _ZN14EmailClientApi18NmApiMessageSearchD1Ev @ 357 NONAME + _ZN14EmailClientApi18NmApiMessageSearchD2Ev @ 358 NONAME + _ZNK14EmailClientApi18NmApiMessageSearch10metaObjectEv @ 359 NONAME + _ZNK14EmailClientApi18NmApiMessageSearch9isRunningEv @ 360 NONAME + _ZTIN14EmailClientApi18NmApiMessageSearchE @ 361 NONAME + _ZTVN14EmailClientApi18NmApiMessageSearchE @ 362 NONAME + _ZN14EmailClientApi20NmApiMessageEnvelope11setPriorityENS_20NmApiMessagePriorityE @ 363 NONAME + _ZN14EmailClientApi20NmApiMessageEnvelope7setFlagENS_16NmApiMessageFlagEb @ 364 NONAME + _ZN14EmailClientApi20NmApiMessageEnvelope8setFlagsE6QFlagsINS_16NmApiMessageFlagEEb @ 365 NONAME + _ZNK14EmailClientApi20NmApiMessageEnvelope5flagsEv @ 366 NONAME + _ZNK14EmailClientApi20NmApiMessageEnvelope8priorityEv @ 367 NONAME + _ZNK14EmailClientApi20NmApiMessageEnvelope9isFlagSetENS_16NmApiMessageFlagE @ 368 NONAME + _ZN14EmailClientApi17NmApiEmailService10getMessageEyyyRNS_12NmApiMessageE @ 369 NONAME diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/inc/nmapiattachment_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/nmclientapi/inc/nmapiattachment_p.h Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,42 @@ +/* +* 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: +* Email message attachment private header. +*/ + +#ifndef NMAPIATTACHMENT_P_H_ +#define NMAPIATTACHMENT_P_H_ + +namespace EmailClientApi +{ + +class NmApiAttachmentPrivate : public QSharedData +{ + +public: + + NmApiAttachmentPrivate(); + virtual ~NmApiAttachmentPrivate(); + + QString fileName(); + XQSharableFile file(); + + void setFileName(const QString &fileName); + +private: + QString mFilename; +}; +} + +#endif /* NMAPIATTACHMENT_P_H_ */ diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/inc/nmapiengine.h --- a/emailservices/nmclientapi/inc/nmapiengine.h Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/nmclientapi/inc/nmapiengine.h Mon Oct 04 00:05:37 2010 +0300 @@ -18,6 +18,8 @@ #ifndef NMAPIENGINE_H #define NMAPIENGINE_H +#include + #include "nmcommon.h" #include "nmapiprivateclasses.h" @@ -28,6 +30,7 @@ class NmApiMailbox; class NmApiFolder; class NmApiMessageEnvelope; +class NmApiMessage; } class NmApiEngine : public QObject @@ -51,15 +54,23 @@ bool getMailboxById(const quint64 mailboxId, EmailClientApi::NmApiMailbox &mailbox); + bool getMessageById( + const quint64 mailboxId, + const quint64 folderId, + const quint64 messageId, + EmailClientApi::NmApiMessage &message); + void startCollectingEvents(); - + + bool listMailPlugins(RPointerArray &mailPlugins); + signals: /*! It contains info about event in emailstore. \arg Contains info about event and related object (message or mailbox list) */ - void emailStoreEvent(NmApiMessage message); + void emailStoreEvent(NmApiEvent event); private slots: void mailboxChangedArrived(NmMailboxEvent, const QList &mailboxIds); @@ -72,12 +83,15 @@ private: NmApiEngine(); virtual ~NmApiEngine(); + void listMailPlugins(); + void listMailPluginsL(); private: static NmApiEngine *mInstance;//! mMailPlugins; }; #endif /* NMAPIENGINE_H */ diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/inc/nmapieventnotifier_p.h --- a/emailservices/nmclientapi/inc/nmapieventnotifier_p.h Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/nmclientapi/inc/nmapieventnotifier_p.h Mon Oct 04 00:05:37 2010 +0300 @@ -39,9 +39,9 @@ bool isRunning() const; bool start(); void stop(); - void events(QList &events); + void events(QList &events); public slots: - void emailStoreEvent(const NmApiMessage &events); + void emailStoreEvent(const NmApiEvent &events); signals: void timedOut(); @@ -50,7 +50,7 @@ QTimer *mEmitSignals; NmApiEngine *mEngine; bool mIsRunning; - QList mBufferOfEvents; + QList mBufferOfEvents; }; } diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/inc/nmapiheaders.h --- a/emailservices/nmclientapi/inc/nmapiheaders.h Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/nmclientapi/inc/nmapiheaders.h Mon Oct 04 00:05:37 2010 +0300 @@ -39,8 +39,9 @@ #include #include +#include -#include +#include #include @@ -56,7 +57,11 @@ #include +#include +#include +#include +#include // nmail_settings_api #include @@ -76,8 +81,12 @@ #include #include #include +#include #include - +#include +#include +#include +#include // own headers #include "nmapidatapluginfactory.h" @@ -97,6 +106,11 @@ #include "nmapipopimapsettingsmanager.h" #include "nmapiprivateclasses.h" #include "nmapitypesconverter.h" +#include "nmapimessagesearch_p.h" +#include "nmapimessage_p.h" +#include "nmapimessagecontent_p.h" +#include "nmapitextcontent_p.h" +#include "nmapiattachment_p.h" #endif // NMAPIHEADERS_H diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/inc/nmapimessage_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/nmclientapi/inc/nmapimessage_p.h Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,52 @@ +/* +* 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: +* Api's email message private implementation. +*/ + +#ifndef NMAPIMESSAGE_P_H_ +#define NMAPIMESSAGE_P_H_ + +namespace EmailClientApi +{ + +class NmApiMessagePrivate : public QSharedData +{ + +public: + NmApiMessagePrivate(); + virtual ~NmApiMessagePrivate(); + + NmApiTextContent plainTextContent(); + NmApiTextContent htmlContent(); + bool isComplete(); + QList attachments(); + void addAttachment(NmApiAttachment &attachment); + NmApiMessageEnvelope& envelope(); + void setPlainTextContent(NmApiTextContent &textContent); + void setHtmlContent(NmApiTextContent &textContent); + void setComplete(bool complete); + void setAttachments(QList &attachments); + void setEnvelope(NmApiMessageEnvelope &envelope); + +private: + NmApiTextContent mPlainTextContent; + NmApiTextContent mHtmlContent; + bool mComplete; + QList mAttachments; + NmApiMessageEnvelope mEnvelope; +}; +} + +#endif /* NMAPIMESSAGE_P_H_ */ diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/inc/nmapimessagecontent_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/nmclientapi/inc/nmapimessagecontent_p.h Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,49 @@ +/* +* 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: +* Email message content private implementation. +*/ + +#ifndef NMAPIMESSAGECONTENT_P_H_ +#define NMAPIMESSAGECONTENT_P_H_ + +namespace EmailClientApi +{ + +class NmApiMessageContentPrivate : public QSharedData +{ +public: + NmApiMessageContentPrivate(); + virtual ~NmApiMessageContentPrivate(); + + QString contentType() const; + bool isComplete(); + quint32 size() const; + quint64 id() const; + + void setContentType(const QString &contentType); + void setComplete(bool complete); + void setSize(quint32 size); + void setId(quint64 id); + +private: + + QString mContentType; + bool mComplete; + quint32 mSize; + quint64 mId; +}; +} + +#endif /* NMAPIMESSAGEENVELOPE_P_H_ */ diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/inc/nmapimessageenvelope_p.h --- a/emailservices/nmclientapi/inc/nmapimessageenvelope_p.h Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/nmclientapi/inc/nmapimessageenvelope_p.h Mon Oct 04 00:05:37 2010 +0300 @@ -32,16 +32,24 @@ { } + NmApiMessageFlags flags() const; + void setFlags(const NmApiMessageFlags flags, bool set); + void setFlag(const NmApiMessageFlag flag, bool set); + bool isFlagSet(const NmApiMessageFlag flag) const; + +public: bool read; bool attachments; bool forwarded; bool replied; + QList toRecipients; QList ccRecipients; - QList toRecipients; + QList bccRecipients; quint64 id; quint64 parentFolder; + quint64 mailboxId; QString contentType; QString subject; @@ -52,6 +60,10 @@ quint64 fetchedSize; QDateTime sentTime; + +private: + NmApiMessageFlags messageFlags; + }; } diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/inc/nmapimessagemanager_p.h --- a/emailservices/nmclientapi/inc/nmapimessagemanager_p.h Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/nmclientapi/inc/nmapimessagemanager_p.h Mon Oct 04 00:05:37 2010 +0300 @@ -36,7 +36,7 @@ { Q_OBJECT public: - NmApiMessageManagerPrivate(quint64 mailboxId,QObject *parent = 0); + NmApiMessageManagerPrivate(QObject *parent,quint64 mailboxId); virtual ~NmApiMessageManagerPrivate(); private: diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/inc/nmapimessagesearch_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/nmclientapi/inc/nmapimessagesearch_p.h Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,79 @@ +/* +* 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: +* Message search private implementation. +*/ + +#ifndef NMAPIMESSAGESEARCHPRIVATE_H_ +#define NMAPIMESSAGESEARCHPRIVATE_H_ + +#include +#include +#include +#include + +class NmApiEngine; +class CFSMailBox; + +class NmApiMessageSearchPrivate : public QObject, + public MFSMailBoxSearchObserver +{ + Q_OBJECT + +public: + + NmApiMessageSearchPrivate(const quint64 mailboxId, QObject *parent = 0); + + ~NmApiMessageSearchPrivate(); + + bool initialise(const QList &searchStrings, EmailClientApi::NmApiMailSortCriteria sortCriteria); + + bool isRunning() const; + + bool start(); + + void cancel(); + +public: // From MFSMailboxSearchObserver + + void MatchFoundL(CFSMailMessage *aMatchMessage); + + void SearchCompletedL(); + + void ClientRequiredSearchPriority(TInt *apRequiredSearchPriority); + +private: + + void initialiseMailbox(); + +signals: + + void messageFound(EmailClientApi::NmApiMessage &message); + + void searchComplete(int result = 0); + + void canceled(); + +private: + + RPointerArray mSearchStrings; + TFSMailSortCriteria mSortCriteria; + TFSMailMsgId mMailBoxId; + CFSMailBox *mMailBox; + bool mIsRunning; + NmApiEngine *mEngine; + +}; + +#endif /* NMAPIMESSAGESEARCHPRIVATE_H_ */ diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/inc/nmapiprivateclasses.h --- a/emailservices/nmclientapi/inc/nmapiprivateclasses.h Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/nmclientapi/inc/nmapiprivateclasses.h Mon Oct 04 00:05:37 2010 +0300 @@ -44,7 +44,7 @@ It is grouped in list of object by event when mailbox change and by event, mailboxId anf folderId when messages change. */ -struct NmApiMessage +struct NmApiEvent { NmApiAction action; NmApiObjectType objectType; @@ -55,6 +55,6 @@ quint64 folderId; }; -Q_DECLARE_METATYPE(NmApiMessage) +Q_DECLARE_METATYPE(NmApiEvent) #endif /* NMAPIPRIVATECLASSES_H */ diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/inc/nmapitextcontent_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/nmclientapi/inc/nmapitextcontent_p.h Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,41 @@ +/* +* 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: +* Email message text content private header. +*/ + +#ifndef NMAPITEXTCONTENT_P_H_ +#define NMAPITEXTCONTENT_P_H_ + +namespace EmailClientApi +{ + +class NmApiTextContentPrivate : public QSharedData +{ + +public: + + NmApiTextContentPrivate(); + virtual ~NmApiTextContentPrivate(); + + QString content() const; + void setContent(const QString &content); + +private: + + QString mContent; +}; +} + +#endif /* NMAPITEXTCONTENT_P_H_ */ diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/inc/nmapitypesconverter.h --- a/emailservices/nmclientapi/inc/nmapitypesconverter.h Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/nmclientapi/inc/nmapitypesconverter.h Mon Oct 04 00:05:37 2010 +0300 @@ -24,6 +24,8 @@ class NmFolder; class NmMessageEnvelope; class NmAddress; +class NmMessage; +class NmMessagePart; /*! */ @@ -33,6 +35,8 @@ class NmApiFolder; class NmApiMessageEnvelope; class NmApiEmailAddress; +class NmApiMessage; +class NmApiAttachment; } @@ -45,6 +49,8 @@ const NmMessageEnvelope &envelope); static QList NmAddress2QString( const QList &addresses); + static EmailClientApi::NmApiMessage NmMessage2NmApiMessage(NmMessage &message); + }; #endif /* NMTOAPICONVERTER_H_ */ diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/nmclientapi.pro --- a/emailservices/nmclientapi/nmclientapi.pro Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/nmclientapi/nmclientapi.pro Mon Oct 04 00:05:37 2010 +0300 @@ -31,7 +31,7 @@ DEPENDPATH += ../../email_plat/nmail_client_api \ ../../email_plat/nmail_settings_api \ - + $$APP_LAYER_SYSTEMINCLUDE MOC_DIR = tmp @@ -51,7 +51,12 @@ nmapimessagetask.h \ nmapimessagemanager.h \ nmapisettingsmanager.h \ - nmapimailboxsettings.h + nmapimailboxsettings.h \ + nmapimessagesearch.h \ + nmapimessage.h \ + nmapimessagecontent.h \ + nmapitextcontent.h \ + nmapiattachment.h # private headers HEADERS += inc/nmapidatapluginfactory.h \ @@ -68,12 +73,16 @@ inc/nmapimessagebody_p.h \ inc/nmapimessageenvelope_p.h \ inc/nmapimessagemanager_p.h \ - inc/nmapisettingsmanager_p.h \ + inc/nmapisettingsmanager_p.h \ inc/nmapipopimapsettingsmanager.h \ inc/nmapiprivateclasses.h \ inc/nmapitypesconverter.h \ - inc/nmapiheaders.h - + inc/nmapiheaders.h \ + inc/nmapimessagesearch_p.h \ + inc/nmapimessage_p.h \ + inc/nmapimessagecontent_p.h \ + inc/nmapitextcontent_p.h \ + inc/nmapiattachment_p.h SOURCES += src/nmapidatapluginfactory.cpp \ src/nmapiemailaddress.cpp \ src/nmapiemailservice.cpp \ @@ -96,11 +105,21 @@ src/nmapimessagebody.cpp \ src/nmapimessageenvelope.cpp \ src/nmapipopimapsettingsmanager.cpp \ - src/nmapimessagemanager_p.cpp \ - src/nmapimessagemanager.cpp \ - src/nmapisettingsmanager_p.cpp \ - src/nmapisettingsmanager.cpp \ - src/nmapitypesconverter.cpp + src/nmapimessagemanager_p.cpp \ + src/nmapimessagemanager.cpp \ + src/nmapisettingsmanager_p.cpp \ + src/nmapisettingsmanager.cpp \ + src/nmapitypesconverter.cpp \ + src/nmapimessagesearch.cpp \ + src/nmapimessagesearch_p.cpp \ + src/nmapimessage.cpp \ + src/nmapimessage_p.cpp \ + src/nmapimessagecontent.cpp \ + src/nmapimessagecontent_p.cpp \ + src/nmapitextcontent.cpp \ + src/nmapitextcontent_p.cpp \ + src/nmapiattachment.cpp \ + src/nmapiattachment_p.cpp @@ -108,27 +127,35 @@ symbian*: { TARGET.EPOCALLOWDLLDATA = 1 TARGET.CAPABILITY = ALL \ - -TCB + -TCB + TARGET.CAPABILITY += CAP_ECOM_PLUGIN + TARGET.UID2 = 0x1000008D TARGET.UID3 = 0x2002C366 INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE - - LIBS += -lnmailbase \ - -limcm \ - -lxqsettingsmanager \ - -lxqutils \ - -lnmailuiengine - + MMP_RULES += "SYSTEMINCLUDE /epoc32/include/ecom" + + LIBS += -lnmailbase \ + -limcm \ + -lxqsettingsmanager \ + -lxqutils \ + -lnmailuiengine \ + -lFSFWCommonLib \ + -lECom \ + -lxqserviceutil \ + -lefsrv + defBlock = \ "$${LITERAL_HASH}if defined(MARM)" \ "DEFFILE eabi/nmailclientapi.def" \ - "$${LITERAL_HASH}else" \ + "$${LITERAL_HASH}else" \ "DEFFILE bwins/nmailclientapi.def" \ "$${LITERAL_HASH}endif" MMP_RULES += defBlock + MMP_RULES += SMPSAFE BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include " \ "rom/nmailclientapi.iby CORE_APP_LAYER_IBY_EXPORT_PATH(nmailclientapi.iby)" diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/src/nmapiattachment.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/nmclientapi/src/nmapiattachment.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,67 @@ +/* + * 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: + * Email message attachment implementation. + */ + +#include "nmapiheaders.h" + +namespace EmailClientApi +{ + +/*! + Class constructor. +*/ +NmApiAttachment::NmApiAttachment() +{ + NM_FUNCTION; + d = new NmApiAttachmentPrivate(); +} + +/*! + Class destructor. +*/ +NmApiAttachment::~NmApiAttachment() +{ + NM_FUNCTION; +} + +/*! + Getter for filename + */ +QString NmApiAttachment::fileName() +{ + NM_FUNCTION; + return d->fileName(); +} + +/*! + Getter for file + */ +XQSharableFile NmApiAttachment::file() +{ + NM_FUNCTION; + return d->file(); +} + +/*! + Setter for filename + */ +void NmApiAttachment::setFileName(const QString &fileName) +{ + NM_FUNCTION; + d->setFileName(fileName); +} + +} diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/src/nmapiattachment_p.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/nmclientapi/src/nmapiattachment_p.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,69 @@ +/* + * 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: + * Email attachment private implementation. + */ + +#include "nmapiheaders.h" +#include + +namespace EmailClientApi +{ + +/*! + Class constructor. +*/ +NmApiAttachmentPrivate::NmApiAttachmentPrivate() +{ + NM_FUNCTION; +} + +/*! + Class destructor. +*/ +NmApiAttachmentPrivate::~NmApiAttachmentPrivate() +{ + NM_FUNCTION; +} + +/*! + Getter for filename + */ +QString NmApiAttachmentPrivate::fileName() +{ + NM_FUNCTION; + return mFilename; +} + +/*! + Getter for file + */ +XQSharableFile NmApiAttachmentPrivate::file() +{ + NM_FUNCTION; + XQSharableFile *file = new XQSharableFile(); + file->open(mFilename); + return *file; +} + +/*! + Setter for filename + */ +void NmApiAttachmentPrivate::setFileName(const QString &fileName) +{ + NM_FUNCTION; + mFilename = fileName; +} + +} diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/src/nmapiemailservice.cpp --- a/emailservices/nmclientapi/src/nmapiemailservice.cpp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapiemailservice.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -73,6 +73,23 @@ } /*! + gets mail message envelope by id (see also NmEventNotifier) + */ +bool NmApiEmailService::getMessage( + const quint64 mailboxId, + const quint64 folderId, + const quint64 messageId, + EmailClientApi::NmApiMessage &message) +{ + NM_FUNCTION; + + if (!mEngine) { + return false; + } + return mEngine->getMessageById(mailboxId, folderId, messageId, message); +} + +/*! Initialises email service. this must be called and initialised signal received before services of the library are used. */ diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/src/nmapiengine.cpp --- a/emailservices/nmclientapi/src/nmapiengine.cpp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapiengine.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -17,7 +17,6 @@ #include "nmapiheaders.h" - NmApiEngine *NmApiEngine::mInstance = NULL; quint32 NmApiEngine::mReferenceCount = 0; @@ -46,6 +45,20 @@ NM_FUNCTION; NmApiDataPluginFactory::releaseInstance(mFactory); + + if (mMailPlugins.Count() > 0) { + CFSMailPlugin* plugin = NULL; + for (int i = 0; i < mMailPlugins.Count(); ++i) { + plugin = mMailPlugins[i]; + + if (plugin) { + delete plugin; + plugin = NULL; + } + + CFSMailPlugin::Close(); + } + } } /*! @@ -94,11 +107,11 @@ { NM_FUNCTION; - NmApiMessage message; - message.objectType = EMailbox; + NmApiEvent event; + event.objectType = EMailbox; switch (mailboxEvent) { case NmMailboxCreated: { - message.action = ENew; + event.action = ENew; // subscribe all events also for these new mailboxes for(int i=0; iinterfaceInstance()->subscribeMailboxEvents(mailboxIds[i]); @@ -106,7 +119,7 @@ } break; case NmMailboxDeleted: { - message.action = EDeleted; + event.action = EDeleted; // unsubscribe all events from deleted mailboxes for(int i=0; iinterfaceInstance()->unsubscribeMailboxEvents(mailboxIds[i]); @@ -114,21 +127,21 @@ } break; case NmMailboxChanged: { - message.action = EChange; + event.action = EChange; } break; default: break; } - message.folderId = 0; - message.mailboxId = 0; + event.folderId = 0; + event.mailboxId = 0; for (int i = 0; i < mailboxIds.count(); i++) { - message.objectIds.append(mailboxIds.at(i).id()); + event.objectIds.append(mailboxIds.at(i).id()); } - emit emailStoreEvent(message); + emit emailStoreEvent(event); } /*! @@ -148,33 +161,33 @@ { NM_FUNCTION; - NmApiMessage message; - message.objectType = EMessage; + NmApiEvent event; + event.objectType = EMessage; switch (messageEvent) { case NmMessageCreated: { - message.action = ENew; + event.action = ENew; } break; case NmMessageDeleted: { - message.action = EDeleted; + event.action = EDeleted; } break; case NmMessageChanged: { - message.action = EChange; + event.action = EChange; } break; default: break; } - message.folderId = folderId.id(); - message.mailboxId = mailboxId.id(); + event.folderId = folderId.id(); + event.mailboxId = mailboxId.id(); for (int i = 0; i < messageIds.count(); i++) { - message.objectIds.append(messageIds.at(i).id()); + event.objectIds.append(messageIds.at(i).id()); } - emit emailStoreEvent(message); + emit emailStoreEvent(event); } /*! @@ -343,6 +356,57 @@ } /*! + Return message given by mailbox, folder and message id. + + \param mailboxId Mailbox id from where message should come + \param folderId Folder id from where message should come + \param messageId Id of message which should be returned + \param message Envelope to fill. + + \return Return true if it will find any envelope + */ +bool NmApiEngine::getMessageById( + const quint64 mailboxId, + const quint64 folderId, + const quint64 messageId, + EmailClientApi::NmApiMessage &message) +{ + NM_FUNCTION; + + bool found = false; + + listMailPlugins(); + + CFSMailPlugin *plugin = NULL; + CFSMailMessage* fsMessage = NULL; + TFSMailMsgId fsMailBoxId = TFSMailMsgId(mailboxId); + TFSMailMsgId fsFolderId = TFSMailMsgId(folderId); + TFSMailMsgId fsMessageId = TFSMailMsgId(messageId); + + for (int i = 0; i < mMailPlugins.Count() && !fsMessage; i++){ + plugin = mMailPlugins[i]; + if (plugin) { + QT_TRY { + fsMessage = plugin->GetMessageByUidL(fsMailBoxId, + fsFolderId, + fsMessageId, + EFSMsgDataStructure); + } + QT_CATCH(...){} + } + } + if (fsMessage) { + NmMessage *nmMessage = fsMessage->GetNmMessage(); + EmailClientApi::NmApiMessage apiMessage = NmToApiConverter::NmMessage2NmApiMessage(*nmMessage); + message = apiMessage; + found = true; + delete fsMessage; + } + return found; +} + + +/*! Return mailbox given by mailbox id. \param mailboxId Id of Mailbox which should be returned @@ -371,3 +435,65 @@ return found; } + +/*! + \fn listMailPlugins + \param mailPlugins List of mail plugins to be listed. + \return True if operation completed succesfully, otherwise false. + + Lists all mail plugins. + */ +bool NmApiEngine::listMailPlugins(RPointerArray &mailPlugins) +{ + NM_FUNCTION; + bool ret = false; + if (mMailPlugins.Count() == 0) { + TRAPD(err, listMailPluginsL()); + if (err == KErrNone){ + ret = true; + } + } else { + ret = true; + } + mailPlugins = mMailPlugins; + + return ret; +} + +/*! + \fn listMailPlugins + + Lists all mail plugins. + */ +void NmApiEngine::listMailPlugins() +{ + NM_FUNCTION; + if (mMailPlugins.Count() == 0) { + TRAP_IGNORE(listMailPluginsL()); + } +} + +/*! + \fn ListMailPluginsL + + Leaving version of listMailPlugins. + */ +void NmApiEngine::listMailPluginsL() +{ + NM_FUNCTION; + + RPointerArray implInfo; + CFSMailPlugin::ListImplementationsL(implInfo); + CleanupClosePushL(implInfo); + CFSMailPlugin* plugin = NULL; + for (int i = 0; i < implInfo.Count(); ++i) { + TUid id = implInfo[i]->ImplementationUid(); + plugin = CFSMailPlugin::NewL(id); + + if (plugin) { + mMailPlugins.AppendL(plugin); + } + } + CleanupStack::Pop(&implInfo); +} + diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/src/nmapieventnotifier.cpp --- a/emailservices/nmclientapi/src/nmapieventnotifier.cpp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapieventnotifier.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -94,10 +94,10 @@ qRegisterMetaType ("EmailClientApi::NmApiMailboxEvent"); qRegisterMetaType ("EmailClientApi::NmApiMessageEvent"); - QList events; + QList events; mNmApiEventNotifierPrivate->events(events); while (!events.isEmpty()) { - NmApiMessage event = events.takeFirst(); + NmApiEvent event = events.takeFirst(); switch (event.objectType) { case EMailbox: switch (event.action) { diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/src/nmapieventnotifier_p.cpp --- a/emailservices/nmclientapi/src/nmapieventnotifier_p.cpp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapieventnotifier_p.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -69,10 +69,10 @@ } else { qRegisterMetaType > ("QList"); - qRegisterMetaType ("NmApiMessage"); + qRegisterMetaType ("NmApiEvent"); - connect(mEngine, SIGNAL(emailStoreEvent(NmApiMessage)), this, - SLOT(emailStoreEvent(NmApiMessage))); + connect(mEngine, SIGNAL(emailStoreEvent(NmApiEvent)), this, + SLOT(emailStoreEvent(NmApiEvent))); mEngine->startCollectingEvents(); @@ -89,14 +89,14 @@ { mIsRunning = false; mEmitSignals->stop(); - disconnect(mEngine, SIGNAL(emailStoreEvent(NmApiMessage)), this, - SLOT(emailStoreEvent(NmApiMessage))); + disconnect(mEngine, SIGNAL(emailStoreEvent(NmApiEvent)), this, + SLOT(emailStoreEvent(NmApiEvent))); } /*! Returns event buffer, after function call the buffer is empty */ -void NmApiEventNotifierPrivate::events(QList &events) +void NmApiEventNotifierPrivate::events(QList &events) { while (!mBufferOfEvents.isEmpty()) { events << mBufferOfEvents.takeFirst(); @@ -107,10 +107,10 @@ Add one email event into buffer. It is run by \sa NmApiEngine::emailStoreEvent signal. - \sa NmApiMessage + \sa NmApiEvent \param events It contains full info about object and it event. */ -void NmApiEventNotifierPrivate::emailStoreEvent(const NmApiMessage &events) +void NmApiEventNotifierPrivate::emailStoreEvent(const NmApiEvent &events) { NM_FUNCTION; mBufferOfEvents << events; @@ -127,8 +127,8 @@ mIsRunning = false; mEmitSignals->stop(); - disconnect(mEngine, SIGNAL(emailStoreEvent(NmApiMessage)), this, - SLOT(emailStoreEvent(NmApiMessage))); + disconnect(mEngine, SIGNAL(emailStoreEvent(NmApiEvent)), this, + SLOT(emailStoreEvent(NmApiEvent))); mBufferOfEvents.clear(); } diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/src/nmapimessage.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/nmclientapi/src/nmapimessage.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,173 @@ +/* + * 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: + * Api's email message implementation. + */ + +#include "nmapiheaders.h" + +namespace EmailClientApi +{ + +/*! + Class constructor. +*/ +NmApiMessage::NmApiMessage() +{ + NM_FUNCTION; + d = new NmApiMessagePrivate(); +} + +/*! + Class destructor. +*/ +NmApiMessage::~NmApiMessage() +{ + NM_FUNCTION; +} + +/*! + \fn plainTextContent + \return Message plain text content. + + Returns message plain text content. + */ +NmApiTextContent NmApiMessage::plainTextContent() +{ + NM_FUNCTION; + return d->plainTextContent(); +} + +/*! + \fn htmlContent + \return Message html text content. + + Returns message html text content. + */ +NmApiTextContent NmApiMessage::htmlContent() +{ + NM_FUNCTION; + return d->htmlContent(); +} + +/*! + \fn isComplete + \return Message complete state. + + Returns message complete state. + */ +bool NmApiMessage::isComplete() +{ + NM_FUNCTION; + return d->isComplete(); +} + +/*! + \fn getAttachments + \return Message attachment list. + + Returns message attachment list. + */ +QList NmApiMessage::attachments() +{ + NM_FUNCTION; + return d->attachments(); +} + + +/*! + \fn addAttachment + \param attachment Attachment. + + Add attachment to message. + */ +void NmApiMessage::addAttachment(NmApiAttachment &attachment) +{ + NM_FUNCTION; + d->addAttachment(attachment); +} + +/*! + \fn envelope + \return Message envelope. + + Returns message envelope. + */ +NmApiMessageEnvelope& NmApiMessage::envelope() +{ + NM_FUNCTION; + return d->envelope(); +} + +/*! + \fn setPlainTextContent + \param textContent Content. + + Setter for plain text content. + */ +void NmApiMessage::setPlainTextContent(NmApiTextContent &textContent) +{ + NM_FUNCTION; + d->setPlainTextContent(textContent); +} + +/*! + \fn setHtmlContent + \param textContent Content. + + Setter for html text content. + */ +void NmApiMessage::setHtmlContent(NmApiTextContent &textContent) +{ + NM_FUNCTION; + d->setHtmlContent(textContent); +} + +/*! + \fn setComplete + \param complete Complete state. + + Setter for message complete state. + */ +void NmApiMessage::setComplete(bool complete) +{ + NM_FUNCTION; + d->setComplete(complete); +} + +/*! + \fn setAttachments + \param attachments Attachments. + + Setter for set attachments to message. + */ +void NmApiMessage::setAttachments(QList &attachments) +{ + NM_FUNCTION; + d->setAttachments(attachments); +} + +/*! + \fn setEnvelope + \param envelope Envelope. + + Setter for message envelope. + */ +void NmApiMessage::setEnvelope(NmApiMessageEnvelope &envelope) +{ + NM_FUNCTION; + d->setEnvelope(envelope); +} + +} diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/src/nmapimessage_p.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/nmclientapi/src/nmapimessage_p.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,173 @@ +/* + * 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: + * Api's email message implementation. + */ + +#include "nmapiheaders.h" + +namespace EmailClientApi +{ + +/*! + Class constructor. +*/ +NmApiMessagePrivate::NmApiMessagePrivate() +{ + NM_FUNCTION; +} + +/*! + Class destructor. +*/ +NmApiMessagePrivate::~NmApiMessagePrivate() +{ + NM_FUNCTION; +} + +/*! + \fn plainTextContent + \return Message plain text content. + + Returns message plain text content. + */ +NmApiTextContent NmApiMessagePrivate::plainTextContent() +{ + NM_FUNCTION; + return mPlainTextContent; +} + +/*! + \fn htmlContent + \return Message html text content. + + Returns message html text content. + */ +NmApiTextContent NmApiMessagePrivate::htmlContent() +{ + NM_FUNCTION; + return mHtmlContent; +} + +/*! + \fn isComplete + \return Message complete state. + + Returns message complete state. + */ +bool NmApiMessagePrivate::isComplete() +{ + NM_FUNCTION; + return mComplete; +} + +/*! + \fn getAttachments + \return Message attachment list. + + Returns message attachment list. + */ +QList NmApiMessagePrivate::attachments() +{ + NM_FUNCTION; + return mAttachments; +} + + +/*! + \fn addAttachment + \param attachment Attachment. + + Add attachment to message. + */ +void NmApiMessagePrivate::addAttachment(NmApiAttachment &attachment) +{ + NM_FUNCTION; + mAttachments.append(attachment); +} + +/*! + \fn envelope + \return Message envelope. + + Returns message envelope. + */ +NmApiMessageEnvelope& NmApiMessagePrivate::envelope() +{ + NM_FUNCTION; + return mEnvelope; +} + +/*! + \fn setPlainTextContent + \param textContent Content. + + Setter for plain text content. + */ +void NmApiMessagePrivate::setPlainTextContent(NmApiTextContent &textContent) +{ + NM_FUNCTION; + mPlainTextContent = textContent; +} + +/*! + \fn setHtmlContent + \param textContent Content. + + Setter for html text content. + */ +void NmApiMessagePrivate::setHtmlContent(NmApiTextContent &textContent) +{ + NM_FUNCTION; + mHtmlContent = textContent; +} + +/*! + \fn setComplete + \param complete Complete state. + + Setter for message complete state. + */ +void NmApiMessagePrivate::setComplete(bool complete) +{ + NM_FUNCTION; + mComplete = complete; +} + +/*! + \fn setAttachments + \param attachments Attachments. + + Setter for set attachments to message. + */ +void NmApiMessagePrivate::setAttachments(QList &attachments) +{ + NM_FUNCTION; + mAttachments = attachments; + +} + +/*! + \fn setEnvelope + \param envelope Envelope. + + Setter for message envelope. + */ +void NmApiMessagePrivate::setEnvelope(NmApiMessageEnvelope &envelope) +{ + NM_FUNCTION; + mEnvelope = envelope; +} + +} diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/src/nmapimessagecontent.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/nmclientapi/src/nmapimessagecontent.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,112 @@ +/* +* 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: +* Email message content implementation. +*/ + +#include "nmapiheaders.h" + +namespace EmailClientApi +{ + +/*! + Constructor for NmApiMessageContent + */ +NmApiMessageContent::NmApiMessageContent() +{ + NM_FUNCTION; + d = new NmApiMessageContentPrivate(); +} + +/*! + Destructor for NmApiMessageContent + */ +NmApiMessageContent::~NmApiMessageContent() +{ + NM_FUNCTION; +} + +/*! + Getter for content type + */ +QString NmApiMessageContent::contentType() const +{ + NM_FUNCTION; + return d->contentType(); +} + +/*! + Getter for is complete + */ +bool NmApiMessageContent::isComplete() +{ + NM_FUNCTION; + return d->isComplete(); +} + +/*! + Getter for size + */ +quint32 NmApiMessageContent::size() const +{ + NM_FUNCTION; + return d->size(); +} + +/*! + Getter for id + */ +quint64 NmApiMessageContent::id() const +{ + NM_FUNCTION; + return d->id(); +} + +/*! + Setter for content type + */ +void NmApiMessageContent::setContentType(const QString &contentType) +{ + NM_FUNCTION; + d->setContentType(contentType); +} + +/*! + Setter for is complete + */ +void NmApiMessageContent::setComplete(bool complete) +{ + NM_FUNCTION; + d->setComplete(complete); +} + +/*! + Setter for size + */ +void NmApiMessageContent::setSize(quint32 size) +{ + NM_FUNCTION; + d->setSize(size); +} + +/*! + Setter for id + */ +void NmApiMessageContent::setId(quint64 id) +{ + NM_FUNCTION; + d->setId(id); +} + +} diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/src/nmapimessagecontent_p.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/nmclientapi/src/nmapimessagecontent_p.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,111 @@ +/* + * 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: + * Email message content private implementation. + */ + +#include "nmapiheaders.h" + +namespace EmailClientApi +{ + +/*! + Constructor for NmApiMessageContentPrivate + */ +NmApiMessageContentPrivate::NmApiMessageContentPrivate() +{ + NM_FUNCTION; +} + +/*! + Destructor for NmApiMessageContentPrivate + */ +NmApiMessageContentPrivate::~NmApiMessageContentPrivate() +{ + NM_FUNCTION; +} + +/*! + Getter for content type + */ +QString NmApiMessageContentPrivate::contentType() const +{ + NM_FUNCTION; + return mContentType; +} + +/*! + Getter for is complete + */ +bool NmApiMessageContentPrivate::isComplete() +{ + NM_FUNCTION; + return mComplete; +} + +/*! + Getter for size + */ +quint32 NmApiMessageContentPrivate::size() const +{ + NM_FUNCTION; + return mSize; +} + +/*! + Getter for id + */ +quint64 NmApiMessageContentPrivate::id() const +{ + NM_FUNCTION; + return mId; +} + +/*! + Setter for content type + */ +void NmApiMessageContentPrivate::setContentType(const QString &contentType) +{ + NM_FUNCTION; + mContentType = contentType; +} + +/*! + Setter for is complete + */ +void NmApiMessageContentPrivate::setComplete(bool complete) +{ + NM_FUNCTION; + mComplete = complete; +} + +/*! + Setter for size + */ +void NmApiMessageContentPrivate::setSize(quint32 size) +{ + NM_FUNCTION; + mSize = size; +} + +/*! + Setter for id + */ +void NmApiMessageContentPrivate::setId(quint64 id) +{ + NM_FUNCTION; + mId = id; +} + +} diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/src/nmapimessageenvelope.cpp --- a/emailservices/nmclientapi/src/nmapimessageenvelope.cpp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapimessageenvelope.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -21,6 +21,55 @@ namespace EmailClientApi { + +/*! + getter for flags + */ +NmApiMessageFlags NmApiMessageEnvelopePrivate::flags() const +{ + NM_FUNCTION; + + return messageFlags; +} + +/*! + setter for flags + */ +void NmApiMessageEnvelopePrivate::setFlags(const NmApiMessageFlags flags, bool set) +{ + NM_FUNCTION; + + if (set) { + messageFlags |= flags; + } else { + messageFlags &= ~flags; + } +} + +/*! + setter for flag + */ +void NmApiMessageEnvelopePrivate::setFlag(const NmApiMessageFlag flag, bool set) +{ + NM_FUNCTION; + + if (set) { + messageFlags |= flag; + } else { + messageFlags &= ~flag; + } +} + +/*! + getter for flag + */ +bool NmApiMessageEnvelopePrivate::isFlagSet(const NmApiMessageFlag flag) const +{ + NM_FUNCTION; + + return messageFlags.testFlag(flag); +} + /*! copying constructor for nmmessageenvelope */ @@ -96,6 +145,16 @@ } /*! + getter for id of mailbox Id + */ +quint64 NmApiMessageEnvelope::mailboxId() const +{ + NM_FUNCTION; + + return d->mailboxId; +} + +/*! getter for subject */ QString NmApiMessageEnvelope::subject() const @@ -136,6 +195,16 @@ } /*! + getter for bcc recipients + */ +void NmApiMessageEnvelope::getBccRecipients(QList &bccRecipients) +{ + NM_FUNCTION; + + bccRecipients = d->bccRecipients; +} + +/*! getter for sent time */ QDateTime NmApiMessageEnvelope::sentTime() const @@ -228,6 +297,16 @@ } /*! + setter for mailbox id + */ +void NmApiMessageEnvelope::setMailboxId(quint64 mailboxId) +{ + NM_FUNCTION; + + d->mailboxId = mailboxId; +} + +/*! setter for subject */ void NmApiMessageEnvelope::setSubject(const QString &subject) @@ -270,6 +349,17 @@ } /*! + setter for bcc recipients + */ +void NmApiMessageEnvelope::setBccRecipients( + const QList &bccRecipients) +{ + NM_FUNCTION; + + d->bccRecipients = bccRecipients; +} + +/*! setter for sent time */ void NmApiMessageEnvelope::setSentTime(QDateTime sentTime) @@ -388,5 +478,84 @@ return d->fetchedSize; } + +/*! + setter for message priority + */ +void NmApiMessageEnvelope::setPriority(NmApiMessagePriority priority) +{ + NM_FUNCTION; + + if (priority == NmApiMessagePriorityLow) { + d->setFlag(NmApiMessageFlagLow, true); + d->setFlag(NmApiMessageFlagImportant, false); + } + else if (priority == NmApiMessagePriorityHigh) { + d->setFlag(NmApiMessageFlagLow, false); + d->setFlag(NmApiMessageFlagImportant, true); + } + else { + d->setFlag(NmApiMessageFlagLow, false); + d->setFlag(NmApiMessageFlagImportant, false); + } +} + +/*! + getter for message priority + */ +NmApiMessagePriority NmApiMessageEnvelope::priority() const +{ + NM_FUNCTION; + + NmApiMessagePriority ret = NmApiMessagePriorityNormal; + if (d->isFlagSet(NmApiMessageFlagImportant)) { + ret = NmApiMessagePriorityHigh; + } + else if (d->isFlagSet(NmApiMessageFlagLow)) { + ret = NmApiMessagePriorityLow; + } + return ret; } +/*! + Returns message flags + */ +NmApiMessageFlags NmApiMessageEnvelope::flags() const +{ + NM_FUNCTION; + + return d->flags(); +} + +/*! + Returns message flags + */ +void NmApiMessageEnvelope::setFlags(const NmApiMessageFlags flags, bool set) +{ + NM_FUNCTION; + + return d->setFlags(flags, set); +} + +/*! + Returns message flags + */ +void NmApiMessageEnvelope::setFlag(const NmApiMessageFlag flag, bool set) +{ + NM_FUNCTION; + + return d->setFlag(flag, set); +} + +/*! + Returns message flags + */ +bool NmApiMessageEnvelope::isFlagSet(const NmApiMessageFlag flag) const +{ + NM_FUNCTION; + + return d->isFlagSet(flag); +} + +} + diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/src/nmapimessagemanager.cpp --- a/emailservices/nmclientapi/src/nmapimessagemanager.cpp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapimessagemanager.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -27,14 +27,10 @@ namespace EmailClientApi { - NmApiMessageManager::NmApiMessageManager(quint64 mailboxId,QObject *parent) +NmApiMessageManager::NmApiMessageManager(QObject *parent, quint64 mailboxId) :QObject(parent) { - d = new NmApiMessageManagerPrivate(mailboxId,this); - connect(d, SIGNAL(messagesCopied(int)),this,SIGNAL(messagesCopied(int))); - connect(d, SIGNAL(messagesCreated(int)),this,SIGNAL(messagesCreated(int))); - connect(d, SIGNAL(messagesMoved(int)),this,SIGNAL(messagesMoved(int))); - connect(d, SIGNAL(messagesDeleted(int)),this,SIGNAL(messagesDeleted(int))); + d = new NmApiMessageManagerPrivate(this, mailboxId); } NmApiMessageManager::~NmApiMessageManager() @@ -56,20 +52,22 @@ // creates fw message // signaled with forwardMessageCreated(NmApiMessage *message,int result) // * ownership transferred - bool NmApiMessageManager::createForwardMessage(const QVariant *initData) + bool NmApiMessageManager::createForwardMessage(NmApiMessage *orig,const QVariant *initData) { NM_FUNCTION; Q_UNUSED(initData); + Q_UNUSED(orig); return false; } // creates reply message // signaled with replyMessageCreated(NmApiMessage *message,int result) // * ownership transferred -bool NmApiMessageManager::createReplyMessage(const QVariant *initData, - bool replyAll) +bool NmApiMessageManager::createReplyMessage(const NmApiMessage *orig, + const QVariant *initData,bool replyAll) { NM_FUNCTION; + Q_UNUSED(orig); Q_UNUSED(initData); Q_UNUSED(replyAll); return false; @@ -89,24 +87,12 @@ quint64 sourceFolderId, quint64 targetFolderId) { - return d->moveMessages(messageIds,sourceFolderId,targetFolderId); -} - -/*! - \fn copyMessages - \param messageIds Id list of source messages. - \param sourceFolder Id of the source folder. - \param targetFolder Id of the target folder. - \return true if operation was successfully started. - - Starts async copy operation for given messages. - Completion signalled with messagesCopied(int result). - */ -bool NmApiMessageManager::copyMessages(const QList messageIds, - quint64 sourceFolder, - quint64 targetFolder) -{ - return d->copyMessages(messageIds, sourceFolder, targetFolder); + NM_FUNCTION; + Q_UNUSED(messageIds); + Q_UNUSED(sourceFolderId); + Q_UNUSED(targetFolderId); + return false; + //return d->moveMessages(messageIds,sourceFolderId,targetFolderId); } // signaled with messageSaved(quint64 messageId, int result) @@ -126,15 +112,15 @@ // starts fetching rest of message body from server // signaled with messageFetched(quint64 messageId, int result) -bool NmApiMessageManager::fetch(const NmApiMessage &message) +bool NmApiMessageManager::fetchMessage(quint64 messageId) { - Q_UNUSED(message); + Q_UNUSED(messageId); return false; } // moves message to outbox. Actual sending time may be immediate or scheduled // signaled with messageSent(quint64 messageId, int result) -bool NmApiMessageManager::send(const NmApiMessage &message) +bool NmApiMessageManager::sendMessage(const NmApiMessage &message) { Q_UNUSED(message); return false; @@ -143,7 +129,7 @@ // creates new attachment for a message. Currently attachment can be specified as file name (attachmentSpec is QString) // signaled with attachmentCreated(quint64 attachemntId) // * -bool NmApiMessageManager::createAttachment(NmApiEmailMessage &message, +bool NmApiMessageManager::createAttachment(NmApiMessage &message, const QVariant &attachmenSpec) { Q_UNUSED(message); @@ -153,10 +139,19 @@ // removes attachment from a message // signaled with attachmentRemoved(int result) -bool NmApiMessageManager::removeAttachment(NmApiEmailMessage &message, -quint64 /*attachmentId*/) +bool NmApiMessageManager::removeAttachment(NmApiMessage &message, +quint64 attachmentId) { Q_UNUSED(message); + Q_UNUSED(attachmentId); + return false; +} + +bool NmApiMessageManager::fetchAttachment(const NmApiMessage &relatedMessage, + quint64 attachmentId) +{ + Q_UNUSED(relatedMessage); + Q_UNUSED(attachmentId); return false; } diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/src/nmapimessagemanager_p.cpp --- a/emailservices/nmclientapi/src/nmapimessagemanager_p.cpp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapimessagemanager_p.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -21,7 +21,7 @@ namespace EmailClientApi { -NmApiMessageManagerPrivate::NmApiMessageManagerPrivate(quint64 mailboxId,QObject *parent) +NmApiMessageManagerPrivate::NmApiMessageManagerPrivate(QObject *parent,quint64 mailboxId) : QObject(parent), mState(NmApiMessageManagerPrivate::EIdle), mMailboxId(mailboxId) { diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/src/nmapimessagesearch.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/nmclientapi/src/nmapimessagesearch.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,91 @@ +/* + * 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: + * Email messages search implementation. + */ + +#include "nmapiheaders.h" + +namespace EmailClientApi +{ + +NmApiMessageSearch::NmApiMessageSearch(QObject *parent, quint64 mailboxId) : + NmApiMessageTask(parent) +{ + NM_FUNCTION; + d = new NmApiMessageSearchPrivate(mailboxId, this); + qRegisterMetaType ("EmailClientApi::NmApiMessage"); + connect(d, SIGNAL(messageFound(EmailClientApi::NmApiMessage&)), this, SIGNAL(messageFound(EmailClientApi::NmApiMessage&))); + connect(d, SIGNAL(searchComplete(int)), this, SIGNAL(searchComplete(int))); + connect(d, SIGNAL(canceled()), this, SIGNAL(canceled())); +} + +NmApiMessageSearch::~NmApiMessageSearch() +{ + NM_FUNCTION; +} + +/*! + \fn start + \return true if operation was started otherwise returns false. + + Starts search operation for given criterias if operation is not running. Only one search can be performed at a time. + Each found message signaled with messageFound(NmApiMessage &message). + Search completed signaled with searchComplete(int result). + Cancellation signalled with canceled(). + */ +bool NmApiMessageSearch::start() +{ + NM_FUNCTION; + return d->start(); +} + +/*! + \fn cancel + + Cancels current search operation and reset criterias. If operation is not running, nothing happens except criterias are reset. + Cancellation signalled with canceled(). + */ +void NmApiMessageSearch::cancel() +{ + NM_FUNCTION; + d->cancel(); +} + +/*! + \fn initialise + \param searchStrings List of search criteria strings. + \param sortCriteria Sort criteria for search. + \return true if initializing is successfully competed otherwise returns false. + + Initialize search criterias. + */ +bool NmApiMessageSearch::initialise(const QList &searchStrings, NmApiMailSortCriteria sortCriteria) +{ + NM_FUNCTION; + return d->initialise(searchStrings, sortCriteria); +} + +/*! + \fn isRunning + \return true if search operation is running otherwise returns false. + + Returns information about search operation running. + */ +bool NmApiMessageSearch::isRunning() const +{ + NM_FUNCTION; + return d->isRunning(); +} +} diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/src/nmapimessagesearch_p.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/nmclientapi/src/nmapimessagesearch_p.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,233 @@ +/* +* 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: +* Email messages search private implementation. +*/ + +#include "nmapiheaders.h" + +/*! + \class NmApiMessageSearchPrivate + \brief A Qt wrapper class for MFSMailBoxSearchObserver. +*/ + +/*! + Class constructor. +*/ +NmApiMessageSearchPrivate::NmApiMessageSearchPrivate(const quint64 mailboxId, QObject *parent) +: QObject(parent), + mMailBox(NULL), + mIsRunning(false), + mEngine(NULL) +{ + NM_FUNCTION; + NmId mailBoxId(mailboxId); + mMailBoxId = TFSMailMsgId(mailBoxId); + mEngine = NmApiEngine::instance(); +} + +/*! + Class destructor. +*/ +NmApiMessageSearchPrivate::~NmApiMessageSearchPrivate() +{ + NM_FUNCTION; + + mSearchStrings.ResetAndDestroy(); + + if (isRunning()) { + cancel(); + } + + if (mMailBox){ + delete mMailBox; + mMailBox = NULL; + } + + NmApiEngine::releaseInstance(mEngine); +} + +/*! + \fn isRunning + \return true if search operation is running otherwise returns false. + + Returns information about search operation running. + */ +bool NmApiMessageSearchPrivate::isRunning() const +{ + return mIsRunning; +} + +/*! + \fn start + \return true if operation was started otherwise returns false. + + Starts search operation for given criterias if operation is not running. Only one search can be performed at a time. + Each found message signaled with messageFound(NmApiMessage &message). + Search completed signaled with searchComplete(int result). + Cancellation signalled with canceled(). + */ +bool NmApiMessageSearchPrivate::start() +{ + NM_FUNCTION; + + bool ret = false; + + if (!isRunning() && mSearchStrings.Count() > 0) { + if (!mMailBox) { + initialiseMailbox(); + } + + if (mMailBox) { + TRAPD(err, mMailBox->SearchL(mSearchStrings, mSortCriteria, *this)); + if (err == KErrNone) { + mIsRunning = true; + ret = true; + } + } + } + + return ret; +} + +/*! + From MFSMailBoxSearchObserver. + Converts the ID of the received message into NmId and emits it with the + signal notifying that a match was found. + + \param aMatchMessage A message that matches the search criteria. This class + takes the ownership of the given instance. +*/ +void NmApiMessageSearchPrivate::MatchFoundL(CFSMailMessage *aMatchMessage) +{ + NM_FUNCTION; + + if (aMatchMessage) { + NmMessage *nmmessage = aMatchMessage->GetNmMessage(); + EmailClientApi::NmApiMessage message = NmToApiConverter::NmMessage2NmApiMessage(*nmmessage); + emit messageFound(message); + delete aMatchMessage; + aMatchMessage = NULL; + } +} + + +/*! + From MFSMailBoxSearchObserver. + Emits a signal to notify that the search is complete. +*/ +void NmApiMessageSearchPrivate::SearchCompletedL() +{ + NM_FUNCTION; + mIsRunning = false; + emit searchComplete(EmailClientApi::NmApiNoError); +} + + +/*! + From MFSMailBoxSearchObserver. +*/ +void NmApiMessageSearchPrivate::ClientRequiredSearchPriority( + TInt *apRequiredSearchPriority) +{ + Q_UNUSED(apRequiredSearchPriority); +} + +/*! + \fn cancel + + Cancels current search operation. If operation is not running, nothing happens. + Cancellation signalled with canceled(). + */ +void NmApiMessageSearchPrivate::cancel() +{ + NM_FUNCTION; + + if (isRunning()){ + if (mMailBox) { + mMailBox->CancelSearch(); + mMailBox->ClearSearchResultCache(); + + mSearchStrings.ResetAndDestroy(); + mSortCriteria.iField = EFSMailDontCare; + mSortCriteria.iOrder = EFSMailAscending; + mIsRunning = false; + emit canceled(); + } + } +} + +/*! + \fn initialise + \param searchStrings List of search criteria strings. + \param sortCriteria Sort criteria for search. + \return true if initializing is successfully completed otherwise returns false. + + Initialize search criterias. + */ +bool NmApiMessageSearchPrivate::initialise(const QList &searchStrings, EmailClientApi::NmApiMailSortCriteria sortCriteria) +{ + NM_FUNCTION; + bool ret = false; + + if (!isRunning() && searchStrings.count() > 0) { + bool appendError = false; + mSortCriteria.iField = TFSMailSortField(sortCriteria.iField); + mSortCriteria.iOrder = TFSMailSortOrder(sortCriteria.iOrder); + + mSearchStrings.ResetAndDestroy(); + + for (int i = 0; i < searchStrings.count() && !appendError; ++i) { + HBufC *buffer = XQConversions::qStringToS60Desc(searchStrings.at(i)); + TRAPD(err, mSearchStrings.AppendL(buffer)); + if (err != KErrNone) { + appendError = true; + } + } + + if (!appendError) { + ret = true; + } + else { + mSearchStrings.ResetAndDestroy(); + } + } + + return ret; +} + +/*! + \fn initialiseMailbox + + Initializes mailbox. + */ +void NmApiMessageSearchPrivate::initialiseMailbox() +{ + NM_FUNCTION; + RPointerArray mailPlugins; + if (mEngine) { + mEngine->listMailPlugins(mailPlugins); + } + CFSMailPlugin *plugin = NULL; + for (int i = 0; i < mailPlugins.Count() && !mMailBox; i++){ + plugin = mailPlugins[i]; + if (plugin) { + QT_TRY { + mMailBox = plugin->GetMailBoxByUidL(mMailBoxId); + } + QT_CATCH(...){} + } + } +} +// End of file. diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/src/nmapitextcontent.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/nmclientapi/src/nmapitextcontent.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,58 @@ +/* + * 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: + * Email message text content implementation. + */ + +#include "nmapiheaders.h" + +namespace EmailClientApi +{ + +/*! + Class constructor. +*/ +NmApiTextContent::NmApiTextContent() +{ + NM_FUNCTION; + d = new NmApiTextContentPrivate(); +} + +/*! + Class destructor. +*/ +NmApiTextContent::~NmApiTextContent() +{ + NM_FUNCTION; +} + +/*! + Getter for content + */ +QString NmApiTextContent::content() const +{ + NM_FUNCTION; + return d->content(); +} + +/*! + Setter for content + */ +void NmApiTextContent::setContent(const QString &content) +{ + NM_FUNCTION; + d->setContent(content); +} + +} diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/src/nmapitextcontent_p.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/nmclientapi/src/nmapitextcontent_p.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,57 @@ +/* + * 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: + * Email message text content private implementation. + */ + +#include "nmapiheaders.h" + +namespace EmailClientApi +{ + +/*! + Class constructor. +*/ +NmApiTextContentPrivate::NmApiTextContentPrivate() +{ + NM_FUNCTION; +} + +/*! + Class destructor. +*/ +NmApiTextContentPrivate::~NmApiTextContentPrivate() +{ + NM_FUNCTION; +} + +/*! + Getter for content + */ +QString NmApiTextContentPrivate::content() const +{ + NM_FUNCTION; + return mContent; +} + +/*! + Setter for content + */ +void NmApiTextContentPrivate::setContent(const QString &content) +{ + NM_FUNCTION; + mContent = content; +} + +} diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/src/nmapitypesconverter.cpp --- a/emailservices/nmclientapi/src/nmapitypesconverter.cpp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapitypesconverter.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -60,11 +60,14 @@ QList to = envelope.toRecipients(); QList cc = envelope.ccRecipients(); + QList bcc = envelope.bccRecipients(); QList to_api = NmAddress2QString(to); QList cc_api = NmAddress2QString(cc); + QList bcc_api = NmAddress2QString(bcc); api_env.setToRecipients(to_api); api_env.setCcRecipients(cc_api); + api_env.setBccRecipients(bcc_api); api_env.setHasAttachments(envelope.hasAttachments()); api_env.setId(envelope.messageId().id()); @@ -76,6 +79,8 @@ api_env.setSender(envelope.sender().address()); api_env.setSentTime(envelope.sentTime()); api_env.setSubject(envelope.subject()); + api_env.setMailboxId(envelope.messageId().id()); + api_env.setFlags(static_cast(static_cast(envelope.flags())), true); return api_env; } @@ -100,3 +105,55 @@ return nmAddresses; } +/*! + converts nmmessage to client api NmApiMessage + */ +EmailClientApi::NmApiMessage NmToApiConverter::NmMessage2NmApiMessage(NmMessage &message) +{ + NM_FUNCTION; + + EmailClientApi::NmApiMessage api_message; + QList attachments; + message.attachmentList(attachments); + + if (attachments.size() > 0){ + QList api_attachments; + for (int i = 0; i < attachments.size(); i++){ + NmMessagePart *part = attachments.at(i); + if (part->contentType().compare(EmailClientApi::NmApiContentTypeTextPlain) != 0 && + part->contentType().compare(EmailClientApi::NmApiContentTypeTextHtml) != 0) { + EmailClientApi::NmApiAttachment api_attachment; + api_attachment.setFileName(part->attachmentName()); + api_attachment.setId(part->partId().id()); + api_attachment.setContentType(part->contentType()); + api_attachment.setSize(part->size()); + api_attachments.append(api_attachment); + } + } + api_message.setAttachments(api_attachments); + } + + EmailClientApi::NmApiMessageEnvelope api_envelope = NmMessageEnvelope2NmApiMessageEnvelope(message.envelope()); + api_message.setEnvelope(api_envelope); + const NmMessagePart *plaintext = message.plainTextBodyPart(); + if (plaintext) { + EmailClientApi::NmApiTextContent api_plaintext; + api_plaintext.setContent(plaintext->textContent()); + api_plaintext.setId(plaintext->partId().id()); + api_plaintext.setContentType(plaintext->contentType()); + api_plaintext.setSize(plaintext->size()); + api_message.setPlainTextContent(api_plaintext); + } + + const NmMessagePart *htmlcontent = message.htmlBodyPart(); + if (htmlcontent) { + EmailClientApi::NmApiTextContent api_htmlcontent; + api_htmlcontent.setContent(htmlcontent->textContent()); + api_htmlcontent.setId(htmlcontent->partId().id()); + api_htmlcontent.setContentType(htmlcontent->contentType()); + api_htmlcontent.setSize(htmlcontent->size()); + api_message.setHtmlContent(api_htmlcontent); + } + + return api_message; +} diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmregister/nmregister.pro --- a/emailservices/nmregister/nmregister.pro Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/nmregister/nmregister.pro Mon Oct 04 00:05:37 2010 +0300 @@ -38,6 +38,7 @@ BLD_INF_RULES.prj_exports += "rom/nmregister.iby CORE_APP_LAYER_IBY_EXPORT_PATH(nmregister.iby)" BLD_INF_RULES.prj_exports += "rom/nmregisterlanguage.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(nmregisterlanguage.iby)" TARGET.EPOCALLOWDLLDATA = 1 +MMP_RULES += SMPSAFE } TARGET.CAPABILITY = ALL -TCB diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmregister/nmregisterinstaller/nmregisterinstaller.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/nmregister/nmregisterinstaller/nmregisterinstaller.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,36 @@ +/* +* 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: +* +*/ + +#include +#include +#include + +QTM_USE_NAMESPACE + +int main(int argc, char *argv[]) +{ + QCoreApplication app(argc, argv); + + QServiceManager manager; + + if (QFile::exists("c:/private/2002DD16/import/nmregister.xml")) { + manager.removeService("nmregister"); + manager.addService("c:/private/2002DD16/import/nmregister.xml"); + } else { + manager.removeService("nmregister"); + } +} diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmregister/nmregisterinstaller/nmregisterinstaller.pro --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/nmregister/nmregisterinstaller/nmregisterinstaller.pro Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,29 @@ +# +# 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: +# + +TEMPLATE = app + +QT = core +CONFIG += no_icon + +CONFIG += mobility +MOBILITY = serviceframework + +SOURCES += nmregisterinstaller.cpp + +symbian { + TARGET.CAPABILITY = ALL -TCB +} diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmutilities/bwins/nmutilitiesu.def --- a/emailservices/nmutilities/bwins/nmutilitiesu.def Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/nmutilities/bwins/nmutilitiesu.def Mon Oct 04 00:05:37 2010 +0300 @@ -20,4 +20,47 @@ ?metaObject@NmUiEventsNotifier@@UBEPBUQMetaObject@@XZ @ 19 NONAME ; struct QMetaObject const * NmUiEventsNotifier::metaObject(void) const ?parseKeyValue@NmUiEventsNotifier@@ABE_NABVQByteArray@@AAW4NmUiEventType@1@AAW4NmUiViewId@@AAVNmId@@@Z @ 20 NONAME ; bool NmUiEventsNotifier::parseKeyValue(class QByteArray const &, enum NmUiEventsNotifier::NmUiEventType &, enum NmUiViewId &, class NmId &) const ?keysEqual@NmUiEventsNotifier@@ABE_NABVXQSettingsKey@@ABVXQPublishAndSubscribeSettingsKey@@@Z @ 21 NONAME ; bool NmUiEventsNotifier::keysEqual(class XQSettingsKey const &, class XQPublishAndSubscribeSettingsKey const &) const + ?tr@NmContactHistoryModel@@SA?AVQString@@PBD0@Z @ 22 NONAME ; class QString NmContactHistoryModel::tr(char const *, char const *) + ?qt_metacall@NmContactHistoryModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 23 NONAME ; int NmContactHistoryModel::qt_metacall(enum QMetaObject::Call, int, void * *) + ?writeEntry@EmailMRU@@AAE_NHVQString@@0@Z @ 24 NONAME ; bool EmailMRU::writeEntry(int, class QString, class QString) + ?handleQueryCompleted@NmContactHistoryModel@@AAEXH@Z @ 25 NONAME ; void NmContactHistoryModel::handleQueryCompleted(int) + ?tr@NmContactHistoryModel@@SA?AVQString@@PBD0H@Z @ 26 NONAME ; class QString NmContactHistoryModel::tr(char const *, char const *, int) + ??0EmailMRU@@QAE@XZ @ 27 NONAME ; EmailMRU::EmailMRU(void) + ?writeCenRep@EmailMRU@@AAE_NHVQString@@@Z @ 28 NONAME ; bool EmailMRU::writeCenRep(int, class QString) + ?subItemAt@NmContactHistoryModelItem@@QBE?AVNmContactHistoryModelSubItem@@H@Z @ 29 NONAME ; class NmContactHistoryModelSubItem NmContactHistoryModelItem::subItemAt(int) const + ?getStaticMetaObject@NmContactHistoryModel@@SAABUQMetaObject@@XZ @ 30 NONAME ; struct QMetaObject const & NmContactHistoryModel::getStaticMetaObject(void) + ?updateMRU@EmailMRU@@QAE_NVQString@@0@Z @ 31 NONAME ; bool EmailMRU::updateMRU(class QString, class QString) + ?staticMetaObject@NmContactHistoryModel@@2UQMetaObject@@B @ 32 NONAME ; struct QMetaObject const NmContactHistoryModel::staticMetaObject + ?addressKeyByEntryIndex@EmailMRU@@CAHH@Z @ 33 NONAME ; int EmailMRU::addressKeyByEntryIndex(int) + ?contactId@NmContactHistoryModelItem@@QBEIXZ @ 34 NONAME ; unsigned int NmContactHistoryModelItem::contactId(void) const + ?query@NmContactHistoryModel@@QAEXABVQString@@@Z @ 35 NONAME ; void NmContactHistoryModel::query(class QString const &) + ?moveEntry@EmailMRU@@AAEXHH@Z @ 36 NONAME ; void EmailMRU::moveEntry(int, int) + ?trUtf8@NmContactHistoryModel@@SA?AVQString@@PBD0H@Z @ 37 NONAME ; class QString NmContactHistoryModel::trUtf8(char const *, char const *, int) + ?metaObject@NmContactHistoryModel@@UBEPBUQMetaObject@@XZ @ 38 NONAME ; struct QMetaObject const * NmContactHistoryModel::metaObject(void) const + ??1NmContactHistoryModelItem@@QAE@XZ @ 39 NONAME ; NmContactHistoryModelItem::~NmContactHistoryModelItem(void) + ??_ENmContactHistoryModel@@UAE@I@Z @ 40 NONAME ; NmContactHistoryModel::~NmContactHistoryModel(unsigned int) + ?reset@EmailMRU@@QAEXXZ @ 41 NONAME ; void EmailMRU::reset(void) + ?appendSubItem@NmContactHistoryModelItem@@QAEXVNmContactHistoryModelSubItem@@@Z @ 42 NONAME ; void NmContactHistoryModelItem::appendSubItem(class NmContactHistoryModelSubItem) + ?getEntry@EmailMRU@@QAE_NHAAVQString@@0@Z @ 43 NONAME ; bool EmailMRU::getEntry(int, class QString &, class QString &) + ?updateEntry@EmailMRU@@AAE_NHVQString@@@Z @ 44 NONAME ; bool EmailMRU::updateEntry(int, class QString) + ?readCenRep@EmailMRU@@AAE?AVQString@@H@Z @ 45 NONAME ; class QString EmailMRU::readCenRep(int) + ?searchForAddress@EmailMRU@@AAEHVQString@@@Z @ 46 NONAME ; int EmailMRU::searchForAddress(class QString) + ?subEntries@NmContactHistoryModelItem@@QBE?AV?$QList@VNmContactHistoryModelSubItem@@@@XZ @ 47 NONAME ; class QList NmContactHistoryModelItem::subEntries(void) const + ??1NmContactHistoryModel@@UAE@XZ @ 48 NONAME ; NmContactHistoryModel::~NmContactHistoryModel(void) + ?getNextEntryIndex@EmailMRU@@AAEIXZ @ 49 NONAME ; unsigned int EmailMRU::getNextEntryIndex(void) + ?trUtf8@NmContactHistoryModel@@SA?AVQString@@PBD0@Z @ 50 NONAME ; class QString NmContactHistoryModel::trUtf8(char const *, char const *) + ??0NmContactHistoryModelItem@@QAE@ABV0@@Z @ 51 NONAME ; NmContactHistoryModelItem::NmContactHistoryModelItem(class NmContactHistoryModelItem const &) + ?entryCount@EmailMRU@@QBEIXZ @ 52 NONAME ; unsigned int EmailMRU::entryCount(void) const + ?nameKeyByEntryIndex@EmailMRU@@CAHH@Z @ 53 NONAME ; int EmailMRU::nameKeyByEntryIndex(int) + ?setContactId@NmContactHistoryModelItem@@QAEXI@Z @ 54 NONAME ; void NmContactHistoryModelItem::setContactId(unsigned int) + ??0NmContactHistoryModelItem@@QAE@XZ @ 55 NONAME ; NmContactHistoryModelItem::NmContactHistoryModelItem(void) + ?rowCount@NmContactHistoryModel@@UBEHABVQModelIndex@@@Z @ 56 NONAME ; int NmContactHistoryModel::rowCount(class QModelIndex const &) const + ?data@NmContactHistoryModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 57 NONAME ; class QVariant NmContactHistoryModel::data(class QModelIndex const &, int) const + ?entryIndex@EmailMRU@@CAHH@Z @ 58 NONAME ; int EmailMRU::entryIndex(int) + ?qt_metacast@NmContactHistoryModel@@UAEPAXPBD@Z @ 59 NONAME ; void * NmContactHistoryModel::qt_metacast(char const *) + ?subItemCount@NmContactHistoryModelItem@@QBEHXZ @ 60 NONAME ; int NmContactHistoryModelItem::subItemCount(void) const + ??0NmContactHistoryModel@@QAE@W4NmContactHistoryModelType@@@Z @ 61 NONAME ; NmContactHistoryModel::NmContactHistoryModel(enum NmContactHistoryModelType) + ??1EmailMRU@@QAE@XZ @ 62 NONAME ; EmailMRU::~EmailMRU(void) + ?modelCompleted@NmContactHistoryModel@@IAEXH@Z @ 63 NONAME ; void NmContactHistoryModel::modelCompleted(int) + ?nameOrder@EmailMRU@@SAHXZ @ 64 NONAME ; int EmailMRU::nameOrder(void) diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmutilities/data/2003EA97.txt Binary file emailservices/nmutilities/data/2003EA97.txt has changed diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmutilities/eabi/nmutilitiesu.def --- a/emailservices/nmutilities/eabi/nmutilitiesu.def Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/nmutilities/eabi/nmutilitiesu.def Mon Oct 04 00:05:37 2010 +0300 @@ -22,4 +22,52 @@ _ZNK18NmUiEventsNotifier9keysEqualERK13XQSettingsKeyRK32XQPublishAndSubscribeSettingsKey @ 21 NONAME _ZTI18NmUiEventsNotifier @ 22 NONAME _ZTV18NmUiEventsNotifier @ 23 NONAME + _ZN21NmContactHistoryModel11qt_metacallEN11QMetaObject4CallEiPPv @ 24 NONAME + _ZN21NmContactHistoryModel11qt_metacastEPKc @ 25 NONAME + _ZN21NmContactHistoryModel14modelCompletedEi @ 26 NONAME + _ZN21NmContactHistoryModel16staticMetaObjectE @ 27 NONAME DATA 16 + _ZN21NmContactHistoryModel19getStaticMetaObjectEv @ 28 NONAME + _ZN21NmContactHistoryModel20handleQueryCompletedEi @ 29 NONAME + _ZN21NmContactHistoryModel5queryERK7QString @ 30 NONAME + _ZN21NmContactHistoryModelC1E25NmContactHistoryModelType @ 31 NONAME + _ZN21NmContactHistoryModelC2E25NmContactHistoryModelType @ 32 NONAME + _ZN21NmContactHistoryModelD0Ev @ 33 NONAME + _ZN21NmContactHistoryModelD1Ev @ 34 NONAME + _ZN21NmContactHistoryModelD2Ev @ 35 NONAME + _ZN25NmContactHistoryModelItem12setContactIdEj @ 36 NONAME + _ZN25NmContactHistoryModelItem13appendSubItemE28NmContactHistoryModelSubItem @ 37 NONAME + _ZN25NmContactHistoryModelItemC1ERKS_ @ 38 NONAME + _ZN25NmContactHistoryModelItemC1Ev @ 39 NONAME + _ZN25NmContactHistoryModelItemC2ERKS_ @ 40 NONAME + _ZN25NmContactHistoryModelItemC2Ev @ 41 NONAME + _ZN25NmContactHistoryModelItemD1Ev @ 42 NONAME + _ZN25NmContactHistoryModelItemD2Ev @ 43 NONAME + _ZN8EmailMRU10entryIndexEi @ 44 NONAME + _ZN8EmailMRU10readCenRepEi @ 45 NONAME + _ZN8EmailMRU10writeEntryEi7QStringS0_ @ 46 NONAME + _ZN8EmailMRU11updateEntryEi7QString @ 47 NONAME + _ZN8EmailMRU11writeCenRepEi7QString @ 48 NONAME + _ZN8EmailMRU16searchForAddressE7QString @ 49 NONAME + _ZN8EmailMRU17getNextEntryIndexEv @ 50 NONAME + _ZN8EmailMRU19nameKeyByEntryIndexEi @ 51 NONAME + _ZN8EmailMRU22addressKeyByEntryIndexEi @ 52 NONAME + _ZN8EmailMRU5resetEv @ 53 NONAME + _ZN8EmailMRU8getEntryEiR7QStringS1_ @ 54 NONAME + _ZN8EmailMRU9moveEntryEii @ 55 NONAME + _ZN8EmailMRU9nameOrderEv @ 56 NONAME + _ZN8EmailMRU9updateMRUE7QStringS0_ @ 57 NONAME + _ZN8EmailMRUC1Ev @ 58 NONAME + _ZN8EmailMRUC2Ev @ 59 NONAME + _ZN8EmailMRUD1Ev @ 60 NONAME + _ZN8EmailMRUD2Ev @ 61 NONAME + _ZNK21NmContactHistoryModel10metaObjectEv @ 62 NONAME + _ZNK21NmContactHistoryModel4dataERK11QModelIndexi @ 63 NONAME + _ZNK21NmContactHistoryModel8rowCountERK11QModelIndex @ 64 NONAME + _ZNK25NmContactHistoryModelItem10subEntriesEv @ 65 NONAME + _ZNK25NmContactHistoryModelItem12subItemCountEv @ 66 NONAME + _ZNK25NmContactHistoryModelItem9contactIdEv @ 67 NONAME + _ZNK25NmContactHistoryModelItem9subItemAtEi @ 68 NONAME + _ZNK8EmailMRU10entryCountEv @ 69 NONAME + _ZTI21NmContactHistoryModel @ 70 NONAME + _ZTV21NmContactHistoryModel @ 71 NONAME diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmutilities/inc/emailmru.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/nmutilities/inc/emailmru.h Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,118 @@ +/* + * Copyright (c) 2007-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: Object for accessing most recent used email addresses and + * display names. + * + */ + +#ifndef EMAILMRU_H_ +#define EMAILMRU_H_ + +#include +#include "emailutilitiesdef.h" + +class XQSettingsManager; + + +/*! + Key to MRU repository + */ +static const qint32 emailMruRepositoryKey = 0x2003EA97; + +/*! + Where to find the cenrep-index of the newest saved entry + */ +static const qint32 currentIndexKey = 0; + +/*! + Where to find the number of entries + */ +static const qint32 countKey = 1; + +/*! + Key to contacts central repository + */ +static const qint32 contactsRepositoryKey = 0x2002FF54; + +/*! + Setting for name ordering. + */ +static const qint32 nameOrderKey = 0x1; + +/*! + How many entries are kept in MRU repository + */ +static const qint32 emailAddressHistorySize = 300; + +class EMAIL_UTILITIES_EXPORT EmailMRU +{ +public: + + EmailMRU(); + + ~EmailMRU(); + + bool updateMRU(QString displayName, QString emailAddress); + + quint32 entryCount() const; + + bool getEntry(qint32 entryIndex, QString &displayName, QString &address); + + void reset(); + + static int nameOrder(); + +private: + + quint32 getNextEntryIndex(); + + bool writeCenRep(qint32 index, QString value); + + QString readCenRep(qint32 index); + + qint32 searchForAddress(QString address); + + static qint32 entryIndex(qint32 crKey); + + static qint32 addressKeyByEntryIndex(qint32 entryIndex); + + static qint32 nameKeyByEntryIndex(qint32 entryIndex); + + void moveEntry(qint32 oldEntryIndex, qint32 newEntryIndex); + + bool writeEntry(qint32 entryIndex, QString displayName, QString emailAddress); + + bool updateEntry(qint32 entryIndex, QString newDisplayName); + +private: + + /*! + Points to the latest saved entry + */ + qint32 mLatestIndex; + + /*! + Pointer to central repository manager + */ + XQSettingsManager* mRepositoryManager; + + /*! + Number of entries + */ + quint32 mCount; + +}; + + +#endif // EMAILMRU_H_ diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmutilities/inc/nmcontacthistorymodel_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/nmutilities/inc/nmcontacthistorymodel_p.h Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,108 @@ +/* +* 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: Private declaration of Contact History Model API +* +*/ + +#ifndef NMCONTACTHISTORYMODELPRIVATE_H +#define NMCONTACTHISTORYMODELPRIVATE_H + +#include +#include +#include + +#include "nmcontacthistorymodel.h" + +QTM_USE_NAMESPACE + +class NmContactHistoryModelItemData : public QSharedData +{ +public: + +NmContactHistoryModelItemData() : + mContactId(0xDEAD) +{ + +} + +~NmContactHistoryModelItemData() +{ + mItems.clear(); +} + + unsigned int mContactId; + QList mItems; +}; + +class NmContactHistoryModelPrivate : public QObject +{ + + enum nameOrder + { + LastNameFirstName = 0x0, + LastNameCommaFirstName = 0x1, + FirstNameLastName = 0x2 + }; + +Q_OBJECT + +public: + + NmContactHistoryModelPrivate(const NmContactHistoryModelType modelType); + ~NmContactHistoryModelPrivate(); + +signals: + + void queryCompleted(int err); + +private: + + void queryDatabases(const QString &query); + + // Helper functions that are used by queryDatabases(); + bool queryMruDatabase(const QString &query); + QList queryContactDatabase(const QString &query); + + void populateListWithMruItems(const QString &query); + + void populateListWithContactItems(const QList cnt_ids, + const QString &query); + + + int rowCount(const QModelIndex &parent) const; + QVariant data(const QModelIndex &index, int role) const; + void refreshDataModel(); + + bool fillMruMatchList(); + QString obeyContactOrder(const QString &firstName, const QString &lastName); + +private: + + // Member variables + NmContactHistoryModelType mType; + QList mModelItemList; + QList< QSharedPointer > mPrivateItemList; + QContactManager *mContactManager; + QHash mMruList; + QMap mMruMatches; + bool mModelReady; + TUint32 mNameOrder; + +private: // Friend definitions + + friend class NmContactHistoryModel; + friend class TestNmContactHistoryModelPrivate; +}; + +#endif //NMCONTACTHISTORYMODELPRIVATE_H diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmutilities/nmutilities.pro --- a/emailservices/nmutilities/nmutilities.pro Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/nmutilities/nmutilities.pro Mon Oct 04 00:05:37 2010 +0300 @@ -20,18 +20,22 @@ TEMPLATE = lib TARGET = nmutilities QT += core -DEFINES += BUILD_UTILITIES_DLL +DEFINES += BUILD_UTILITIES_DLL \ + NMCHMAPI_LIBRARY CONFIG += mobility -MOBILITY += systeminfo +MOBILITY += systeminfo \ + contacts INCLUDEPATH += inc \ + ../../email_plat/contact_history_model_api \ ../../inc \ ../../../inc \ $$MW_LAYER_SYSTEMINCLUDE DEPENDPATH += src \ inc \ + ../../email_plat/contact_history_model_api \ ../../../inc MOC_DIR = tmp @@ -40,12 +44,20 @@ emailutilitiesdef.h \ emailmailboxinfo_p.h \ emailmailboxinfo.h \ + emailmru.h \ nmuieventsnotifier.h \ - nmutilitiescommonheaders.h + nmutilitiescommonheaders.h \ + nmcontacthistorymodel_p.h \ + inc/nmcontacthistorymodelcommon.h \ + inc/nmcontacthistorymodel.h SOURCES += emailmailboxinfo_p.cpp \ emailmailboxinfo.cpp \ - nmuieventsnotifier.cpp + nmuieventsnotifier.cpp \ + emailmru.cpp \ + nmcontacthistorymodelitem.cpp \ + nmcontacthistorymodel_p.cpp \ + nmcontacthistorymodel.cpp symbian*: { TARGET.EPOCALLOWDLLDATA = 1 @@ -65,6 +77,7 @@ "$${LITERAL_HASH}endif" MMP_RULES += defBlock + MMP_RULES += SMPSAFE LIBS += -lcentralrepository LIBS += -ltimezonelocalization @@ -96,8 +109,12 @@ "data/2001E277.txt /epoc32/release/winscw/udeb/z/private/10202be9/2001E277.txt" \ "data/2001E277.txt /epoc32/release/winscw/urel/z/private/10202be9/2001E277.txt" \ "data/2001E277.txt /epoc32/data/z/private/10202be9/2001E277.txt" \ + "data/2003EA97.txt /epoc32/release/winscw/udeb/z/private/10202be9/2003EA97.txt" \ + "data/2003EA97.txt /epoc32/release/winscw/urel/z/private/10202be9/2003EA97.txt" \ + "data/2003EA97.txt /epoc32/data/z/private/10202be9/2003EA97.txt" \ "data/nmutilities.confml APP_LAYER_CONFML(nmutilities.confml)" \ "data/nmutilities_200255BA.crml APP_LAYER_CRML(nmutilities_200255BA.crml)" \ + "inc/emailmru.h APP_LAYER_PLATFORM_EXPORT_PATH(emailmru.h)" \ "inc/emailmailboxinfo.h APP_LAYER_PLATFORM_EXPORT_PATH(emailmailboxinfo.h)" \ "inc/nmutilitiescommonheaders.h APP_LAYER_PLATFORM_EXPORT_PATH(nmutilitiescommonheaders.h)" \ "inc/emailutilitiesdef.h APP_LAYER_PLATFORM_EXPORT_PATH(emailutilitiesdef.h)" \ diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmutilities/src/emailmru.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/nmutilities/src/emailmru.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,350 @@ +/* + * Copyright (c) 2007-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: Object for accessing most recent used email addresses and + * display names. + * + */ + +#include "emailtrace.h" +#include "emailmru.h" + +#include +#include +#include + +/*! + Constructor + */ + +// ID 0, Last saved ID. +// ID 1, Count of MRU Items. + +EmailMRU::EmailMRU() +{ + NM_FUNCTION; + + mRepositoryManager = new XQSettingsManager(); + Q_CHECK_PTR(mRepositoryManager); + + mLatestIndex = readCenRep(currentIndexKey).toInt(); + mCount = readCenRep(countKey).toInt(); +} + +/*! + Destructor + */ +EmailMRU::~EmailMRU() +{ + NM_FUNCTION; + + QString entryIndex; + entryIndex.setNum(mLatestIndex); + + QString count; + count.setNum(mCount); + + writeCenRep(currentIndexKey, entryIndex); + writeCenRep(countKey, count); + + delete mRepositoryManager; +} + +/*! + Add entry to MRU database + \param displayName + \param emailAddress + \return success, was the update operation successful + */ +bool EmailMRU::updateMRU(QString displayName, QString emailAddress) +{ + NM_FUNCTION; + + bool success = false; + qint32 foundEntryIndex = searchForAddress(emailAddress); + if (foundEntryIndex) { + success = updateEntry(foundEntryIndex, displayName); + } + + else { + qint32 entryIndex = getNextEntryIndex(); + success = writeEntry(entryIndex, displayName, emailAddress); + mCount++; + if (mCount > emailAddressHistorySize) { + mCount = emailAddressHistorySize; + } + } + + return success; +} + +/*! + Get the number of entries + \return number of entries + */ +quint32 EmailMRU::entryCount() const +{ + return mCount; +} + +/*! + Get entry details + \param entryIndex entry index to look for + \param displayName will contain displayname of entry if found + \param address will contain address of entry if found + \return success + */ +bool EmailMRU::getEntry(qint32 entryIndex, QString &displayName, QString &address) +{ + NM_FUNCTION; + + bool success = false; + + if ((entryIndex >= 1) && (mCount > 0)) { + displayName = readCenRep(nameKeyByEntryIndex(entryIndex)); + address = readCenRep(addressKeyByEntryIndex(entryIndex)); + success = true; + + if (address.size()==0) { + success = false; + } + } + + return success; +} + +/*! + Resets repository + */ +void EmailMRU::reset() +{ + NM_FUNCTION; + + XQCentralRepositoryUtils utils(*mRepositoryManager); + utils.resetRepository(emailMruRepositoryKey); + mLatestIndex = 0; + mCount = 0; +} + +/*! + Writes to central repository + \param index where to write + \param value what to write + \return success, whether write operation succeeded + */ +bool EmailMRU::writeCenRep(qint32 index, QString value) +{ + NM_FUNCTION; + + XQCentralRepositorySettingsKey writeKey(emailMruRepositoryKey, index); + bool success = mRepositoryManager->writeItemValue(writeKey, value); + if (!success) { + XQCentralRepositoryUtils utils(*mRepositoryManager); + success = utils.createKey(writeKey, value); + } + + return success; +} + +/*! + Reads from central repository + \param index to read + \return value + */ +QString EmailMRU::readCenRep(qint32 index) +{ + NM_FUNCTION; + + XQCentralRepositorySettingsKey readKey(emailMruRepositoryKey, index); + return mRepositoryManager->readItemValue(readKey, XQSettingsManager::TypeString).value (); +} + +/*! + Translates entry indexes into real central repository indexes + \return central repository index + */ +quint32 EmailMRU::getNextEntryIndex() +{ + NM_FUNCTION; + + mLatestIndex++; + + if (mLatestIndex > emailAddressHistorySize) { + mLatestIndex = 1; + } + + return mLatestIndex; +} + +/*! + Translates central repository indexes into entry index + \param realIndex central repository index + \return entry index + */ +qint32 EmailMRU::entryIndex(qint32 crKey) +{ + NM_FUNCTION; + + qint32 entryIndex = 0; + + if (crKey%2 == 0){ + entryIndex = crKey/2; + } + else { + entryIndex = (crKey-1)/2; + } + + return entryIndex; +} + +/*! + Translates entry index into cenrep email address index + \param entryIndex + \return cenrep email address index + */ +qint32 EmailMRU::addressKeyByEntryIndex(qint32 entryIndex) +{ + return entryIndex*2+1; +} + +/*! + Translates entry index into cenrep displayname index + \param entryIndex + \return cenrep displayname index + */ +qint32 EmailMRU::nameKeyByEntryIndex(qint32 entryIndex) +{ + return entryIndex*2; +} + +/*! + Checks if MRU list already contains the address + \param address to search + \return entry index of found address, zero if not found + */ +qint32 EmailMRU::searchForAddress(QString address) +{ + NM_FUNCTION; + + quint32 partialKey(0x00000000); + quint32 bitMask(0x00000000); + XQCentralRepositorySearchCriteria criteria(emailMruRepositoryKey, partialKey, bitMask); + criteria.setValueCriteria(address); + + // Find the keys. + XQCentralRepositoryUtils utils(*mRepositoryManager); + QList foundKeys = utils.findKeys(criteria); + + qint32 index = 0; + // We should only get one key as a result. + if (foundKeys.count() == 1) { + index = foundKeys[0].key(); + } + return entryIndex(index); +} + +/*! + Moves entry, will overwrite the newEntryIndex + \param oldEntryIndex entry to be moved + \param newEntryIndex where to move + */ +void EmailMRU::moveEntry(qint32 oldEntryIndex, qint32 newEntryIndex) +{ + NM_FUNCTION; + + // Save the values to be moved + QString name = readCenRep(nameKeyByEntryIndex(oldEntryIndex)); + QString address = readCenRep(addressKeyByEntryIndex(oldEntryIndex)); + + // Overwrite values into new entry + writeEntry(newEntryIndex, name, address); +} + +/*! + Updates displayname and sets entry as newest + \param entryIndex to update + \param newDisplayName + \return success was update operation successfull + */ +bool EmailMRU::updateEntry(qint32 entryIndex, QString newDisplayName) +{ + NM_FUNCTION; + + // Save address + QString address = readCenRep(addressKeyByEntryIndex(entryIndex)); + + // Move all entries following the one to be updated + // until we go past the newest entry + for (qint32 i = entryIndex, j = 0; i != mLatestIndex;) { + j = i+1; + if (j > emailAddressHistorySize) j = 1; + + moveEntry(j, i); + + i++; + if (i > emailAddressHistorySize) i = 1; + } + + // Write the updated entry as the newest entry + return writeEntry(mLatestIndex, newDisplayName, address); +} + +/*! + Writes entry. Overwrites any existing data at give index + \param entryIndex to write + \param displayName + \param emailAddress + \return success was update operation successfull + */ +bool EmailMRU::writeEntry(qint32 entryIndex, QString displayName, QString emailAddress) +{ + NM_FUNCTION; + + bool nameSuccess = false; + bool addressSuccess = false; + + nameSuccess = writeCenRep(nameKeyByEntryIndex(entryIndex), displayName); + if (nameSuccess) { + addressSuccess = writeCenRep(addressKeyByEntryIndex(entryIndex), emailAddress); + } + + // Writing name succeeded but writing address not, we destroy the name + if (!addressSuccess) { + XQCentralRepositoryUtils utils(*mRepositoryManager); + XQCentralRepositorySettingsKey deleteKey(emailMruRepositoryKey, nameKeyByEntryIndex(entryIndex)); + utils.deleteKey(deleteKey); + } + + return (nameSuccess & addressSuccess); +} + +/*! + Writes entry. Overwrites any existing data at give index + \return contacts setting for lastname / firstname order. + */ +int EmailMRU::nameOrder() +{ + XQSettingsManager *repositoryManager = new XQSettingsManager(); + Q_CHECK_PTR(repositoryManager); + + XQCentralRepositorySettingsKey readKey(contactsRepositoryKey, + nameOrderKey); + + int nameOrder = repositoryManager->readItemValue(readKey, + XQSettingsManager::TypeInt).toInt(); + + delete repositoryManager; + + return nameOrder; +} + diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmutilities/src/nmcontacthistorymodel.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/nmutilities/src/nmcontacthistorymodel.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,113 @@ +/* +* 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: Public implementation of Contact History Model API +* +*/ + +#include + +#include "nmcontacthistorymodel.h" +#include "nmcontacthistorymodel_p.h" + +// -------------------------------------------------------------------------- +// Start of implementation (NmContactHistoryModel) +// -------------------------------------------------------------------------- +/*! + Constructor for NmContactHistoryModel + + \param modelType ModelType to be used, Email / Messaging +*/ +NmContactHistoryModel::NmContactHistoryModel( + const NmContactHistoryModelType modelType) +{ + d_ptr = new NmContactHistoryModelPrivate(modelType); + Q_CHECK_PTR(d_ptr); + + QObject::connect(d_ptr, SIGNAL(queryCompleted(int)), this, + SLOT(handleQueryCompleted(int))); +} + +/*! + Destructor of NmContactHistoryModel + */ +NmContactHistoryModel::~NmContactHistoryModel() +{ + delete d_ptr; +} + +/*! + Queries contact databases from private implementation + + \param query String to be queried. +*/ +void NmContactHistoryModel::query(const QString &query) +{ + d_ptr->queryDatabases(query); +} + +/*! + Signaled once query is completed, emits modelCompleted. + Private Slot. + + \param err, 0 if building model was success +*/ +void NmContactHistoryModel::handleQueryCompleted(int err) +{ + + int lastUpdateIndex = (d_ptr->mPrivateItemList.count())-1; + + if (lastUpdateIndex != -1) + { + // Notify views that we are about to change model data. + beginInsertRows(QModelIndex(),0,lastUpdateIndex); + d_ptr->refreshDataModel(); + endInsertRows(); + + // Emit dataChanged(); + bool validIndex = hasIndex ( lastUpdateIndex, 0 ); + + if (validIndex) + { + dataChanged(index(0,0), index(lastUpdateIndex,0)); + } + } + + emit modelCompleted(err); +} + +/*! + Returns the number of rows under the given parent. + + From QAbstractItemModel +*/ +int NmContactHistoryModel::rowCount(const QModelIndex &parent) const +{ + return d_ptr->rowCount(parent); +} + +/*! + Returns the data stored under the given role for the item referred + to by the index. + + From QAbstractItemModel +*/ +QVariant NmContactHistoryModel::data(const QModelIndex &index, int role) const +{ + return d_ptr->data(index, role); +} + +// -------------------------------------------------------------------------- +// End of implementation (NmContactHistoryModel) +// -------------------------------------------------------------------------- + diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmutilities/src/nmcontacthistorymodel_p.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/nmutilities/src/nmcontacthistorymodel_p.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,515 @@ +/* +* 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: Private implementation of Contact History Model API +* +*/ + +#include "emailmru.h" +#include "nmcontacthistorymodel_p.h" + +// -------------------------------------------------------------------------- +// Start of implementation (NmContactHistoryModelPrivate) +// -------------------------------------------------------------------------- +/*! + Constructor of NmContactHistoryModelPrivate + + \param type The valid values are described by + NmContactHistoryModelPrivate::HistoryModelType enum. +*/ +NmContactHistoryModelPrivate::NmContactHistoryModelPrivate( + const NmContactHistoryModelType modelType) : + mType(modelType), + mContactManager(0), + mModelReady(false) +{ + mContactManager = new QContactManager("symbian"); + mNameOrder = EmailMRU::nameOrder(); +} + +/*! + Destructor of ContactHistoryModel +*/ +NmContactHistoryModelPrivate::~NmContactHistoryModelPrivate() +{ + delete mContactManager; + mPrivateItemList.clear(); + mModelItemList.clear(); +} + +/*! + Searches contact & MRU databases according to query parameters. + Emits QueryCompleted() when ready. + + \param query Text to be searched + \return none + + Note:: QContactManager supports max. ten characters long queries. +*/ +void NmContactHistoryModelPrivate::queryDatabases(const QString& query) +{ + mModelReady = false; + // Clear contacts in the list + mPrivateItemList.clear(); + mModelItemList.clear(); + mMruList.clear(); + mMruMatches.clear(); + + // Modify search to suit our needs + // Space must be removed, because it is understood as logigal AND + // with QContactManager API + QString modifiedQuery = query; + + int spcPosition = query.indexOf(" "); + + if ( spcPosition != -1 ) + { + modifiedQuery = query.left(spcPosition); + } + + queryMruDatabase(modifiedQuery); + populateListWithMruItems(modifiedQuery); + + if (mContactManager) + { + // Get matching IDs from Contacts DB + QList cnt_ids = queryContactDatabase(modifiedQuery); + + // Populate mPrivateItemList with contact items. + populateListWithContactItems(cnt_ids, modifiedQuery); + } + + // Currently we will always emit 0 as completion code. + + //TODO: Will be removed, Debug Code. + for (int i = 0; i < mPrivateItemList.size(); i++) + { + QSharedPointer itemData = mPrivateItemList[i]; + + QString dbgString = itemData->mItems[0].mItemText; + dbgString.append(" "); + dbgString.append(itemData->mItems[1].mItemText); + + qDebug(dbgString.toLatin1()); + + + } + + emit queryCompleted(0); +} + +/*! + Internal helper function for queryDatabases() + Not meant to be used alone. + + \param query Text to be searched + \return list of Contact items. + \sa queryDatabases( ) +*/ +QList NmContactHistoryModelPrivate::queryContactDatabase( + const QString &query) +{ + // Define filter + QContactDetailFilter df; + + df.setDetailDefinitionName(QContactEmailAddress::DefinitionName, + QContactEmailAddress::FieldEmailAddress ); + + df.setMatchFlags( QContactFilter::MatchKeypadCollation ); + + // Construct pattern + QString pattern = query + QChar(30) + QString("vqwerty"); + df.setValue( pattern ); + + // Get matching IDs + QList cnt_ids = mContactManager->contactIds( df ); + + return cnt_ids; +} + +/*! + Internal helper function for queryDatabases() + Not meant to be used alone. + + \param query Text to be searched from MRU + \return true on success. + \sa queryDatabases( ) +*/ +bool NmContactHistoryModelPrivate::queryMruDatabase( + const QString &query) +{ + if (mType == EmailAddressModel) + { + bool mruListFilled = fillMruMatchList(); + + if (!mruListFilled) + { + return false; + } + + QHashIterator i(mMruList); + + while (i.hasNext()) + { + i.next(); + + QString address = i.key(); + QString name = i.value(); + + if ((name.length() == 0) && (address.contains('@'))) + { + name = address.left(address.indexOf("@")); + } + + if (address.contains(query, Qt::CaseInsensitive)) + { + mMruMatches.insert(name, address); + } + else if (name.contains(query, Qt::CaseInsensitive)) + { + mMruMatches.insert(name, address); + } + } + } + + return true; +} + +/*! + Internal helper function for queryDatabases() + Not meant to be used alone. + + \param cnt_ids List of contact IDs + \param modifiedQuery Query + \sa queryDatabases( ) +*/ +void NmContactHistoryModelPrivate::populateListWithContactItems( + const QList cnt_ids, + const QString &modifiedQuery) +{ + int cntCount = cnt_ids.count(); + // Populate mPrivateItemList with contact items. + for ( int cntIndex = 0; cntIndex < cntCount; cntIndex++) + { + QContactLocalId cid = cnt_ids.at( cntIndex ); + // Fetch extended contact information from DB by ID + QContact contact = mContactManager->contact( cid ); + + // Get number of associated emails for contact + int numberOfEmails = contact.details( + QContactEmailAddress::DefinitionName).count(); + + if (numberOfEmails == 0) + { + continue; // Scotty, I need warp speed. + } + + // Get contact name details + QContactName contactName = contact.detail( + QContactName::DefinitionName); + + QString firstName = contactName.value( + QContactName::FieldFirstName); + QString lastName = contactName.value( + QContactName::FieldLastName); + + for (int emailIndex = 0; emailIndex < numberOfEmails; emailIndex++) + { + // For Display name (ex. John Doe) + NmContactHistoryModelSubItem itemSubItem1; + // For Email address (ex. john.doe@company.com) + NmContactHistoryModelSubItem itemSubItem2; + + int queryLength = modifiedQuery.length(); + + // Obey the contacts setting (first name last name order) + itemSubItem1.mItemText = obeyContactOrder(firstName, lastName); + + if( firstName.indexOf(modifiedQuery, 0, Qt::CaseInsensitive) == 0) + { + itemSubItem1.mMatchingRanges.append(0); + itemSubItem1.mMatchingRanges.append(queryLength-1); + } + + if( lastName.indexOf(modifiedQuery, 0, Qt::CaseInsensitive) == 0) + { + int indexLN = itemSubItem1.mItemText.indexOf(lastName, + firstName.length(), + Qt::CaseInsensitive ); + + itemSubItem1.mMatchingRanges.append(indexLN); + itemSubItem1.mMatchingRanges.append(indexLN+(queryLength-1)); + } + + itemSubItem2.mItemText = contact.details ( + QContactEmailAddress::DefinitionName )[emailIndex].value ( + QContactEmailAddress::FieldEmailAddress ); + + if (itemSubItem2.mItemText.indexOf(modifiedQuery, 0, + Qt::CaseInsensitive) == 0 ) + { + itemSubItem2.mMatchingRanges.append(0); + itemSubItem2.mMatchingRanges.append(queryLength-1); + } + + if ((itemSubItem1.mMatchingRanges.count() != 0) || + (itemSubItem2.mMatchingRanges.count() != 0) ) + { + QSharedPointer itemData + (new NmContactHistoryModelItemData); + + itemData->mContactId = cid; + itemData->mItems.append(itemSubItem1); + itemData->mItems.append(itemSubItem2); + + mPrivateItemList.append(itemData); + } + } + } +} + +/*! + Internal helper function for queryDatabases() + Not meant to be used alone. + + \param modifiedQuery Query + \sa queryDatabases( ) +*/ +void NmContactHistoryModelPrivate::populateListWithMruItems( + const QString &query) +{ + QMapIterator i(mMruMatches); + + while (i.hasNext()) + { + i.next(); + // For Display name (ex. John Doe) + NmContactHistoryModelSubItem itemSubItem1; + // For Email address (ex. john.doe@company.com) + NmContactHistoryModelSubItem itemSubItem2; + + itemSubItem1.mItemText = i.key(); + itemSubItem2.mItemText = i.value(); + + // markup for first item. + if( i.key().indexOf(query, 0, Qt::CaseInsensitive) == 0) + { + itemSubItem1.mMatchingRanges.append(0); + itemSubItem1.mMatchingRanges.append(query.length()-1); + } + + QRegExp rx("[,\\s]", Qt::CaseInsensitive); + bool separatorExists = i.key().contains(rx); + + if (separatorExists) + { + int indexLN = i.key().indexOf(",", 0, Qt::CaseInsensitive); + + if (indexLN == -1) + { + indexLN = i.key().indexOf(" ", 0, Qt::CaseInsensitive); + } + + if (indexLN > 0) + { + int matchPos = i.key().indexOf(query, indexLN, Qt::CaseInsensitive); + + if (matchPos > 0) + { + itemSubItem1.mMatchingRanges.append(matchPos); + itemSubItem1.mMatchingRanges.append((matchPos+query.length())-1); + } + } + } + + // markup for second item. + if (itemSubItem2.mItemText.indexOf(query, 0, Qt::CaseInsensitive) == 0 ) + { + itemSubItem2.mMatchingRanges.append(0); + itemSubItem2.mMatchingRanges.append(query.length()-1); + } + + // If match, add to data list. + if ((itemSubItem1.mMatchingRanges.count() != 0) || + (itemSubItem2.mMatchingRanges.count() != 0) ) + { + QSharedPointer itemData + (new NmContactHistoryModelItemData); + + itemData->mContactId = 0; // No ID available, use 0. + itemData->mItems.append(itemSubItem1); + itemData->mItems.append(itemSubItem2); + + mPrivateItemList.append(itemData); + } + } +} + +/*! + After queryDatabases has completed this will be called from public class() + Not meant to be used alone. (NmContactHistoryModel is using this when needed) + + \sa queryDatabases( ) +*/ +void NmContactHistoryModelPrivate::refreshDataModel() +{ + mModelItemList.clear(); + + for (int cntIndex = 0; + cntIndex < mPrivateItemList.count(); + cntIndex++) + { + // Construct modelItem to be added to list. + NmContactHistoryModelItem modelItem; + + QSharedPointer itemData( + mPrivateItemList[cntIndex]); + + int id = itemData->mContactId; + modelItem.setContactId(itemData->mContactId); + + for (int itemIndex = 0; + itemIndex < itemData->mItems.count(); + itemIndex++) + { + QString key = itemData->mItems[itemIndex].mItemText; + modelItem.appendSubItem(itemData->mItems[itemIndex]); + } + + // Append modelItem to list. + mModelItemList.append(modelItem); + } + + // Notify views that we are done updating model data. + mModelReady = true; + +} + +/*! + This is called by public class NmContactHistoryModel when rowcount() is requested + Not meant to be used alone. + +*/ +int NmContactHistoryModelPrivate::rowCount(const QModelIndex &parent) const +{ + Q_UNUSED(parent); + return mModelItemList.count(); +} + +/*! + This is called by public class NmContactHistoryModel when data() is requested + Not meant to be used alone. + +*/ +QVariant NmContactHistoryModelPrivate::data(const QModelIndex &index, int role) const +{ + if ( mModelReady ) + { + if (!index.isValid() || + index.row() >= mModelItemList.count() || + index.row() < 0) + { + return QVariant(); + } + + if (role == Qt::DisplayRole) + { + QVariant v; + NmContactHistoryModelItem i = mModelItemList.at(index.row()); + v.setValue(i); + return v; + } + } + + return QVariant(); +} + +/*! + Fills MruMatchList, called from queryMruDatabase. + Function uses Email MRU API to fetch information from CenRep + + \sa queryMruDatabase( ) +*/ +bool NmContactHistoryModelPrivate::fillMruMatchList() +{ + //TODO: Possible optimization, remove extra calls EmailMRU(), We need to get list only once. + EmailMRU *mru = new EmailMRU(); + + if (mru) + { + int addressCount = mru->entryCount(); + + for (int i = addressCount; i > 0; i--) + { + QString key, value; // "Email or Number" & "Display Name" + bool success; + + success = mru->getEntry(i, value, key); + + if (success) + { + mMruList.insertMulti(key, value); + } + } + + delete mru; + return true; + } + else + { + return false; + } +} + +/*! + This is called from populateListWithContactItems() when correct order of + first name, last name setting is required + + \param firstName First name + \param lastName Last name + + \sa populateListWithContactItems( ) + + \return concennated string formatted as contact setting specifies. +*/ +QString NmContactHistoryModelPrivate::obeyContactOrder(const QString &firstName, + const QString &lastName) +{ + QString result; + + switch (mNameOrder) + { + case LastNameFirstName: + result = lastName + " " + firstName; + break; + + case LastNameCommaFirstName: + result = lastName + ", " + firstName; + break; + + case FirstNameLastName: + result = firstName + " " + lastName; + break; + + default: + result = firstName + " " + lastName; + break; + } + + return result; +} + +// -------------------------------------------------------------------------- +// End of implementation (NmContactHistoryModelPrivate) +// -------------------------------------------------------------------------- + diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmutilities/src/nmcontacthistorymodelitem.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/nmutilities/src/nmcontacthistorymodelitem.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,125 @@ +/* +* 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: Implementation of NmContactHistoryModelItem +* +*/ + +#include + +#include "nmcontacthistorymodel.h" +#include "nmcontacthistorymodel_p.h" + +// -------------------------------------------------------------------------- +// Start of implementation (NmContactHistoryModelItem) +// -------------------------------------------------------------------------- +/*! + Not meant to be used alone. +*/ +NmContactHistoryModelItem::NmContactHistoryModelItem() +{ + d = new NmContactHistoryModelItemData(); +} + +/*! + Not meant to be used alone. +*/ +NmContactHistoryModelItem::NmContactHistoryModelItem( + const NmContactHistoryModelItem &other) +{ + d = other.d; +} + +/*! + Not meant to be used alone. +*/ +NmContactHistoryModelItem::~NmContactHistoryModelItem() +{ +} + +/*! + Not meant to be used alone. +*/ +unsigned int NmContactHistoryModelItem::contactId() const +{ + return d->mContactId; +} + +/*! + Not meant to be used alone. +*/ +void NmContactHistoryModelItem::setContactId(unsigned int contactId) +{ + d->mContactId = contactId; +} + +/*! + Not meant to be used alone. +*/ +int NmContactHistoryModelItem::subItemCount() const +{ + return d->mItems.count(); +} + +/*! + Not meant to be used alone. +*/ +NmContactHistoryModelSubItem NmContactHistoryModelItem::subItemAt( + int index) const +{ + if ( index <= d->mItems.count() ) + { + return d->mItems[index]; + } + else + { + return NmContactHistoryModelSubItem(); + } +} + +/*! + Returns SubEntries from private list + First entry is contact name + Second entry is email address / phone number + + \return List of items. +*/ +QList NmContactHistoryModelItem::subEntries( + ) const +{ + QList subItemList; + + if (!d->mItems.isEmpty()) + { + for ( int subIndex = 0; subIndex < d->mItems.count(); subIndex++) + { + subItemList.append(d->mItems[subIndex]); + } + } + + return subItemList; +} + +/*! + Public - Appends subItem to private list + + \param entry subItem to be appended +*/ +void NmContactHistoryModelItem::appendSubItem( + NmContactHistoryModelSubItem entry) +{ + d->mItems.append(entry); +} +// -------------------------------------------------------------------------- +// End of implementation (NmContactHistoryModelItem) +// --------------------------------------------------------------------------/*! diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmutilities/tsrc/unittests/unittest_nmcontacthistorymodel_p/emailmru_stub.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/nmutilities/tsrc/unittests/unittest_nmcontacthistorymodel_p/emailmru_stub.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,97 @@ +#include + +extern bool constructorCalled; +extern bool destructorCalled; +extern bool entryCountCalled; +extern bool getEntryCalled; +extern bool nameOrderCalled; +extern bool fillMruWithFalseValues; + +EmailMRU::EmailMRU() +{ + constructorCalled = true; +} + +EmailMRU::~EmailMRU() +{ + destructorCalled = true; +} + +quint32 EmailMRU::entryCount() const +{ + entryCountCalled = true; + + if (!fillMruWithFalseValues) + { + return 2; + } + else + { + return 3; + } +} + +bool EmailMRU::getEntry(qint32 entryIndex, QString &displayName, QString &address) +{ + getEntryCalled = true; + bool success = false; + + if (!fillMruWithFalseValues) + { + switch (entryIndex) + { + case 1: + displayName = "Camel Case"; + address = "camel.case@plusplus.com"; + success = true; + break; + case 2: + displayName = "Agent Reference"; + address = "byvalue@plusplus.com"; + success = true; + break; + default: + displayName = "Default Name"; + address = "default@default.com"; + success = false; + break; + } + } + else + { + switch (entryIndex) + { + case 1: + // Without display name + displayName = ""; + address = "camel.case@plusplus.com"; + success = true; + break; + case 2: + // Email Matching purpose + displayName = "Agent Plus"; + address = "plus@plusplus.com"; + success = true; + break; + case 3: + // Match in other + displayName = "Agent Smith"; + address = "noreply@mib.com"; + success = true; + break; + default: + displayName = "Default Name"; + address = "default@default.com"; + success = false; + break; + } + } + + return success; +} + +int EmailMRU::nameOrder() +{ + nameOrderCalled = true; + return 2; +} diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmutilities/tsrc/unittests/unittest_nmcontacthistorymodel_p/qtcontacts.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/nmutilities/tsrc/unittests/unittest_nmcontacthistorymodel_p/qtcontacts.h Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,784 @@ +#ifndef QTCONTACTS_H +#define QTCONTACTS_H + +#include +#include + +extern bool setDetailDefinitionNameCalled; +extern bool setMatchFlagsCalled; +extern bool setValueCalled; +extern bool ContactIdsCalled; +extern bool returnZeroEmails; + +typedef quint32 QContactLocalId; +/* +class UnitTestReporter +{ +public: + inline static void resetFlags() + { + //mFlagA = false; + UnitTestReporter::mFlagB = false; + //mFlagC = false; + UnitTestReporter::mFlagD = false; + //mVariant1.clear(); + //mVariant2.clear(); + } + + inline static void setFlagA() + { + mFlagA = true; + } + inline static void setFlagB() + { + mFlagB = true; + } + + inline static void setFlagC() + { + mFlagC = true; + } + + inline static void setFlagD() + { + mFlagD = true; + } + + inline static void setVariant1(QVariant &variant) + { + mVariant1 = variant; + } + + inline static void setVariant2(QVariant &variant) + { + mVariant2 = variant; + } + + static bool mFlagA; + static bool mFlagB; + static bool mFlagC; + static bool mFlagD; + static QVariant mVariant1; + static QVariant mVariant2; +}; +*/ + +template struct QLatin1Constant +{ + char chars[N]; + + bool operator ==(const QLatin1Constant& other) const {return (chars == other.chars) || (qstrcmp(chars, other.chars) == 0);} + bool operator !=(const QLatin1Constant& other) const {return !operator==(other);} + + inline const char * latin1() const {return chars;} + + operator QLatin1String() const {return QLatin1String(chars);} + operator QString() const {return QString::fromLatin1(chars, N-1);} + operator QVariant() const {return QVariant(operator QString());} +}; + +#define QTM_USE_NAMESPACE +#endif + +// Stub for ContactManager +#ifndef QCONTACTMANAGER_H +#define QCONTACTMANAGER_H + +#include +#include +#include +#include +#include +#include +#include + +class QContactSortOrder +{ +public: + inline QContactSortOrder() + { + } + + inline ~QContactSortOrder() + { + } + + inline QContactSortOrder(const QContactSortOrder& other) + { + Q_UNUSED(other); + } + + inline QContactSortOrder& operator=(const QContactSortOrder& other) + { + Q_UNUSED(other); + return (const_cast(other)); + } + + enum BlankPolicy { + BlanksFirst, + BlanksLast, + }; + + /* Mutators */ +// void setDetailDefinitionName(const QString& definitionName, const QString& fieldName); +// void setBlankPolicy(BlankPolicy blankPolicy); +// void setDirection(Qt::SortOrder direction); +// void setCaseSensitivity(Qt::CaseSensitivity sensitivity); + + /* Accessors */ +// QString detailDefinitionName() const; +// QString detailFieldName() const; +// BlankPolicy blankPolicy() const; +// Qt::SortOrder direction() const; +// Qt::CaseSensitivity caseSensitivity() const; + +// bool isValid() const; + + inline bool operator==(const QContactSortOrder& other) const + { + Q_UNUSED(other); + return true; + } + + inline bool operator!=(const QContactSortOrder& other) const {Q_UNUSED(other); return !operator==(other);} +}; + +#define Q_DECLARE_LATIN1_CONSTANT(varname, str) static const QLatin1Constant varname +#define Q_DEFINE_LATIN1_CONSTANT(varname, str) const QLatin1Constant varname = {str} + +#define Q_DECLARE_CUSTOM_CONTACT_DETAIL(className, definitionNameString) \ + className() : QContactDetail(DefinitionName.latin1()) {} \ + className(const QContactDetail& field) : QContactDetail(field, DefinitionName.latin1()) {} \ + className& operator=(const QContactDetail& other) {assign(other, DefinitionName.latin1()); return *this;} \ + \ + Q_DECLARE_LATIN1_CONSTANT(DefinitionName, definitionNameString); + +class QContactDetail +{ +public: + + inline QContactDetail() + { + } + + inline explicit QContactDetail(const char* definitionName) + { + Q_UNUSED(definitionName); + } + + inline explicit QContactDetail(const QString& definitionName) + { + Q_UNUSED(definitionName); + } + + inline ~QContactDetail() + { + } + + inline QContactDetail(const QContactDetail& other) + { + Q_UNUSED(other); + } + + inline QContactDetail& operator=(const QContactDetail& other) + { + Q_UNUSED(other); + return (const_cast(other)); + } + + enum AccessConstraint { + NoConstraint = 0, + ReadOnly = 0x01, + Irremovable = 0x02 + }; + + Q_DECLARE_FLAGS(AccessConstraints, AccessConstraint) + + inline AccessConstraints accessConstraints() const + { + return AccessConstraints(); + } + + // Predefined attribute names and values +#ifdef Q_QDOC + static const QLatin1Constant FieldContext; + static const QLatin1Constant ContextHome; + static const QLatin1Constant ContextWork; + static const QLatin1Constant ContextOther; + static const QLatin1Constant FieldDetailUri; + static const QLatin1Constant FieldLinkedDetailUris; +#else + Q_DECLARE_LATIN1_CONSTANT(FieldContext, "Context"); + Q_DECLARE_LATIN1_CONSTANT(ContextHome, "Home"); + Q_DECLARE_LATIN1_CONSTANT(ContextWork, "Work"); + Q_DECLARE_LATIN1_CONSTANT(ContextOther, "Other"); + Q_DECLARE_LATIN1_CONSTANT(FieldDetailUri, "DetailUri"); + Q_DECLARE_LATIN1_CONSTANT(FieldLinkedDetailUris, "LinkedDetailUris"); +#endif + + bool operator==(const QContactDetail& other) const; + bool operator!=(const QContactDetail& other) const {return !(other == *this);} + + inline QString definitionName() const + { + return QString(); + } + + inline bool isEmpty() const + { + return false; + } + + int key() const; + void resetKey(); + + inline QString value(const QString& key) const + { + Q_UNUSED(key); + return QString(); + } + + inline bool setValue(const QString& key, const QVariant& value) + { + Q_UNUSED(key); + Q_UNUSED(value); + return true; + } + + bool removeValue(const QString& key); + bool hasValue(const QString& key) const; + + QVariantMap variantValues() const; + QVariant variantValue(const QString& key) const; + template T value(const QString& key) const + { + return variantValue(key).value(); + } + + /* These are probably internal */ + inline QString value(const char* key) const + { + return key; + } + + inline bool setValue(const char* key, const QVariant& value) + { + Q_UNUSED(key); + Q_UNUSED(value); + return true; + } + + inline bool removeValue(const char* key) + { + Q_UNUSED(key); + return true; + } + + inline bool hasValue(const char* key) const + { + Q_UNUSED(key); + return true; + } + + QVariant variantValue(const char *key) const; + + template T value(const char *key) const + { + return variantValue(key).value(); + } + +#ifdef Q_QDOC + QString value(const QLatin1Constant& key) const; + bool setValue(const QLatin1Constant& key, const QVariant& value); + bool removeValue(const QLatin1Constant& key); + bool hasValue(const QLatin1Constant& key) const; + QVariant variantValue(const QLatin1Constant& key) const; + T value(const QLatin1Constant& key) const; +#else + + template QString value(const QLatin1Constant& key) const + { + return value(key.latin1()); + } + template bool setValue(const QLatin1Constant& key, const QVariant& value) + { + return setValue(key.latin1(), value); + } + template bool removeValue(const QLatin1Constant& key) + { + return removeValue(key.latin1()); + } + template bool hasValue(const QLatin1Constant& key) const + { + return hasValue(key.latin1()); + } + template QVariant variantValue(const QLatin1Constant& key) const + { + return variantValue(key.latin1()); + } + template T value(const QLatin1Constant& key) const + { + return value(key.latin1()); + } +#endif + + inline void setContexts(const QStringList& contexts) + { + setValue(FieldContext, contexts); + } + + inline void setContexts(const QString& context) + { + setValue(FieldContext, QStringList(context)); + } + + inline QStringList contexts() const + { + return value(FieldContext); + } + + inline void setDetailUri(const QString& detailUri) + { + setValue(FieldDetailUri, detailUri); + } + + inline QString detailUri() const + { + return value(FieldDetailUri); + } + + inline void setLinkedDetailUris(const QStringList& linkedDetailUris) + { + setValue(FieldLinkedDetailUris, linkedDetailUris); + } + + inline void setLinkedDetailUris(const QString& linkedDetailUri) + { + setValue(FieldLinkedDetailUris, QStringList(linkedDetailUri)); + } + + inline QStringList linkedDetailUris() const + { + return value(FieldLinkedDetailUris); + } + +// Protected.. + + inline QContactDetail(const QContactDetail &other, const QString& expectedDefinitionId) + { + Q_UNUSED(other); + Q_UNUSED(expectedDefinitionId); + } + + inline QContactDetail& assign(const QContactDetail &other, const QString& expectedDefinitionId) + { + Q_UNUSED(other); + Q_UNUSED(expectedDefinitionId); + return (const_cast(other)); + } + + inline QContactDetail(const QContactDetail &other, const char* expectedDefinitionId) + { + Q_UNUSED(other); + Q_UNUSED(expectedDefinitionId); + } + + inline QContactDetail& assign(const QContactDetail &other, const char* expectedDefinitionId) + { + Q_UNUSED(other); + Q_UNUSED(expectedDefinitionId); + return (const_cast(other)); + } +}; + +// Stub for QContactFilter +class QContactFilter +{ +public: + inline QContactFilter() + { + } + + inline ~QContactFilter() + { + } + + inline QContactFilter(const QContactFilter& other) + { + Q_UNUSED(other); + } + + inline QContactFilter& operator=(const QContactFilter& other) + { + Q_UNUSED(other); + return (const_cast(other)); + } + + enum FilterType { + InvalidFilter, + ContactDetailFilter, + ContactDetailRangeFilter, + ChangeLogFilter, + ActionFilter, + RelationshipFilter, + IntersectionFilter, + UnionFilter, + LocalIdFilter, + DefaultFilter + }; + + inline FilterType type() const + { + return FilterType(); + } + + // Qt::MatchFlags don't quite match here + enum MatchFlag { + MatchExactly = Qt::MatchExactly, // 0 + MatchContains = Qt::MatchContains, // 1 + MatchStartsWith = Qt::MatchStartsWith, // 2 + MatchEndsWith = Qt::MatchEndsWith, // 3 + MatchFixedString = Qt::MatchFixedString, // 8 + MatchCaseSensitive = Qt::MatchCaseSensitive, // 16 + MatchPhoneNumber = 1024, + MatchKeypadCollation = 2048 + }; + Q_DECLARE_FLAGS(MatchFlags, MatchFlag) +}; + +class QContactEmailAddress : public QContactDetail +{ +public: + +#ifdef Q_QDOC + static const QLatin1Constant DefinitionName; + static const QLatin1Constant FieldEmailAddress; +#else + Q_DECLARE_CUSTOM_CONTACT_DETAIL(QContactEmailAddress, "EmailAddress") + Q_DECLARE_LATIN1_CONSTANT(FieldEmailAddress, "EmailAddress"); +#endif + + void setEmailAddress(const QString& emailAddress) {Q_UNUSED(emailAddress);} + QString emailAddress() const {return value(FieldEmailAddress);} + + static QContactFilter match(const QString& emailAddress) + { + Q_UNUSED(emailAddress); + return QContactFilter(); + } +}; + +class QContactName : public QContactDetail +{ +public: + +#ifdef Q_QDOC + //static const QLatin1Constant DefinitionName; + static const QLatin1Constant FieldPrefix; + static const QLatin1Constant FieldFirstName; + static const QLatin1Constant FieldMiddleName; + static const QLatin1Constant FieldLastName; + static const QLatin1Constant FieldSuffix; + static const QLatin1Constant FieldCustomLabel; +#else + Q_DECLARE_CUSTOM_CONTACT_DETAIL(QContactName, "Name") + Q_DECLARE_LATIN1_CONSTANT(FieldPrefix, "Prefix"); + Q_DECLARE_LATIN1_CONSTANT(FieldFirstName, "FirstName"); + Q_DECLARE_LATIN1_CONSTANT(FieldMiddleName, "MiddleName"); + Q_DECLARE_LATIN1_CONSTANT(FieldLastName, "LastName"); + Q_DECLARE_LATIN1_CONSTANT(FieldSuffix, "Suffix"); + Q_DECLARE_LATIN1_CONSTANT(FieldCustomLabel, "CustomLabel"); +#endif + //static const QString DefinitionName; + + QString prefix() const {return value(FieldPrefix);} + QString firstName() const {return value(FieldFirstName);} + QString middleName() const {return value(FieldMiddleName);} + QString lastName() const {return value(FieldLastName);} + QString suffix() const {return value(FieldSuffix);} + QString customLabel() const{return value(FieldCustomLabel);} + + void setPrefix(const QString& prefix) {setValue(FieldPrefix, prefix);} + void setFirstName(const QString& firstName) {setValue(FieldFirstName, firstName);} + void setMiddleName(const QString& middleName) {setValue(FieldMiddleName, middleName);} + void setLastName(const QString& lastName) {setValue(FieldLastName, lastName);} + void setSuffix(const QString& suffix) {setValue(FieldSuffix, suffix);} + void setCustomLabel(const QString& customLabel) {setValue(FieldCustomLabel, customLabel);} + + // Convenience filter + static QContactFilter match(const QString& name); + static QContactFilter match(const QString& firstName, const QString& lastName); +}; + +// Stub for QContactDetailFilter +class QContactDetailFilter : public QContactFilter +{ +public: + inline QContactDetailFilter() + { + } + + inline QContactDetailFilter(const QContactFilter& other) + { + Q_UNUSED(other); + } + + inline void setDetailDefinitionName(const QString& definition, const QString& fieldName = QString()) + { + Q_UNUSED(definition); + Q_UNUSED(fieldName); + setDetailDefinitionNameCalled = true; + } + + inline void setMatchFlags(QContactFilter::MatchFlags flags) + { + Q_UNUSED(flags); + setMatchFlagsCalled = true; + } + + inline void setValue(const QVariant& value) + { + Q_UNUSED(value); + setValueCalled = true; + } +}; + +// Stub for QContactFetchHint +class QContactFetchHint { +public: + + inline QContactFetchHint() + { + } + + inline QContactFetchHint(const QContactFetchHint& other) + { + Q_UNUSED(other); + } + + inline ~QContactFetchHint() + { + } + +}; + +class QContact +{ +public: + inline QContact() + { + } + + inline ~QContact() + { + } + + QContact(const QContact& other); + QContact& operator=(const QContact& other); + + bool operator==(const QContact &other) const; + bool operator!=(const QContact &other) const {return !(other == *this);} + + /* Access details of particular type or which support a particular action */ + QContactDetail detail(const QString& definitionId) const; + QList details(const QString& definitionId = QString()) const; + + QList details(const QString& definitionName, const QString& fieldName, const QString& value) const; + + inline QContactDetail detail(const char* definitionId) const + { + Q_UNUSED(definitionId); + QContactDetail detail; + + detail.setValue(definitionId, definitionId); + + return detail; + } + + inline QList details(const char* definitionId) const + { + QList tmpList; + QContactDetail detail; + + if(!returnZeroEmails) + { + detail.setValue(definitionId, definitionId); + tmpList.append(detail); + } + + return tmpList; + } + + QList details(const char* definitionId, const char* fieldName, const QString& value) const; + + /* Templated retrieval for definition names */ +#ifdef Q_QDOC + QContactDetail detail(const QLatin1Constant& definitionName) const; + QList details(const QLatin1Constant& definitionName) const; + QList details(const QLatin1Constant& definitionName, const QLatin1Constant& fieldName, const QString& value); +#else + template QContactDetail detail(const QLatin1Constant& definitionName) const + { + return detail(definitionName.latin1()); + } + template QList details(const QLatin1Constant& definitionName) const + { + return details(definitionName.latin1()); + } + template QList details(const QLatin1Constant& definitionName, const QLatin1Constant& fieldName, const QString& value) + { + return details(definitionName.latin1(), fieldName.latin1(), value); + } +#endif + + /* Templated (type-specific) detail retrieval */ + template QList details() const + { + QList props = details(T::DefinitionName.latin1()); + QList ret; + foreach(QContactDetail prop, props) + ret.append(T(prop)); + return ret; + } + + /* Templated (type-specific) detail retrieval base on given detail field name and field value */ + template QList details(const QString& fieldName, const QString& value) const + { + QList props = details(T::DefinitionName, fieldName, value); + QList ret; + foreach(QContactDetail prop, props) + ret.append(T(prop)); + return ret; + } + + template QList details(const char* fieldName, const QString& value) const + { + QList props = details(T::DefinitionName.latin1(), fieldName, value); + QList ret; + foreach(QContactDetail prop, props) + ret.append(T(prop)); + return ret; + } + + template T detail() const + { + return T(detail(T::DefinitionName.latin1())); + } + +}; + +// Stub for QContactManager +//class QContactManager : public QObject +class QContactManager +{ +// Q_OBJECT + +public: + +#if Q_QDOC // qdoc's parser fails to recognise the default map argument + + inline explicit QContactManager(const QString& managerName = QString(), const QMap& parameters = 0, QObject* parent = 0) + { + Q_UNUSED(managerName); + Q_UNUSED(parameters; + Q_UNUSED(parent); + } + + inline QContactManager(const QString& managerName, int implementationVersion, const QMap& parameters = 0, QObject* parent = 0) + { + Q_UNUSED(managerName); + Q_UNUSED(implementationVersion); + Q_UNUSED(parameters); + Q_UNUSED(parent); + } + +#else + + inline explicit QContactManager(const QString& managerName = QString(), const QMap& parameters = (QMap()), QObject* parent = 0) + { + Q_UNUSED(managerName); + Q_UNUSED(parameters); + Q_UNUSED(parent); + } + + inline QContactManager(const QString& managerName, int implementationVersion, const QMap& parameters = (QMap()), QObject* parent = 0) + { + Q_UNUSED(managerName); + Q_UNUSED(implementationVersion); + Q_UNUSED(parameters); + Q_UNUSED(parent); + } + +#endif +// explicit QContactManager(QObject* parent); + +// static QContactManager* fromUri(const QString& uri, QObject* parent = 0); + inline ~QContactManager() + { + + } + + /* Contacts - Accessors and Mutators */ +// QList contactIds(const QList& sortOrders = QList()) const; + + // QContactLocalId - Check + // QContactFilter - Check + // QContactSortOrder - Check + // QContactFetchHint - Check + + + inline QList contactIds(const QContactFilter& filter, const QList& sortOrders = QList()) const + { + Q_UNUSED(filter); + Q_UNUSED(sortOrders); + + QList list; + list.append(12); + list.append(24); + list.append(48); + + ContactIdsCalled = true; + + return list; + } + +// QList contacts(const QList& sortOrders = QList(), const QContactFetchHint& fetchHint = QContactFetchHint()) const; +// QList contacts(const QContactFilter& filter, const QList& sortOrders = QList(), const QContactFetchHint& fetchHint = QContactFetchHint()) const; + inline QContact contact(const QContactLocalId& contactId, const QContactFetchHint& fetchHint = QContactFetchHint()) const // retrieve a contact + { + Q_UNUSED(fetchHint); + + QContact cnt; + + int keu = contactId; + + switch (keu) + { + case 12: + + break; + + case 24: + + break; + + case 48: + + break; + + default: + break; + } + + + + return cnt; + } + + + +}; + +//QTM_END_NAMESPACE + +#endif diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmutilities/tsrc/unittests/unittest_nmcontacthistorymodel_p/unittest_nmcontacthistorymodel_p.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/nmutilities/tsrc/unittests/unittest_nmcontacthistorymodel_p/unittest_nmcontacthistorymodel_p.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,476 @@ +/* +* 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: +* +*/ + +#include "qtcontacts.h" +#include "nmcontacthistorymodel.h" + +#include "nmcontacthistorymodel_p.h" +#include "unittest_nmcontacthistorymodel_p.h" + +Q_DEFINE_LATIN1_CONSTANT(QContactEmailAddress::FieldEmailAddress, "EmailAddress"); +Q_DEFINE_LATIN1_CONSTANT(QContactName::DefinitionName, "Name"); +Q_DEFINE_LATIN1_CONSTANT(QContactEmailAddress::DefinitionName, "EmailAddress"); +Q_DEFINE_LATIN1_CONSTANT(QContactName::FieldFirstName, "FirstName"); +Q_DEFINE_LATIN1_CONSTANT(QContactName::FieldLastName, "LastName"); + +bool constructorCalled; +bool destructorCalled; +bool entryCountCalled; +bool getEntryCalled; +bool nameOrderCalled; + +bool setDetailDefinitionNameCalled; +bool setMatchFlagsCalled; +bool setValueCalled; +bool ContactIdsCalled; + +bool fillMruWithFalseValues; +bool returnZeroEmails; + +// ----------------------------------------------------------------------------- +// initTestCase +// ----------------------------------------------------------------------------- +// +void TestNmContactHistoryModelPrivate::initTestCase() +{ + // Put some allied forces operation names in to array for testing. + mTestNames << "Oatmeal" << "Olive" << "Olympic" << "Open Door" << "Opium" << + "Orange" << "Oration" << "Outflank" << "Overlord" << "Overthrow"; +} + +// ----------------------------------------------------------------------------- +// init +// ----------------------------------------------------------------------------- +// +void TestNmContactHistoryModelPrivate::init() +{ + constructorCalled = false; + destructorCalled = false; + entryCountCalled = false; + getEntryCalled = false; + nameOrderCalled = false; + + setDetailDefinitionNameCalled = false; + setMatchFlagsCalled = false; + setValueCalled = false; + ContactIdsCalled = false; + + fillMruWithFalseValues = false; + returnZeroEmails = false; + + mTestObject = 0; + mSignalEmitted = false; + mTestObject = new NmContactHistoryModelPrivate(EmailAddressModel); + + QVERIFY(mTestObject); + + mTestObject->mModelReady = false; +} + +// ----------------------------------------------------------------------------- +// cleanup +// ----------------------------------------------------------------------------- +// +void TestNmContactHistoryModelPrivate::cleanup() +{ + if(mTestObject) + { + delete mTestObject; + mTestObject = 0; + } +} + +// ----------------------------------------------------------------------------- +// cleanupTestCase +// ----------------------------------------------------------------------------- +// + +void TestNmContactHistoryModelPrivate::cleanupTestCase() +{ + mTestNames.clear(); +} + +void TestNmContactHistoryModelPrivate::test_queryMruDatabase() // Ready +{ + /* Email MRU Stub will always return following values: + (if fillMruWithFalseValue == true) + + displayName = ""; [0] + address = "camel.case@plusplus.com"; + + displayName = "Agent Plus"; [1] + address = "plus@plusplus.com"; + + displayName = "Agent Smith"; [2] + address = "noreply@mib.com"; */ + + mTestObject->mMruMatches.clear(); + mTestObject->mMruList.clear(); + + QVERIFY(mTestObject->mMruMatches.count() == 0); + + // Test query with empty string + fillMruWithFalseValues = true; + + bool rValue = mTestObject->queryMruDatabase(QString()); + + QVERIFY( entryCountCalled ); + QVERIFY( getEntryCalled ); + QVERIFY( rValue ); + + //TODO: Fix the "bug" + //QVERIFY(mTestObject->mMruMatches.count() == 0); + + // Test query with no display name + // and using the start of the email as display name + mTestObject->mMruMatches.clear(); + mTestObject->mMruList.clear(); + + rValue = mTestObject->queryMruDatabase("Camel"); + QVERIFY( rValue ); + + rValue = mTestObject->mMruMatches.contains("camel.case"); + QVERIFY( rValue ); + + QVERIFY(mTestObject->mMruMatches.count() == 1); + + // Test query with match in email + + mTestObject->mMruMatches.clear(); + mTestObject->mMruList.clear(); + + rValue = mTestObject->queryMruDatabase("noReply"); + + QVERIFY( rValue ); + rValue = mTestObject->mMruMatches.contains("camel.case"); + QVERIFY(mTestObject->mMruMatches.count() == 1); +} + +void TestNmContactHistoryModelPrivate::test_queryContactDatabase() // Ready. +{ + QVERIFY(mTestObject->mModelItemList.count() == 0); + QVERIFY(mTestObject->mPrivateItemList.count() == 0); + + QList rValues; + + rValues = mTestObject->queryContactDatabase("MATRIX"); + + QVERIFY( setDetailDefinitionNameCalled ); + QVERIFY( setMatchFlagsCalled ); + QVERIFY( setValueCalled ); + QVERIFY( ContactIdsCalled ); + + QVERIFY( rValues.contains(12) ); + QVERIFY( rValues.contains(24) ); + QVERIFY( rValues.contains(48) ); + +} + +void TestNmContactHistoryModelPrivate::test_populateListWithMruItems() // Ready +{ + QVERIFY(mTestObject->mModelItemList.count() == 0); + QVERIFY(mTestObject->mPrivateItemList.count() == 0); + + mTestObject->mMruMatches.clear(); + + //MRU (key = name, value = address); + mTestObject->mMruMatches.insert("Test Name","name@test.com"); + mTestObject->mMruMatches.insert("Tset Eman","eman@tset.com"); + mTestObject->mMruMatches.insert("Tset, Tset","test@name.com"); + + mTestObject->populateListWithMruItems("Name"); + + QVERIFY( mTestObject->mPrivateItemList.count() == 1 ); + + QSharedPointer itemData = mTestObject->mPrivateItemList[0]; + QVERIFY( itemData->mItems[0].mMatchingRanges.count() == 2 ); + QVERIFY( itemData->mItems[1].mMatchingRanges.count() == 2 ); + + QString dbgString = itemData->mItems[0].mItemText; + + int markup1Start = itemData->mItems[0].mMatchingRanges[0]; + int markup1Stop = itemData->mItems[0].mMatchingRanges[1]; + + int markup2Start = itemData->mItems[1].mMatchingRanges[0]; + int markup2Stop = itemData->mItems[1].mMatchingRanges[1]; + + QVERIFY( markup1Start == 5 ); + QVERIFY( markup1Stop == 8 ); + + QVERIFY( markup2Start == 0 ); + QVERIFY( markup2Stop == 3 ); + + // Second Test (Double markup in the name + no email match) + mTestObject->mPrivateItemList.clear(); + mTestObject->populateListWithMruItems("Tset"); + + QVERIFY( mTestObject->mPrivateItemList.count() == 2 ); + + itemData = mTestObject->mPrivateItemList[1]; + QVERIFY( itemData->mItems[0].mMatchingRanges.count() == 4 ); + QVERIFY( itemData->mItems[1].mMatchingRanges.count() == 0 ); + + dbgString = itemData->mItems[0].mItemText; + + markup1Start = itemData->mItems[0].mMatchingRanges[0]; + markup1Stop = itemData->mItems[0].mMatchingRanges[1]; + + markup2Start = itemData->mItems[0].mMatchingRanges[2]; + markup2Stop = itemData->mItems[0].mMatchingRanges[3]; + + QVERIFY( markup1Start == 0 ); + QVERIFY( markup1Stop == 3 ); + + QVERIFY( markup2Start == 6 ); + QVERIFY( markup2Stop == 9 ); +} + +void TestNmContactHistoryModelPrivate::test_populateListWithContactItems() // Ready +{ + QVERIFY(mTestObject->mModelItemList.count() == 0); + QVERIFY(mTestObject->mPrivateItemList.count() == 0); + + QList cnt_ids; + cnt_ids.append(12); + + // Match in first name. + mTestObject->populateListWithContactItems(cnt_ids, "First"); + QVERIFY( mTestObject->mPrivateItemList.count() == 1 ); + QSharedPointer itemData = mTestObject->mPrivateItemList[0]; + QVERIFY( itemData->mItems[0].mMatchingRanges.count() == 2 ); + QString dbgString = itemData->mItems[0].mItemText; + + int markup1Start = itemData->mItems[0].mMatchingRanges[0]; + int markup1Stop = itemData->mItems[0].mMatchingRanges[1]; + + QVERIFY( markup1Start == 0 ); + QVERIFY( markup1Stop == 4 ); + + mTestObject->mPrivateItemList.clear(); + + // Match in last name. + mTestObject->populateListWithContactItems(cnt_ids, "Last"); + + QVERIFY( mTestObject->mPrivateItemList.count() == 1 ); + itemData = mTestObject->mPrivateItemList[0]; + QVERIFY( itemData->mItems[0].mMatchingRanges.count() == 2 ); + dbgString = itemData->mItems[0].mItemText; + + markup1Start = itemData->mItems[0].mMatchingRanges[0]; + markup1Stop = itemData->mItems[0].mMatchingRanges[1]; + + QVERIFY( markup1Start == 10 ); + QVERIFY( markup1Stop == 13 ); + + mTestObject->mPrivateItemList.clear(); + + // Match in email. + mTestObject->populateListWithContactItems(cnt_ids, "Email"); + QVERIFY( mTestObject->mPrivateItemList.count() == 1 ); + itemData = mTestObject->mPrivateItemList[0]; + QVERIFY( itemData->mItems[1].mMatchingRanges.count() == 2 ); + dbgString = itemData->mItems[1].mItemText; + + markup1Start = itemData->mItems[1].mMatchingRanges[0]; + markup1Stop = itemData->mItems[1].mMatchingRanges[1]; + + QVERIFY( markup1Start == 0 ); + QVERIFY( markup1Stop == 4 ); + + mTestObject->mPrivateItemList.clear(); + + // No emails. + returnZeroEmails = true; + mTestObject->populateListWithContactItems(cnt_ids, "First"); + QVERIFY( mTestObject->mPrivateItemList.count() == 0 ); +} + +void TestNmContactHistoryModelPrivate::test_queryDatabases() // Ready +{ + mSignalEmitted = false; + QObject::connect(mTestObject, SIGNAL(queryCompleted(int)), this, SLOT(handleQueryCompleted(int))); + + mTestObject->queryDatabases("Agent"); + + QVERIFY( mSignalEmitted ); + + QVERIFY( mTestObject->mMruMatches.count() == 1 ); + QVERIFY( mTestObject->mPrivateItemList.count() == 1 ); + + QVERIFY( constructorCalled ); + QVERIFY( destructorCalled ); + QVERIFY( entryCountCalled ); + QVERIFY( getEntryCalled ); + QVERIFY( nameOrderCalled ); + + QVERIFY( setDetailDefinitionNameCalled ); + QVERIFY( setMatchFlagsCalled ); + QVERIFY( setValueCalled ); + QVERIFY( ContactIdsCalled ); +} + +void TestNmContactHistoryModelPrivate::refreshDataModel() // Ready +{ + mTestObject->mPrivateItemList.clear(); + + QVERIFY(mTestObject->mModelItemList.count() == 0); + QVERIFY(mTestObject->mPrivateItemList.count() == 0); + + QSharedPointer itemData (new NmContactHistoryModelItemData); + + // For Display name (ex. John Doe) + NmContactHistoryModelSubItem itemSubItem1; + // For Email address (ex. john.doe@company.com) + NmContactHistoryModelSubItem itemSubItem2; + + itemSubItem1.mItemText = "Test Name"; + itemSubItem2.mItemText = "test@name.com"; + + itemSubItem1.mMatchingRanges.append(0); + itemSubItem1.mMatchingRanges.append(itemSubItem1.mItemText.length()-1); + + itemSubItem2.mMatchingRanges.append(0); + itemSubItem2.mMatchingRanges.append(itemSubItem2.mItemText.length()-1); + + itemData->mContactId = 12; + itemData->mItems.append(itemSubItem1); + itemData->mItems.append(itemSubItem2); + + mTestObject->mPrivateItemList.append(itemData); + + mTestObject->refreshDataModel(); + + QVERIFY( mTestObject->mModelReady ); + + QVERIFY(mTestObject->mPrivateItemList.count() == 1); + QVERIFY(mTestObject->mModelItemList.count() == 1); + + QSharedPointer testData1 + (mTestObject->mPrivateItemList[0]); + +// NmContactHistoryModelItem testData1 = mTestObject->mPrivateItemList[0]; + NmContactHistoryModelItem testData2 = mTestObject->mModelItemList[0]; + + QVERIFY(testData1->mContactId == testData2.contactId()); + QVERIFY(testData2.subItemCount() == 2); + + NmContactHistoryModelSubItem testItem1 = testData2.subItemAt(0); + NmContactHistoryModelSubItem testItem2 = testData2.subItemAt(1); + + QVERIFY( testItem1.mItemText == itemSubItem1.mItemText ); + QVERIFY( testItem2.mItemText == itemSubItem2.mItemText ); + + QVERIFY( testItem1.mMatchingRanges.count() == 2 ); +} + +void TestNmContactHistoryModelPrivate::test_rowCount() // Ready +{ + QVERIFY(mTestObject->mModelItemList.count() == 0); + + NmContactHistoryModelItem item; + item.setContactId(0); + mTestObject->mModelItemList.append(item); + + QVERIFY(mTestObject->mModelItemList.count() == 1); + + mTestObject->mModelItemList.clear(); + QVERIFY(mTestObject->mModelItemList.count() == 0); + +} + +void TestNmContactHistoryModelPrivate::test_data() // Ready +{ + QModelIndex testIndex = QModelIndex(); + QVariant testVariant = mTestObject->data(testIndex, Qt::DisplayRole); + QCOMPARE(testVariant, QVariant()); + + for (int i = 0; i < 10; i++) + { + NmContactHistoryModelItem item; + item.setContactId(i); + mTestObject->mModelItemList.append(item); + } + + mTestObject->mModelItemList.clear(); +} + +void TestNmContactHistoryModelPrivate::fillMruMatchList() // Ready +{ + mTestObject->mMruList.clear(); + bool success = mTestObject->fillMruMatchList(); + + QVERIFY( constructorCalled ); + QVERIFY( destructorCalled ); + QVERIFY( entryCountCalled ); + QVERIFY( getEntryCalled ); + QVERIFY( nameOrderCalled ); + + QVERIFY( success ); + + QVERIFY(mTestObject->mMruList.count() == 2); + + bool containsValue = mTestObject->mMruList.contains("camel.case@plusplus.com"); + QVERIFY(containsValue); + + containsValue = mTestObject->mMruList.contains("byvalue@plusplus.com"); + QVERIFY( containsValue ); +} + +void TestNmContactHistoryModelPrivate::obeyContactOrder() // Ready +{ + QString first = "Test"; + QString last = "Name"; + + // LastNameFirstName + mTestObject->mNameOrder = 0; + QString resultString = mTestObject->obeyContactOrder(first, last); + QVERIFY(resultString == "Name Test"); + + // LastNameCommaFirstName + mTestObject->mNameOrder = 1; + resultString = mTestObject->obeyContactOrder(first, last); + QVERIFY(resultString == "Name, Test"); + + // FirstNameLastName + mTestObject->mNameOrder = 2; + resultString = mTestObject->obeyContactOrder(first, last); + QVERIFY(resultString == "Test Name"); + + // Invalid / Default + mTestObject->mNameOrder = 0xDEAD; + resultString = mTestObject->obeyContactOrder(first, last); + QVERIFY(resultString == "Test Name"); +} + +// Signals + +void TestNmContactHistoryModelPrivate::test_queryCompleted() // Ready +{ + mSignalEmitted = false; + QObject::connect(mTestObject, SIGNAL(queryCompleted(int)), this, SLOT(handleQueryCompleted(int))); + mTestObject->queryDatabases(QString()); + QVERIFY( mSignalEmitted ); +} + +void TestNmContactHistoryModelPrivate::handleQueryCompleted(int err) // Internal +{ + Q_UNUSED(err); + mSignalEmitted = true; +} + +QTEST_MAIN(TestNmContactHistoryModelPrivate) + diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmutilities/tsrc/unittests/unittest_nmcontacthistorymodel_p/unittest_nmcontacthistorymodel_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/nmutilities/tsrc/unittests/unittest_nmcontacthistorymodel_p/unittest_nmcontacthistorymodel_p.h Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,87 @@ +/* +* 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: +* +*/ + +#ifndef __UNITTEST_NMCONTACTHISTORYMODELPRIVATE_H__ +#define __UNITTEST_NMCONTACTHISTORYMODELPRIVATE_H__ + +#include + +class NmContactHistoryModelPrivate; + +class TestNmContactHistoryModelPrivate : public QObject +{ + Q_OBJECT + +signals: + +private slots: + /** + * called before anything else when test starts + */ + void initTestCase(); + + /** + * will be called before each testfunction is executed. + * + */ + void init(); + + /** + * will be called after every testfunction. + * + */ + void cleanup(); + + /** + * will be called after testing ends + * + */ + void cleanupTestCase(); + + // Signal + + void test_queryContactDatabase(); + void test_queryMruDatabase(); + + void test_populateListWithContactItems(); + void test_populateListWithMruItems(); + + void test_rowCount(); + void test_data(); + + void refreshDataModel(); + void fillMruMatchList(); + void obeyContactOrder(); + + void test_queryDatabases(); + + void test_queryCompleted(); + void handleQueryCompleted(int err); + +private: + + /** + * object under test + */ + NmContactHistoryModelPrivate *mTestObject; + + QStringList mTestNames; + bool mSignalEmitted; +}; + +#endif //__UNITTEST_NMCONTACTHISTORYMODELPRIVATE_H__ + diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmutilities/tsrc/unittests/unittest_nmcontacthistorymodel_p/unittest_nmcontacthistorymodel_p.pro --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/nmutilities/tsrc/unittests/unittest_nmcontacthistorymodel_p/unittest_nmcontacthistorymodel_p.pro Mon Oct 04 00:05:37 2010 +0300 @@ -0,0 +1,54 @@ +# +# 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: +# + +TEMPLATE = app +TARGET = +DEPENDPATH += . + +INCLUDEPATH += . \ + ../../../../../email_plat/contact_history_model_api/inc \ + /epoc32/include/mw/QtTest \ + $$MW_LAYER_SYSTEMINCLUDE + +QT += core + +CONFIG += qtestlib +CONFIG += symbian_test + +# Input +HEADERS += qtcontacts.h +#HEADERS += ../../../../../email_plat/contact_history_model_api/inc/nmcontacthistorymodel.h +#HEADERS += /inc/nmcontacthistorymodel.h +#HEADERS += nmcontacthistorymodel.h +HEADERS += ../../../inc/nmcontacthistorymodel_p.h +#HEADERS += nmcontacthistorymodelcommon.h +#HEADERS += nmcontacthistorymodel_p.h +HEADERS += unittest_nmcontacthistorymodel_p.h + +SOURCES += ../../../src/nmcontacthistorymodelitem.cpp +SOURCES += ../../../src/nmcontacthistorymodel_p.cpp + +#SOURCES += ../../../src/nmcontacthistorymodel.cpp +SOURCES += emailmru_stub.cpp +SOURCES += unittest_nmcontacthistorymodel_p.cpp + + +symbian: { + TARGET.CAPABILITY = CAP_APPLICATION + EPOCALLOWDLLDATA = 1 + TARGET.EPOCHEAPSIZE = 0x20000 0x1600000 + TARGET.UID3 = 0x20000A06 +} diff -r 64e38f08e49c -r 47d84de1c893 emailuis/nmailcpplugin/nmailcpplugin.pro --- a/emailuis/nmailcpplugin/nmailcpplugin.pro Fri Sep 17 08:27:21 2010 +0300 +++ b/emailuis/nmailcpplugin/nmailcpplugin.pro Mon Oct 04 00:05:37 2010 +0300 @@ -66,6 +66,7 @@ BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include " \ "rom/nmailcpplugin.iby CORE_APP_LAYER_IBY_EXPORT_PATH(nmailcpplugin.iby)" + MMP_RULES += SMPSAFE } TARGET.CAPABILITY = All -TCB diff -r 64e38f08e49c -r 47d84de1c893 emailuis/nmailui/conf/nmeditorview.docml --- a/emailuis/nmailui/conf/nmeditorview.docml Fri Sep 17 08:27:21 2010 +0300 +++ b/emailuis/nmailui/conf/nmeditorview.docml Mon Oct 04 00:05:37 2010 +0300 @@ -129,6 +129,12 @@ + + + + + + @@ -136,7 +142,6 @@ - diff -r 64e38f08e49c -r 47d84de1c893 emailuis/nmailui/conf/nmmessagesearchlistview.docml --- a/emailuis/nmailui/conf/nmmessagesearchlistview.docml Fri Sep 17 08:27:21 2010 +0300 +++ b/emailuis/nmailui/conf/nmmessagesearchlistview.docml Mon Oct 04 00:05:37 2010 +0300 @@ -5,20 +5,26 @@ + + + - - - + + + +
+ + + - @@ -27,10 +33,25 @@ - - - +
+
+ + + + + + + + + + + + +
+ - + + + diff -r 64e38f08e49c -r 47d84de1c893 emailuis/nmailui/conf/nmviewerheader.css --- a/emailuis/nmailui/conf/nmviewerheader.css Fri Sep 17 08:27:21 2010 +0300 +++ b/emailuis/nmailui/conf/nmviewerheader.css Mon Oct 04 00:05:37 2010 +0300 @@ -20,4 +20,11 @@ pref-height: var(hb-param-graphic-size-secondary); pref-width: var(hb-param-graphic-size-secondary); size-policy: fixed fixed; -} \ No newline at end of file +} + +HbTextEdit#toField::text{ + left: 4; + right: 4; + top: 0; + bottom: 0; +} diff -r 64e38f08e49c -r 47d84de1c893 emailuis/nmailui/inc/nmapplication.h --- a/emailuis/nmailui/inc/nmapplication.h Fri Sep 17 08:27:21 2010 +0300 +++ b/emailuis/nmailui/inc/nmapplication.h Mon Oct 04 00:05:37 2010 +0300 @@ -41,6 +41,8 @@ class NmUiEffects; class HbMessageBox; class QTimer; +class AfActivation; +class AfActivityStorage; class NmApplication : public HbApplication { @@ -108,6 +110,8 @@ bool mApplicationHidden; QTimer* mErrorNoteTimer; // Owned NmId mLastErrorMailboxId; + AfActivation* mActivation; // Owned + AfActivityStorage* mActivityStorage; // Owned }; #endif // NMAPPLICATION_H diff -r 64e38f08e49c -r 47d84de1c893 emailuis/nmailui/inc/nmeditorcontent.h --- a/emailuis/nmailui/inc/nmeditorcontent.h Fri Sep 17 08:27:21 2010 +0300 +++ b/emailuis/nmailui/inc/nmeditorcontent.h Mon Oct 04 00:05:37 2010 +0300 @@ -55,6 +55,10 @@ private: void createConnections(); void removeEmbeddedImages(QString &bodyContent); + void convertBodyStylesToDivision(QString &bodyContent); + void createDivisionFromHead(QString &bodyContent); + void convertBodyToDiv(QString &bodyContent, const QString &replacementString); + void convertBGColorToStyle(QString &bodyContent); signals: void setPlainText(const QString&); diff -r 64e38f08e49c -r 47d84de1c893 emailuis/nmailui/inc/nmmessagesearchlistview.h --- a/emailuis/nmailui/inc/nmmessagesearchlistview.h Fri Sep 17 08:27:21 2010 +0300 +++ b/emailuis/nmailui/inc/nmmessagesearchlistview.h Mon Oct 04 00:05:37 2010 +0300 @@ -107,6 +107,7 @@ void sendSoftwareInputPanelRequest(QEvent::Type eventType = QEvent::RequestSoftwareInputPanel); void vkbOpened(); void vkbClosed(); + void loadOrientationSection(); private: // Data diff -r 64e38f08e49c -r 47d84de1c893 emailuis/nmailui/inc/nmuiheaders.h --- a/emailuis/nmailui/inc/nmuiheaders.h Fri Sep 17 08:27:21 2010 +0300 +++ b/emailuis/nmailui/inc/nmuiheaders.h Mon Oct 04 00:05:37 2010 +0300 @@ -98,6 +98,7 @@ #include #include #include +#include #include #include @@ -110,6 +111,8 @@ #include #include #include +#include +#include #include #include diff -r 64e38f08e49c -r 47d84de1c893 emailuis/nmailui/inc/nmuiviewids.h --- a/emailuis/nmailui/inc/nmuiviewids.h Fri Sep 17 08:27:21 2010 +0300 +++ b/emailuis/nmailui/inc/nmuiviewids.h Mon Oct 04 00:05:37 2010 +0300 @@ -73,7 +73,9 @@ bool service = false, QString *subject = NULL, QList *ccAddressList = NULL, - QList *bccAddressList = NULL) + QList *bccAddressList = NULL, + QString *bodyText = NULL, + QString *bodyTextMimeType = NULL) { mViewId = viewId; mMailboxId = mailboxId; @@ -86,6 +88,12 @@ mSubject = subject; mCcAddressList = ccAddressList; mBccAddressList = bccAddressList; + if (bodyText) { + mBodyText = *bodyText; + } + if (bodyTextMimeType) { + mBodyTextMimeType = *bodyTextMimeType; + } } inline ~NmUiStartParam() @@ -181,21 +189,31 @@ return *mBccAddressList; } - inline void setMailboxId(NmId mailboxId) + inline void setMailboxId(NmId mailboxId) { mMailboxId = mailboxId; } - - inline void setFolderId(NmId folderId) + + inline void setFolderId(NmId folderId) { mFolderId = folderId; } - - inline void setMessageId(NmId messageId) + + inline void setMessageId(NmId messageId) { mMessageId = messageId; } + inline const QString &bodyText() const + { + return mBodyText; + } + + inline const QString &bodyMimeType() const + { + return mBodyTextMimeType; + } + private: // Data NmUiViewId mViewId; @@ -209,6 +227,8 @@ QString *mSubject; // owned QList *mCcAddressList; // owned QList *mBccAddressList; // owned + QString mBodyText; + QString mBodyTextMimeType; }; diff -r 64e38f08e49c -r 47d84de1c893 emailuis/nmailui/inc/nmutilities.h --- a/emailuis/nmailui/inc/nmutilities.h Fri Sep 17 08:27:21 2010 +0300 +++ b/emailuis/nmailui/inc/nmutilities.h Mon Oct 04 00:05:37 2010 +0300 @@ -57,6 +57,7 @@ QObject *receiver = 0, const char *member = 0); static QString createReplyHeader(const NmMessageEnvelope &env); + static NmAddress *qstringToNmAddress(QString str); }; #endif /* NMUTILITIES_H_ */ diff -r 64e38f08e49c -r 47d84de1c893 emailuis/nmailui/inc/nmviewerheader.h --- a/emailuis/nmailui/inc/nmviewerheader.h Fri Sep 17 08:27:21 2010 +0300 +++ b/emailuis/nmailui/inc/nmviewerheader.h Mon Oct 04 00:05:37 2010 +0300 @@ -26,7 +26,7 @@ class NmViewerView; class HbTextItem; class HbGroupBox; -class HbLabel; +class HbTextEdit; class HbIconItem; class NmViewerHeader : public HbWidget @@ -43,7 +43,10 @@ void rescaleHeader(const QSizeF layoutReso); void setView(NmViewerView* view); void updateMessageData(NmMessage* message); - + +private slots: + void anchorTapped(const QString &anchor); + private: void loadWidgets(); void setHeaderData(); @@ -60,7 +63,7 @@ HbTextItem *mSent; // Not owned HbIconItem *mPrioIcon; // Not owned HbGroupBox *mHeaderBox; // not owned - HbLabel *mRecipientsBox; // Not owned + HbTextEdit *mRecipientsBox; // Not owned NmViewerView *mViewerView; // Not owned }; diff -r 64e38f08e49c -r 47d84de1c893 emailuis/nmailui/inc/nmviewerview.h --- a/emailuis/nmailui/inc/nmviewerview.h Fri Sep 17 08:27:21 2010 +0300 +++ b/emailuis/nmailui/inc/nmviewerview.h Mon Oct 04 00:05:37 2010 +0300 @@ -107,6 +107,7 @@ void createToolBar(); void setAttachmentList(); void createAndShowWaitDialog(); + bool isInlineImage(NmMessagePart* part); private: NmApplication &mApplication; @@ -121,6 +122,7 @@ NmViewerHeader *mHeaderWidget; // Not owned NmAttachmentListWidget *mAttaListWidget; // Not owned QPointF mHeaderStartScenePos; + QPointer mMessagePartFetchingOperation; // Not owned QPointer mMessageFetchingOperation; // Not owned QPointF mLatestScrollPos; bool mDisplayingPlainText; diff -r 64e38f08e49c -r 47d84de1c893 emailuis/nmailui/nmailui.pro --- a/emailuis/nmailui/nmailui.pro Fri Sep 17 08:27:21 2010 +0300 +++ b/emailuis/nmailui/nmailui.pro Mon Oct 04 00:05:37 2010 +0300 @@ -59,6 +59,7 @@ LIBS += -lnmsettingui LIBS += -lnmutilities LIBS += -ltstaskmonitorclient +LIBS += -lafservice symbian*: { INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE @@ -74,6 +75,8 @@ -lxqserviceutil \ -lqtcontacts \ -lfmfiledialog + + MMP_RULES += SMPSAFE } HEADERS += inc/nmeditorcontent.h \ diff -r 64e38f08e49c -r 47d84de1c893 emailuis/nmailui/src/main.cpp --- a/emailuis/nmailui/src/main.cpp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailuis/nmailui/src/main.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -44,7 +44,7 @@ } NmApplication app(argc,argv); - + NM_TIMESTAMP("Application started."); int ret = app.exec(); return ret; } diff -r 64e38f08e49c -r 47d84de1c893 emailuis/nmailui/src/nmapplication.cpp --- a/emailuis/nmailui/src/nmapplication.cpp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailuis/nmailui/src/nmapplication.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -49,7 +49,9 @@ mQueryDialog(NULL), mBackButtonPressed(false), mApplicationHidden(false), - mErrorNoteTimer(NULL) + mErrorNoteTimer(NULL), + mActivation(NULL), + mActivityStorage(NULL) { // Load the translation file. QTranslator *translator = new QTranslator(this); @@ -60,9 +62,12 @@ installTranslator(translator); setApplicationName(hbTrId("txt_mail_title_mail")); + mActivation = new AfActivation(this); + mActivityStorage = new AfActivityStorage(this); + quint64 accountId = 0; QString activateId = this->activateId(); - if (activateReason() == Hb::ActivationReasonActivity && + if (mActivation->reason() == Af::ActivationReasonActivity && activateId.startsWith(NmActivityName) ) { QString accountIdString = activateId.mid(NmActivityName.length()); accountId = accountIdString.toULongLong(); @@ -102,7 +107,9 @@ mEffects = new NmUiEffects(*mMainWindow); - QObject::connect(this, SIGNAL(activate()), this, SLOT(activityActivated())); + QObject::connect( + mActivation, SIGNAL(activated(Af::ActivationReason, QString, QVariantHash)), + this, SLOT(activityActivated())); } @@ -161,6 +168,8 @@ delete mMainWindow; delete mAttaManager; delete mSettingsViewLauncher; + delete mActivityStorage; + delete mActivation; } @@ -252,6 +261,7 @@ currentView->viewReady(); emit applicationReady(); } + NM_TIMESTAMP("Application view ready."); } } @@ -394,7 +404,10 @@ taskSettings.setVisibility(false); // Remove also the mailbox item from the task switcher - activityManager()->removeActivity(NmActivityName); + bool ok = mActivityStorage->removeActivity(NmActivityName); + if(!ok) { + NM_COMMENT("Remove activity from Task Switcher failed."); + } } @@ -645,7 +658,10 @@ { NM_FUNCTION; - activityManager()->removeActivity(NmActivityName); + bool ok = mActivityStorage->removeActivity(NmActivityName); + if(!ok) { + NM_COMMENT("Remove activity from Task Switcher failed."); + } delete mSendServiceInterface; mSendServiceInterface = NULL; @@ -832,8 +848,8 @@ */ void NmApplication::updateActivity() { + bool ok(false); NmMailboxMetaData *meta = mUiEngine->mailboxById(mCurrentMailboxId); - // This will ensure that when service is started as a embedded service and a mail // process already exists the task activity will show the embedded service inside the // calling processes activity and the already running mail process in its own activity. @@ -845,11 +861,16 @@ metadata.insert(ActivityScreenshotKeyword, QPixmap::grabWidget(mainWindow(), mainWindow()->rect())); metadata.insert(ActivityApplicationName, meta->name()); metadata.insert(ActivityVisibility, true); - activityManager()->removeActivity(NmActivityName); - activityManager()->addActivity(NmActivityName, QVariant(), metadata); + ok = mActivityStorage->saveActivity(NmActivityName, QVariant(), metadata); + if(!ok) { + NM_COMMENT("Save activity to Task Switcher failed."); + } } else { - activityManager()->removeActivity(NmActivityName); + ok = mActivityStorage->removeActivity(NmActivityName); + if(!ok) { + NM_COMMENT("Remove activity from Task Switcher failed."); + } TsTaskSettings tasksettings; tasksettings.setVisibility(true); } @@ -863,7 +884,7 @@ { quint64 accountId(0); QString activateId = this->activateId(); - if (activateReason() == Hb::ActivationReasonActivity && + if (mActivation->reason() == Af::ActivationReasonActivity && activateId.startsWith(NmActivityName) ) { QString accountIdString = activateId.mid(NmActivityName.length()); accountId = accountIdString.toULongLong(); diff -r 64e38f08e49c -r 47d84de1c893 emailuis/nmailui/src/nmeditorcontent.cpp --- a/emailuis/nmailui/src/nmeditorcontent.cpp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailuis/nmailui/src/nmeditorcontent.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -125,10 +125,18 @@ } if (htmlPart) { - bodyContent.append(htmlPart->textContent()); + QString bodyText(htmlPart->textContent()); + if (editorStartMode==NmUiEditorReply || editorStartMode==NmUiEditorReplyAll || + editorStartMode==NmUiEditorForward) { + convertBodyStylesToDivision(bodyText); + } + if(editorStartMode==NmUiEditorReply || editorStartMode==NmUiEditorReplyAll ) { - removeEmbeddedImages(bodyContent); + removeEmbeddedImages(bodyText); } + + bodyContent.append(bodyText); + cursor.insertHtml(bodyContent); } else if (plainPart) { // Plain text part was present, set it to HbTextEdit as HTML @@ -273,43 +281,45 @@ void NmEditorContent::ensureCursorVisibility() { NM_FUNCTION; - - // check which of the editors has the focus and get the x/y coordinates for the cursor position - QGraphicsWidget *focused = mScrollAreaContents->focusWidget(); + + QGraphicsItem *focused = NULL; + QRectF localRect; // set to empty - if (focused) { - QRectF localRect(0, 0, 0, 0); - bool notFound = false; - - if (focused == mHeader->toEdit()) { - localRect = mHeader->toEdit()->rectForCursorPosition(); - } - else if (focused == mHeader->ccEdit()) { - localRect = mHeader->ccEdit()->rectForCursorPosition(); - } - else if (focused == mHeader->bccEdit()) { - localRect = mHeader->bccEdit()->rectForCursorPosition(); + // find out which widget has the input focus and get the cursor position ractangle + if (mHeader->toEdit() && mHeader->toEdit()->hasInputFocus()) { + focused = mHeader->toEdit(); + localRect = mHeader->toEdit()->rectForCursorPosition(); + } + else if (mHeader->ccEdit() && mHeader->ccEdit()->hasInputFocus()) { + focused = mHeader->ccEdit(); + localRect = mHeader->ccEdit()->rectForCursorPosition(); + } + else if (mHeader->bccEdit() && mHeader->bccEdit()->hasInputFocus()) { + focused = mHeader->bccEdit(); + localRect = mHeader->bccEdit()->rectForCursorPosition(); + } + else if (mHeader->subjectEdit() && mHeader->subjectEdit()->hasInputFocus()) { + focused = mHeader->subjectEdit(); + localRect = mHeader->subjectEdit()->rectForCursorPosition(); + } + else if (mEditorWidget->hasInputFocus()) { + focused = mEditorWidget; + localRect = mEditorWidget->rectForCursorPosition(); + } + + // ensure that the cursor position is visible + if (focused && !localRect.isEmpty()) { + QPointF topLeftPos = focused->mapToItem(mScrollAreaContents, localRect.topLeft()); + QPointF bottomRightPos = + focused->mapToItem(mScrollAreaContents, localRect.bottomRight()); + qreal marginRight = 0; + if (mScrollArea->style()) { + mScrollArea->style()->parameter("hb-param-margin-gene-right", marginRight); } - else if (focused == mHeader->subjectEdit()) { - localRect = mHeader->subjectEdit()->rectForCursorPosition(); - } - else if (focused == mEditorWidget) { - localRect = mEditorWidget->rectForCursorPosition(); - } - else { - notFound = true; - } + bottomRightPos.rx() += marginRight; - if (!notFound) { - QPointF topLeftPos = focused->mapToItem(mScrollAreaContents, localRect.topLeft()); - QPointF bottomRightPos = - focused->mapToItem(mScrollAreaContents, localRect.bottomRight()); - qreal marginRight = 0; - mScrollArea->style()->parameter("hb-param-margin-gene-right", marginRight); - bottomRightPos.rx() += marginRight; - mScrollArea->ensureVisible(topLeftPos); - mScrollArea->ensureVisible(bottomRightPos); - } + mScrollArea->ensureVisible(topLeftPos); + mScrollArea->ensureVisible(bottomRightPos); } } /*! @@ -359,3 +369,170 @@ mHeader->repositHeader(tr); } +/*! + Removes body bgcolor tag from content and creates DIV from it. + */ +void NmEditorContent::convertBodyStylesToDivision(QString &bodyContent) +{ + NM_FUNCTION; + convertBGColorToStyle(bodyContent); + + // Make division from the head style body tag + createDivisionFromHead(bodyContent); +} + +/*! + * Creates div.reply from the html header styles (if there is any) and applies this + * style to the message by surrounding the message with the div.reply element. + * + * Example: + * + * + * + *

This is bigger text.

+ * This is the body text. + * + * + * ----> + * + * + * + * + *
+ *

This is bigger text.

+ * This is the body text. + *
+ * + */ +void NmEditorContent::createDivisionFromHead(QString &bodyContent) +{ + NM_FUNCTION; + + // Regular expression string for searching part that contains