Do not crash when finishing inline renaming in unusual ways
The crash was caused by a null pointer dereference when, e.g.,
minimizing Dolphin. The root cause was that
KStandardItemListWidget::closeRoleEditor() was called twice: once when
the role editor loses focus, and once again when the window is resized.
After m_roleEditor was set to 0, the second call dereferenced this null
pointer. I think the best solution is to disconnect from the role
editor's signals when the editor is not needed any more by the
KStandardItemListWidget.
Fix regression that caused "(I18N_EMPTY_MESSAGE)" sub menus in menus
For top-level roles like "Name" and "Size", the group translation is 0.
In that case, the "group" member of the corresponding RoleInfo struct
must be an empty string. This is expected by the code which generates
Dolphin's menus, which group the top-level roles into a sub menu with
the name "(I18N_EMPTY_MESSAGE)" otherwise. This is a recent regression
caused by 199fabbaa8d8a12fb49e4c9922c38ec8b033923c.
Thanks to Christoph Feck for investigating this issue!
Fix wrong text color in Places Group Header. Use QPalette::Window for base color and QPalette::WindowText for text color. Also changed m_roleColor color mixing to 60% (from 70%) -> Better visible color difference when base color is darker than text color. Also changed styleOption().palette.brush(group, role).color() to styleOption().palette.color(group, role) in KStandardItemListWidget -> should be more efficient.
I overlooked that "actions/" is not part of the icon name. Just
rebuilding and re-running Dolphin did not reveal this issue, it seems
that the old icon "package_utility_time" was still cached somewhere.
Use a better icon for recently accessed items in the Places Panel
The problem with the icon "package_utility_time" that has been used
before was that it is not available on all distros. The new icon
"actions/chronometer" should be available on every KDE install.
Thanks to Elias Probst for suggesting the new icon - I'm not that
familiar with the icons provided by KDE myself.
Use a saner check for multimedia files in infopanel.
Don't rely on the reported supported mimetypes from Phonon,
Phonon supports more than just video and audio, but if it is
video or audio there's a very good chance Phonon supports it.
(If the mime type isn't in the list returned by Phonon there's
still a good chance it supports it, because mime types are stupid.)
Christoph Feck [Tue, 17 Jul 2012 23:22:55 +0000 (01:22 +0200)]
Respect platform's icon sizes
Use QStyle icon sizes instead of hard coding 16 or 32 pixels.
Using styles that follow KDE settings (every KStyle, e.g.
Oxygen) the icon sizes can be configured by the user in
System Settings.
The size for the icon/details view can be later changed
by the user, overriding the defaults. The icon size for the
places panel is not (yet?) configurable separately.
(Not resolving the bug, see comment in review request)
Re-implement dropping of files on folders in the Places Panel.
This resolves a regression caused by the Places Panel rewrite. There is
a small glitch left when reordering items (dragging below the last or
above the first item only shows the drop indicator when first dragging
out of the item and then back), but I prefer not to fix this glitch
right now because this would require a more intrusive change, and I do
not want to risk regressions because is not much time left to fix them
before 4.9.0 is released.
Thanks to Peter Penz for providing some advice about this issue.
Use the right name when adding a folder to Places with the context menu
Without this patch, the name of the parent folder was used for the entry
in the Places Panel. Will backport to the KDE/4.9 branch when the RC2
freeze is over.
Peter Penz [Wed, 13 Jun 2012 13:15:54 +0000 (15:15 +0200)]
Fix regression: Open file if entering it in the URL-navigator
The regression has been introduced when hiding the DolphinDirLister
inside KFileItemModel. Now the signal urlIsFileError() gets forwarded
to the container again where the file will be opened.
Peter Penz [Tue, 12 Jun 2012 11:19:16 +0000 (13:19 +0200)]
Drag-pixmap fixes
- Don't use the selection-tinted icon when dragging a single item
- Decrease the vertical gap for the hotspot
- Prevent drawing tree-lines when dragging items for the Places Panel
Peter Penz [Sat, 9 Jun 2012 11:34:27 +0000 (13:34 +0200)]
Folders Panel: Also count directory links
... otherwise no expansion toggle will be shown. The implementation
is a compromise between performance and correctness: If the directory
contains links that are not directories, an unnecessary expansion
toggle will be shown. But this is better than showing no expansion
toggle in case if the directory contains links that point to other
directories.
Peter Penz [Sat, 9 Jun 2012 11:01:19 +0000 (13:01 +0200)]
Inline renaming: ESC should cancel the renaming
When emitting the roleEditingCanceled-signal it must be prevented
that a roleEditingFinished-signal is emitted because of some
action taken in the receiver-slot.
Peter Penz [Fri, 8 Jun 2012 14:39:13 +0000 (16:39 +0200)]
Inline renaming fixes
- Don't use an outdated KFileItem when renaming an item more than once
- Use the same font as the view
- Don't lose the focus when an editor-popup is shown
Prepend "cd" and "clear" commands with a space in the Terminal Panel
This prevents that these commands, which have not been enetered by the
user, but generated automatically, appear in the shell history, provided
that the shell is configured appropriately.
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.