23 #include "messagestatus.h"
25 #include "messageflags.h"
29 #include <QtCore/QString>
38 StatusUnknown = 0x00000000,
39 StatusUnread = 0x00000002,
40 StatusRead = 0x00000004,
41 StatusDeleted = 0x00000010,
42 StatusReplied = 0x00000020,
43 StatusForwarded = 0x00000040,
44 StatusQueued = 0x00000080,
45 StatusSent = 0x00000100,
46 StatusFlag = 0x00000200,
47 StatusWatched = 0x00000400,
48 StatusIgnored = 0x00000800,
49 StatusToAct = 0x00001000,
50 StatusSpam = 0x00002000,
51 StatusHam = 0x00004000,
52 StatusHasAttachment = 0x00008000,
53 StatusHasInvitation = 0x00010000,
54 StatusSigned = 0x00020000,
55 StatusEncrypted = 0x00040000,
56 StatusHasError = 0x00080000
61 mStatus = StatusUnknown;
66 mStatus = other.mStatus;
72 return ( mStatus == other.mStatus );
77 return ( mStatus != other.mStatus );
82 if ( mStatus == StatusUnread )
83 return !(other.mStatus & StatusRead);
85 if ( other.mStatus == StatusUnread )
86 return !(mStatus & StatusRead);
88 return ( mStatus & other.mStatus );
93 mStatus = StatusUnknown;
98 Q_ASSERT( !(other.mStatus & StatusUnread) );
103 if ( other.mStatus & StatusRead ) {
137 if ( other.
isHam() ) {
159 Q_ASSERT( !(other.mStatus & StatusUnread) );
162 setDeleted( !( mStatus & StatusDeleted ) );
165 setReplied( !( mStatus & StatusReplied ) );
168 setForwarded( !( mStatus & StatusForwarded ) );
171 setQueued( !( mStatus & StatusQueued ) );
174 setSent( !( mStatus & StatusSent ) );
177 setImportant( !( mStatus & StatusFlag ) );
181 setWatched( !( mStatus & StatusWatched ) );
184 setIgnored( !( mStatus & StatusIgnored ) );
187 setToAct( !( mStatus & StatusToAct ) );
190 setSpam( !( mStatus & StatusSpam ) );
192 if ( other.
isHam() ) {
193 setHam( !( mStatus & StatusHam ) );
196 setHasAttachment( !( mStatus & StatusHasAttachment ) );
199 setHasInvitation( !( mStatus & StatusHasInvitation ) );
202 setSigned( !( mStatus & StatusSigned ) );
205 setEncrypted( !( mStatus & StatusEncrypted ) );
208 setHasError( !( mStatus & StatusHasError ) );
214 return ( mStatus == StatusUnknown );
219 return ( (mStatus & StatusRead) || (mStatus & StatusIgnored) );
224 return ( mStatus & StatusDeleted );
229 return ( mStatus & StatusReplied );
234 return ( mStatus & StatusForwarded );
239 return ( mStatus & StatusQueued );
244 return ( mStatus & StatusSent );
249 return ( mStatus & StatusFlag );
254 return ( mStatus & StatusWatched );
259 return ( mStatus & StatusIgnored );
264 return ( mStatus & StatusToAct );
269 return ( mStatus & StatusSpam );
274 return ( mStatus & StatusHam );
279 return ( mStatus & StatusHasAttachment );
284 return ( mStatus & StatusHasInvitation );
289 return ( mStatus & StatusSigned );
294 return ( mStatus & StatusEncrypted );
299 return ( mStatus & StatusHasError );
306 mStatus |= StatusRead;
308 mStatus &= ~StatusRead;
315 mStatus |= StatusDeleted;
317 mStatus &= ~StatusDeleted;
324 mStatus |= StatusReplied;
326 mStatus &= ~StatusReplied;
333 mStatus |= StatusForwarded;
335 mStatus &= ~StatusForwarded;
342 mStatus |= StatusQueued;
344 mStatus &= ~StatusQueued;
351 mStatus &= ~StatusQueued;
352 mStatus |= StatusSent;
354 mStatus &= ~StatusSent;
361 mStatus |= StatusFlag;
363 mStatus &= ~StatusFlag;
371 mStatus &= ~StatusIgnored;
372 mStatus |= StatusWatched;
374 mStatus &= ~StatusWatched;
381 mStatus &= ~StatusWatched;
382 mStatus |= StatusIgnored;
384 mStatus &= ~StatusIgnored;
391 mStatus |= StatusToAct;
393 mStatus &= ~StatusToAct;
401 mStatus &= ~StatusHam;
402 mStatus |= StatusSpam;
404 mStatus &= ~StatusSpam;
411 mStatus &= ~StatusSpam;
412 mStatus |= StatusHam;
414 mStatus &= ~StatusHam;
420 if ( withAttachment ) {
421 mStatus |= StatusHasAttachment;
423 mStatus &= ~StatusHasAttachment;
429 if ( withInvitation ) {
430 mStatus |= StatusHasInvitation;
432 mStatus &= ~StatusHasInvitation;
439 mStatus |= StatusSigned;
441 mStatus &= ~StatusSigned;
448 mStatus |= StatusEncrypted;
450 mStatus &= ~StatusEncrypted;
457 mStatus |= StatusHasError;
459 mStatus &= ~StatusHasError;
477 if ( mStatus & StatusRead ) {
482 if ( mStatus & StatusDeleted ) {
485 if ( mStatus & StatusReplied ) {
488 if ( mStatus & StatusForwarded ) {
491 if ( mStatus & StatusQueued ) {
494 if ( mStatus & StatusToAct ) {
497 if ( mStatus & StatusSent ) {
500 if ( mStatus & StatusFlag ) {
503 if ( mStatus & StatusWatched ) {
506 if ( mStatus & StatusIgnored ) {
509 if ( mStatus & StatusSpam ) {
512 if ( mStatus & StatusHam ) {
515 if ( mStatus & StatusHasAttachment ) {
519 return QLatin1String( sstr );
524 mStatus = StatusUnknown;
526 if ( aStr.contains( QLatin1Char(
'U' ) ) ) {
529 if ( aStr.contains( QLatin1Char(
'R' ) ) ) {
532 if ( aStr.contains( QLatin1Char(
'D' ) ) ) {
535 if ( aStr.contains( QLatin1Char(
'A' ) ) ) {
538 if ( aStr.contains( QLatin1Char(
'F' ) ) ) {
541 if ( aStr.contains( QLatin1Char(
'Q' ) ) ) {
544 if ( aStr.contains( QLatin1Char(
'K' ) ) ) {
547 if ( aStr.contains( QLatin1Char(
'S' ) ) ) {
550 if ( aStr.contains( QLatin1Char(
'G' ) ) ) {
553 if ( aStr.contains( QLatin1Char(
'W' ) ) ) {
556 if ( aStr.contains( QLatin1Char(
'I' ) ) ) {
559 if ( aStr.contains( QLatin1Char(
'P' ) ) ) {
562 if ( aStr.contains( QLatin1Char(
'H' ) ) ) {
565 if ( aStr.contains( QLatin1Char(
'T' ) ) ) {
568 if ( aStr.contains( QLatin1Char(
'C' ) ) ) {
569 setHasAttachment(
false );
575 QSet<QByteArray> flags;
577 if ( mStatus & StatusDeleted ) {
580 if ( mStatus & StatusRead )
582 if ( mStatus & StatusReplied )
584 if ( mStatus & StatusFlag )
588 if ( mStatus & StatusSent )
590 if ( mStatus & StatusQueued )
592 if ( mStatus & StatusReplied )
594 if ( mStatus & StatusForwarded )
596 if ( mStatus & StatusToAct )
598 if ( mStatus & StatusWatched )
600 if ( mStatus & StatusIgnored )
602 if ( mStatus & StatusHasAttachment )
604 if ( mStatus & StatusHasInvitation )
606 if ( mStatus & StatusSigned )
608 if ( mStatus & StatusEncrypted )
610 if ( mStatus & StatusSpam )
612 if ( mStatus & StatusHam )
614 if ( mStatus & StatusHasError )
623 mStatus = StatusUnknown;
625 foreach (
const QByteArray &flag, flags ) {
626 const QByteArray &upperedFlag = flag.toUpper();
672 st.mStatus = StatusUnread;