Peter Penz [Sat, 26 Jul 2008 13:46:58 +0000 (13:46 +0000)]
Provide a 'int selectedItemsCount() const' interface for performance reasons, so that code which just needs to know whether items have been selected does not need to invoke selectedItems().count(), which is quite expensive.
The space info widget now inherits KCapacityBar. Two things to check:
- Align vertically the text correctly
- Minimum width of the widget (not forcing it to 200)
Peter Penz [Mon, 30 Jun 2008 17:12:03 +0000 (17:12 +0000)]
* use existing KFileItem also for the selection instead of creating a new KFileItem from the URL
* don't invoke fileItem() if a multiple selection is provided
Peter Penz [Mon, 30 Jun 2008 16:37:08 +0000 (16:37 +0000)]
Move the "Find File..." action from DolphinMainWindow to DolphinViewActionHandler, so that is used in DolphinPart and hence also in Konqueror. Thanks to Bram for the patch!
Peter Penz [Sun, 29 Jun 2008 21:40:07 +0000 (21:40 +0000)]
The check whether there is a cut-selection when receiving a preview consumes 12 % (!) of the runtime in addToPreviewQueue(). The check is now done only once before starting the preview generation and when the clipboard data has been changed.
Peter Penz [Sun, 29 Jun 2008 21:04:43 +0000 (21:04 +0000)]
Move the block for resizing the preview, applying an item effect + border to the slot where the preview has been received. This reduces the blocking of the GUI for the following usecase:
- folder with 1000 items
- ~30 items are visible
Old approach:
- Show the 30 items as soon as possible.
- Receive preview and add it to the queue. This is done asynchronously 970 times (no UI blocking).
- Iterate through 970 items, resize, apply item effect + border and apply the preview to the model (-> blocking of UI thread for more than 3 seconds).
New approach:
- Show the 30 items as soon as possible.
- Receive preview, resize it, apply item effect + border and add it to the queue. This is done asynchronously 970 times (no UI blocking).
- Iterate through 970 items and apply the preview to the model (-> UI thread is blocked only very short).
Peter Penz [Sun, 29 Jun 2008 17:08:49 +0000 (17:08 +0000)]
Internal cleanup: Make it easier getting the correct file item that should be used for showing the meta information (it depends on the current selection and whether the file item is already available).
Peter Penz [Sun, 29 Jun 2008 16:42:59 +0000 (16:42 +0000)]
Don't grey out an invalid preview immediately, but with a small timeout. This prevents a flickering if the new preview can be generated within a small timeframe.
Peter Penz [Sun, 29 Jun 2008 16:24:09 +0000 (16:24 +0000)]
SVN_SILENT: Renamed m_timer to m_infoTimer and slotTimeout() to slotInfoTimeout(), as preperation for a new timer that prevents a flickering of outdated previews.
Peter Penz [Sun, 29 Jun 2008 13:54:52 +0000 (13:54 +0000)]
Don't disable the "Properties" action when no file is selected, just use the current folder as source. TODO: the code in DolphinPart::slotProperties() and DolphinMainWindow::properties() is quite similar -> move to DolphinViewActionHandler?
Urs Wolfer [Sun, 29 Jun 2008 10:59:24 +0000 (10:59 +0000)]
Improve mouse middle click path paste behavior: first check selection clipboard, after 'real' clipboard. Before setting new URL, check if it is a path. This prevents a crash. Behavior is now similar to Konqueror KDE 3.
Reviewed by Peter Penz.
Peter Penz [Sat, 28 Jun 2008 18:42:51 +0000 (18:42 +0000)]
Don't check for "kompare" each time 2 items are selected (thanks to Andreas Scherf). As Albert Astals Cid pointed out it might be nicer to use a menu plugin instead of hardcoding "kompare" (> KDE 4.1).
Peter Penz [Fri, 27 Jun 2008 19:36:44 +0000 (19:36 +0000)]
Avoid blocking of the GUI when creating previews for invisible items. The blocking part is a relayout, that has been done each time a group of previews have been received.
Now only for the visible items a relayout is done as soon as possible, for the previews of invisible items this is postponed until all previews have been generated.
Sebastian Trueg [Fri, 27 Jun 2008 18:34:52 +0000 (18:34 +0000)]
It is hard to understand which is the actual selected item here: m_selection, m_fileItem, or m_shownUrl. Anyway, now the descision for the metadata uses the exact same algo as for the name and preview and it works.
Peter Penz [Thu, 26 Jun 2008 22:34:40 +0000 (22:34 +0000)]
Assure that the file capabilities are respected when opening the context menu for the Folder Panel (= treeview). Disable actions that cannot be executed.
Peter Penz [Tue, 24 Jun 2008 23:01:21 +0000 (23:01 +0000)]
Performance improvement when showing previews inside directories having several 1000 items: temporary block the expensive layouting inside QListView until a block of previews has been applied.
Peter Penz [Thu, 19 Jun 2008 22:43:10 +0000 (22:43 +0000)]
Assure that the keyboard focus stays inside the view when replacing the view implementation, otherwise when having a split view the other view gets the focus and will activate itself.
Peter Penz [Wed, 18 Jun 2008 19:34:03 +0000 (19:34 +0000)]
Assure that when requesting the context menu for the column-view, that the correct items are used.
TODO for 4.2: get rid of those 'if (isColumnViewActive())' special cases and provide a generic model which also works with the way the column view is implemented
Peter Penz [Fri, 13 Jun 2008 21:22:13 +0000 (21:22 +0000)]
Runtime optimization for preview sorting: Use 2 different algorithms dependent on the relation between model-rows and preview items. One algorithm is faster when e. g. inserting 10 items into a directory of 2000 items, while the other algorithm is faster when initially loading the directory.
Peter Penz [Fri, 13 Jun 2008 06:10:53 +0000 (06:10 +0000)]
Finally fixed problem that "Apply to all folders" did not work as expected. TODO: the mirrored directory still should be cleaned up, but this has to be done without deleting the view properties fallback.
Peter Penz [Wed, 11 Jun 2008 18:47:32 +0000 (18:47 +0000)]
Simplify code:
* Use KFileItems for all lists instead a mixture of KFileItemList and QList<KUrl>.
* Use a common helper method for generatePreviews() and resumePreviews() to order the visible items at the beginning of the list.
Peter Penz [Wed, 11 Jun 2008 17:50:59 +0000 (17:50 +0000)]
Improve the performance of the code part which checks which items are visible. Although the code is less readable now, it requires only 0,5 seconds for 2500 items instead of 2 seconds.
David Faure [Tue, 10 Jun 2008 09:15:19 +0000 (09:15 +0000)]
Argh my last patch broke plugins. So revert 818988 and do it properly, for real this time :)
KPluginFactory can take the catalog name as second argument, this is the best fix.
CCMAIL: Chusslove Illich <caslav.ilic@gmx.net>
David Faure [Mon, 9 Jun 2008 11:59:15 +0000 (11:59 +0000)]
Another fix for redirections: "Create New" was missing from the konqpopupmenu when doing RMB on ftp://user@host, because after the redirection, part->url() was still the old url (so it didn't look like a popup opened for the current directory, in the konqpopupemenu code)