18 #ifndef NMUIENGINE_H |
18 #ifndef NMUIENGINE_H |
19 #define NMUIENGINE_H |
19 #define NMUIENGINE_H |
20 |
20 |
21 #include <QObject> |
21 #include <QObject> |
22 #include <QList> |
22 #include <QList> |
23 #ifdef Q_OS_SYMBIAN |
|
24 #include <xqsharablefile.h> |
23 #include <xqsharablefile.h> |
25 #endif |
|
26 |
24 |
27 #include "nmcommon.h" |
25 #include "nmcommon.h" |
28 #include "nmuienginedef.h" |
26 #include "nmuienginedef.h" |
29 |
27 |
|
28 class QAbstractItemModel; |
30 class NmMailboxListModel; |
29 class NmMailboxListModel; |
31 class NmMessageListModel; |
30 class NmMessageListModel; |
|
31 class NmMessageSearchListModel; |
32 class NmDataManager; |
32 class NmDataManager; |
33 class NmDataPluginFactory; |
33 class NmDataPluginFactory; |
34 class NmMailboxMetaData; |
34 class NmMailboxMetaData; |
35 class NmMessage; |
35 class NmMessage; |
36 class NmMessagePart; |
36 class NmMessagePart; |
37 class NmMessageEnvelope; |
37 class NmMessageEnvelope; |
|
38 class NmOperation; |
38 class NmMessageCreationOperation; |
39 class NmMessageCreationOperation; |
39 class NmStoreEnvelopesOperation; |
40 class NmStoreEnvelopesOperation; |
40 class NmAddAttachmentsOperation; |
41 class NmAddAttachmentsOperation; |
41 class NmOperation; |
|
42 class NmCheckOutboxOperation; |
42 class NmCheckOutboxOperation; |
43 class NmMessageSendingOperation; |
43 class NmMessageSendingOperation; |
|
44 |
44 |
45 |
45 class NMUIENGINE_EXPORT NmUiEngine: public QObject |
46 class NMUIENGINE_EXPORT NmUiEngine: public QObject |
46 { |
47 { |
47 Q_OBJECT |
48 Q_OBJECT |
|
49 |
48 public: |
50 public: |
49 |
51 |
50 static NmUiEngine *instance(); |
52 static NmUiEngine *instance(); |
51 static void releaseInstance(NmUiEngine *&instance); |
53 static void releaseInstance(NmUiEngine *&instance); |
52 |
54 |
53 NmMailboxListModel &mailboxListModel(); |
55 NmMailboxListModel &mailboxListModel(); |
54 |
|
55 void refreshMailboxListModel(); |
56 void refreshMailboxListModel(); |
56 |
|
57 NmMessageListModel &messageListModel(const NmId &mailboxId, const NmId &folderId); |
57 NmMessageListModel &messageListModel(const NmId &mailboxId, const NmId &folderId); |
58 |
58 NmMessageSearchListModel &messageSearchListModel(QAbstractItemModel *sourceModel); |
59 void releaseMessageListModel(const NmId &mailboxId); |
|
60 |
59 |
61 NmId standardFolderId(const NmId &mailboxId, NmFolderType folderType); |
60 NmId standardFolderId(const NmId &mailboxId, NmFolderType folderType); |
62 |
61 |
63 NmMessage *message( |
62 NmMessage *message( |
64 const NmId &mailboxId, |
63 const NmId &mailboxId, |
65 const NmId &folderId, |
64 const NmId &folderId, |
66 const NmId &messageId); |
65 const NmId &messageId); |
67 |
66 |
68 NmOperation *fetchMessage( |
67 QPointer<NmOperation> fetchMessage( |
69 const NmId &mailboxId, |
68 const NmId &mailboxId, |
70 const NmId &folderId, |
69 const NmId &folderId, |
71 const NmId &messageId); |
70 const NmId &messageId); |
72 |
71 |
73 NmOperation *fetchMessagePart( |
72 QPointer<NmOperation> fetchMessagePart( |
74 const NmId &mailboxId, |
73 const NmId &mailboxId, |
75 const NmId &folderId, |
74 const NmId &folderId, |
76 const NmId &messageId, |
75 const NmId &messageId, |
77 const NmId &messagePartId); |
76 const NmId &messagePartId); |
78 |
77 |
79 XQSharableFile messagePartFile( |
78 XQSharableFile messagePartFile( |
80 const NmId &mailboxId, |
79 const NmId &mailboxId, |
81 const NmId &folderId, |
80 const NmId &folderId, |
82 const NmId &messageId, |
81 const NmId &messageId, |
83 const NmId &messagePartId); |
82 const NmId &messagePartId); |
84 |
83 |
85 NmMailboxMetaData *mailboxById(const NmId &mailboxId); |
84 NmMailboxMetaData *mailboxById(const NmId &mailboxId); |
86 |
85 |
87 int contentToMessagePart( |
86 int contentToMessagePart( |
88 const NmId &mailboxId, |
87 const NmId &mailboxId, |
97 int deleteMessages( |
96 int deleteMessages( |
98 const NmId &mailboxId, |
97 const NmId &mailboxId, |
99 const NmId &folderId, |
98 const NmId &folderId, |
100 const QList<NmId> &messageIdList); |
99 const QList<NmId> &messageIdList); |
101 |
100 |
102 NmStoreEnvelopesOperation *setEnvelopes( |
101 QPointer<NmStoreEnvelopesOperation> setEnvelopes( |
103 const NmId &mailboxId, |
102 const NmId &mailboxId, |
104 const NmId &folderId, |
103 const NmId &folderId, |
105 NmEnvelopeProperties property, |
104 NmEnvelopeProperties property, |
106 const QList<const NmMessageEnvelope*> &envelopeList); |
105 const QList<const NmMessageEnvelope*> &envelopeList); |
107 |
106 |
108 |
107 QPointer<NmMessageCreationOperation> createNewMessage(const NmId &mailboxId); |
109 NmMessageCreationOperation *createNewMessage(const NmId &mailboxId); |
108 |
110 |
109 QPointer<NmMessageCreationOperation> createForwardMessage( |
111 NmMessageCreationOperation *createForwardMessage( |
110 const NmId &mailboxId, |
112 const NmId &mailboxId, |
111 const NmId &originalMessageId); |
113 const NmId &originalMessageId); |
112 |
114 |
113 QPointer<NmMessageCreationOperation> createReplyMessage( |
115 NmMessageCreationOperation *createReplyMessage( |
114 const NmId &mailboxId, |
116 const NmId &mailboxId, |
115 const NmId &originalMessageId, |
117 const NmId &originalMessageId, |
116 bool replyAll); |
118 bool replyAll); |
|
119 |
117 |
120 int saveMessage(const NmMessage &message); |
118 int saveMessage(const NmMessage &message); |
121 |
119 |
122 int refreshMailbox(const NmId &mailboxId); |
120 int refreshMailbox(const NmId &mailboxId); |
123 |
121 |
127 |
125 |
128 int removeMessage( |
126 int removeMessage( |
129 const NmId &mailboxId, |
127 const NmId &mailboxId, |
130 const NmId &folderId, |
128 const NmId &folderId, |
131 const NmId &messageId); |
129 const NmId &messageId); |
132 |
130 |
133 void storeOperation(NmOperation *op); |
131 void sendMessage(NmMessage *message, const QList<NmOperation*> &preliminaryOperations); |
134 |
|
135 void sendMessage(NmMessage *message, const QList<NmOperation *> &preliminaryOperations); |
|
136 |
132 |
137 bool isSendingMessage() const; |
133 bool isSendingMessage() const; |
138 |
134 |
139 const NmMessage *messageBeingSent() const; |
135 const NmMessage *messageBeingSent() const; |
140 NmAddAttachmentsOperation *addAttachments( |
136 |
141 const NmMessage &message, |
137 QPointer<NmAddAttachmentsOperation> addAttachments( |
142 const QList<QString> &fileList); |
138 const NmMessage &message, |
143 |
139 const QList<QString> &fileList); |
144 NmOperation *removeAttachment(const NmMessage &message, const NmId &attachmentPartId); |
140 |
145 |
141 QPointer<NmOperation> removeAttachment( |
146 NmCheckOutboxOperation *checkOutbox(const NmId &mailboxId); |
142 const NmMessage &message, |
|
143 const NmId &attachmentPartId); |
|
144 |
|
145 QPointer<NmCheckOutboxOperation> checkOutbox(const NmId &mailboxId); |
147 |
146 |
148 NmSyncState syncState(const NmId& mailboxId); |
147 NmSyncState syncState(const NmId& mailboxId); |
149 NmConnectState connectionState(const NmId& mailboxId); |
148 NmConnectState connectionState(const NmId& mailboxId); |
150 |
149 |
|
150 int search(const NmId &mailboxId, |
|
151 const QStringList &searchStrings); |
|
152 |
|
153 int cancelSearch(const NmId &mailboxId); |
|
154 |
|
155 NmFolderType folderTypeById(NmId mailboxId, NmId folderId); |
|
156 |
151 public slots: |
157 public slots: |
152 void handleCompletedOperation(); |
|
153 void handleCompletedSendOperation(); |
158 void handleCompletedSendOperation(); |
154 void handleSyncStateEvent(NmSyncState syncState, const NmOperationCompletionEvent &event); |
159 void handleSyncStateEvent(NmSyncState syncState, const NmOperationCompletionEvent &event); |
155 void cleanupSendOperation(); |
160 void handleConnectEvent(NmConnectState connectState, const NmId &mailboxId, const int errorCode); |
156 |
161 |
|
162 private slots: |
|
163 void handleMessageEvent( |
|
164 NmMessageEvent event, |
|
165 const NmId &folderId, |
|
166 const QList<NmId> &messageIds, |
|
167 const NmId& mailboxId); |
|
168 |
|
169 void handleMailboxEvent(NmMailboxEvent event, |
|
170 const QList<NmId> &mailboxIds); |
|
171 |
|
172 |
157 signals: |
173 signals: |
158 void syncStateEvent(NmSyncState, const NmId &); |
174 void syncStateEvent(NmSyncState, const NmId &); |
159 void connectionEvent(NmConnectState, const NmId &); |
175 void connectionEvent(NmConnectState, const NmId &); |
160 void operationCompleted(const NmOperationCompletionEvent &event); |
176 void operationCompleted(const NmOperationCompletionEvent &event); |
161 void sendOperationCompleted(); |
177 void sendOperationCompleted(); |
162 |
178 void messageDeleted(const NmId &mailboxId, const NmId &folderId, const NmId &messageId); |
|
179 void mailboxDeleted(const NmId &mailboxId); |
|
180 void matchFound(const NmId &); |
|
181 void searchComplete(); |
|
182 |
163 private: |
183 private: |
164 |
|
165 NmUiEngine(); |
184 NmUiEngine(); |
166 virtual ~NmUiEngine(); |
185 virtual ~NmUiEngine(); |
167 |
186 |
168 private: |
187 private: |
169 |
|
170 static NmUiEngine *mInstance; |
188 static NmUiEngine *mInstance; |
171 static int mReferenceCount; |
189 static int mReferenceCount; |
172 |
190 |
173 NmDataPluginFactory *mPluginFactory; |
191 NmDataPluginFactory *mPluginFactory; |
174 NmDataManager *mDataManager; // Owned |
192 NmDataManager *mDataManager; // Owned |
175 NmMailboxListModel *mMailboxListModel; // Owned |
193 NmMailboxListModel *mMailboxListModel; // Owned |
176 NmMessageListModel *mMessageListModel; // Owned |
194 NmMessageListModel *mMessageListModel; // Owned |
177 QList<NmOperation*> mOperations; // Owned |
195 NmMessageSearchListModel *mMessageSearchListModel; // Owned |
178 |
196 QPointer<NmMessageSendingOperation> mSendOperation; // Not owned |
179 NmMessageSendingOperation *mSendOperation; // Owned |
|
180 }; |
197 }; |
181 |
198 |
182 |
199 |
183 #endif /* NMUIENGINE_H */ |
200 #endif /* NMUIENGINE_H */ |
184 |
201 |