--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/nmailbase/src/nmmessageenvelope.cpp Fri Apr 16 14:51:52 2010 +0300
@@ -0,0 +1,431 @@
+/*
+* Copyright (c) 2009 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 NMMESSAGEENVELOPE_CPP_
+#define NMMESSAGEENVELOPE_CPP_
+
+#include "nmmessageenvelope.h"
+
+/*!
+ Constructor of NmMessageEnvelopePrivate object
+ */
+NmMessageEnvelopePrivate::NmMessageEnvelopePrivate()
+:mId(0),
+mMailboxId(0),
+mMessageFlags(0)
+{
+}
+
+/*!
+ Destructor of NmMessageEnvelopePrivate object
+ */
+NmMessageEnvelopePrivate::~NmMessageEnvelopePrivate()
+{
+}
+
+NmMessageFlags NmMessageEnvelopePrivate::flags() const
+{
+ return mMessageFlags;
+}
+
+void NmMessageEnvelopePrivate::setFlags(const NmMessageFlags flags, bool set)
+{
+ if (set) {
+ mMessageFlags |= flags;
+ } else {
+ mMessageFlags &= ~flags;
+ }
+}
+
+void NmMessageEnvelopePrivate::setFlag(const NmMessageFlag flag, bool set)
+{
+ if (set) {
+ mMessageFlags |= flag;
+ } else {
+ mMessageFlags &= ~flag;
+ }
+}
+
+bool NmMessageEnvelopePrivate::isFlagSet(const NmMessageFlag flag) const
+{
+ return mMessageFlags.testFlag(flag);
+}
+
+
+/*!
+ \class NmMessageEnvelope
+ \brief Represents model for message data that is needed to show one message on
+ message list
+ */
+
+
+/*!
+ Constructor
+ */
+NmMessageEnvelope::NmMessageEnvelope()
+{
+ d = new NmMessageEnvelopePrivate();
+}
+
+/*!
+ Constructor with id
+ */
+NmMessageEnvelope::NmMessageEnvelope(const NmId &id)
+{
+ d = new NmMessageEnvelopePrivate();
+ d->mId = id;
+}
+
+/*!
+ Copy constructor
+ */
+NmMessageEnvelope::NmMessageEnvelope(const NmMessageEnvelope &envelope):d(envelope.d)
+{
+}
+
+/*!
+ Constructs new NmMessageEnvelope object from private envelope data
+ */
+NmMessageEnvelope::NmMessageEnvelope(QExplicitlySharedDataPointer<NmMessageEnvelopePrivate> nmPrivateMessageEnvelope)
+{
+ d = nmPrivateMessageEnvelope;
+}
+
+/*!
+ Assignment operator
+ */
+NmMessageEnvelope &NmMessageEnvelope::operator=(const NmMessageEnvelope &envelope)
+{
+ if (this != &envelope) {
+ d = envelope.d;
+ }
+ return *this;
+}
+
+
+/*!
+ Equal operator returns true if all values are same,
+ function is case insensitive
+ */
+bool NmMessageEnvelope::operator==(const NmMessageEnvelope &envelope) const
+{
+ bool ret = false;
+ if (0 == subject().compare(envelope.subject(), Qt::CaseInsensitive)
+ && sender() == envelope.sender()
+ && sentTime() == envelope.sentTime()
+ && flags() == envelope.flags()
+ && mailboxId() == envelope.mailboxId()
+ && parentId() == envelope.parentId()) {
+ ret = true;
+ }
+ return ret;
+}
+
+/*!
+ Not equal operator return true if at least one value in not equal,
+ function is case insensitive
+ */
+bool NmMessageEnvelope::operator!=(const NmMessageEnvelope &envelope) const
+{
+ return !(*this==envelope);
+}
+
+/*!
+ Destructor
+ */
+NmMessageEnvelope::~NmMessageEnvelope()
+{
+}
+
+/*!
+ Sets message id
+ */
+void NmMessageEnvelope::setId(const NmId &id)
+{
+ d->mId = id;
+}
+
+/*!
+ Returns id of message
+ */
+NmId NmMessageEnvelope::id() const
+{
+ return d->mId;
+}
+
+/*!
+ Returns parent id of this envelope
+ */
+NmId NmMessageEnvelope::parentId() const
+{
+ return d->mParentId;
+}
+
+/*!
+ Sets the parent id for this envelope
+ */
+void NmMessageEnvelope::setParentId(const NmId &id)
+{
+ d->mParentId = id;
+}
+
+/*!
+ Returns mailbox id of this envelope
+ */
+NmId NmMessageEnvelope::mailboxId() const
+{
+ return d->mMailboxId;
+}
+
+/*!
+ Sets the mailbox id for this envelope
+ */
+void NmMessageEnvelope::setMailboxId(const NmId &id)
+{
+ d->mMailboxId = id;
+}
+
+/*!
+ Sets message subject
+ */
+void NmMessageEnvelope::setSubject(const QString &subject)
+{
+ d->mSubject = subject;
+}
+
+/*!
+ Retruns subject string
+ */
+QString NmMessageEnvelope::subject() const
+{
+ return d->mSubject;
+}
+
+/*!
+ Sets \a sender as a sender's address
+ */
+void NmMessageEnvelope::setSender(const NmAddress &sender)
+{
+ d->mSender = sender;
+}
+
+/*!
+ Returns sender string
+ */
+NmAddress NmMessageEnvelope::sender() const
+{
+ return d->mSender;
+}
+
+/*!
+ Sets sent time to \a sentTime
+ */
+void NmMessageEnvelope::setSentTime(const QDateTime &sentTime)
+{
+ d->mSentTime = sentTime;
+}
+
+/*!
+ Returns sent time, if not set returns null time
+ */
+QDateTime NmMessageEnvelope::sentTime() const
+{
+ return d->mSentTime;
+}
+
+/*!
+ Sets message contains attachments if \a hasAttachments is true
+ */
+void NmMessageEnvelope::setHasAttachments(bool hasAttachments)
+{
+ d->setFlag(NmMessageFlagAttachments, hasAttachments);
+}
+
+/*!
+ Returns true if message contains attachments
+ */
+bool NmMessageEnvelope::hasAttachments() const
+{
+ return d->isFlagSet(NmMessageFlagAttachments);
+}
+
+/*!
+ Set message to read if \a read is true
+ */
+void NmMessageEnvelope::setRead(bool read)
+{
+ d->setFlag(NmMessageFlagRead, read);
+}
+
+/*!
+ Returns true if message is read
+ */
+bool NmMessageEnvelope::isRead() const
+{
+ return d->isFlagSet(NmMessageFlagRead);
+}
+
+/*!
+ Sets message to replied state if \a replyed is true
+ */
+void NmMessageEnvelope::setReplied(bool replyed)
+{
+ d->setFlag(NmMessageFlagAnswered, replyed);
+}
+
+/*!
+ Returns true if message is replied
+ */
+bool NmMessageEnvelope::isReplied() const
+{
+ return d->isFlagSet(NmMessageFlagAnswered);
+}
+
+/*!
+ Sets message to forwarded state if \a replyed is true
+ */
+void NmMessageEnvelope::setForwarded(bool forwarded)
+{
+ d->setFlag(NmMessageFlagForwarded, forwarded);
+}
+
+/*!
+ Returns true if message is forwarded
+ */
+bool NmMessageEnvelope::isForwarded() const
+{
+ return d->isFlagSet(NmMessageFlagForwarded);
+}
+
+/*!
+ Sets message priority
+ */
+void NmMessageEnvelope::setPriority(NmMessagePriority priority)
+{
+ if (priority == NmMessagePriorityLow) {
+ d->setFlag(NmMessageFlagLow, true);
+ d->setFlag(NmMessageFlagImportant, false);
+ }
+ else if (priority == NmMessagePriorityHigh) {
+ d->setFlag(NmMessageFlagLow, false);
+ d->setFlag(NmMessageFlagImportant, true);
+ }
+ else {
+ d->setFlag(NmMessageFlagLow, false);
+ d->setFlag(NmMessageFlagImportant, false);
+ }
+}
+
+/*!
+ Returns message priority
+ */
+NmMessagePriority NmMessageEnvelope::priority() const
+{
+ NmMessagePriority ret = NmMessagePriorityNormal;
+ if (d->isFlagSet(NmMessageFlagImportant)) {
+ ret = NmMessagePriorityHigh;
+ }
+ else if (d->isFlagSet(NmMessageFlagLow)) {
+ ret = NmMessagePriorityLow;
+ }
+ return ret;
+}
+
+/*!
+ Returns message flags
+ */
+NmMessageFlags NmMessageEnvelope::flags() const
+{
+ return d->flags();
+}
+
+/*!
+ Returns list of 'to recipients'
+ */
+QList<NmAddress>& NmMessageEnvelope::toRecipients() const
+{
+ return d->mToRecipients;
+}
+
+/*!
+ Sets the list of 'to recipients'
+ */
+void NmMessageEnvelope::setToRecipients(QList<NmAddress> toRecipients)
+{
+ clearToRecipients();
+ d->mToRecipients = toRecipients;
+}
+
+/*!
+ Clears the list of 'to recipients'
+ */
+void NmMessageEnvelope::clearToRecipients()
+{
+ d->mToRecipients.clear();
+}
+
+/*!
+ Returns list of 'cc recipients'
+ */
+QList<NmAddress>& NmMessageEnvelope::ccRecipients() const
+{
+ return d->mCcRecipients;
+}
+
+/*!
+ Sets the list of 'cc recipients'
+ */
+void NmMessageEnvelope::setCcRecipients(QList<NmAddress> ccRecipients)
+{
+ clearCcRecipients();
+ d->mCcRecipients = ccRecipients;
+}
+
+/*!
+ Clears the list of 'cc recipients'
+ */
+void NmMessageEnvelope::clearCcRecipients()
+{
+ d->mCcRecipients.clear();
+}
+
+/*!
+ Returns list of 'Bcc recipients'
+ */
+QList<NmAddress>& NmMessageEnvelope::bccRecipients() const
+{
+ return d->mBccRecipients;
+}
+
+/*!
+ Sets the list of 'Bcc recipients'
+ */
+void NmMessageEnvelope::setBccRecipients(QList<NmAddress> bccRecipients)
+{
+ clearBccRecipients();
+ d->mBccRecipients = bccRecipients;
+}
+
+/*!
+ Clears the list of 'bcc recipients'
+ */
+void NmMessageEnvelope::clearBccRecipients()
+{
+ d->mBccRecipients.clear();
+}
+
+#endif /* NMMESSAGEENVELOPE_CPP_ */