You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

173 lines
4.2 KiB

// kmmsginfo.cpp
#include "kmmsginfo.h"
#include "kmmessage.h"
#include <string.h>
#include <stdio.h>
#include <assert.h>
#include <mimelib/datetime.h>
static QString result;
//-----------------------------------------------------------------------------
KMMsgInfo::KMMsgInfo(KMFolder* p):
KMMsgInfoInherited(p), mSubject(), mFrom(), mTo()
{
}
//-----------------------------------------------------------------------------
KMMsgInfo::~KMMsgInfo()
{
}
//-----------------------------------------------------------------------------
KMMsgInfo& KMMsgInfo::operator=(const KMMsgInfo& other)
{
KMMsgInfoInherited::assign(&other);
mSubject = other.mSubject.copy();
mFrom = other.mFrom.copy();
mTo = other.mTo.copy();
mReplyToId = other.replyToId().copy();
mMsgId = other.msgId().copy();
return *this;
}
//-----------------------------------------------------------------------------
KMMsgInfo& KMMsgInfo::operator=(const KMMessage& msg)
{
KMMsgInfoInherited::assign(&msg);
mSubject = msg.subject().copy();
mFrom = msg.from().copy();
mTo = msg.to().copy();
mReplyToId = msg.replyToId().copy();
mMsgId = msg.msgId().copy();
return *this;
}
//-----------------------------------------------------------------------------
void KMMsgInfo::init(const QString aSubject, const QString aFrom,
const QString aTo, time_t aDate,
KMMsgStatus aStatus, const QString aXMark,
const QString replyToId, const QString msgId,
unsigned long aFolderOffset, unsigned long aMsgSize)
{
mSubject = decodeRFC1522String(aSubject).copy();
mFrom = decodeRFC1522String(aFrom).copy();
mTo = decodeRFC1522String(aTo).copy();
mDate = aDate;
mXMark = aXMark;
mReplyToId = replyToId;
mMsgId = msgId;
mStatus = aStatus;
mMsgSize = aMsgSize;
mFolderOffset = aFolderOffset;
mDirty = FALSE;
}
//-----------------------------------------------------------------------------
const QString KMMsgInfo::subject(void) const
{
return mSubject;
}
//-----------------------------------------------------------------------------
const QString KMMsgInfo::from(void) const
{
return mFrom;
}
//-----------------------------------------------------------------------------
const QString KMMsgInfo::to(void) const
{
return mTo;
}
//-----------------------------------------------------------------------------
const QString KMMsgInfo::xmark(void) const
{
return mXMark;
}
//-----------------------------------------------------------------------------
const QString KMMsgInfo::replyToId(void) const
{
return mReplyToId;
}
//-----------------------------------------------------------------------------
const QString KMMsgInfo::msgId(void) const
{
return mMsgId;
}
//-----------------------------------------------------------------------------
void KMMsgInfo::setSubject(const QString aSubject)
{
mSubject = aSubject.copy();
mDirty = TRUE;
}
//-----------------------------------------------------------------------------
void KMMsgInfo::setFrom(const QString aFrom)
{
mFrom = aFrom.copy();
mDirty = TRUE;
}
//-----------------------------------------------------------------------------
void KMMsgInfo::setXMark(const QString aXMark)
{
mXMark = aXMark.copy();
mDirty = TRUE;
}
//-----------------------------------------------------------------------------
void KMMsgInfo::setReplyToId(const QString aReplyToId)
{
mReplyToId = aReplyToId.copy();
mDirty = TRUE;
}
//-----------------------------------------------------------------------------
void KMMsgInfo::setMsgId(const QString aMsgId)
{
mMsgId = aMsgId.copy();
mDirty = TRUE;
}
//-----------------------------------------------------------------------------
void KMMsgInfo::fromIndexString(const QString str)
{
char statusCh;
unsigned long ldate;
sscanf(str.data(), "%c %9lu %9lu %10lu", &statusCh,
&mFolderOffset, &mMsgSize, &ldate);
mDate = (time_t)ldate;
mStatus = (KMMsgStatus)statusCh;
mXMark = str.mid(33, 3).stripWhiteSpace();
mSubject = str.mid(37, 100).stripWhiteSpace();
mFrom = str.mid(138, 100).stripWhiteSpace();
mTo = str.mid(239, 100).stripWhiteSpace();
mReplyToId = str.mid(340, 100).stripWhiteSpace();
mMsgId = str.mid(441, 100).stripWhiteSpace();
mDirty = FALSE;
}