Bug 32400 - Sort by last / newest mail in thread
Summary: Sort by last / newest mail in thread
Alias: None
Product: kmail
Classification: Applications
Component: message list (show other bugs)
Version: 1.8.50
Platform: openSUSE Linux
: NOR wishlist
Target Milestone: ---
Assignee: kdepim bugs
: 43104 81001 88948 103019 110743 111018 124113 157942 (view as bug list)
Depends on:
Reported: 2001-09-12 17:03 UTC by Andreas Hochsteger
Modified: 2011-08-31 07:19 UTC (History)
15 users (show)

See Also:
Latest Commit:
Version Fixed In:


Note You need to log in before you can comment on or make changes to this bug.
Description Andreas Hochsteger 2001-09-12 16:59:07 UTC
(*** This bug was imported into bugs.kde.org ***)

Package:           kmail
Version:           1.3 (using KDE 2.2.0 )
Severity:          wishlist
Installed from:    SuSE
Compiler:          gcc version 2.95.2 19991024 (release)
OS:                Linux (i686) release 2.4.9-ac4
OS/Compiler notes: 

The treaded mode is very good for mailing lists but it should be enhanced to make it usable for those with much traffic.

The problem is this:
If you poste a message to a mailing list it's nearly impossible to see if somebody replied at a later time where very much other messages (and threads) came in between.
Now you have to look back for every self-posted mail and check them by hand.

The solution would be to sort the whole thread by the last (or first if in opposite direction) mail of that thread. So you always have the latest messages on the top of the list even if the thread started a long time ago.

(Submitted via bugs.kde.org)
(Called from KBugReport dialog)
Comment 1 Alain Knaff 2004-01-21 19:57:44 UTC
Problem seems to still exist in 3.1.95
Comment 2 Michael Jahn 2004-07-26 21:59:30 UTC
*** Bug 81001 has been marked as a duplicate of this bug. ***
Comment 3 Michael Jahn 2004-07-26 22:05:07 UTC
*** Bug 43104 has been marked as a duplicate of this bug. ***
Comment 4 Costia Desch 2004-07-31 07:16:11 UTC
Please look at the bug # 61891 where I suggested solution to threading 

Comment 5 Tom Albers 2004-09-07 13:22:27 UTC
*** Bug 88948 has been marked as a duplicate of this bug. ***
Comment 6 Raga Prong 2005-02-09 16:07:08 UTC
Hi there, 

I wish to subscribe to this wish. If you sort threads by date, the date of its latest posting should be regarded as the date of the thread.

Maybe this could be rendered by considering threads as an independent object (like an envelope or some binder) that has its own date. It could be more natural this way.

I often mark some thread as important - but miss its replies because it is out of sight by then. 

Thanks for "listening"
Comment 7 Till Adam 2005-04-01 18:42:49 UTC
*** Bug 103019 has been marked as a duplicate of this bug. ***
Comment 8 Dirk S. 2005-07-13 15:04:12 UTC
Same problem here - several MLs with a bit of traffic. I'm using Mozilla Thunderbird now but I would like to move away from it - alas, as long as this problem persists, participating in some MLs just takes too much time. So I must stay with T'bird...

Comment 9 Rudi Effe 2005-07-14 13:13:04 UTC
This bug is still valid for version 1.7.2. IMHO it is a missing core feature which makes people opt for alternative mail clients.

Somebody should update the version, this bug is assigned to, increase its priority, and turn it from "wish" to  "trivial" or "normal"
Comment 10 Andreas Hochsteger 2005-07-14 16:15:03 UTC
I just updated the version to the latest on as suggested by Ralf Gesellensetter in a private mail to me.
I hope this will pay more attention to it from the developers :-).
Comment 11 Till Adam 2005-07-14 18:01:07 UTC
> I just updated the version to the latest on as suggested by
> Ralf Gesellensetter in a private mail to me. I hope this will pay more
> attention to it from the developers :-).

