summaryrefslogtreecommitdiffabout
path: root/kmicromail/mailistviewitem.cpp
Unidiff
Diffstat (limited to 'kmicromail/mailistviewitem.cpp') (more/less context) (show whitespace changes)
-rw-r--r--kmicromail/mailistviewitem.cpp115
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 @@
1#include "mailistviewitem.h"
2#include <libmailwrapper/abstractmail.h>
3#include <qtextstream.h>
4#include <kiconloader.h>
5//#include <qpe/resource.h>
6
7MailListViewItem::MailListViewItem(QListView * parent, MailListViewItem * item )
8 :QListViewItem(parent,item),mail_data()
9{
10}
11
12void MailListViewItem::showEntry()
13{
14 if ( mail_data->getFlags().testBit( FLAG_ANSWERED ) == true) {
15 setPixmap( 0, SmallIcon ( "kmmsgreplied") );
16 } else if ( mail_data->getFlags().testBit( FLAG_SEEN ) == true ) {
17 /* I think it looks nicer if there are not such a log of icons but only on mails
18 replied or new - Alwin*/
19 //setPixmap( 0,SmallIcon ("kmmsgunseen") );
20 } else {
21 setPixmap( 0,SmallIcon ( "kmmsgnew") );
22 }
23 double s = mail_data->Msgsize();
24 int w;
25 w=0;
26
27 while (s>1024) {
28 s/=1024;
29 ++w;
30 if (w>=2) break;
31 }
32
33 QString q="";
34 QString fsize="";
35 switch(w) {
36 case 1:
37 q="k";
38 break;
39 case 2:
40 q="M";
41 break;
42 default:
43 break;
44 }
45
46 {
47 QTextOStream o(&fsize);
48 if (w>0) o.precision(2); else o.precision(0);
49 o.setf(QTextStream::fixed);
50 o << s << " " << q << "Byte";
51 }
52
53 setText(1,mail_data->getSubject());
54 setText(2,mail_data->getFrom());
55 setText(3,fsize);
56 QString date = mail_data->getDate();
57
58 int kom = date.find( ",")+2;
59 if ( kom == 1 )
60 kom = 0;
61 if ( date.mid(kom,1) == " ")
62 ++kom;
63 if ( date.mid(kom+1,1) == " " )
64 date = "0" + date.mid( kom );
65 else if ( kom )
66 date = date.mid( kom );
67 if ( kom || date.mid(2,1 ) == " ") {
68 QString mon = date.mid(3,3);
69 QString so = 00;
70 if ( mon == "Jan" )
71 so = "01";
72 else if ( mon == "Feb" )
73 so = "02";
74 else if ( mon == "Mar" )
75 so = "03";
76 else if ( mon == "Apr" )
77 so = "04";
78 else if ( mon == "May" )
79 so = "05";
80 else if ( mon == "Jun" )
81 so = "06";
82 else if ( mon == "Jul" )
83 so = "07";
84 else if ( mon == "Aug" )
85 so = "08";
86 else if ( mon == "Sep" )
87 so = "09";
88 else if ( mon == "Oct" )
89 so = "10";
90 else if ( mon == "Nov" )
91 so = "11";
92 else if ( mon == "Dec" )
93 so = "12";
94 date = date.mid(7,4)+"-"+so+"-"+date.left(2)+"-"+date.mid(12);
95 }
96 // if ( date.left(1) != "1" || date.left(1) != "2" )
97 // date = date.mid(5);
98 setText(4,date);
99}
100
101void MailListViewItem::storeData(const RecMailP&data)
102{
103 mail_data = data;
104}
105
106const RecMailP& MailListViewItem::data()const
107{
108 return mail_data;
109}
110
111MAILLIB::ATYPE MailListViewItem::wrapperType()
112{
113 if (!mail_data->Wrapper()) return MAILLIB::A_UNDEFINED;
114 return mail_data->Wrapper()->getType();
115}