emailuis/nmailuiengine/inc/nmuiengine.h
changeset 23 2dc6caa42ec3
parent 20 ecc8def7944a
child 27 9ba4404ef423
--- a/emailuis/nmailuiengine/inc/nmuiengine.h	Mon May 03 12:23:15 2010 +0300
+++ b/emailuis/nmailuiengine/inc/nmuiengine.h	Fri May 14 15:41:10 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009 - 2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -20,43 +20,42 @@
 
 #include <QObject>
 #include <QList>
-#ifdef Q_OS_SYMBIAN
 #include <xqsharablefile.h>
-#endif
 
 #include "nmcommon.h"
 #include "nmuienginedef.h"
 
+class QAbstractItemModel;
 class NmMailboxListModel;
 class NmMessageListModel;
+class NmMessageSearchListModel;
 class NmDataManager;
 class NmDataPluginFactory;
 class NmMailboxMetaData;
 class NmMessage;
 class NmMessagePart;
 class NmMessageEnvelope;
+class NmOperation;
 class NmMessageCreationOperation;
 class NmStoreEnvelopesOperation;
 class NmAddAttachmentsOperation;
-class NmOperation;
 class NmCheckOutboxOperation;
 class NmMessageSendingOperation;
 
+
 class NMUIENGINE_EXPORT NmUiEngine: public QObject
 {
     Q_OBJECT
+
 public:
 
     static NmUiEngine *instance();
     static void releaseInstance(NmUiEngine *&instance);
 
     NmMailboxListModel &mailboxListModel();
-
     void refreshMailboxListModel();
-
     NmMessageListModel &messageListModel(const NmId &mailboxId, const NmId &folderId);
-
-    void releaseMessageListModel(const NmId &mailboxId);
+    NmMessageSearchListModel &messageSearchListModel(QAbstractItemModel *sourceModel);
 
     NmId standardFolderId(const NmId &mailboxId, NmFolderType folderType);
 
@@ -65,22 +64,22 @@
         const NmId &folderId,
         const NmId &messageId);
 
-    NmOperation *fetchMessage(
+    QPointer<NmOperation> fetchMessage(
         const NmId &mailboxId,
         const NmId &folderId,
         const NmId &messageId);
 
-    NmOperation *fetchMessagePart( 
+    QPointer<NmOperation> fetchMessagePart( 
         const NmId &mailboxId,
         const NmId &folderId,
         const NmId &messageId,
         const NmId &messagePartId);
     
     XQSharableFile messagePartFile(
-            const NmId &mailboxId,
-            const NmId &folderId,
-            const NmId &messageId,
-            const NmId &messagePartId);
+       const NmId &mailboxId,
+       const NmId &folderId,
+       const NmId &messageId,
+       const NmId &messagePartId);
     
     NmMailboxMetaData *mailboxById(const NmId &mailboxId);
 
@@ -99,23 +98,22 @@
         const NmId &folderId,
         const QList<NmId> &messageIdList);
 
-    NmStoreEnvelopesOperation *setEnvelopes(
-            const NmId &mailboxId,
-            const NmId &folderId,
-            NmEnvelopeProperties property,
-            const QList<const NmMessageEnvelope*> &envelopeList);
+    QPointer<NmStoreEnvelopesOperation> setEnvelopes(
+        const NmId &mailboxId,
+        const NmId &folderId,
+        NmEnvelopeProperties property,
+        const QList<const NmMessageEnvelope*> &envelopeList);
 
-
-    NmMessageCreationOperation *createNewMessage(const NmId &mailboxId);
+    QPointer<NmMessageCreationOperation> createNewMessage(const NmId &mailboxId);
 
-    NmMessageCreationOperation *createForwardMessage(
-            const NmId &mailboxId,
-            const NmId &originalMessageId);
+    QPointer<NmMessageCreationOperation> createForwardMessage(
+        const NmId &mailboxId,
+        const NmId &originalMessageId);
 
-    NmMessageCreationOperation *createReplyMessage(
-            const NmId &mailboxId,
-            const NmId &originalMessageId,
-            bool replyAll);
+    QPointer<NmMessageCreationOperation> createReplyMessage(
+        const NmId &mailboxId,
+        const NmId &originalMessageId,
+        bool replyAll);
 
     int saveMessage(const NmMessage &message);
 
@@ -129,44 +127,64 @@
                 const NmId &mailboxId,
                 const NmId &folderId,
                 const NmId &messageId);
-
-    void storeOperation(NmOperation *op);
-
-    void sendMessage(NmMessage *message, const QList<NmOperation *> &preliminaryOperations);
+    
+    void sendMessage(NmMessage *message, const QList<NmOperation*> &preliminaryOperations);
 
     bool isSendingMessage() const;
 
     const NmMessage *messageBeingSent() const;
-    NmAddAttachmentsOperation *addAttachments(
-            const NmMessage &message,
-            const QList<QString> &fileList);
+    
+    QPointer<NmAddAttachmentsOperation> addAttachments(
+        const NmMessage &message,
+        const QList<QString> &fileList);
     
-    NmOperation *removeAttachment(const NmMessage &message, const NmId &attachmentPartId);
+    QPointer<NmOperation> removeAttachment(
+        const NmMessage &message, 
+        const NmId &attachmentPartId);
 
-    NmCheckOutboxOperation *checkOutbox(const NmId &mailboxId);
+    QPointer<NmCheckOutboxOperation> checkOutbox(const NmId &mailboxId);
     
     NmSyncState syncState(const NmId& mailboxId);
     NmConnectState connectionState(const NmId& mailboxId);
 
+    int search(const NmId &mailboxId,
+               const QStringList &searchStrings);
+
+    int cancelSearch(const NmId &mailboxId);
+    
+    NmFolderType folderTypeById(NmId mailboxId, NmId folderId);
+
 public slots:
-    void handleCompletedOperation();
     void handleCompletedSendOperation();
     void handleSyncStateEvent(NmSyncState syncState, const NmOperationCompletionEvent &event);
-    void cleanupSendOperation();
+    void handleConnectEvent(NmConnectState connectState, const NmId &mailboxId, const int errorCode);
+
+private slots:
+    void handleMessageEvent(
+            NmMessageEvent event,
+            const NmId &folderId,
+            const QList<NmId> &messageIds, 
+            const NmId& mailboxId);
     
+    void handleMailboxEvent(NmMailboxEvent event,
+                            const QList<NmId> &mailboxIds);
+
+
 signals:
     void syncStateEvent(NmSyncState, const NmId &);
     void connectionEvent(NmConnectState, const NmId &);
     void operationCompleted(const NmOperationCompletionEvent &event);
     void sendOperationCompleted();
-
+    void messageDeleted(const NmId &mailboxId, const NmId &folderId, const NmId &messageId);
+    void mailboxDeleted(const NmId &mailboxId);
+    void matchFound(const NmId &);
+    void searchComplete();
+    
 private:
-
     NmUiEngine();
     virtual ~NmUiEngine();
 
 private:
-
     static NmUiEngine *mInstance;
     static int	mReferenceCount;
 
@@ -174,9 +192,8 @@
     NmDataManager *mDataManager;                // Owned
     NmMailboxListModel *mMailboxListModel;      // Owned
     NmMessageListModel *mMessageListModel;      // Owned
-    QList<NmOperation*> mOperations;			// Owned
-
-    NmMessageSendingOperation *mSendOperation;  // Owned
+    NmMessageSearchListModel *mMessageSearchListModel; // Owned
+    QPointer<NmMessageSendingOperation> mSendOperation;  // Not owned
 };