summaryrefslogtreecommitdiff
path: root/noncore/unsupported/mailit/emaillistitem.cpp
authormickeyl <mickeyl>2003-10-29 18:18:19 (UTC)
committer mickeyl <mickeyl>2003-10-29 18:18:19 (UTC)
commit1af1f1d9f398d38a2bc666cd2edff5725da7a770 (patch) (side-by-side diff)
treeb3bb0d90cafc1e933b5b9297a7b2669ce3b184ea /noncore/unsupported/mailit/emaillistitem.cpp
parent35615947e11575a61456c8483e7f6d67fe59d5ed (diff)
downloadopie-1af1f1d9f398d38a2bc666cd2edff5725da7a770.zip
opie-1af1f1d9f398d38a2bc666cd2edff5725da7a770.tar.gz
opie-1af1f1d9f398d38a2bc666cd2edff5725da7a770.tar.bz2
mrege noncore/net/*
Diffstat (limited to 'noncore/unsupported/mailit/emaillistitem.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/unsupported/mailit/emaillistitem.cpp73
1 files changed, 66 insertions, 7 deletions
diff --git a/noncore/unsupported/mailit/emaillistitem.cpp b/noncore/unsupported/mailit/emaillistitem.cpp
index fc9f766..a25f93a 100644
--- a/noncore/unsupported/mailit/emaillistitem.cpp
+++ b/noncore/unsupported/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();
+}
+
+