Summary:
Make sure that hidden devices loaded after module initialization does
not appear in the view.
Check for item visibility before add it on the model.
Nathaniel Graham [Wed, 13 Dec 2017 05:52:21 +0000 (22:52 -0700)]
Change "Empty Search" to just "Search" to handle searches with no search text
Summary:
BUG: 387854
The pre-defined searches (Documents, Videos, etc) all default to no search text. https://cgit.kde.org/dolphin.git/commit/?id=702429ac8e64a5aff4e110a56f526b96ecb795fd changed their window title from "baloosearch - /" to "Empty Search", but the search isn't really empty; it just lacks a search string. It's still looking for documents, or videos, or whatever.
Julian Schraner [Sun, 3 Dec 2017 14:58:02 +0000 (07:58 -0700)]
Change window title when searching
Summary:
When you search for a file (e.g. "hello world") the window title of Dolphin will now change to "Search for [input]" instead of "baloosearch - /".
BUG: 321575
Test Plan:
- Disables it iself after search bar is hidden
- Works with multiple word searches
Ahmad Samir [Sat, 25 Nov 2017 17:25:34 +0000 (18:25 +0100)]
Use kSqueezedTextLabel for the label text on the statusbar
Summary:
Following up from D8927; use kSqueezedTextLabel for the label text on the statusbar:
- This simplifies the code in updateLabelText()
- Remove the eventFilter as it's not needed any more since kSqueezedTextLabel has a resizeEvent function
- Specify a stretch factor, 1, for m_label, m_zoomSlider and m_spaceInfo, this prevents the changing of the width of m_label when the label text is updated from changing the widths of the zoomSlider and the spaceInfo widgets as that is a bit too jumpy.
(Thanks to the code of konversation statusbar for the hint about using the stretch factor in addWidget()).
Ahmad Samir [Wed, 22 Nov 2017 01:18:01 +0000 (18:18 -0700)]
Elide the label text on the statusbar in the middle
Summary:
BUG: 387189
Currently the label text on the statusbar is elided in on the right, but that means that when the text gets elided the size of the file isn't shown.
The label text on the statusbar shows the file name, the mime type and the size; the name is already shown in the main window and the mimetype can usually be guessed from the icon or from the extension, so it's usually the size that the user wants to see on the statusbar.
Andreas Krutzler [Sun, 19 Nov 2017 03:32:37 +0000 (20:32 -0700)]
Fix scrolling during inline renaming causes rename of wrong file
Summary:
Scrolling during inline renaming accepts the renaming now, like if one would hit Return for example. I chose this approach because it seems the easiest way to fix this.
This also fixes the “possible” Ui glitch where the renaming KTextField doesn’t move along with the list item. Possible glitch, because I don’t know if this is intentional, but for me it looks broken.
BUG: 378786
Fixes T7443
Test Plan:
* Enable "Rename inline" in dolphin settings
* Go to a folder where you have to scroll through items (many files, big zoom,…)
* Start to rename a file (context menu, F2, …)
* Scroll with mouse wheel
* Rename accepted -> file is renamed
Andreas Krutzler [Sun, 19 Nov 2017 03:32:37 +0000 (20:32 -0700)]
Fix scrolling during inline renaming causes rename of wrong file
Summary:
Scrolling during inline renaming accepts the renaming now, like if one would hit Return for example. I chose this approach because it seems the easiest way to fix this.
This also fixes the “possible” Ui glitch where the renaming KTextField doesn’t move along with the list item. Possible glitch, because I don’t know if this is intentional, but for me it looks broken.
BUG: 378786
Fixes T7443
Test Plan:
* Enable "Rename inline" in dolphin settings
* Go to a folder where you have to scroll through items (many files, big zoom,…)
* Start to rename a file (context menu, F2, …)
* Scroll with mouse wheel
* Rename accepted -> file is renamed
Nathaniel Graham [Thu, 16 Nov 2017 14:23:46 +0000 (07:23 -0700)]
Use KConfig::readEntry()'s default argument properly
Summary: Follow-on patch to D7440 to use KConfig::readEntry()'s default argument properly to reduce some unnecessary code
Test Plan: Tested in KDE Neon. no regressions; by default, all plugins are enabled if the key is not set, and if it is set, user changes to the list are remembered
Nathaniel Graham [Thu, 16 Nov 2017 02:48:29 +0000 (19:48 -0700)]
Turn on Dolphin icon previews by default
Summary:
BUG: 338492
BUG: 350212
By default, turn on all preview plugins and turn on previews themselves.
Depends on D8347
Test Plan:
Tested this change in an up-to-date KDE Neon: removed the existing dolphinrc file, deployed Dolphin with the change, and observed that previews are now turned on for all file types for which a plugin exists except for text files, which are in the blacklist because they're mostly useless at nearly all icon sizes (still available in case people want them, though).
Here's how Dolphin's main window looks by default now in KDE Neon:
{F5441184}
(You may notice that there are no previews for the video files; that's because Neon doesn't ship with any plugins for them, so that would be expected at this point)
And here is how the Settings > General > Preview window looks like now by default:
{F5435391}
Emirald Mateli [Sat, 11 Nov 2017 14:05:15 +0000 (15:05 +0100)]
Prevent folders from drag and dropping onto themselves in dolphin main view
Summary:
This patch aims to improve user experience by not allowing the user to drag and drop a folder into itself.
The current behavior shows a red message at the top which can then be closed by the user, instead of relying on that, this patch disables the option of dropping onto self and uses the "Invalid drop target cursor" to highlight the behavior.
BUG: 307747
Since spectacle is unable to screenshot the cursor overlay, find attached a photo of the screen.
{F3787651}
Test Plan:
1. Drag a folder.
2. Drop it onto itself.
Diego Gangl [Tue, 7 Nov 2017 16:32:31 +0000 (17:32 +0100)]
Add more whitespace to the status bar
Summary:
This patch gives the status bar a little more vertical whitespace, prevents the status bar from "jumping up and down" when showing a progress bar, and adds a bit of padding on the sides so the labels are more clearly separated when using dual panes.
Nathaniel Graham [Tue, 24 Oct 2017 19:10:41 +0000 (13:10 -0600)]
Make Saved Search feature discoverable
Summary:
FEATURE: 269332
Make Dolphin's Saved Search feature discoverable by adding a button inside the search field. The button only becomes enabled when there is a valid search term. When pushed, it saves the search to the Places panel, providing a visible-by-default way to do this to complement the existing implementation that is only visible in the context menu.
Also harmonized the label text so that it's consistent no matter how you create a saved search (button or context menu)
Test Plan:
Tested in KDE Neon. Works great:
{F5449508}
Andreas Krutzler [Fri, 27 Oct 2017 13:01:54 +0000 (07:01 -0600)]
Two clicks on file/folder to rename
Summary:
Make renaming of files/folders faster by clicking a second time on the items text to start renaming.
BUG: 205157
Test Plan:
This feature works as follows:
1. select an item by single-click, or one is already selected
2. wait the "double-click-interval"
3. click on the items text
4. none of the cancellations (see below) happens within the double-click-interval
5. inline-renaming starts
Cancellations:
* open any file/folder
* select different item(s)
* start dragging items
* Dolphin loses focus
This feature is just enabled while "Double-click to open files and folders" in system-settings and "Rename inline" in Dolphin are enabled.
Miklos Marton [Thu, 12 Oct 2017 21:17:51 +0000 (23:17 +0200)]
Don't block unmounting when terminal panel's cwd is the mountpoint
When unmounting a removable media Dolphin checks if there are
some files open on the device before performing the unmount.
If the terminal window in dolphin is open and the to be unmounted path is open,
the unmount process will be blocked.
This patch sets the terminal window current path to the home directory upon unmount request
if the terminal directory is set to the mount path.
The unmount request could came from two sources:
The user could hit right click on the media in the dolphin's places panel and hit unmount.
The user could request an unmount from the indicator applet
This patch was originally written by Arjun AK for the kdelibs4 version
of Dolphin: https://git.reviewboard.kde.org/r/121613/
XY Quadrat [Tue, 3 Oct 2017 21:07:53 +0000 (23:07 +0200)]
Add option to only search for folders
This commit adds an option under "More options" at the search widget.
It allows to only search for folders and filter out everything else,
just like the other options (e.g. "Videos") above.
Summary: QStaticText's constructor with const QString & as argument is now explicit.
Test Plan:
Did not build before, now does.
Note that this might change the behaviour as the other properties of m_text are now
kept, which was not the case before. I'm not sure what the expected behaviour here
is supposed to be.
Gregor Mi [Thu, 21 Sep 2017 13:41:26 +0000 (15:41 +0200)]
Select child folder when navigating to a parent folder
Whenever the dolphin view is initialized to show the contents of a new URL
(e.g. "/home/x/test") it will be checked if the new URL is a parent of the
previous displayed URL (e.g. "/home/x/test/documents/aaa"). If the check is
successful, then the common child (in this example: "/home/x/test/documents/")
folder item will be selected and scrolled into view.
When renaming a file, if its new name causes it to scroll out of view,
Dolphin will not scroll to the location of the new file.
This patch aims to address that. This affects all view modes.
CCBUG: 354330
Test Plan:
1. Have many files in a directory (or several files, just zoom in a lot)
2. Rename a file so that it will move out of view
After commit 68bb0ec22a the shortcut for the Delete action is not
necessarily Shift+Del, but whatever the user set in System Setting.
However DolphinRemoveAction assumes/hardcodes Shift+Del, so we should
always make sure we have this shortcut around, for consistency.
We just need to add it (if necessary) to the list of shortcuts of the
action. However:
* for the actual Delete action, we need to append it (if we'd prepend it,
it would override a custom primary shortcut in the 'Configure Shortcuts' dialog).
* for DolphinRemoveAction, we need to prepend it in order to have
Shift+Del (rather than the custom primary shortcut) in the context menu.
Elvis Angelaccio [Thu, 24 Aug 2017 16:33:27 +0000 (18:33 +0200)]
Fix DolphinRemoveAction Shift toggling on Wayland
QGuiApplication::queryKeyboardModifiers() does not work on Wayland [1].
We don't need it in the first place, since we already know (thanks to
the key events) whether Shift has been pressed or released.
So we can just pass this information to DolphinRemoveAction::update().
Robert Hoffmann [Fri, 1 Sep 2017 08:15:03 +0000 (10:15 +0200)]
Limit folder panel to home directory if inside home
Summary:
Added the option to limit the displayed folders in the folder panel (F7) to the tree below the user's home directory if the current URL is inside the home directory.
This can be configured in the preferences General/Behaviour tab by checking the corresponding check box.
Kai Uwe Broulik [Tue, 29 Aug 2017 15:15:24 +0000 (17:15 +0200)]
Prefer place name over actual name in title bar
When inside a place, the address bar already gives it precedence over the actual folder name.
By doing this in the title bar also, we make it consistent and can mask ugly technical terminology
like "trash:/" and instead show the nice localized "Trash" place name as well as "Home" instead
of lowercase internal user name.
This comment (introduced in commit 39f89141b06c) no longer seems to
apply, so drop the duplicate translations and just use the default
strings from kconfigwidgets.
Elvis Angelaccio [Wed, 12 Jul 2017 08:40:15 +0000 (10:40 +0200)]
Fix drop menu position with urlnavigator drops
Commit 1e251d2f6a in kio broke drop menus when dropping on the URL
navigator (menus show up in the DolphinView rather than the URL bar).
This happens because in DolphinView::dropUrls() we set `this` as the
widget passed to KJobWidgets::setWindow() (in DragAndDropHelper::dropUrls()).
We need to replace `this` with the actual widget that received the QDropEvent
and that can mapToGlobal() the relative pos of the drop event.
Unfortunately this widget is not KUrlNavigator itself, but one of its
KUrlNavigatorButton children (private class, not exported). So
unfortunately we need a new API in KIO that exposes this child widget.
Kai Uwe Broulik [Tue, 27 Jun 2017 12:03:31 +0000 (14:03 +0200)]
[Places Panel] Disallow editing devices
I introduced this bug when I changed the layout of the menu.
While it would be nice if one could edit devices, it is currently not possible
and would require significant re-engineering effort in Solid.
While the "Edit" menu works just fine, changes are not persisted.
Elvis Angelaccio [Sun, 11 Jun 2017 17:33:36 +0000 (19:33 +0200)]
Merge branch 'Applications/17.04'
* Applications/17.04:
Change in "Open in new tab" feature in Dolphin
Ignore drops-onto-items from invalid places items
Revert "Increase smooth scrolling animation duration from 100 to 300 ms and set easing curve to InOutQuart"
Emirald Mateli [Sun, 11 Jun 2017 17:26:52 +0000 (19:26 +0200)]
Change in "Open in new tab" feature in Dolphin
Summary:
This patch proposes a change to the "open in new tab" feature.
The "open in new tab" feature will try to open selected items (files or folders) in a new tab, however, if there are no valid items to be opened in a new tab then nothing will happen, making it look like a bug. This patch adds the functionality that when there are no valid items(files or folders) to be opened in a new tab the current folder will be opened.
Test Plan:
1. Select a file(pdf, text, image etc) in Dolphin
2. Click on the "Open in new tab" toolbar button
Expected: since the file is not a valid target to open in a new tab, the current directory should be opened (as is the case where selection is empty)
Actual: Nothing happens after the button is pressed
Elvis Angelaccio [Fri, 21 Apr 2017 11:16:05 +0000 (13:16 +0200)]
Ignore drops-onto-items from invalid places items
If the QMimeData object created by PlacesItemModel doesn't have any url
set (e.g. when dragging unmounted devices), it is detected by the
resulting DropJob as "drop raw data" because the mimeData has one format set
(the internalMimeType() used for dragging between places items).
This results in a crash because the DropJob schedules a PasteJob, but in
the meantime the QDrag from Dolphin ends and deletes the mimeData object
that was passed to the paste job.
The fix is to prevent the DropJob in the first place. We can introduce a
new internal mimetype that we use to blacklist drops-onto-items (while
still allowing drops-between-items). This way PlacesItemModel can set
the blacklist flag if the mimeData is being created without urls.
BUG: 373005
FIXED-IN: 17.04.3
Test Plan:
Drag and drop an unmounted device to another place item or the DolphinView, doesn't crash anymore.
Dropping the unmounted device between two places item still works.