emailservices/nmailbase/src/nmmessageenvelope.cpp
changeset 18 578830873419
child 23 2dc6caa42ec3
equal deleted inserted replaced
4:e7aa27f58ae1 18:578830873419
       
     1 /*
       
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:
       
    15 *
       
    16 */
       
    17 
       
    18 #ifndef NMMESSAGEENVELOPE_CPP_
       
    19 #define NMMESSAGEENVELOPE_CPP_
       
    20 
       
    21 #include "nmmessageenvelope.h"
       
    22 
       
    23 /*!
       
    24     Constructor of NmMessageEnvelopePrivate object
       
    25  */
       
    26 NmMessageEnvelopePrivate::NmMessageEnvelopePrivate()
       
    27 :mId(0),
       
    28 mMailboxId(0),
       
    29 mMessageFlags(0)
       
    30 {
       
    31 }
       
    32 
       
    33 /*!
       
    34     Destructor of NmMessageEnvelopePrivate object
       
    35  */
       
    36 NmMessageEnvelopePrivate::~NmMessageEnvelopePrivate()
       
    37 {
       
    38 }
       
    39 
       
    40 NmMessageFlags NmMessageEnvelopePrivate::flags() const
       
    41 {
       
    42     return mMessageFlags;
       
    43 }
       
    44 
       
    45 void NmMessageEnvelopePrivate::setFlags(const NmMessageFlags flags, bool set)
       
    46 {
       
    47     if (set) {
       
    48         mMessageFlags |= flags;
       
    49     } else {
       
    50         mMessageFlags &= ~flags;
       
    51     }
       
    52 }
       
    53 
       
    54 void NmMessageEnvelopePrivate::setFlag(const NmMessageFlag flag, bool set)
       
    55 {
       
    56     if (set) {
       
    57         mMessageFlags |= flag;
       
    58     } else {
       
    59         mMessageFlags &= ~flag;
       
    60     }
       
    61 }
       
    62 
       
    63 bool NmMessageEnvelopePrivate::isFlagSet(const NmMessageFlag flag) const
       
    64 {
       
    65     return mMessageFlags.testFlag(flag);
       
    66 }
       
    67 
       
    68 
       
    69 /*!
       
    70     \class NmMessageEnvelope
       
    71     \brief Represents model for message data that is needed to show one message on
       
    72            message list
       
    73  */
       
    74 
       
    75 
       
    76 /*!
       
    77     Constructor
       
    78  */
       
    79 NmMessageEnvelope::NmMessageEnvelope()
       
    80 {
       
    81     d = new NmMessageEnvelopePrivate();
       
    82 }
       
    83 
       
    84 /*!
       
    85     Constructor with id
       
    86  */
       
    87 NmMessageEnvelope::NmMessageEnvelope(const NmId &id)
       
    88 {
       
    89     d = new NmMessageEnvelopePrivate();
       
    90     d->mId = id;
       
    91 }
       
    92 
       
    93 /*!
       
    94     Copy constructor
       
    95  */
       
    96 NmMessageEnvelope::NmMessageEnvelope(const NmMessageEnvelope &envelope):d(envelope.d)
       
    97 {
       
    98 }
       
    99 
       
   100 /*!
       
   101     Constructs new NmMessageEnvelope object from private envelope data
       
   102  */
       
   103 NmMessageEnvelope::NmMessageEnvelope(QExplicitlySharedDataPointer<NmMessageEnvelopePrivate> nmPrivateMessageEnvelope)
       
   104 {
       
   105     d = nmPrivateMessageEnvelope;
       
   106 }
       
   107 
       
   108 /*!
       
   109     Assignment operator
       
   110  */
       
   111 NmMessageEnvelope &NmMessageEnvelope::operator=(const NmMessageEnvelope &envelope)
       
   112 {
       
   113     if (this != &envelope) {
       
   114         d = envelope.d;
       
   115     }
       
   116     return *this;
       
   117 }
       
   118 
       
   119 
       
   120 /*!
       
   121     Equal operator returns true if all values are same,
       
   122     function is case insensitive
       
   123  */
       
   124 bool NmMessageEnvelope::operator==(const NmMessageEnvelope &envelope) const
       
   125 {
       
   126     bool ret = false;
       
   127     if (0 == subject().compare(envelope.subject(), Qt::CaseInsensitive)
       
   128         && sender() == envelope.sender()
       
   129         && sentTime() == envelope.sentTime()
       
   130         && flags() == envelope.flags()
       
   131         && mailboxId() == envelope.mailboxId()
       
   132         && parentId() == envelope.parentId()) {
       
   133         ret = true;
       
   134     }
       
   135     return ret;
       
   136 }
       
   137 
       
   138 /*!
       
   139     Not equal operator return true if at least one value in not equal,
       
   140     function is case insensitive
       
   141  */
       
   142 bool NmMessageEnvelope::operator!=(const NmMessageEnvelope &envelope) const
       
   143 {
       
   144     return !(*this==envelope);
       
   145 }
       
   146 
       
   147 /*!
       
   148     Destructor
       
   149  */
       
   150 NmMessageEnvelope::~NmMessageEnvelope()
       
   151 {
       
   152 }
       
   153 
       
   154 /*!
       
   155     Sets message id
       
   156  */
       
   157 void NmMessageEnvelope::setId(const NmId &id)
       
   158 {
       
   159     d->mId = id;
       
   160 }
       
   161 
       
   162 /*!
       
   163     Returns id of message
       
   164  */
       
   165 NmId NmMessageEnvelope::id() const
       
   166 {
       
   167     return d->mId;
       
   168 }
       
   169 
       
   170 /*!
       
   171     Returns parent id of this envelope
       
   172  */
       
   173 NmId NmMessageEnvelope::parentId() const
       
   174 {
       
   175     return d->mParentId;
       
   176 }
       
   177 
       
   178 /*!
       
   179     Sets the parent id for this envelope
       
   180  */
       
   181 void NmMessageEnvelope::setParentId(const NmId &id)
       
   182 {
       
   183     d->mParentId = id;
       
   184 }
       
   185 
       
   186 /*!
       
   187     Returns mailbox id of this envelope
       
   188  */
       
   189 NmId NmMessageEnvelope::mailboxId() const
       
   190 {
       
   191     return d->mMailboxId;
       
   192 }
       
   193 
       
   194 /*!
       
   195     Sets the mailbox id for this envelope
       
   196  */
       
   197 void NmMessageEnvelope::setMailboxId(const NmId &id)
       
   198 {
       
   199     d->mMailboxId = id;
       
   200 }
       
   201 
       
   202 /*!
       
   203     Sets message subject
       
   204  */
       
   205 void NmMessageEnvelope::setSubject(const QString &subject)
       
   206 {
       
   207     d->mSubject = subject;
       
   208 }
       
   209 
       
   210 /*!
       
   211     Retruns subject string
       
   212  */
       
   213 QString NmMessageEnvelope::subject() const
       
   214 {
       
   215   return d->mSubject;
       
   216 }
       
   217 
       
   218 /*!
       
   219     Sets \a sender as a sender's address
       
   220  */
       
   221 void NmMessageEnvelope::setSender(const NmAddress &sender)
       
   222 {
       
   223     d->mSender = sender;
       
   224 }
       
   225 
       
   226 /*!
       
   227     Returns sender string
       
   228  */
       
   229 NmAddress NmMessageEnvelope::sender() const
       
   230 {
       
   231     return d->mSender;
       
   232 }
       
   233 
       
   234 /*!
       
   235     Sets sent time to \a sentTime
       
   236  */
       
   237 void NmMessageEnvelope::setSentTime(const QDateTime &sentTime)
       
   238 {
       
   239     d->mSentTime = sentTime;
       
   240 }
       
   241 
       
   242 /*!
       
   243     Returns sent time, if not set returns null time
       
   244  */
       
   245 QDateTime NmMessageEnvelope::sentTime() const
       
   246 {
       
   247     return d->mSentTime;
       
   248 }
       
   249 
       
   250 /*!
       
   251     Sets message contains attachments if \a hasAttachments is true
       
   252  */
       
   253 void NmMessageEnvelope::setHasAttachments(bool hasAttachments)
       
   254 {
       
   255     d->setFlag(NmMessageFlagAttachments, hasAttachments);
       
   256 }
       
   257 
       
   258 /*!
       
   259     Returns true if message contains attachments
       
   260  */
       
   261 bool NmMessageEnvelope::hasAttachments() const
       
   262 {
       
   263     return d->isFlagSet(NmMessageFlagAttachments);
       
   264 }
       
   265 
       
   266 /*!
       
   267     Set message to read if \a read is true
       
   268  */
       
   269 void NmMessageEnvelope::setRead(bool read)
       
   270 {
       
   271     d->setFlag(NmMessageFlagRead, read);
       
   272 }
       
   273 
       
   274 /*!
       
   275     Returns true if message is read
       
   276  */
       
   277 bool NmMessageEnvelope::isRead() const
       
   278 {
       
   279     return d->isFlagSet(NmMessageFlagRead);
       
   280 }
       
   281 
       
   282 /*!
       
   283     Sets message to replied state if \a replyed is true
       
   284  */
       
   285 void NmMessageEnvelope::setReplied(bool replyed)
       
   286 {
       
   287     d->setFlag(NmMessageFlagAnswered, replyed);
       
   288 }
       
   289 
       
   290 /*!
       
   291     Returns true if message is replied
       
   292  */
       
   293 bool NmMessageEnvelope::isReplied() const
       
   294 {
       
   295     return d->isFlagSet(NmMessageFlagAnswered);
       
   296 }
       
   297 
       
   298 /*!
       
   299     Sets message to forwarded state if \a replyed is true
       
   300  */
       
   301 void NmMessageEnvelope::setForwarded(bool forwarded)
       
   302 {
       
   303     d->setFlag(NmMessageFlagForwarded, forwarded);
       
   304 }
       
   305 
       
   306 /*!
       
   307     Returns true if message is forwarded
       
   308  */
       
   309 bool NmMessageEnvelope::isForwarded() const
       
   310 {
       
   311     return d->isFlagSet(NmMessageFlagForwarded);
       
   312 }
       
   313 
       
   314 /*!
       
   315     Sets message priority
       
   316  */
       
   317 void NmMessageEnvelope::setPriority(NmMessagePriority priority)
       
   318 {
       
   319     if (priority == NmMessagePriorityLow) {
       
   320         d->setFlag(NmMessageFlagLow, true);
       
   321         d->setFlag(NmMessageFlagImportant, false);
       
   322     }
       
   323     else if (priority == NmMessagePriorityHigh) {
       
   324         d->setFlag(NmMessageFlagLow, false);
       
   325         d->setFlag(NmMessageFlagImportant, true);
       
   326     }
       
   327     else {
       
   328         d->setFlag(NmMessageFlagLow, false);
       
   329         d->setFlag(NmMessageFlagImportant, false);
       
   330     }
       
   331 }
       
   332 
       
   333 /*!
       
   334     Returns message priority
       
   335  */
       
   336 NmMessagePriority NmMessageEnvelope::priority() const
       
   337 {
       
   338     NmMessagePriority ret = NmMessagePriorityNormal;
       
   339     if (d->isFlagSet(NmMessageFlagImportant)) {
       
   340         ret = NmMessagePriorityHigh;
       
   341     }
       
   342     else if (d->isFlagSet(NmMessageFlagLow)) {
       
   343         ret = NmMessagePriorityLow;
       
   344     }
       
   345     return ret;
       
   346 }
       
   347 
       
   348 /*!
       
   349     Returns message flags
       
   350  */
       
   351 NmMessageFlags NmMessageEnvelope::flags() const
       
   352 {
       
   353     return d->flags();
       
   354 }
       
   355 
       
   356 /*!
       
   357     Returns list of 'to recipients'
       
   358  */
       
   359 QList<NmAddress>& NmMessageEnvelope::toRecipients() const
       
   360 {
       
   361     return d->mToRecipients;
       
   362 }
       
   363 
       
   364 /*!
       
   365     Sets the list of 'to recipients'
       
   366  */
       
   367 void NmMessageEnvelope::setToRecipients(QList<NmAddress> toRecipients)
       
   368 {
       
   369     clearToRecipients();
       
   370     d->mToRecipients = toRecipients;
       
   371 }
       
   372 
       
   373 /*!
       
   374     Clears the list of 'to recipients'
       
   375  */
       
   376 void NmMessageEnvelope::clearToRecipients()
       
   377 {
       
   378     d->mToRecipients.clear();
       
   379 }
       
   380 
       
   381 /*!
       
   382     Returns list of 'cc recipients'
       
   383  */
       
   384 QList<NmAddress>& NmMessageEnvelope::ccRecipients() const
       
   385 {
       
   386     return d->mCcRecipients;
       
   387 }
       
   388 
       
   389 /*!
       
   390     Sets the list of 'cc recipients'
       
   391  */
       
   392 void NmMessageEnvelope::setCcRecipients(QList<NmAddress> ccRecipients)
       
   393 {
       
   394     clearCcRecipients();
       
   395     d->mCcRecipients = ccRecipients;
       
   396 }
       
   397 
       
   398 /*!
       
   399     Clears the list of 'cc recipients'
       
   400  */
       
   401 void NmMessageEnvelope::clearCcRecipients()
       
   402 {
       
   403     d->mCcRecipients.clear();
       
   404 }
       
   405 
       
   406 /*!
       
   407     Returns list of 'Bcc recipients'
       
   408  */
       
   409 QList<NmAddress>& NmMessageEnvelope::bccRecipients() const
       
   410 {
       
   411     return d->mBccRecipients;
       
   412 }
       
   413 
       
   414 /*!
       
   415     Sets the list of 'Bcc recipients'
       
   416  */
       
   417 void NmMessageEnvelope::setBccRecipients(QList<NmAddress> bccRecipients)
       
   418 {
       
   419     clearBccRecipients();
       
   420     d->mBccRecipients = bccRecipients;
       
   421 }
       
   422 
       
   423 /*!
       
   424     Clears the list of 'bcc recipients'
       
   425  */
       
   426 void NmMessageEnvelope::clearBccRecipients()
       
   427 {
       
   428     d->mBccRecipients.clear();
       
   429 }
       
   430 
       
   431 #endif /* NMMESSAGEENVELOPE_CPP_ */