You might as well have sacrificed two cups of milk to the spirit world, the 
effect is roughly the same. As I've stated before, I would like to have this 
as well, but it's non-trivial to implement with the current way sorting and 
threading work, otherwise I would already have done it. I'm hoping to get 
this improved for KDE 4, though. So you'll have to be patient, or if this 
feature is really mission critical to you, entrust your mail to one of the 
several other fine Free mail clients out there which do sort threads this 
way. :)
Comment 12 Rudi Effe 2005-07-15 09:18:24 UTC
Thank you, Till, for clarifying (and for your devotion). Could you, please be kind enough and point us to the very source code? What path in what CVS? Which c-File and what function/line? Maybe 20 eyes can see more than 2 ;)
Comment 13 Till Adam 2005-07-15 12:58:58 UTC
On Friday 15 July 2005 09:18, Rudi Effe wrote:

> ------- Additional Comments From rudi.effe gmx de  2005-07-15 09:18 -------
> Thank you, Till, for clarifying (and for your devotion). Could you, please
> be kind enough and point us to the very source code? What path in what CVS?
> Which c-File and what function/line? Maybe 20 eyes can see more than 2 ;)


There is a lengthy explanation of how sorting and threading works in the 
apidox at:

Be aware that the headers list will be completely rewritten for KMail 2.0, 
which means KDE 4.
Comment 14 Ivor Hewitt 2005-08-18 21:43:05 UTC
*** Bug 111018 has been marked as a duplicate of this bug. ***
Comment 15 Ivor Hewitt 2005-08-18 21:43:35 UTC
*** Bug 110743 has been marked as a duplicate of this bug. ***
Comment 16 Marek Wawrzyczny 2005-09-17 06:11:25 UTC
Ok, I've read through the sorting doc (forgive me, I've only read the bit about threading :) ). I can see where the complexity is but maybe there is a workaround. It would involve changing the threading a little and I don't know what other coding consquences this would bring (I am very new to C++ so scouring through the KMail code seem way to scary for me at this point).

What if during the threading stage you were to create new "fake" messages. These would be pseudoparents, and would assume certain thread properties. Say that you are sorting on the date, give the pseudoparent the date of the newest massage. The pseudoparent could also contain other data, like threading stats.
Comment 17 Ismail Onur Filiz 2006-03-23 07:50:41 UTC
*** Bug 124113 has been marked as a duplicate of this bug. ***
Comment 18 yuvalkashtan 2007-04-12 10:36:04 UTC
Is there any known solution / workaround, anything?
Comment 19 David Lee 2007-10-01 21:35:44 UTC
I also vote for this behavior, but I understand that the developers are very heavily involved with KDE4.
Is there any confirmation as to whether Kmail 2 (KDE4's kmail) will support this threading behavior?
Comment 20 Thomas McGuire 2008-02-16 23:13:36 UTC
*** Bug 157942 has been marked as a duplicate of this bug. ***
Comment 21 Danas 2008-07-16 18:04:17 UTC
Its very wanted feature, I vote for it..
Comment 22 Danas 2008-07-16 18:11:32 UTC
By the way is it looks that it is bug, but not wish. In other email clients that support treads messages are sorted according newest one.
Comment 23 Jeff Trull 2008-07-31 20:05:05 UTC
This is key for me.  I keep getting beaten up by people who say "didn't you get my mail?"  In fact I just missed an email from a potential customer.  Fortunately they were persistent and emailed me again a week later with a different subject line, so I saw it.  Their old mail is present, but buried deep in my inbox, in a thread from weeks before.

Threading is key for me to understand the state of my inbox, and what's going on, but they should be sorted by the date of the most recent message to be useful.  I love KMail and this will make it truly complete for me.  Thanks.
Comment 24 Max 2008-08-08 14:42:11 UTC
i vote for it
Comment 25 Arne Babenhauserheide 2008-10-12 17:37:00 UTC
Is there any schedule for kmail 2.0? 
Comment 26 Thomas McGuire 2008-11-07 20:39:31 UTC
SVN commit 881321 by tmcguire:

Merge the KMail summer of code branch back to trunk.

This brings a reworked folder tree and and a new message list, which is much more powerful than the old one.
New features include grouping, multiline items and the ability to customize just about everything of the look of the message list.
Also, we have a tabbed interface for opening more than one folder at once now.
An important aspect of the new message list is that drawing speed is now fast again (there was a regression in Q3ListView that
made huge folders a real pain to navigate, reading commit folders was not a nice thing to do).
There are probably more things which I forgot to list here.

Also, this is big step forward in getting rid of Qt3Support in KMail, now just some tiny bits are left.

Many thanks to SoC student Szymon Stefanek for his awesome work on his project! I can't stress enough how great this
achivment is. He even added very good API documentation to his classes :)

