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
wilder-work
Michael Haeckel 25 years ago
parent 4535d402e9
commit f76e773d62
  1. 12
      kmheaders.cpp
  2. 7
      kmpopfiltercnfrmdlg.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!!
}

@ -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);
}

Loading…
Cancel
Save