Diffstat (limited to 'kmicromail/mailistviewitem.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | kmicromail/mailistviewitem.cpp | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/kmicromail/mailistviewitem.cpp b/kmicromail/mailistviewitem.cpp new file mode 100644 index 0000000..6073da6 --- a/dev/null +++ b/kmicromail/mailistviewitem.cpp @@ -0,0 +1,115 @@ +#include "mailistviewitem.h" +#include <libmailwrapper/abstractmail.h> +#include <qtextstream.h> +#include <kiconloader.h> +//#include <qpe/resource.h> + +MailListViewItem::MailListViewItem(QListView * parent, MailListViewItem * item ) + :QListViewItem(parent,item),mail_data() +{ +} + +void MailListViewItem::showEntry() +{ + if ( mail_data->getFlags().testBit( FLAG_ANSWERED ) == true) { + setPixmap( 0, SmallIcon ( "kmmsgreplied") ); + } else if ( mail_data->getFlags().testBit( FLAG_SEEN ) == true ) { + /* I think it looks nicer if there are not such a log of icons but only on mails + replied or new - Alwin*/ + //setPixmap( 0,SmallIcon ("kmmsgunseen") ); + } else { + setPixmap( 0,SmallIcon ( "kmmsgnew") ); + } + double s = mail_data->Msgsize(); + int w; + w=0; + + while (s>1024) { + s/=1024; + ++w; + if (w>=2) break; + } + + QString q=""; + QString fsize=""; + switch(w) { + case 1: + q="k"; + break; + case 2: + q="M"; + break; + default: + break; + } + + { + QTextOStream o(&fsize); + if (w>0) o.precision(2); else o.precision(0); + o.setf(QTextStream::fixed); + o << s << " " << q << "Byte"; + } + + setText(1,mail_data->getSubject()); + setText(2,mail_data->getFrom()); + setText(3,fsize); + QString date = mail_data->getDate(); + + int kom = date.find( ",")+2; + if ( kom == 1 ) + kom = 0; + if ( date.mid(kom,1) == " ") + ++kom; + if ( date.mid(kom+1,1) == " " ) + date = "0" + date.mid( kom ); + else if ( kom ) + date = date.mid( kom ); + if ( kom || date.mid(2,1 ) == " ") { + QString mon = date.mid(3,3); + QString so = 00; + if ( mon == "Jan" ) + so = "01"; + else if ( mon == "Feb" ) + so = "02"; + else if ( mon == "Mar" ) + so = "03"; + else if ( mon == "Apr" ) + so = "04"; + else if ( mon == "May" ) + so = "05"; + else if ( mon == "Jun" ) + so = "06"; + else if ( mon == "Jul" ) + so = "07"; + else if ( mon == "Aug" ) + so = "08"; + else if ( mon == "Sep" ) + so = "09"; + else if ( mon == "Oct" ) + so = "10"; + else if ( mon == "Nov" ) + so = "11"; + else if ( mon == "Dec" ) + so = "12"; + date = date.mid(7,4)+"-"+so+"-"+date.left(2)+"-"+date.mid(12); + } + // if ( date.left(1) != "1" || date.left(1) != "2" ) + // date = date.mid(5); + setText(4,date); +} + +void MailListViewItem::storeData(const RecMailP&data) +{ + mail_data = data; +} + +const RecMailP& MailListViewItem::data()const +{ + return mail_data; +} + +MAILLIB::ATYPE MailListViewItem::wrapperType() +{ + if (!mail_data->Wrapper()) return MAILLIB::A_UNDEFINED; + return mail_data->Wrapper()->getType(); +} |