emailuis/nmailuiengine/inc/nmuiengine.h
branchRCL_3
changeset 63 d189ee25cf9d
equal deleted inserted replaced
61:dcf0eedfc1a3 63:d189ee25cf9d
       
     1 /*
       
     2 * Copyright (c) 2009 - 2010 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:
       
    15 *
       
    16 */
       
    17 
       
    18 #ifndef NMUIENGINE_H
       
    19 #define NMUIENGINE_H
       
    20 
       
    21 #include <QObject>
       
    22 #include <QList>
       
    23 #include <xqsharablefile.h>
       
    24 
       
    25 #include "nmcommon.h"
       
    26 #include "nmuienginedef.h"
       
    27 
       
    28 class QAbstractItemModel;
       
    29 class NmMailboxListModel;
       
    30 class NmMessageListModel;
       
    31 class NmDataManager;
       
    32 class NmDataPluginFactory;
       
    33 class NmMailboxMetaData;
       
    34 class NmMessage;
       
    35 class NmMessagePart;
       
    36 class NmMessageEnvelope;
       
    37 class NmOperation;
       
    38 class NmMessageCreationOperation;
       
    39 class NmStoreEnvelopesOperation;
       
    40 class NmAddAttachmentsOperation;
       
    41 class NmMessageSendingOperation;
       
    42 
       
    43 
       
    44 class NMUIENGINE_EXPORT NmUiEngine: public QObject
       
    45 {
       
    46     Q_OBJECT
       
    47 
       
    48 public:
       
    49 
       
    50     static NmUiEngine *instance();
       
    51 
       
    52     static void releaseInstance(NmUiEngine *&instance);
       
    53 
       
    54     NmMailboxListModel &mailboxListModel();
       
    55 
       
    56     void refreshMailboxListModel();
       
    57 
       
    58     NmMessageListModel &messageListModel(const NmId &mailboxId,
       
    59                                          const NmId &folderId);
       
    60 
       
    61     NmMessageListModel &messageListModelForSearch(const NmId &mailboxId);
       
    62 
       
    63     NmId standardFolderId(const NmId &mailboxId, NmFolderType folderType);
       
    64 
       
    65     NmMessage *message(
       
    66         const NmId &mailboxId,
       
    67         const NmId &folderId,
       
    68         const NmId &messageId);
       
    69 
       
    70     QPointer<NmOperation> fetchMessage(
       
    71         const NmId &mailboxId,
       
    72         const NmId &folderId,
       
    73         const NmId &messageId);
       
    74 
       
    75     QPointer<NmOperation> fetchMessagePart(
       
    76         const NmId &mailboxId,
       
    77         const NmId &folderId,
       
    78         const NmId &messageId,
       
    79         const NmId &messagePartId);
       
    80 
       
    81     QPointer<NmOperation> fetchMessageParts(
       
    82         const NmId &mailboxId,
       
    83         const NmId &folderId,
       
    84         const NmId &messageId,
       
    85         const QList<NmId> &messagePartIds);
       
    86 
       
    87     XQSharableFile messagePartFile(
       
    88        const NmId &mailboxId,
       
    89        const NmId &folderId,
       
    90        const NmId &messageId,
       
    91        const NmId &messagePartId);
       
    92 
       
    93     NmMailboxMetaData *mailboxById(const NmId &mailboxId);
       
    94 
       
    95     int contentToMessagePart(
       
    96         const NmId &mailboxId,
       
    97         const NmId &folderId,
       
    98         const NmId &messageId,
       
    99         NmMessagePart &messagePart);
       
   100 
       
   101     NmMessage *createMessage(
       
   102         const NmId &mailboxId,
       
   103         const NmId &folderId);
       
   104 
       
   105     int deleteMessages(
       
   106         const NmId &mailboxId,
       
   107         const NmId &folderId,
       
   108         const QList<NmId> &messageIdList);
       
   109 
       
   110     QPointer<NmStoreEnvelopesOperation> setEnvelopes(
       
   111         const NmId &mailboxId,
       
   112         const NmId &folderId,
       
   113         NmEnvelopeProperties property,
       
   114         const QList<const NmMessageEnvelope*> &envelopeList);
       
   115 
       
   116     QPointer<NmMessageCreationOperation> createNewMessage(const NmId &mailboxId);
       
   117 
       
   118     QPointer<NmMessageCreationOperation> createForwardMessage(
       
   119         const NmId &mailboxId,
       
   120         const NmId &originalMessageId);
       
   121 
       
   122     QPointer<NmMessageCreationOperation> createReplyMessage(
       
   123         const NmId &mailboxId,
       
   124         const NmId &originalMessageId,
       
   125         bool replyAll);
       
   126 
       
   127     int saveMessage(const NmMessage &message);
       
   128 
       
   129     int refreshMailbox(const NmId &mailboxId);
       
   130 
       
   131     int goOnline(const NmId &mailboxId);
       
   132 
       
   133     int goOffline(const NmId &mailboxId);
       
   134 
       
   135     int removeMessage(const NmId &mailboxId,
       
   136                       const NmId &folderId,
       
   137                       const NmId &messageId);
       
   138 
       
   139     void removeDraftMessage(NmMessage *message);
       
   140 
       
   141     void saveDraftMessage(NmMessage *message,
       
   142                           const QList<NmOperation*> &preliminaryOperations);
       
   143 
       
   144     void sendMessage(NmMessage *message,
       
   145                      const QList<NmOperation*> &preliminaryOperations);
       
   146 
       
   147     bool isSendingMessage() const;
       
   148 
       
   149     const NmMessage *messageBeingSent() const;
       
   150 
       
   151     QPointer<NmAddAttachmentsOperation> addAttachments(
       
   152         const NmMessage &message,
       
   153         const QList<QString> &fileList);
       
   154 
       
   155     QPointer<NmOperation> removeAttachment(
       
   156         const NmMessage &message,
       
   157         const NmId &attachmentPartId);
       
   158 
       
   159     NmSyncState syncState(const NmId& mailboxId);
       
   160 
       
   161     NmConnectState connectionState(const NmId& mailboxId);
       
   162 
       
   163     int search(const NmId &mailboxId,
       
   164                const QStringList &searchStrings);
       
   165 
       
   166     int cancelSearch(const NmId &mailboxId);
       
   167 
       
   168     NmFolderType folderTypeById(NmId mailboxId, NmId folderId);
       
   169 
       
   170     void updateActiveFolder(const NmId &mailboxId, const NmId &folderId);
       
   171 
       
   172     void enableSyncIndicator(bool enabled);
       
   173 
       
   174     int getSignature(const NmId &mailboxId, QString *&signature);
       
   175 
       
   176 public slots:
       
   177 
       
   178     void handleCompletedSendOperation();
       
   179     void handleCompletedRemoveDraftOperation();
       
   180     void handleCompletedSaveDraftOperation();
       
   181 
       
   182     void handleSyncStateEvent(NmSyncState syncState,
       
   183                               const NmOperationCompletionEvent &event);
       
   184 
       
   185     void handleConnectEvent(NmConnectState connectState,
       
   186                             const NmId &mailboxId,
       
   187                             const int errorCode);
       
   188 
       
   189 
       
   190 private slots:
       
   191 
       
   192     void handleMessageEvent(NmMessageEvent event,
       
   193                             const NmId &folderId,
       
   194                             const QList<NmId> &messageIds,
       
   195                             const NmId& mailboxId);
       
   196 
       
   197     void handleMailboxEvent(NmMailboxEvent event,
       
   198                             const QList<NmId> &mailboxIds);
       
   199 
       
   200     void handleMatchFound(const NmId &messageId, const NmId &folderId);
       
   201 
       
   202     void messageEventForListModel(NmMessageEvent event,
       
   203                             const NmId &folderId,
       
   204                             const QList<NmId> &messageIds,
       
   205                             const NmId& mailboxId);
       
   206 
       
   207 
       
   208 signals:
       
   209 
       
   210     void syncStateEvent(NmSyncState, const NmId &);
       
   211     void connectionEvent(NmConnectState, const NmId &);
       
   212     void operationCompleted(const NmOperationCompletionEvent &event);
       
   213     void sendOperationCompleted();
       
   214     void messageDeleted(const NmId &mailboxId, const NmId &folderId, const NmId &messageId);
       
   215     void mailboxDeleted(const NmId &mailboxId);
       
   216     void matchFound(const NmId &, const NmId &);
       
   217     void searchComplete();
       
   218 
       
   219 
       
   220 private:
       
   221 
       
   222     NmUiEngine();
       
   223 
       
   224     virtual ~NmUiEngine();
       
   225 
       
   226 
       
   227 private: // Data
       
   228 
       
   229     static NmUiEngine *mInstance;
       
   230     static int	mReferenceCount;
       
   231 
       
   232     NmDataPluginFactory *mPluginFactory;
       
   233     NmDataManager *mDataManager;                // Owned
       
   234     NmMailboxListModel *mMailboxListModel;      // Owned
       
   235     NmMessageListModel *mInboxListModel;      // Owned
       
   236     NmMessageListModel *mMessageListModel;      // Owned
       
   237     NmMessageListModel *mMessageSearchListModel; // Owned
       
   238     QPointer<NmMessageSendingOperation> mSendOperation;  // Not owned
       
   239     QPointer<NmOperation> mRemoveDraftOperation; // not owned
       
   240     QPointer<NmOperation> mSaveDraftOperation;   // not owned
       
   241     NmMessage *mDraftMessage; // owned
       
   242 };
       
   243 
       
   244 
       
   245 #endif /* NMUIENGINE_H */
       
   246