From f76e773d62adfeeead374fabf436821f63d04b05 Mon Sep 17 00:00:00 2001 From: Michael Haeckel Date: Sat, 15 Dec 2001 18:32:04 +0000 Subject: [PATCH] Make sorting by size and by order of arrival working again. Trolltech decided shortly before Qt-3.0.1, that " 5" comes after " 15". We use now zeros instead of spaces. svn path=/trunk/kdenetwork/kmail/; revision=127246 --- kmheaders.cpp | 12 +++++++++--- kmpopfiltercnfrmdlg.cpp | 7 ++++++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/kmheaders.cpp b/kmheaders.cpp index d1e464ff5..4cd60185e 100644 --- a/kmheaders.cpp +++ b/kmheaders.cpp @@ -323,7 +323,9 @@ public: // readSortOrder() int column = sortOrder & ((1 << 5) - 1); QString ret = QString("%1") .arg( (char)sortOrder ); - QString sortArrival = QString( "%1" ).arg( id, 8, 36 ); + QString sortArrival = QString( "%1" ).arg( id, 0, 36 ); + while (sortArrival.length() < 8) sortArrival = "0" + sortArrival; + if (column == paintInfo->dateCol) { if (paintInfo->orderOfArrival) return ret + sortArrival; @@ -348,15 +350,19 @@ public: return ret + KMMsgBase::skipKeyword( msg->subject().lower() ) + " " + sortArrival; } else if (column == paintInfo->sizeCol) { + QString len; if (headers->folder()->protocol() == "imap") { QCString cstr; headers->folder()->getMsgString(id, cstr); int a = cstr.find("\nX-Length: "); int b = cstr.find("\n", a+1); - return ret + QString( "%1" ).arg( cstr.mid(a+11, b-a-11), 9 ); + len = QString( "%1" ).arg( cstr.mid(a+11, b-a-11) ); + } else { + len = QString( "%1" ).arg( msg->msgSize() ); } - return ret + QString( "%1" ).arg( msg->msgSize(), 9 ); + while (len.length() < 9) len = "0" + len; + return ret + len; } return ret + "missing key"; //you forgot something!! } diff --git a/kmpopfiltercnfrmdlg.cpp b/kmpopfiltercnfrmdlg.cpp index f1a6ba18c..ab310d076 100644 --- a/kmpopfiltercnfrmdlg.cpp +++ b/kmpopfiltercnfrmdlg.cpp @@ -271,7 +271,12 @@ QString KMPopHeadersViewItem::key(int col, bool) const { if (col == 3) return KMMsgBase::skipKeyword(text(col).lower()); if (col == 5) return text(7); - if (col == 6) return QString("%1").arg(text(col), 10); + if (col == 6) + { + QString st = text(col); + while (st.length() < 10) st = "0" + st; + return st; + } return text(col); }