diff -r dcf0eedfc1a3 -r d189ee25cf9d emailuis/nmailuiengine/inc/nmuiengine.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailuis/nmailuiengine/inc/nmuiengine.h Tue Aug 31 15:04:17 2010 +0300 @@ -0,0 +1,246 @@ +/* +* 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" +* 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 NMUIENGINE_H +#define NMUIENGINE_H + +#include +#include +#include + +#include "nmcommon.h" +#include "nmuienginedef.h" + +class QAbstractItemModel; +class NmMailboxListModel; +class NmMessageListModel; +class NmDataManager; +class NmDataPluginFactory; +class NmMailboxMetaData; +class NmMessage; +class NmMessagePart; +class NmMessageEnvelope; +class NmOperation; +class NmMessageCreationOperation; +class NmStoreEnvelopesOperation; +class NmAddAttachmentsOperation; +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); + + NmMessageListModel &messageListModelForSearch(const NmId &mailboxId); + + NmId standardFolderId(const NmId &mailboxId, NmFolderType folderType); + + NmMessage *message( + const NmId &mailboxId, + const NmId &folderId, + const NmId &messageId); + + QPointer fetchMessage( + const NmId &mailboxId, + const NmId &folderId, + const NmId &messageId); + + QPointer fetchMessagePart( + const NmId &mailboxId, + const NmId &folderId, + const NmId &messageId, + const NmId &messagePartId); + + QPointer fetchMessageParts( + const NmId &mailboxId, + const NmId &folderId, + const NmId &messageId, + const QList &messagePartIds); + + XQSharableFile messagePartFile( + const NmId &mailboxId, + const NmId &folderId, + const NmId &messageId, + const NmId &messagePartId); + + NmMailboxMetaData *mailboxById(const NmId &mailboxId); + + int contentToMessagePart( + const NmId &mailboxId, + const NmId &folderId, + const NmId &messageId, + NmMessagePart &messagePart); + + NmMessage *createMessage( + const NmId &mailboxId, + const NmId &folderId); + + int deleteMessages( + const NmId &mailboxId, + const NmId &folderId, + const QList &messageIdList); + + QPointer setEnvelopes( + const NmId &mailboxId, + const NmId &folderId, + NmEnvelopeProperties property, + const QList &envelopeList); + + QPointer createNewMessage(const NmId &mailboxId); + + QPointer createForwardMessage( + const NmId &mailboxId, + const NmId &originalMessageId); + + QPointer createReplyMessage( + const NmId &mailboxId, + const NmId &originalMessageId, + bool replyAll); + + int saveMessage(const NmMessage &message); + + int refreshMailbox(const NmId &mailboxId); + + int goOnline(const NmId &mailboxId); + + int goOffline(const NmId &mailboxId); + + int removeMessage(const NmId &mailboxId, + const NmId &folderId, + const NmId &messageId); + + void removeDraftMessage(NmMessage *message); + + void saveDraftMessage(NmMessage *message, + const QList &preliminaryOperations); + + void sendMessage(NmMessage *message, + const QList &preliminaryOperations); + + bool isSendingMessage() const; + + const NmMessage *messageBeingSent() const; + + QPointer addAttachments( + const NmMessage &message, + const QList &fileList); + + QPointer removeAttachment( + const NmMessage &message, + const NmId &attachmentPartId); + + 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); + + void updateActiveFolder(const NmId &mailboxId, const NmId &folderId); + + void enableSyncIndicator(bool enabled); + + int getSignature(const NmId &mailboxId, QString *&signature); + +public slots: + + void handleCompletedSendOperation(); + void handleCompletedRemoveDraftOperation(); + void handleCompletedSaveDraftOperation(); + + void handleSyncStateEvent(NmSyncState syncState, + const NmOperationCompletionEvent &event); + + void handleConnectEvent(NmConnectState connectState, + const NmId &mailboxId, + const int errorCode); + + +private slots: + + void handleMessageEvent(NmMessageEvent event, + const NmId &folderId, + const QList &messageIds, + const NmId& mailboxId); + + void handleMailboxEvent(NmMailboxEvent event, + const QList &mailboxIds); + + void handleMatchFound(const NmId &messageId, const NmId &folderId); + + void messageEventForListModel(NmMessageEvent event, + const NmId &folderId, + const QList &messageIds, + const NmId& mailboxId); + + +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 &, const NmId &); + void searchComplete(); + + +private: + + NmUiEngine(); + + virtual ~NmUiEngine(); + + +private: // Data + + static NmUiEngine *mInstance; + static int mReferenceCount; + + NmDataPluginFactory *mPluginFactory; + NmDataManager *mDataManager; // Owned + NmMailboxListModel *mMailboxListModel; // Owned + NmMessageListModel *mInboxListModel; // Owned + NmMessageListModel *mMessageListModel; // Owned + NmMessageListModel *mMessageSearchListModel; // Owned + QPointer mSendOperation; // Not owned + QPointer mRemoveDraftOperation; // not owned + QPointer mSaveDraftOperation; // not owned + NmMessage *mDraftMessage; // owned +}; + + +#endif /* NMUIENGINE_H */ +