emailuis/nmailuiengine/inc/nmuiengine.h
branchGCC_SURGE
changeset 55 cdd802add233
parent 54 997a02608b3a
child 51 d845db10c0d4
equal deleted inserted replaced
28:011f79704660 55:cdd802add233
    26 #include "nmuienginedef.h"
    26 #include "nmuienginedef.h"
    27 
    27 
    28 class QAbstractItemModel;
    28 class QAbstractItemModel;
    29 class NmMailboxListModel;
    29 class NmMailboxListModel;
    30 class NmMessageListModel;
    30 class NmMessageListModel;
    31 class NmMessageSearchListModel;
       
    32 class NmDataManager;
    31 class NmDataManager;
    33 class NmDataPluginFactory;
    32 class NmDataPluginFactory;
    34 class NmMailboxMetaData;
    33 class NmMailboxMetaData;
    35 class NmMessage;
    34 class NmMessage;
    36 class NmMessagePart;
    35 class NmMessagePart;
    37 class NmMessageEnvelope;
    36 class NmMessageEnvelope;
    38 class NmOperation;
    37 class NmOperation;
    39 class NmMessageCreationOperation;
    38 class NmMessageCreationOperation;
    40 class NmStoreEnvelopesOperation;
    39 class NmStoreEnvelopesOperation;
    41 class NmAddAttachmentsOperation;
    40 class NmAddAttachmentsOperation;
    42 class NmCheckOutboxOperation;
       
    43 class NmMessageSendingOperation;
    41 class NmMessageSendingOperation;
    44 
    42 
    45 
    43 
    46 class NMUIENGINE_EXPORT NmUiEngine: public QObject
    44 class NMUIENGINE_EXPORT NmUiEngine: public QObject
    47 {
    45 {
    48     Q_OBJECT
    46     Q_OBJECT
    49 
    47 
    50 public:
    48 public:
    51 
    49 
    52     static NmUiEngine *instance();
    50     static NmUiEngine *instance();
       
    51 
    53     static void releaseInstance(NmUiEngine *&instance);
    52     static void releaseInstance(NmUiEngine *&instance);
    54 
    53 
    55     NmMailboxListModel &mailboxListModel();
    54     NmMailboxListModel &mailboxListModel();
       
    55 
    56     void refreshMailboxListModel();
    56     void refreshMailboxListModel();
    57     NmMessageListModel &messageListModel(const NmId &mailboxId, const NmId &folderId);
    57 
    58     NmMessageSearchListModel &messageSearchListModel(QAbstractItemModel *sourceModel);
    58     NmId getPluginIdByMailboxId(quint32 accountId);
       
    59     
       
    60     NmMessageListModel &messageListModel(const NmId &mailboxId,
       
    61                                          const NmId &folderId);
       
    62 
       
    63     NmMessageListModel &messageListModelForSearch(const NmId &mailboxId);
    59 
    64 
    60     NmId standardFolderId(const NmId &mailboxId, NmFolderType folderType);
    65     NmId standardFolderId(const NmId &mailboxId, NmFolderType folderType);
    61 
    66 
    62     NmMessage *message(
    67     NmMessage *message(
    63         const NmId &mailboxId,
    68         const NmId &mailboxId,
    72     QPointer<NmOperation> fetchMessagePart( 
    77     QPointer<NmOperation> fetchMessagePart( 
    73         const NmId &mailboxId,
    78         const NmId &mailboxId,
    74         const NmId &folderId,
    79         const NmId &folderId,
    75         const NmId &messageId,
    80         const NmId &messageId,
    76         const NmId &messagePartId);
    81         const NmId &messagePartId);
       
    82     
       
    83     QPointer<NmOperation> fetchMessageParts( 
       
    84         const NmId &mailboxId,
       
    85         const NmId &folderId,
       
    86         const NmId &messageId,
       
    87         const QList<NmId> &messagePartIds);
    77     
    88     
    78     XQSharableFile messagePartFile(
    89     XQSharableFile messagePartFile(
    79        const NmId &mailboxId,
    90        const NmId &mailboxId,
    80        const NmId &folderId,
    91        const NmId &folderId,
    81        const NmId &messageId,
    92        const NmId &messageId,
   121 
   132 
   122     int goOnline(const NmId &mailboxId);
   133     int goOnline(const NmId &mailboxId);
   123     
   134     
   124     int goOffline(const NmId &mailboxId);
   135     int goOffline(const NmId &mailboxId);
   125     
   136     
   126     int removeMessage(
   137     int removeMessage(const NmId &mailboxId,
   127                 const NmId &mailboxId,
   138                       const NmId &folderId,
   128                 const NmId &folderId,
   139                       const NmId &messageId);
   129                 const NmId &messageId);
   140     
   130     
   141     void removeDraftMessage(NmMessage *message);
   131     void sendMessage(NmMessage *message, const QList<NmOperation*> &preliminaryOperations);
   142     
       
   143     void saveDraftMessage(NmMessage *message,
       
   144                           const QList<NmOperation*> &preliminaryOperations);
       
   145     
       
   146     void sendMessage(NmMessage *message,
       
   147                      const QList<NmOperation*> &preliminaryOperations);
   132 
   148 
   133     bool isSendingMessage() const;
   149     bool isSendingMessage() const;
   134 
   150 
   135     const NmMessage *messageBeingSent() const;
   151     const NmMessage *messageBeingSent() const;
   136     
   152     
   140     
   156     
   141     QPointer<NmOperation> removeAttachment(
   157     QPointer<NmOperation> removeAttachment(
   142         const NmMessage &message, 
   158         const NmMessage &message, 
   143         const NmId &attachmentPartId);
   159         const NmId &attachmentPartId);
   144 
   160 
   145     QPointer<NmCheckOutboxOperation> checkOutbox(const NmId &mailboxId);
       
   146     
       
   147     NmSyncState syncState(const NmId& mailboxId);
   161     NmSyncState syncState(const NmId& mailboxId);
       
   162 
   148     NmConnectState connectionState(const NmId& mailboxId);
   163     NmConnectState connectionState(const NmId& mailboxId);
   149 
   164 
   150     int search(const NmId &mailboxId,
   165     int search(const NmId &mailboxId,
   151                const QStringList &searchStrings);
   166                const QStringList &searchStrings);
   152 
   167 
   153     int cancelSearch(const NmId &mailboxId);
   168     int cancelSearch(const NmId &mailboxId);
   154     
   169     
   155     NmFolderType folderTypeById(NmId mailboxId, NmId folderId);
   170     NmFolderType folderTypeById(NmId mailboxId, NmId folderId);
   156 
   171 
       
   172     void updateActiveFolder(const NmId &mailboxId, const NmId &folderId);
       
   173     
   157 public slots:
   174 public slots:
       
   175 
   158     void handleCompletedSendOperation();
   176     void handleCompletedSendOperation();
   159     void handleSyncStateEvent(NmSyncState syncState, const NmOperationCompletionEvent &event);
   177     void handleCompletedRemoveDraftOperation();
   160     void handleConnectEvent(NmConnectState connectState, const NmId &mailboxId, const int errorCode);
   178     void handleCompletedSaveDraftOperation();
       
   179 
       
   180     void handleSyncStateEvent(NmSyncState syncState,
       
   181                               const NmOperationCompletionEvent &event);
       
   182 
       
   183     void handleConnectEvent(NmConnectState connectState,
       
   184                             const NmId &mailboxId,
       
   185                             const int errorCode);
       
   186 
   161 
   187 
   162 private slots:
   188 private slots:
   163     void handleMessageEvent(
   189 
   164             NmMessageEvent event,
   190     void handleMessageEvent(NmMessageEvent event,
   165             const NmId &folderId,
   191                             const NmId &folderId,
   166             const QList<NmId> &messageIds, 
   192                             const QList<NmId> &messageIds, 
   167             const NmId& mailboxId);
   193                             const NmId& mailboxId);
   168     
   194     
   169     void handleMailboxEvent(NmMailboxEvent event,
   195     void handleMailboxEvent(NmMailboxEvent event,
   170                             const QList<NmId> &mailboxIds);
   196                             const QList<NmId> &mailboxIds);
   171 
   197 
       
   198     void handleMatchFound(const NmId &messageId, const NmId &folderId);
       
   199     
       
   200     void messageEventForListModel(NmMessageEvent event,
       
   201                             const NmId &folderId,
       
   202                             const QList<NmId> &messageIds, 
       
   203                             const NmId& mailboxId);
       
   204 
   172 
   205 
   173 signals:
   206 signals:
       
   207 
   174     void syncStateEvent(NmSyncState, const NmId &);
   208     void syncStateEvent(NmSyncState, const NmId &);
   175     void connectionEvent(NmConnectState, const NmId &);
   209     void connectionEvent(NmConnectState, const NmId &);
   176     void operationCompleted(const NmOperationCompletionEvent &event);
   210     void operationCompleted(const NmOperationCompletionEvent &event);
   177     void sendOperationCompleted();
   211     void sendOperationCompleted();
   178     void messageDeleted(const NmId &mailboxId, const NmId &folderId, const NmId &messageId);
   212     void messageDeleted(const NmId &mailboxId, const NmId &folderId, const NmId &messageId);
   179     void mailboxDeleted(const NmId &mailboxId);
   213     void mailboxDeleted(const NmId &mailboxId);
   180     void matchFound(const NmId &);
   214     void matchFound(const NmId &, const NmId &);
   181     void searchComplete();
   215     void searchComplete();
   182     
   216 
       
   217 
   183 private:
   218 private:
       
   219 
   184     NmUiEngine();
   220     NmUiEngine();
       
   221 
   185     virtual ~NmUiEngine();
   222     virtual ~NmUiEngine();
   186 
   223 
   187 private:
   224 
       
   225 private: // Data
       
   226 
   188     static NmUiEngine *mInstance;
   227     static NmUiEngine *mInstance;
   189     static int	mReferenceCount;
   228     static int	mReferenceCount;
   190 
   229 
   191     NmDataPluginFactory *mPluginFactory;
   230     NmDataPluginFactory *mPluginFactory;
   192     NmDataManager *mDataManager;                // Owned
   231     NmDataManager *mDataManager;                // Owned
   193     NmMailboxListModel *mMailboxListModel;      // Owned
   232     NmMailboxListModel *mMailboxListModel;      // Owned
       
   233     NmMessageListModel *mInboxListModel;      // Owned
   194     NmMessageListModel *mMessageListModel;      // Owned
   234     NmMessageListModel *mMessageListModel;      // Owned
   195     NmMessageSearchListModel *mMessageSearchListModel; // Owned
   235     NmMessageListModel *mMessageSearchListModel; // Owned
   196     QPointer<NmMessageSendingOperation> mSendOperation;  // Not owned
   236     QPointer<NmMessageSendingOperation> mSendOperation;  // Not owned
       
   237     QPointer<NmOperation> mRemoveDraftOperation; // not owned
       
   238     QPointer<NmOperation> mSaveDraftOperation;   // not owned
       
   239     NmMessage *mDraftMessage; // owned
   197 };
   240 };
   198 
   241 
   199 
   242 
   200 #endif /* NMUIENGINE_H */
   243 #endif /* NMUIENGINE_H */
   201 
   244