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;
64 Akonadi::MessageStatus &Akonadi::MessageStatus::operator = (
const Akonadi::MessageStatus &other )
66 mStatus = other.mStatus;
70 bool Akonadi::MessageStatus::operator == (
const Akonadi::MessageStatus &other )
const
72 return ( mStatus == other.mStatus );
75 bool Akonadi::MessageStatus::operator != (
const Akonadi::MessageStatus &other )
const
77 return ( mStatus != other.mStatus );
80 bool Akonadi::MessageStatus::operator & (
const Akonadi::MessageStatus &other )
const
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 ) {
106 if ( other.isDeleted() ) {
109 if ( other.isReplied() ) {
112 if ( other.isForwarded() ) {
115 if ( other.isQueued() ) {
118 if ( other.isSent() ) {
121 if ( other.isImportant() ) {
125 if ( other.isWatched() ) {
128 if ( other.isIgnored() ) {
131 if ( other.isToAct() ) {
134 if ( other.isSpam() ) {
137 if ( other.isHam() ) {
140 if ( other.hasAttachment() ) {
143 if ( other.hasInvitation() ) {
146 if ( other.isSigned() ) {
149 if ( other.isEncrypted() ) {
152 if ( other.hasError() ) {
159 Q_ASSERT( !(other.mStatus & StatusUnread) );
161 if ( other.isDeleted() ) {
162 setDeleted( !( mStatus & StatusDeleted ) );
164 if ( other.isReplied() ) {
165 setReplied( !( mStatus & StatusReplied ) );
167 if ( other.isForwarded() ) {
168 setForwarded( !( mStatus & StatusForwarded ) );
170 if ( other.isQueued() ) {
171 setQueued( !( mStatus & StatusQueued ) );
173 if ( other.isSent() ) {
174 setSent( !( mStatus & StatusSent ) );
176 if ( other.isImportant() ) {
177 setImportant( !( mStatus & StatusFlag ) );
180 if ( other.isWatched() ) {
181 setWatched( !( mStatus & StatusWatched ) );
183 if ( other.isIgnored() ) {
184 setIgnored( !( mStatus & StatusIgnored ) );
186 if ( other.isToAct() ) {
187 setToAct( !( mStatus & StatusToAct ) );
189 if ( other.isSpam() ) {
190 setSpam( !( mStatus & StatusSpam ) );
192 if ( other.isHam() ) {
193 setHam( !( mStatus & StatusHam ) );
195 if ( other.hasAttachment() ) {
196 setHasAttachment( !( mStatus & StatusHasAttachment ) );
198 if ( other.hasInvitation() ) {
199 setHasInvitation( !( mStatus & StatusHasInvitation ) );
201 if ( other.isSigned() ) {
202 setSigned( !( mStatus & StatusSigned ) );
204 if ( other.isEncrypted() ) {
205 setEncrypted( !( mStatus & StatusEncrypted ) );
207 if ( other.hasError() ) {
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();
671 Akonadi::MessageStatus st;
672 st.mStatus = StatusUnread;
678 Akonadi::MessageStatus st;
685 Akonadi::MessageStatus st;
692 Akonadi::MessageStatus st;
699 Akonadi::MessageStatus st;
706 Akonadi::MessageStatus st;
713 Akonadi::MessageStatus st;
720 Akonadi::MessageStatus st;
727 Akonadi::MessageStatus st;
734 Akonadi::MessageStatus st;
741 Akonadi::MessageStatus st;
748 Akonadi::MessageStatus st;
755 Akonadi::MessageStatus st;
762 Akonadi::MessageStatus st;