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.
 
 
 

142 lines
2.4 KiB

#include <qguardedptr.h>
#include <kdebug.h>
#include "kmmainwin.h"
#include "kmmessage.h"
#include "kmfoldertree.h"
#include "kmscoring.h"
KMScorableArticle::KMScorableArticle(const QString &msg)
: mMsgStr(msg),
mScore(0)
{
}
KMScorableArticle::~KMScorableArticle()
{
}
void
KMScorableArticle::addScore(short s)
{
mScore += s;
}
QString
KMScorableArticle::from() const
{
return getHeaderByType("From:");
}
QString
KMScorableArticle::subject() const
{
return getHeaderByType("Subject:");
}
QString
KMScorableArticle::getHeaderByType(const QString &header) const
{
if (mParsedHeaders.contains(header)) {
return mParsedHeaders[header];
}
QString value;
int start = 0, stop = 0;
char ch = 0;
start = mMsgStr.find(header);
if (start == -1) return QString::null;
if (mMsgStr.find("\n\n") < start) return QString::null;
stop = mMsgStr.find("\n", start + 1);
while (stop != -1 && (ch = mMsgStr.at(stop + 1)) == ' ' || ch == '\t')
stop = mMsgStr.find("\n", stop + 1);
if (stop == -1) value = KMMsgBase::decodeRFC2047String(mMsgStr.mid(start));
else value = KMMsgBase::decodeRFC2047String(mMsgStr.mid(start,
stop - start));
value.remove(0, header.length());
value = value.stripWhiteSpace();
mParsedHeaders[header] = value;
return value;
}
//////////////////////////////
KMScorableGroup::KMScorableGroup()
{
}
KMScorableGroup::~KMScorableGroup()
{
}
//////////////////////////////
KMScoringManager::KMScoringManager()
: mConfDialog(0),
mMainWin(0)
{
}
KMScoringManager::~KMScoringManager()
{
}
class KMFolder;
void
KMScoringManager::setMainWin(QObject *parent)
{
mMainWin = dynamic_cast<KMMainWin*>(parent);
if (!mMainWin) {
kdDebug(5006) << "KMScoringManager::setMainWin() : mMainWin == 0" << endl;
}
}
QStringList
KMScoringManager::getGroups() const
{
QValueList<QGuardedPtr<KMFolder> > dummy;
QStringList res;
if (mMainWin) {
KMFolderTree *tree = mMainWin->folderTree();
if (tree)
tree->createFolderList( &res, &dummy );
}
return res;
}
void
KMScoringManager::configure()
{
}
void
KMScoringManager::slotDialogDone()
{
}
KMScoringManager*
KMScoringManager::globalScoringManager()
{
if ( !mScoringManager ) mScoringManager = new KMScoringManager;
return mScoringManager;
}
KMScoringManager*
KMScoringManager::mScoringManager = 0;
#include "kmscoring.moc"