Bug 199090 - deleting files blocks dolphin
Summary: deleting files blocks dolphin
Status: RESOLVED FIXED
Alias: None
Product: dolphin
Classification: Applications
Component: general (show other bugs)
Version: 16.12.2
Platform: unspecified Linux
: NOR normal
Target Milestone: ---
Assignee: Peter Penz
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-07-06 01:00 UTC by Mathias Panzenböck
Modified: 2009-09-06 10:48 UTC (History)
1 user (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 Mathias Panzenböck 2009-07-06 01:00:48 UTC
Version:           1.2.1 (using 4.2.4 (KDE 4.2.4), 4.2.4-2.fc11 Fedora)
Compiler:          gcc
OS:                Linux (x86_64) release 2.6.29.5-191.fc11.x86_64

When deleting a lot of files dolphin blocks (interface reacts to no mouse clicks) until all files are removed. I think deleting files should be handled in another process/thread (even very old versions of crappy windows explore does this).
Comment 1 Peter Penz 2009-07-06 01:12:34 UTC
Thanks for the report. The delete operation is done by another process, so the blocking has a different root cause:
a) Did you delete the files by "Move to Trash" or by "Delete"?
b) Did you enable the Information Panel of Dolphin?
c) Did you select one folder and deleted it, or did you open the folder, selected all files and deleted them?
d) Do you have enabled Nepomuk/Strigi on your system?
Comment 2 Mathias Panzenböck 2009-07-06 01:54:15 UTC
a) Delete
b) The information side panel is open.
c) A whole folder (dolphin is in detailed tree view, if this matters).
d) Usually Nepomuk is enabled. However, I accidentally closed nepomuk (browsed dbus services and double clicked wrong method: nepomuks quit method). Strigi is not running, I think.
Comment 3 Peter Penz 2009-07-06 08:09:36 UTC
Thanks for the update! This seems to be related to an issue in the Information Panel...
Comment 4 S. Burmeister 2009-07-11 18:20:19 UTC
I see this using KDE 4.3 RC2, even if only deleting a small single file. Nepomuk's cpu usage goes up right after the user acknowledged the delete.

It does not happen, if nepomuk is disabled or the information panel hidden.
Comment 5 Peter Penz 2009-07-11 19:48:08 UTC
SVN commit 995015 by ppenz:

Fixed performance issues related to selections and deleting of files:

- Don't connect to KDirLister::itemDeleted(const KFileItem&), but KDirLister::itemsDeleted(const KFileItemList&). Otherwise Dolphin is informed about each single file deletion instead of getting the deleted items as a list. Thanks to David Faure for the hint!

- DolphinViewContainer::updateStatusBar() can be expensive when a lot of files are selected, as the file size must get retrieved. Assure that fast calls for updateStatusBar() don't trigger a synchronous update, do the update after 300 ms where no further update has been triggered.

- Dolphin provides a list of file items when emitting the selectionChanged() signal. Collecting the file items is a quite expensive operation, so use the same approach as when updating the statusbar: only emit the selection changed signal when no change has been done within 300 ms. This improves the performance when doing huge selections a lot.

- Make updateStatusBar() a private method, the main window should not need to take care about updating the statusbar (this is done internally now by DolphinViewContainer).

BUG: 199090
BUG: 195787
CCBUG: 199352
CCBUG: 188218

 M  +0 -2      dolphinmainwindow.cpp  
 M  +17 -2     dolphinview.cpp  
 M  +15 -0     dolphinview.h  
 M  +44 -28    dolphinviewcontainer.cpp  
 M  +16 -6     dolphinviewcontainer.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=995015
Comment 6 Peter Penz 2009-07-11 19:50:20 UTC
SVN commit 995018 by ppenz:

Backport of SVN commit 995015: Fixed performance issues related to selections and deleting of files:

- Don't connect to KDirLister::itemDeleted(const KFileItem&), but
KDirLister::itemsDeleted(const KFileItemList&). Otherwise Dolphin is informed
about each single file deletion instead of getting the deleted items as a list.
Thanks to David Faure for the hint!

- DolphinViewContainer::updateStatusBar() can be expensive when a lot of files
are selected, as the file size must get retrieved. Assure that fast calls for
updateStatusBar() don't trigger a synchronous update, do the update after 300
ms where no further update has been triggered.

- Dolphin provides a list of file items when emitting the selectionChanged()
signal. Collecting the file items is a quite expensive operation, so use the
same approach as when updating the statusbar: only emit the selection changed
signal when no change has been done within 300 ms. This improves the
performance when doing huge selections a lot.

- Make updateStatusBar() a private method, the main window should not need to
take care about updating the statusbar (this is done internally now by
DolphinViewContainer).

CCBUG: 199090
CCBUG: 195787
CCBUG: 199352
CCBUG: 188218

 M  +0 -2      dolphinmainwindow.cpp  
 M  +17 -2     dolphinview.cpp  
 M  +15 -0     dolphinview.h  
 M  +44 -28    dolphinviewcontainer.cpp  
 M  +16 -6     dolphinviewcontainer.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=995018
Comment 7 S. Burmeister 2009-09-06 10:48:44 UTC
Unfortunately this is still the case in KDE 4.3.1