Bug 163469 - Big folders are drawn very slowly
Summary: Big folders are drawn very slowly
Status: RESOLVED FIXED
Alias: None
Product: kmail
Classification: Applications
Component: message list (show other bugs)
Version: 1.9.51
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: kdepim bugs
URL:
Keywords:
: 168162 169119 169564 169618 170402 170852 171852 172580 173226 (view as bug list)
Depends on:
Blocks:
 
Reported: 2008-06-07 17:44 UTC by Frederik Himpe
Modified: 2008-11-24 21:54 UTC (History)
10 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Frederik Himpe 2008-06-07 17:44:35 UTC
Version:           1.9.51 (using Devel)
Installed from:    Compiled sources
Compiler:          gcc 4.3 
OS:                Linux

When I try to browse the contents of some big IMAP folders (> 5000 unread messages), the scrolling happens extremely slowly. Using top, I see kontact is using about 50% of CPU time, while X is using the other 50%. For some reason, this does not happen in other IMAP folders in which have even more messages (but less unread messages). Deleting or moving messages is also extremely slow from the problematic folders.
Comment 1 Thomas McGuire 2008-06-07 18:41:48 UTC
This is a Qt bug (rejected), see http://trolltech.org/developer/task-tracker/index_html?method=entry&id=168568

Currently, there is a summer of code project to convert the message list to Qt4 classes, but that will not be complete until after 4.1.
Comment 2 Thomas McGuire 2008-08-06 18:33:43 UTC
*** Bug 168162 has been marked as a duplicate of this bug. ***
Comment 3 Thomas McGuire 2008-08-15 15:07:18 UTC
*** Bug 169119 has been marked as a duplicate of this bug. ***
Comment 4 Mikolaj Machowski 2008-08-15 19:14:27 UTC
Any more precise timeline on this bug? TIA.
Comment 5 Thomas McGuire 2008-08-16 17:07:13 UTC
> Any more precise timeline on this bug? TIA.


Hopefully 4.2, merging the stuff is next on my todo list.
Comment 6 Thomas McGuire 2008-08-22 15:33:33 UTC
*** Bug 169564 has been marked as a duplicate of this bug. ***
Comment 7 Thomas McGuire 2008-08-23 11:15:41 UTC
*** Bug 169618 has been marked as a duplicate of this bug. ***
Comment 8 Thomas McGuire 2008-09-11 22:06:49 UTC
*** Bug 170852 has been marked as a duplicate of this bug. ***
Comment 9 Tommi Tervo 2008-10-11 10:18:50 UTC
*** Bug 172580 has been marked as a duplicate of this bug. ***
Comment 10 Thomas McGuire 2008-11-07 20:39:40 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
GUI:
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 11 Thomas McGuire 2008-11-14 17:29:01 UTC
*** Bug 173226 has been marked as a duplicate of this bug. ***
Comment 12 Thomas McGuire 2008-11-18 17:07:28 UTC
*** Bug 171852 has been marked as a duplicate of this bug. ***
Comment 13 Thomas McGuire 2008-11-24 21:54:45 UTC
*** Bug 170402 has been marked as a duplicate of this bug. ***