diff --git a/kmacctimap.cpp b/kmacctimap.cpp index 0d03b9da2..5affa316c 100644 --- a/kmacctimap.cpp +++ b/kmacctimap.cpp @@ -499,6 +499,7 @@ void KMAcctImap::slotGetMessagesData(KIO::Job * job, const QByteArray & data) msg->fromString((*it).cdata.mid(16, pos - 16). replace(QRegExp("\r\n\r\n"),"\r\n")); int flags = msg->headerField("X-Flags").toInt(); + if (flags & 4) msg->setStatus(KMMsgStatusFlag); else if (flags & 2) msg->setStatus(KMMsgStatusReplied); else if (flags & 1) msg->setStatus(KMMsgStatusOld); KMFolder *kf = (*it).parent->folder; @@ -878,6 +879,9 @@ void KMAcctImap::setStatus(KMMessage * msg, KMMsgStatus status) case KMMsgStatusReplied: flags = "\\SEEN \\ANSWERED"; break; + case KMMsgStatusFlag: + flags = "\\SEEN \\FLAGGED"; + break; default: flags = "\\SEEN"; } diff --git a/kmmsgbase.cpp b/kmmsgbase.cpp index 04bc75edd..d8016a37f 100644 --- a/kmmsgbase.cpp +++ b/kmmsgbase.cpp @@ -13,13 +13,14 @@ #include #include -#define NUM_STATUSLIST 9 +#define NUM_STATUSLIST 10 static KMMsgStatus sStatusList[NUM_STATUSLIST] = { KMMsgStatusDeleted, KMMsgStatusNew, KMMsgStatusUnread, KMMsgStatusOld, KMMsgStatusRead, KMMsgStatusReplied, KMMsgStatusSent, KMMsgStatusQueued, + KMMsgStatusFlag, KMMsgStatusUnknown /* "Unknown" must be at the *end* of the list */ };