Show all items in the directory when the name filter is cleared
The problem was the following: While a QMutableSetIterator iterates the
items in the QSet m_filteredItems, all items that match the new filter
are removed from the set. However, to ensure that the iterator still
reaches all items in the set, one must not use QSet::remove(), but
rather the iterator's remove() method (see QMutableSetIterator docs).
Enable the "Empty Trash" action if items are deleted by non-KDE apps
To achieve this, the Places Panel context menu now checks the icon of
the "Trash" item (which is updated by a dir lister that watches the
state of the trash), rather then reading a config file which is only
used by KDE applications.
Peter Penz [Sat, 19 May 2012 20:27:53 +0000 (22:27 +0200)]
Show video previews according to file content instead of the mimetype-string
Show a video widget depending on the video content instead of the mimetype
string: There are container formats which can be either audios or videos.
Besides, the rmvb video files have a mimetype of
"application/vnd.rn-realmedia", and these files can be recognized as videos
correctly now.
Peter Penz [Fri, 18 May 2012 21:21:49 +0000 (23:21 +0200)]
Enable basic drag and drop support for the Places Panel
The dropping has not been implemented yet, however in the context of
this step the creating of the drag-pixmap is now forwarded to
the item-widgets. This allows creating some optimized dragging-pixmaps
e.g. for the details-view, where only the name and icon should
be provided as drag-pixmap.
Peter Penz [Fri, 18 May 2012 17:39:03 +0000 (19:39 +0200)]
Don't create a .directory-file for each directory
This regression has been introduced on master and has not been
released yet: Due to the changed properties-format an update has
been done which resulted in writing a .directory file into each
newly entered directory.
The patch updates the view-properties and version only in the
constructor so that it is assured that reading properties never
accidently will change the internal version.
A unit-test has been added to catch regressions like this in future.
Peter Penz [Thu, 17 May 2012 09:14:04 +0000 (11:14 +0200)]
Fix crash related to group-headers
If multiple ranges are inserted or removed, the updating of
the group-headers may only be done after _all_ ranges have been
inserted/removed and not after each individual range. Otherwise
the layouter-cache is not in a consistent state yet.
Peter Penz [Wed, 16 May 2012 21:11:56 +0000 (23:11 +0200)]
Provide default view properties for system-places
For the "Recently Accessed"-places and "Search For"-places like
documents, images, audio-files and videos proper default properties
are created now (e.g. previews and images-sizes are shown when
searching for "images" etc).
Peter Penz [Fri, 11 May 2012 14:23:49 +0000 (16:23 +0200)]
Allow moving items to trash also for non-local files
See bug 188032 for an ongoing discussion. In case if this behavior
is really not wanted by users (the feedback on bugs.kde.org will
show), the review-request
https://git.reviewboard.kde.org/r/104915/ should be merged too
(after adjusting some parts of the code).
Peter Penz [Thu, 10 May 2012 21:26:29 +0000 (23:26 +0200)]
Allow to remember view-properties for the search-mode
Per default Dolphin remembers the view-properties for each search-URL
individually. However when being in the search-mode, where the
search-URL is different each time by definition, it should also
be possible for the user to adjust the view-properties. The DolphinView
is not aware about any "search-mode", so an interface has been added
to provide a "context" for storing the view-properties. The context
will be adjusted by the DolphinViewContainer in case if the search-mode
is active.
Peter Penz [Wed, 9 May 2012 13:49:14 +0000 (15:49 +0200)]
Assure backward compatibility for the sort-role
Dolphin 2.1 uses "text" instead of "name" as default-role. Provide
backward compatibility with older .directory files and assure
that they get updated.
Follow the suggestion from Vishesh Handa and copy the ResourceWatcher
code from kde-runtime instead of creating a dependency. This will of
course get removed again as soon as Nepomuk's resource watcher will
get a public API.
Peter Penz [Sun, 6 May 2012 10:31:21 +0000 (12:31 +0200)]
Allow to remember view-properties for search-results
Until now it was only possible to adjust the view-properties for
searching in general. Now the view-properties can be adjusted
dependent on the query (e.g. images, documents, ...).
Peter Penz [Tue, 1 May 2012 21:11:06 +0000 (23:11 +0200)]
Places Panel: Allow hiding of items
Related changes:
- Animate changed items for the details-view in case it is not expandable
- Remove the hardcoded "isHidden"-code in KStandardItemListWidget and
allow derived widgets to define themselves what means "hidden" within
their context.
The current code needs a lot of bugfixing, but lets make this in smaller
steps during the next days...
Peter Penz [Mon, 30 Apr 2012 16:26:21 +0000 (18:26 +0200)]
Places Panel: Minor fixes/improvements
- Determine group of a new entry dependent from the protocol
- Allow panels to forward error-messages to the view-container
(also applied to Folders Panel)
Peter Penz [Sat, 28 Apr 2012 21:58:56 +0000 (23:58 +0200)]
Places Panel fixes
Implement adding, editing and removing of entries. Note that the
result currently is still not stored in bookmarks.xml (this needs
to wait until the hiding is implemented in the model).
Peter Penz [Fri, 27 Apr 2012 07:28:00 +0000 (09:28 +0200)]
Never pass null-items to version-control-plugins
Some plugins are not prepared for this and might crash. Although
the additional check in VersionControlObserver::actions() should not
be necessary because of the fix in DolphinView, it is left here
to catch potential other cases where a null-item might get passed
accidently.
Thanks to Ilya for initially patching the Box-plugin which gave
a hint whats going wrong.
When the current item is removed, make -1 the current index temporarily
This fixes two problems:
1. KItemListKeyboardSearchManger can cancel the current search when a
new folder is opened (note that this action removes the current item
from the view).
2. The view can underline the new current item (which is the item that
used to be below the removed item). Note that this did not work
before because the view did not receive a currentChanged() signal in
this case and therefore did not update the "current item" status of
the new current item.
When Esc is pressed, clear the selection and cancel the keyboard search
This patch restores the Dolphin 1.x behaviour that Esc clears the
selection (Dolphin 2.0 did not have an easy way to clear the selection
using the keyboard so far). Moreover, Esc now also cancels the current
keyboard search. This fixes the problem that the only way to cancel the
search is to wait until the timeout has expired.
Reduce the timeout in KItemListKeyboardSearchManager to 1 second
It turned out that the longer timeout, introduced recently in 02eab49b2de51c31fe46a0d9501327b579b3648e, not only made multi-letter
keyboard searches easier, but also had some unwanted side effects. I
hope that 1 second, which is between the previous value of 5 seconds and
the pre-KDE 4.8.2 value of 0.4 seconds, is a compromise which will fit
most users' needs.
We will try to improve the situation further in future releases by
providing visual feedback about the keyboard search, but such a change
would not be suitable for a bug-fix release.
(cherry picked from commit d8732a59d3b1f2d0bebf43f294df7e9f333abde4)
Peter Penz [Wed, 25 Apr 2012 00:16:35 +0000 (02:16 +0200)]
Fix search-UI issues in combination with the new places entries
The places-entries for searching revealed some serious issues in
combination with the search-panel. Move the filtering away from
QDockWidget and bring it back below the search-bar.
Peter Penz [Sat, 21 Apr 2012 19:28:16 +0000 (21:28 +0200)]
Prepare view-engine for non-KFileItem usecase
Up to now the view-engine only provided a model-implementation that
supports file-items. The view-engine always had been designed to be able
to work with any kind of model, so now a KStandardItemModel is available.
The plan is to convert the places panel to the new view-engine. It should
be no problem to fix this until the feature freeze - in the worst case
the places-panel code could be reverted while still keeping the
KStandardItemModel changes.
Peter Penz [Tue, 17 Apr 2012 20:19:18 +0000 (22:19 +0200)]
Ensure authentication data is cached properly
The attached patch sets the main window on the main directory
lister in DolphinView and KIO jobs in DolphinMainWindow to ensure
that login data for remote protocols such as sftp, ftp are cached
properly for the duration of the application. Otherwise, the end
user is going to end up being unnecessarily re-prompted to enter
password login information.
Peter Penz [Fri, 13 Apr 2012 22:22:08 +0000 (00:22 +0200)]
Allow to optionally limit the maximum number of text lines
Showing the whole filename unclipped seems to be a good default,
however for users with a lot of files that have extremely long names
this might get a problem especially in the icons-view.
- Allow to limit the maximum number of lines in the icons-view
- Allow to specify a maximum width in the compact-view
(No limit is required for the details-view, as the name is shortened
automatically to show other columns)
Peter Penz [Thu, 12 Apr 2012 21:57:51 +0000 (23:57 +0200)]
Use KMessageWidget for error- and information-messages
See http://agateau.com/2011/04/21/kde-ux-2011/ for more details.
This simplifies the statusbar in Dolphin a lot and allows to
do a proper eliding in case if status-messages are too long: In
this case a tooltip will show the whole status-message (thanks
to Wolfgang Mader for the initial patch!).
There is still missing some finetuning but the general approach
seems to work quite nice.