00001 #include "mailistviewitem.h"
00002 #include <libmailwrapper/abstractmail.h>
00003
00004
00005 #include <opie2/oresource.h>
00006 #include <qpe/timestring.h>
00007
00008
00009 #include <qtextstream.h>
00010
00011 MailListViewItem::MailListViewItem(QListView * parent, MailListViewItem * item )
00012 :QListViewItem(parent,item),mail_data()
00013 {
00014 }
00015
00016 void MailListViewItem::showEntry()
00017 {
00018 if ( mail_data->getFlags().testBit( FLAG_ANSWERED ) == true) {
00019 setPixmap( 0, Opie::Core::OResource::loadPixmap( "mail/kmmsgreplied", Opie::Core::OResource::SmallIcon ) );
00020 } else if ( mail_data->getFlags().testBit( FLAG_SEEN ) == true ) {
00021
00022
00023
00024 } else {
00025 setPixmap( 0, Opie::Core::OResource::loadPixmap( "mail/kmmsgnew", Opie::Core::OResource::SmallIcon ) );
00026 }
00027 double s = mail_data->Msgsize();
00028 int w;
00029 w=0;
00030
00031 while (s>1024) {
00032 s/=1024;
00033 ++w;
00034 if (w>=2) break;
00035 }
00036
00037 QString q="";
00038 QString fsize="";
00039 switch(w) {
00040 case 1:
00041 q="k";
00042 break;
00043 case 2:
00044 q="M";
00045 break;
00046 default:
00047 break;
00048 }
00049
00050 {
00051 QTextOStream o(&fsize);
00052 if (w>0) o.precision(2); else o.precision(0);
00053 o.setf(QTextStream::fixed);
00054 o << s << " " << q << "Byte";
00055 }
00056 setText(1,mail_data->getSubject());
00057 setText(2,mail_data->getFrom());
00058 setText(3,fsize);
00059 setText(4,mail_data->getStringDate());
00060 }
00061
00062 QString MailListViewItem::key(int col,bool) const
00063 {
00064 QString temp;
00065 if (col == 4) {
00066 temp.sprintf( "%08d",QDateTime().secsTo(mail_data->getDate()));
00067 return temp;
00068 }
00069 if (col == 3) {
00070 temp.sprintf( "%020d",mail_data->Msgsize());
00071 return temp;
00072 }
00073 return text(col);
00074 }
00075
00076 void MailListViewItem::storeData(const RecMailP&data)
00077 {
00078 mail_data = data;
00079 }
00080
00081 const RecMailP& MailListViewItem::data()const
00082 {
00083 return mail_data;
00084 }
00085
00086 MAILLIB::ATYPE MailListViewItem::wrapperType()
00087 {
00088 if (!mail_data->Wrapper()) return MAILLIB::A_UNDEFINED;
00089 return mail_data->Wrapper()->getType();
00090 }