diff -r e7aa27f58ae1 -r 578830873419 emailservices/nmailbase/src/nmmessageenvelope.cpp --- /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 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& NmMessageEnvelope::toRecipients() const +{ + return d->mToRecipients; +} + +/*! + Sets the list of 'to recipients' + */ +void NmMessageEnvelope::setToRecipients(QList toRecipients) +{ + clearToRecipients(); + d->mToRecipients = toRecipients; +} + +/*! + Clears the list of 'to recipients' + */ +void NmMessageEnvelope::clearToRecipients() +{ + d->mToRecipients.clear(); +} + +/*! + Returns list of 'cc recipients' + */ +QList& NmMessageEnvelope::ccRecipients() const +{ + return d->mCcRecipients; +} + +/*! + Sets the list of 'cc recipients' + */ +void NmMessageEnvelope::setCcRecipients(QList ccRecipients) +{ + clearCcRecipients(); + d->mCcRecipients = ccRecipients; +} + +/*! + Clears the list of 'cc recipients' + */ +void NmMessageEnvelope::clearCcRecipients() +{ + d->mCcRecipients.clear(); +} + +/*! + Returns list of 'Bcc recipients' + */ +QList& NmMessageEnvelope::bccRecipients() const +{ + return d->mBccRecipients; +} + +/*! + Sets the list of 'Bcc recipients' + */ +void NmMessageEnvelope::setBccRecipients(QList bccRecipients) +{ + clearBccRecipients(); + d->mBccRecipients = bccRecipients; +} + +/*! + Clears the list of 'bcc recipients' + */ +void NmMessageEnvelope::clearBccRecipients() +{ + d->mBccRecipients.clear(); +} + +#endif /* NMMESSAGEENVELOPE_CPP_ */