From 1af1f1d9f398d38a2bc666cd2edff5725da7a770 Mon Sep 17 00:00:00 2001 From: mickeyl Date: Wed, 29 Oct 2003 18:18:19 +0000 Subject: mrege noncore/net/* --- (limited to 'noncore/net/mailit/emaillistitem.cpp') diff --git a/noncore/net/mailit/emaillistitem.cpp b/noncore/net/mailit/emaillistitem.cpp index fc9f766..a25f93a 100644 --- a/noncore/net/mailit/emaillistitem.cpp +++ b/noncore/net/mailit/emaillistitem.cpp @@ -25,9 +25,9 @@ EmailListItem::EmailListItem(QListView *parent, Email mailIn, bool inbox) : QListViewItem(parent) { QString temp; - + mail = mailIn; - + if (inbox) { setText(0, mail.from); } else { @@ -38,13 +38,14 @@ EmailListItem::EmailListItem(QListView *parent, Email mailIn, bool inbox) setText(0, temp); } setText(1, mail.subject); - setText(2,mail.date); - + // setText(2,mail.date); + setText(2,dateFromULCString(mail.date)); + if (mailIn.files.count()>0) { setPixmap(0, Resource::loadPixmap("mailit/attach")); } - + selected = FALSE; } @@ -82,7 +83,7 @@ void EmailListItem::paintCell( QPainter *p, const QColorGroup &cg, _cg.setColor( QColorGroup::Text, Qt::blue); if (!mail.downloaded) _cg.setColor( QColorGroup::Text, Qt::red); - + /* if (selected) { _cg.setColor(QColorGroup::Base, Qt::blue); _cg.setColor(QColorGroup::Text, Qt::yellow); @@ -92,8 +93,66 @@ void EmailListItem::paintCell( QPainter *p, const QColorGroup &cg, _cg.setColor(QColorGroup::Highlight, Qt::blue); } } -*/ +*/ QListViewItem::paintCell( p, _cg, column, width, alignment ); _cg.setColor( QColorGroup::Text, c ); } + +/* + * Converts an E-Mail date (ULC) RFC 2822 conform to a QDateTime. + * Returning a QString with formatting of "YYYY-MM-DD HH:MM:SS" + * (zodiac: This method was tested with more than 300 inbox mails, + * it didn't slow down the loading of mail-it.) + */ +QString EmailListItem::dateFromULCString( QString ulcDate ) +{ + QString sTemp, sTime; + int iPos, iDay, iMon=1, iYear; + + iPos=ulcDate.find(','); + if (iPos) { // it has a day-of-week + ulcDate=ulcDate.remove(0,++iPos); //.stripWhiteSpace(); + } + + QStringList dateEntries = QStringList::split(" ",ulcDate,FALSE); + QStringList::Iterator iter = dateEntries.begin(); + + // Get day as DD + iDay = (*iter++).toInt(); + + // Get month as string Mmm + sTemp = (*iter++); + if (sTemp =="Jan") {iMon=1;} else + if (sTemp =="Feb") {iMon=2;} else + if (sTemp =="Mar") {iMon=3;} else + if (sTemp =="Apr") {iMon=4;} else + if (sTemp =="May") {iMon=5;} else + if (sTemp =="Jun") {iMon=6;} else + if (sTemp =="Jul") {iMon=7;} else + if (sTemp =="Aug") {iMon=8;} else + if (sTemp =="Sep") {iMon=9;} else + if (sTemp =="Oct") {iMon=10;} else + if (sTemp =="Nov") {iMon=11;} else + if (sTemp =="Dec") {iMon=12;} + + // Get year as YYYY or YY + iYear = (*iter++).toInt(); + + QDate date = QDate(iYear, iMon, iDay); + + // Convert timestring into a QTime + QStringList timeEntries = QStringList::split(":",(*iter++),FALSE); + QStringList::Iterator iterTime = timeEntries.begin(); + iYear=(*iterTime++).toInt(); // var reuse.. *cough* + iMon=(*iterTime++).toInt(); + iDay=(*iterTime++).toInt(); + QTime time = QTime(iYear,iMon,iDay); + + return QString::number(date.year())+"-" + +QString::number(date.month()).rightJustify(2,'0')+"-" + +QString::number(date.day()).rightJustify(2,'0')+" " + +time.toString(); +} + + -- cgit v0.9.0.2