From deb87bff56cd9cbb41e352c2ccfa97be142d6e48 Mon Sep 17 00:00:00 2001 From: zautrix Date: Sun, 04 Jul 2004 12:40:46 +0000 Subject: Make sorting in KM working --- (limited to 'kmicromail/mailistviewitem.cpp') diff --git a/kmicromail/mailistviewitem.cpp b/kmicromail/mailistviewitem.cpp index b9b4cd9..1ca0ada 100644 --- a/kmicromail/mailistviewitem.cpp +++ b/kmicromail/mailistviewitem.cpp @@ -21,38 +21,42 @@ void MailListViewItem::showEntry() setPixmap( 0,SmallIcon ( "kmmsgnew") ); } double s = mail_data->Msgsize(); - int w; - w=0; - - while (s>1024) { - s/=1024; + int w = 0; + s/=1024; + if (s>999.0) { + s/=1024.0; ++w; - if (w>=2) break; } - - QString q=""; - QString fsize=""; - switch(w) { - case 1: - q="k"; + QString fsort; + fsort.sprintf( "%.2f", s ); + QString fsize = QString::number( s, 'f', 2 ); + // 1.23 + // 11.23 + // 111.23 + // 999.23 maxlen + switch(fsize.length() ) { + case 4: + fsort = "00" + fsize ; break; - case 2: - q="M"; + case 5: + fsort = "0" + fsize ; break; default: - break; + fsort = fsize ; + break; + } - - { - QTextOStream o(&fsize); - if (w>0) o.precision(2); else o.precision(0); - o.setf(QTextStream::fixed); - o << s << " " << q << "Byte"; + if ( w == 0 ) { + setText(3, fsize + "kB" ); + mKeyMap.insert(3, "k" + fsort); + //setText(3, "kB" + fsort ); // test only + } else { + //setText(3, fsize + "MB"); + mKeyMap.insert(4, "M" +fsort ); } - setText(1,mail_data->getSubject()); setText(2,mail_data->getFrom()); - setText(3,fsize); + QString date = mail_data->getDate(); int kom = date.find( ",")+2; @@ -91,17 +95,40 @@ void MailListViewItem::showEntry() so = "11"; else if ( mon == "Dec" ) so = "12"; - date = date.mid(7,4)+"-"+so+"-"+date.left(2)+" "+date.mid(12,14); + date = date.mid(7,4)+so+date.left(2)+date.mid(12,14); } // if ( date.left(1) != "1" || date.left(1) != "2" ) // date = date.mid(5); - setText(4,date); + mKeyMap.insert(4,date); + setText(4,mail_data->getDate()); } void MailListViewItem::storeData(const RecMailP&data) { mail_data = data; } +void MailListViewItem::setSortKey(int column,const QString &key) +{ + mKeyMap.insert(column,key); +} +QString MailListViewItem::key(int column, bool) const +{ + // to make is fast, we use here special cases + if ( column == 3 || column == 4 ) { + return *mKeyMap.find(column); + } + if ( column == 1 ) { + if ( text(1).left(4).lower() == "re: " ) + return text(1).mid(4); + + } + return text(column); + /* + QMap::ConstIterator it = mKeyMap.find(column); + if (it == mKeyMap.end()) return text(column); + else return *it; + */ +} const RecMailP& MailListViewItem::data()const { -- cgit v0.9.0.2