00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include <qstring.h>
00021 #include <qpe/resource.h>
00022 #include "emaillistitem.h"
00023
00024 EmailListItem::EmailListItem(QListView *parent, Email mailIn, bool inbox)
00025 : QListViewItem(parent)
00026 {
00027 QString temp;
00028
00029 mail = mailIn;
00030
00031 if (inbox) {
00032 setText(0, mail.from);
00033 } else {
00034 QStringList::Iterator it = mail.recipients.begin();
00035 temp = *it;
00036 if (mail.recipients.count() > 1)
00037 temp += "...";
00038 setText(0, temp);
00039 }
00040 setText(1, mail.subject);
00041
00042 setText(2,dateFromULCString(mail.date));
00043
00044 if (mailIn.files.count()>0)
00045 {
00046 setPixmap(0, Resource::loadPixmap("mailit/attach"));
00047 }
00048
00049 selected = FALSE;
00050 }
00051
00052 Email* EmailListItem::getMail()
00053 {
00054 return &mail;
00055 }
00056
00057 void EmailListItem::setMail(Email newMail)
00058 {
00059 mail = newMail;
00060 repaint();
00061 }
00062
00063 void EmailListItem::setItemSelected(bool enable)
00064 {
00065 selected = enable;
00066 setSelected(enable);
00067 repaint();
00068 }
00069
00070 bool EmailListItem::isItemSelected()
00071 {
00072 return selected;
00073 }
00074
00075 void EmailListItem::paintCell( QPainter *p, const QColorGroup &cg,
00076 int column, int width, int alignment )
00077 {
00078
00079 QColorGroup _cg( cg );
00080 QColor c = _cg.text();
00081
00082 if ( (! mail.read) && (mail.received) )
00083 _cg.setColor( QColorGroup::Text, Qt::blue);
00084 if (!mail.downloaded)
00085 _cg.setColor( QColorGroup::Text, Qt::red);
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097 QListViewItem::paintCell( p, _cg, column, width, alignment );
00098
00099 _cg.setColor( QColorGroup::Text, c );
00100 }
00101
00102
00103
00104
00105
00106
00107
00108 QString EmailListItem::dateFromULCString( QString ulcDate )
00109 {
00110 QString sTemp, sTime;
00111 int iPos, iDay, iMon=1, iYear;
00112
00113 iPos=ulcDate.find(',');
00114 if (iPos) {
00115 ulcDate=ulcDate.remove(0,++iPos);
00116 }
00117
00118 QStringList dateEntries = QStringList::split(" ",ulcDate,FALSE);
00119 QStringList::Iterator iter = dateEntries.begin();
00120
00121
00122 iDay = (*iter++).toInt();
00123
00124
00125 sTemp = (*iter++);
00126 if (sTemp =="Jan") {iMon=1;} else
00127 if (sTemp =="Feb") {iMon=2;} else
00128 if (sTemp =="Mar") {iMon=3;} else
00129 if (sTemp =="Apr") {iMon=4;} else
00130 if (sTemp =="May") {iMon=5;} else
00131 if (sTemp =="Jun") {iMon=6;} else
00132 if (sTemp =="Jul") {iMon=7;} else
00133 if (sTemp =="Aug") {iMon=8;} else
00134 if (sTemp =="Sep") {iMon=9;} else
00135 if (sTemp =="Oct") {iMon=10;} else
00136 if (sTemp =="Nov") {iMon=11;} else
00137 if (sTemp =="Dec") {iMon=12;}
00138
00139
00140 iYear = (*iter++).toInt();
00141
00142 QDate date = QDate(iYear, iMon, iDay);
00143
00144
00145 QStringList timeEntries = QStringList::split(":",(*iter++),FALSE);
00146 QStringList::Iterator iterTime = timeEntries.begin();
00147 iYear=(*iterTime++).toInt();
00148 iMon=(*iterTime++).toInt();
00149 iDay=(*iterTime++).toInt();
00150 QTime time = QTime(iYear,iMon,iDay);
00151
00152 return QString::number(date.year())+"-"
00153 +QString::number(date.month()).rightJustify(2,'0')+"-"
00154 +QString::number(date.day()).rightJustify(2,'0')+" "
00155 +time.toString();
00156 }
00157
00158