Summary: | dolphin hangs when I open /usr/lib/ and I click on 'details view mode' | ||
---|---|---|---|
Product: | [Frameworks and Libraries] kdelibs | Reporter: | Hussam Al-Tayeb <ht990332> |
Component: | general | Assignee: | Peter Penz <peter.penz19> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | adawit, cfeck, faure, fresh.road1272, ht990332, mat69, scarpino |
Priority: | NOR | Keywords: | reproducible |
Version: | 4.7 | ||
Target Milestone: | --- | ||
Platform: | Arch Linux | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 4.7.3 |
Description
Hussam Al-Tayeb
2011-07-31 01:16:06 UTC
I forgot to mention that this wasn't a problem under kde 4.6.5 Thanks for the report, I could reproduce this regression. Seems to be related to the changed overlay code in KFileItem. Adding David Faure to CC... Probably caused by commit 034324e0. More probably caused by commit df13ea27. (In reply to comment #4) > More probably caused by commit df13ea27. Nope. If you back that commit out, you still see the problem. I tried it out as well and at first Dolphin indeed seemed to hang; became unresponsive. However, after waiting for about 30 seconds, it did show the directory /usr/lib in detail mode. (KDE4.7.0, Opensuse 11.4 64b) P.S. Switching back to icon mode is instantaneous, after which switching to detailed mode again causes the appr. 30 second hang. I found a way to avoid the crash. Instead of clicking on "Details view mode", click on "Columns view mode" and then click on "Details view mode". Dolphin will no hang. Any progress on this one? :) OK I could reproduce the bug with dolphin-4.7 and /usr/lib64 (opensuse). (in dolphin-master this bug doesn't seem to happen, but on the other hand when enabling previews in details+tree mode, the icons become right-aligned, looks quite weird) It looks like this comes from QIconModeViewBase::doBatchedItemLayout being called many times (from the preview generator), and calculating the DecorationRole every time (due to "non uniform item sizes", didn't we use to set that?). Over all this looks much more like a bug for Peter to look into :-) OK DecorationRole now calls overlays(), but... it shouldn't be called so many times in the first place, and overlays doesn't seem to take that much time itself... More precise data from callgrind/kcachegrind: * 60% of the time is spent in KFileItemDelegate::Private::displaySizeHint() calling layoutText(), calling QTextLine. So it's all in text layouting. These methods are called 152000 times (!). Above in the stack, QListViewPrivate::doItemsLayout is called 57 times, from KFilePreviewGenerator::Private::orderItems which is called 2776 times. The items layout isn't dirty every time, this is why only 57 times out of the 2776, it goes and re-does the items layout. The real question is what makes the items layout dirty, and this I can't see in callgrind. Unless it's QAbstractItemView::scheduledDelayedItemsLayout, called by DolphinIconsView::dataChanged. Peter, does any of this ring any bells, from the time you were looking into all this? Thanks David for the good analyses. Strange: Uniform row-sizes should be set, I'll check during the next days whether it might be a result of changes in DolphinDetailsView...
Regarding:
> (in dolphin-master this bug doesn't seem to happen, but on
> the other hand when enabling previews in details+tree mode,
> the icons become right-aligned, looks quite weird)
Will fix that during the next days (looks really weird), I just did some changes during the last week in this area which resulted into this issue.
Git commit dce0f346c7f6aa741d42372a774c357dfc550b15 by Peter Penz. Committed on 04/10/2011 at 14:00. Pushed by ppenz into branch 'KDE/4.7'. Fix performance regression in KFilePreviewGenerator When switching from the details-view to the icons-view in Dolphin/ Konqueror a freeze might occur for several seconds. The root cause for this is commit 41854146040f8638fffb13b20a75f6ecda2837a6. Using the DateChangeObtainer only worked for the icons-view but in case of the details-view still inside Qt a layout change got triggered. As we know that in our case changing the icon won't result in a change of the layout the signals of the directory-model will get blocked temporary. By using the new view-engine such ugly workarounds won't be needed anymore but KFilePreviewGenerator is still used by other applications. Thanks to David Faure for investigating into the root-cause! BUG: 278899 FIXED-IN: 4.7.3 M +5 -1 kfile/kfilepreviewgenerator.cpp http://commits.kde.org/kdelibs/dce0f346c7f6aa741d42372a774c357dfc550b15 Thank you very much for fixing this bug :) Git commit 116cb70f05ef1a6622b707aa9822943073bb7a24 by David Faure, on behalf of Peter Penz. Committed on 04/10/2011 at 14:00. Pushed by dfaure into branch 'frameworks'. Fix performance regression in KFilePreviewGenerator When switching from the details-view to the icons-view in Dolphin/ Konqueror a freeze might occur for several seconds. The root cause for this is commit 41854146040f8638fffb13b20a75f6ecda2837a6. Using the DateChangeObtainer only worked for the icons-view but in case of the details-view still inside Qt a layout change got triggered. As we know that in our case changing the icon won't result in a change of the layout the signals of the directory-model will get blocked temporary. By using the new view-engine such ugly workarounds won't be needed anymore but KFilePreviewGenerator is still used by other applications. Thanks to David Faure for investigating into the root-cause! BUG: 278899 FIXED-IN: 4.7.3 M +5 -1 kfile/kfilepreviewgenerator.cpp http://commits.kde.org/kdelibs/116cb70f05ef1a6622b707aa9822943073bb7a24 Git commit 2546deeb1ec4373f35d70ea3cf7b6a31e0196acf by Peter Penz. Committed on 05/10/2011 at 17:12. Pushed by ppenz into branch 'master'. Don't apply an empty item-size to the layout This fixes strange layout-issues when turning on/off previews in the details-view. CCBUG: 278899 M +6 -6 dolphin/src/kitemviews/kitemlistview.cpp http://commits.kde.org/kde-baseapps/2546deeb1ec4373f35d70ea3cf7b6a31e0196acf |