This requires the lastest version of qt-copy, otherwise you'll get mysterious crashes in Qt painting code from time to time.
We hope that this patch will be added to the next Qt 4.4.x version.

And finally, this merge also brings many regressions, which is not unnatural for such a big change.
In the remaining time before the KDE 4.2 release, we'll have to work on those to get it polished and regression-free.
Help here is always needed, and is a good opportunity to start working on KMail, since many regressions are low hanging fruit.

It also means the message list and the folder tree need a bit of testing.
If you find bugs, report them under the "new message list" and "new folder tree" component of the bug tracker, thanks.

I also plan to setup a wiki page with known regressions.

CCMAIL: kde-pim@kde.org
CCBUG: 117808
BUG: 163469
FEATURE: 18170
FEATURE: 32400
FEATURE: 42107
FEATURE: 45526
FEATURE: 81272
FEATURE: 90142
FEATURE: 107450
(and probably many others)

 M  +34 -5     kmail/CMakeLists.txt  
 M  +2 -2      kmail/accountdialog.cpp  
 M  +1 -6      kmail/actionscheduler.cpp  
 M  +0 -3      kmail/actionscheduler.h  
 M  +4 -4      kmail/antispamwizard.cpp  
 M  +4 -4      kmail/antispamwizard.h  
 A             kmail/commands (directory)  
 A             kmail/commands/exporttohtml.cpp   [License: GPL (v2+)]
 A             kmail/commands/exporttohtml.h   [License: GPL (v2+)]
 M  +25 -50    kmail/configuredialog.cpp  
 M  +2 -7      kmail/configuredialog_p.h  
 M  +1 -1      kmail/expirejob.cpp  
 M  +2 -2      kmail/expirypropertiesdialog.cpp  
 M  +2 -2      kmail/expirypropertiesdialog.h  
 M  +379 -401  kmail/favoritefolderview.cpp  
 M  +110 -73   kmail/favoritefolderview.h  
 M  +0 -1      kmail/folderadaptor.cpp  
 M  +2 -2      kmail/folderrequester.cpp  
 M  +4 -3      kmail/folderrequester.h  
 M  +3 -4      kmail/folderselectiondialog.cpp  
 M  +3 -3      kmail/folderselectiondialog.h  
 M  +55 -31    kmail/folderselectiontreewidget.cpp  
 M  +13 -13    kmail/folderselectiontreewidget.h  
 M  +8 -8      kmail/folderstorage.cpp  
 M  +5 -1      kmail/folderstorage.h  
 D             kmail/foldertreebase.cpp  
 D             kmail/foldertreebase.h  
 A             kmail/folderview.cpp   [License: GPL (v2+)]
 A             kmail/folderview.h   [License: GPL (v2+)]
 D             kmail/folderviewtooltip.h  
 D             kmail/headeritem.cpp  
 D             kmail/headeritem.h  
 D             kmail/headerlistquicksearch.cpp  
 D             kmail/headerlistquicksearch.h  
 M  +4 -3      kmail/identitydialog.cpp  
 M  +3 -1      kmail/kmacctcachedimap.cpp  
 M  +0 -6      kmail/kmacctcachedimap.h  
 M  +0 -1      kmail/kmacctimap.cpp  
 M  +0 -5      kmail/kmail.kcfg  
 M  +12 -11    kmail/kmail_part.cpp  
 M  +7 -3      kmail/kmail_part.h  
 M  +68 -42    kmail/kmailicalifaceimpl.cpp  
 M  +5 -5      kmail/kmailicalifaceimpl.h  
 M  +8 -15     kmail/kmcommands.cpp  
 M  +1 -4      kmail/kmcommands.h  
 M  +4 -2      kmail/kmfilteraction.cpp  
 M  +28 -2     kmail/kmfolder.cpp  
 M  +27 -0     kmail/kmfolder.h  
 M  +4 -3      kmail/kmfoldercachedimap.cpp  
 M  +8 -6      kmail/kmfolderdialog.cpp  
 M  +4 -5      kmail/kmfolderdialog.h  
 M  +2 -3      kmail/kmfolderimap.cpp  
 M  +1 -1      kmail/kmfoldermgr.cpp  
 M  +12 -10    kmail/kmfoldersearch.cpp  
 D             kmail/kmfoldertree.cpp  
 D             kmail/kmfoldertree.h  
 D             kmail/kmheaders.cpp  
 D             kmail/kmheaders.h  
 M  +4 -6      kmail/kmkernel.cpp  
 M  +1497 -698 kmail/kmmainwidget.cpp  
 M  +195 -61   kmail/kmmainwidget.h  
 M  +68 -2     kmail/kmmsgbase.cpp  
 M  +7 -8      kmail/kmreadermainwin.cpp  
 M  +1 -2      kmail/kmreadermainwin.h  
 M  +5 -7      kmail/kmsystemtray.cpp  
 M  +18 -17    kmail/mailinglistpropertiesdialog.cpp  
 A             kmail/mainfolderview.cpp   [License: GPL (v2+)]
 A             kmail/mainfolderview.h   [License: GPL (v2+)]
 M  +14 -0     kmail/messagecopyhelper.cpp  
 M  +11 -0     kmail/messagecopyhelper.h  
 A             kmail/messagelistview (directory)  
 A             kmail/messagelistview/core (directory)  
 A             kmail/messagelistview/core/aggregation.cpp   [License: GPL (v2+)]
 A             kmail/messagelistview/core/aggregation.h   [License: GPL (v2+)]
 A             kmail/messagelistview/core/aggregationeditor.cpp   [License: GPL (v2+)]
 A             kmail/messagelistview/core/aggregationeditor.h   [License: GPL (v2+)]
 A             kmail/messagelistview/core/comboboxutils.cpp   [License: GPL (v2+)]
 A             kmail/messagelistview/core/comboboxutils.h   [License: GPL (v2+)]
 A             kmail/messagelistview/core/configureaggregationsdialog.cpp   [License: GPL (v2+)]
 A             kmail/messagelistview/core/configureaggregationsdialog.h   [License: GPL (v2+)]
 A             kmail/messagelistview/core/configureskinsdialog.cpp   [License: GPL (v2+)]
 A             kmail/messagelistview/core/configureskinsdialog.h   [License: GPL (v2+)]
 A             kmail/messagelistview/core/delegate.cpp   [License: GPL (v2+)]
 A             kmail/messagelistview/core/delegate.h   [License: GPL (v2+)]
 A             kmail/messagelistview/core/enums.h   [License: GPL (v2+)]
 A             kmail/messagelistview/core/filter.cpp   [License: GPL (v2+)]
 A             kmail/messagelistview/core/filter.h   [License: GPL (v2+)]
 A             kmail/messagelistview/core/groupheaderitem.cpp   [License: GPL (v2+)]
 A             kmail/messagelistview/core/groupheaderitem.h   [License: GPL (v2+)]
 A             kmail/messagelistview/core/item.cpp   [License: GPL (v2+)]
 A             kmail/messagelistview/core/item.h   [License: GPL (v2+)]
 A             kmail/messagelistview/core/manager.cpp   [License: GPL (v2+)]
 A             kmail/messagelistview/core/manager.h   [License: GPL (v2+)]
 A             kmail/messagelistview/core/messageitem.cpp   [License: GPL (v2+)]
 A             kmail/messagelistview/core/messageitem.h   [License: GPL (v2+)]
 A             kmail/messagelistview/core/messageitemsetmanager.cpp   [License: GPL (v2+)]
 A             kmail/messagelistview/core/messageitemsetmanager.h   [License: GPL (v2+)]
 A             kmail/messagelistview/core/model.cpp   [License: GPL (v2+)]
 A             kmail/messagelistview/core/model.h   [License: GPL (v2+)]
 A             kmail/messagelistview/core/modelinvariantindex.cpp   [License: GPL (v2+)]
 A             kmail/messagelistview/core/modelinvariantindex.h   [License: GPL (v2+)]
 A             kmail/messagelistview/core/modelinvariantrowmapper.cpp   [License: GPL (v2+)]
 A             kmail/messagelistview/core/modelinvariantrowmapper.h   [License: GPL (v2+)]
 A             kmail/messagelistview/core/optionset.cpp   [License: GPL (v2+)]
 A             kmail/messagelistview/core/optionset.h   [License: GPL (v2+)]
 A             kmail/messagelistview/core/optionseteditor.cpp   [License: GPL (v2+)]
 A             kmail/messagelistview/core/optionseteditor.h   [License: GPL (v2+)]
 A             kmail/messagelistview/core/skin.cpp   [License: GPL (v2+)]
 A             kmail/messagelistview/core/skin.h   [License: GPL (v2+)]
 A             kmail/messagelistview/core/skindelegate.cpp   [License: GPL (v2+)]
 A             kmail/messagelistview/core/skindelegate.h   [License: GPL (v2+)]
 A             kmail/messagelistview/core/skineditor.cpp   [License: GPL (v2+)]
 A             kmail/messagelistview/core/skineditor.h   [License: GPL (v2+)]
 A             kmail/messagelistview/core/storagemodelbase.cpp   [License: GPL (v2+)]
 A             kmail/messagelistview/core/storagemodelbase.h   [License: GPL (v2+)]
 A             kmail/messagelistview/core/view.cpp   [License: GPL (v2+)]
 A             kmail/messagelistview/core/view.h   [License: GPL (v2+)]
 A             kmail/messagelistview/core/widgetbase.cpp   [License: GPL (v2+)]
 A             kmail/messagelistview/core/widgetbase.h   [License: GPL (v2+)]
 A             kmail/messagelistview/messageset.cpp   [License: GPL (v2+)]
 A             kmail/messagelistview/messageset.h   [License: GPL (v2+)]
 A             kmail/messagelistview/pane.cpp   [License: GPL (v2+)]
 A             kmail/messagelistview/pane.h   [License: GPL (v2+)]
 A             kmail/messagelistview/storagemodel.cpp   [License: GPL (v2+)]
 A             kmail/messagelistview/storagemodel.h   [License: GPL (v2+)]
 A             kmail/messagelistview/widget.cpp   [License: GPL (v2+)]
 A             kmail/messagelistview/widget.h   [License: GPL (v2+)]
 A             kmail/messagetree.cpp   [License: GPL (v2+)]
 A             kmail/messagetree.h   [License: GPL (v2+)]
 M  +2 -2      kmail/renamejob.cpp  
 M  +25 -24    kmail/searchwindow.cpp  
 M  +2 -3      kmail/searchwindow.h  
 M  +7 -0      kmail/util.cpp  
 M  +7 -0      kmail/util.h  
 M  +517 -7    libkdepim/foldertreewidget.cpp  
 M  +303 -36   libkdepim/foldertreewidget.h  
 M  +90 -30    libkdepim/treewidget.cpp  
 M  +39 -16    libkdepim/treewidget.h  

WebSVN link: http://websvn.kde.org/?view=rev&revision=881321
Comment 27 Arne Babenhauserheide 2008-12-29 14:46:09 UTC
Wow... Many thanks! 
Comment 28 Stéphane Ascoët 2011-08-30 13:48:16 UTC
Why was this bug closed? It's still present, even after the code rewriting...
Comment 29 Arne Babenhauserheide 2011-08-30 14:22:22 UTC
Stéphane: You can enable threading by newest in thread, now.
Comment 30 Stéphane Ascoët 2011-08-31 07:19:02 UTC
(In reply to comment #29)
> Stéphane: You can enable threading by newest in thread, now.

How? I've choosed "by date/time of the sub-tree" and nothing changed...