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/
BUG: 158264
FIXED-IN: 17.11.80
Differential Revision: https://phabricator.kde.org/D7847
Summary:
Move Folders item closer to the top in Dolphin's find panel. This seems like a more natural placment than after the document types.
Also re-order variable placement to maintain consistency
Test Plan:
Tested in KDE Neon; works. Before:
{F4631565}
After:
{F4631532}
Reviewers: #dolphin, elvisangelaccio
Reviewed By: #dolphin, elvisangelaccio
Subscribers: #dolphin
Differential Revision: https://phabricator.kde.org/D8132
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.
FEATURE: 269334
REVIEW: 130159
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.
Reviewers: #dolphin, #kde_applications, cfeck
Reviewed By: cfeck
Subscribers: cfeck, #kde_applications, #dolphin
Differential Revision: https://phabricator.kde.org/D8075
Summary:
Adds Bitrate to Dolphin's Additional information columns.
BUG: 368418
Test Plan:
Tested in KDE Neon. A bitrate column can be added and shows the bitrate in kb/s:
{F3907210}
Works for audio as well as video files!
Reviewers: #dolphin, #kde_applications, broulik, aacid, dfaure, emmanuelp
Reviewed By: #dolphin, #kde_applications, emmanuelp
Subscribers: rkflx, alexeymin, anthonyfieroni
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D7763
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.
REVIEW: 123253
BUG: 377392
CCBUG: 335616
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
Differential Revision: https://phabricator.kde.org/D6312
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.
Differential Revision: https://phabricator.kde.org/D7655
Summary:
BUG: 384352
Add an "Open in New Window" menu item to the context menu for Dolphin's places items.
Test Plan:
Tested in up-to-date KDE Neon. Works as expected:
{F3898707}
Reviewers: #dolphin, #kde_applications, dfaure, aacid, elvisangelaccio, emmanuelp, broulik
Reviewed By: #dolphin, emmanuelp, broulik
Subscribers: alexeymin, emmanuelp, broulik, sefaeyeoglu, #dolphin
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D7690
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().
BUG: 354301
[1]: https://bugreports.qt.io/browse/QTBUG-62786
Differential Revision: https://phabricator.kde.org/D7519
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.
Reviewers: #dolphin, elvisangelaccio, emmanuelp
Reviewed By: #dolphin, elvisangelaccio, emmanuelp
Subscribers: emmanuelp, elvisangelaccio, #konqueror, #dolphin
Differential Revision: https://phabricator.kde.org/D7477
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.
BUG: 211959
Differential Revision: https://phabricator.kde.org/D4826
Summary: I have just imitated the code that made this funcionality for artist and album additional information for audio files.
Reviewed By: #dolphin, emmanuelp
CCBUG: 374558
Differential Revision: https://phabricator.kde.org/D7215
You cannot do this from the menu but the option was there (but ignored) in the "View Properties" dialog.
BUG: 302622
Differential Revision: https://phabricator.kde.org/D7386
This comment (introduced in commit 39f89141b0) no longer seems to
apply, so drop the duplicate translations and just use the default
strings from kconfigwidgets.
Differential Revision: https://phabricator.kde.org/D6779
It was introduced in kconfig(widgets) 5.25. Using the standard action
results in less code and no need to hardcode the F2 shortcut.
Differential Revision: https://phabricator.kde.org/D6777
It was introduced in kconfig(widgets) 5.25. Using the standard action
results in less code and no need to hardcode the Del shortcut.
Test Plan:
- Change shortcut in System Settings -> Shortcuts -> Standard Shortcuts
- Make sure the new shortcut is used by dolphin.
Differential Revision: https://phabricator.kde.org/D6778
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.
Differential Revision: https://phabricator.kde.org/D6684
This fixes the following warning:
QLayout: Attempting to add QLayout "" to PreviewsSettingsPage "", which already has a layout
`topLayout->addLayout(fileSizeBoxLayout)` takes ownership of
`fileSizeBoxLayout`, so there is no reason to use `this` as parent.
Summary: At least on FreeBSD UFS and ZFS support birthtimes of files.
Reviewers: #freebsd, #dolphin
Subscribers: #konqueror
Differential Revision: https://phabricator.kde.org/D6243
(cherry picked from commit d8061b4d9e)
Summary: At least on FreeBSD UFS and ZFS support birthtimes of files.
Reviewers: #freebsd, #dolphin
Subscribers: #konqueror
Differential Revision: https://phabricator.kde.org/D6243
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.
Reviewed-By: emmanuelp
Differential Revision: https://phabricator.kde.org/D6294
This allows to sort by and show (both as additional data in icon view and column in column
view) deletion date of files in Trash.
CHANGELOG: It is now possible to view and sort by "Deletion Time" in Trash
BUG: 153492
FIXED-IN: 17.08.0
Differential Revision: https://phabricator.kde.org/D6269
* 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"
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
Reviewed By: #dolphin, elvisangelaccio
Differential Revision: https://phabricator.kde.org/D6182
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.
Differential Revision: https://phabricator.kde.org/D5535
This reverts commit 58c5eae195.
Reasons against this change:
1. Scroll is now too fast with devices such as touchpads or trackpoints.
2. Scroll behavior is now inconsistent between Dolphin and other applications
(e.g. the Plasma file dialog). Breeze's default animation duration is 100 ms.
3. Many people complained and this feature is currently not configurable. We
should introduce a QStyle::SH_Widget_Animation_Duration hint that would
allow us to not hardcode durations in Dolphin (i.e. respect whatever
duration the users set in their QStyle).
Proposal in https://codereview.qt-project.org/#/c/195712/
Reviewers: #vdg, #plasma, emmanuelp, davidedmundson
Reviewed By: #plasma, davidedmundson
Differential Revision: https://phabricator.kde.org/D5883
For now it contains a test case for the crash in bug #379135
CCBUG: 379135
Reviewers: emmanuelp, dfaure
Differential Revision: https://phabricator.kde.org/D5936
This allows us to speed up the compilation because we don't need to
build twice the source files we use in the unit tests.
Test Plan: Builds, dolphin works and tests pass.
Reviewers: emmanuelp, dfaure
Differential Revision: https://phabricator.kde.org/D5935
Summary: This enables us to run the tests on Windows.
Reviewers: elvisangelaccio, kfunk, dfaure
Reviewed By: elvisangelaccio
Subscribers: #konqueror, #dolphin
Differential Revision: https://phabricator.kde.org/D5810
Summary:
Now that we can use the metadata widgets in the tooltips, we can also
open the tags:// url if the user clicks some tag in a tooltip.
The behavior is now consistent with the metadata widget in the information panel.
Test Plan: Click a tag when the metadata tooltip shows up.
Reviewers: emmanuelp
Subscribers: #konqueror, #dolphin
Differential Revision: https://phabricator.kde.org/D5658
Up until now tag-values have appeared unsorted in the Tags column
when the selected View Mode is "Details".
In older versions of Dolphin (in KDE4) the tags-values were
alphabetically sorted in the Tags column, which means that back then
this was the desired behavior.
This commit restores this functionality.
BUG: 377589
FIXED-IN: 17.04.1
REVIEW: 130068
Summary:
Small regression in commit 68bb0ec22a. We need to use the new (standard)
name for the delete action, otherwise it won't be properly
enabled/disabled.
BUG: 378154
FIXED-IN: 17.03.90
Reviewers: emmanuelp
Differential Revision: https://phabricator.kde.org/D5248
This patch will cause a "New Window" command to open a new window with
the URL from the active view. Opening a new instance via launcher will
still open a new window with the URL specified in Startup settings.
This is the behavior in Windows 10 file explorer. The advantage is this
gives the user a way to open a new window with the current URL(New
Window) as well as a new window with URL specified in Startup
settings(new instance) whereas currently, there isn't an easy way to
open a new window with the current URL. You'd have to either open a new
window and copy and paste the URL, or open a new tab(which opens with
the same URL) and detach it. I'd much rather have the new window open
with the current URL and if what I wanted was the Startup URL I could
easily get there as it's already bookmarked.
REVIEW: 129973
KUser does quite a lot of stuff under the hood and also calls getpwuid which might block with network login.
Differential Revision: https://phabricator.kde.org/D5049
Summary:
point the knsrc providers file to the new kde store,
and port the servicemenuinstallation/servicemenudeinstallation
scripts to kf5 (they still were based on kde4-config)
BUG:376922
Test Plan:
downloaded some service menus (send to telegram, convert svg)
by the knewstuff ui available in the services page of config dialog
they get installed in the proper folder and work, uninstall works
Reviewers: #dolphin, emmanuelp
Reviewed By: #dolphin, emmanuelp
Subscribers: elvisangelaccio
Differential Revision: https://phabricator.kde.org/D5035
Summary:
It was introduced in kconfig 5.25 and it properly handles the shift+del
shortcut (together with kxmlgui >= 5.30). This allows us to drop the
custom delete shortcut as well as the shift+del workaround in
DolphinMainWindow.
Test Plan: Shift+Del still deletes files, without the 'ambiguous shortcut' warning dialog.
Reviewers: emmanuelp
Differential Revision: https://phabricator.kde.org/D5010
Summary:
This improves the discoverability of the diskspace menu, a feature
otherwise almost impossible to find.
Reviewers: gregormi, emmanuelp
Differential Revision: https://phabricator.kde.org/D4873
Instead of just assuming hidden files always start with a "."
The items were already filtered out but when showing hidden files they weren't painted at reduced opacity.
Differential Revision: https://phabricator.kde.org/D4978
Summary:
The current animation duration for smooth scrolling is 100 ms which feels as if there is no smooth scroll animation in the first place. Bumping this up to something like 300 ms seems to make the scrolling actually appear smooth.
Also, based on diff comments the easing curve is set to InOutQuart.
Test Plan: Built this change locally and tried scrolling a folder with many items both single step mouse wheel and also larger steps of the mouse wheel.
Reviewers: elvisangelaccio, emmanuelp
Reviewed By: emmanuelp
Subscribers: htietze, colomar, andreask, emmanuelp, elvisangelaccio
Differential Revision: https://phabricator.kde.org/D4560
There is a bug that can happen in the following situation:
- user right clicks to open a menu
- that context menu grabs input
- the QGrabphicsView also notes the mouse was pressed, but not that the
mouse was released because it doesn't have mouse events any more
- when a user clicks to dismiss the menu and then without moving clicks
quickly again to send, we don't get another press event because the
QGraphicsScene still thinks the mouse is pressed from the first time the
context menu was shown and
QGraphicsScenePrivate::lastMouseGrabberItemHasImplicitMouseGrab still
points to the old object.
This is a known bug in QGraphicsView and you can see
QGraphicsScenePrivate::sendMouseEvent has a workaround to reset the
lastMouseGrabberItemHasImplicitMouseGrab on mouse moves, with the
comment: "This is a temporary fix for until we get proper mouse
grab events."
Realistically this isn't going to happen in QGraphicsView now.
We do get a double click event though. By checking for double click
events we can grab those missed clicks. It doesn't cause any other side
effects because normally the context menu will fire after the first
click and this rarely gets processed.
REVIEW: 129960
The patch applies the shadow to all previews except for folders, fonts and
Win32 exe/dll previews, similar to how Windows and MacOS handles it.
REVIEW: 129918
that the selection can be changed after reloading of the current view.
Otherwise it is not possible to alter the selection without restarting a new
one.
Bug found by Martin Tobias Holmedahl Sandsmark
See also RR 128563
as stated in the documentation of KUrlNavigator::saveLocationState.
The historyChanged signal of the KUrlNavigator is emitted before the urlChanged
signal and so the view state restoring happens before the view URL has been
changed. This makes it impossible to save and restore the selected URLs, because
DolphinView::setUrl clears the list of selected items (which has been restored
right before). This changes removes the history changed slot and restores the
view state after the setUrl call.
Since commit 230fe13d1f this class is not a "tooltip" anymore, but just a
simple widget. Rename it to avoid future confusion.
Reviewers: emmanuelp
Differential Revision: https://phabricator.kde.org/D4451
If this KCM is disabled through KIOSK restriction opening it would result in an error message.
Hide the entry altogether in this case.
Differential Revision: https://phabricator.kde.org/D4502
KWindowSystem is no longer used since commit 230fe13d1f.
It was only pulled for `KWindowEffects::enableBlurBehind()`, which is
now in plasma-integration (triggered by KToolTipWidget).
Use the new KToolTipWidget class (introduced by kwidgetsaddons 5.30) as backend of ToolTipManager.
FileMetaDataToolTip becomes a simple widget used as content of the tooltip.
It is now possible to actually use the metadata widget shown inside the tooltips.
Tooltips are now functional on Wayland as well.
More information about KToolTipWidget in https://git.reviewboard.kde.org/r/129648/
BUG: 352276
BUG: 371223
FIXED-IN: 17.04.0
Closes T4980
Differential Revision: D4449
When mass-renaming files, you could end up with a a gazillion notifications of a finished move job.
This fixes this. Ideally we would have one job which had the rename jobs as subjobs to still get
progress info for the overall task.
Differential Revision: https://phabricator.kde.org/D4372
This code was added a long time ago in b1c9b5126d, but the commit
message doesn't explain why. If we remove it nothing seems to change and
we fix the ugly background on the scrollbar when Breeze draws a frame
around dockable panels.
BUG: 366203
FIXED-IN: 16.12.2
REVIEW: 129861
Enabling the 'duration' column in a folder with audio files did only show empty information. Properly initializing the QTime object fixes this.
Testing Done
Find a folder with audio files
Make sure that Baloo has indexed this folder
Open this folder in Dolphin, detail view, enable the Audio/Duration column
Unpatched Dolphin does not display audio duration, patched Dolphin does
Tested on Gentoo x86_64 with Qt 5.5.1, KF 5.21.0 and Arch x86_64 with Qt 5.6.0 and KF 5.21.0.
REVIEW: 127799
Additionally, moves the "More/Fewer options" button from right to left to reduce the mouse travelling distance when the dolphin is maximized on a large screen (see screenshots)
The current location url will be passed to the search tool to set the initial search root directory.
REVIEW: 123883
This is merge of #128964 and #128942. This will impelement changing the "Date" field to "Modified" and allow a new "Accessed" time field to be available. This also includes changes to update configuration files.
REVIEW: 129077
Everything is already set up to show the directory loading progress in the status bar, but the signal KFileItemModel::directoryLoadingProgress is never emmited anywhere. I connected it to KFileItemModelDirLister::percent.
This was difficult to test because I had a hard time finding a directory that didn't load almost immediately. I was able to verify the fix by listing a remote directory of 20,000 files (see screenshot)
REVIEW: 129619
Once KIO::iconNameForUrl returns special icons for standard paths (e.g. Video folder)
this will ensure when adding such a folder to places it will automatically get the proper icon.
Since KIO already depends on KBookmarks it can't depend the other way round, otherwise
this would have been fixed in KBookmarks directly.
Differential Revision: https://phabricator.kde.org/D3896
Everything was handling palette change already but for the visual distinction between
active and non-active view (in case of split view), a custom palette was set which was
then never updated. This could be seen by the label text color changing but not the view background.
Differential Revision: https://phabricator.kde.org/D3909
`isFolderWritable` is set in DolphinView::updateWritableState() according to
KFileItemListProperties::supportsWriting().
However, `writing=true` does not imply `makedir=true`,
in an ioslave's .protocol file. An example is the trash protocol.
So we need to enable the `create_dir` action only if the protocol is
actually able to create folders.
CCBUG: 332463
REVIEW: 129712
Correctly set the active status of views when changing tabs.
Before: Right click in home folder, see create new enabled, open tab, go
to /usr, right click and see it is disabled, switch back to first tab
and right click, and it is still disabled.
After: It is enabled and disabled as appropriate when switching tab.
REVIEW: 129664
The test was not saving its changes to the global settings, so it was
passing on the CI only because the default value of GlobalViewProps is
already false. If GlobalViewProps was set to true instead, testAutoSave()
would fail because save() was not called and GlobalViewProps was not
Commit f688bcd1f1 fixed slow scrolling with xf86-input-libinput on DolphinView.
However the commit also exposed a bug in the Dolphin scrolling
algorithm, which was previously hidden. This resulted in slow
scrolling in dock panels (Places and Folders), with both
xf86-input-evdev and xf86-input-libinput drivers, as well as libinput on
Wayland.
KItemListContainer::updateScrollOffsetScrollBar() relied on the view's
itemSize() method to compute the scrollbar's singleStep, but this QSize
was invalid for the dock panels' views.
We use a new itemSizeHint() method instead, which is always valid and
also adapts to the current icon size set in the view.
BUG: 365968
FIXED-IN: 16.12.0
REVIEW: 129409
By setting a parent for the QDialogButtonBox we let QDialog handle everything by itself.
Also, store the dialog button box as a member rather than just the OK button.
This removes the need to set the OK button as default manually (which didn't work anyway)
and fixes pressing Return while the input is focused erroneously opening the folder browser
rather than accepting the dialog.
REVIEW: 129213
Documentation of QGuiApplication::keyboardModifiers() says that "It should
be noted this may not reflect the actual keys held on the input device at
the time of calling but rather the modifiers as last reported in one of
the above events".
Since this method is called in DolphinContextMenu's keyPressEvent()
and keyReleaseEvent(), the first time that keyboardModifiers() is
called it doesn't report that shift has been pressed.
Replacing this method with queryKeyboardModifiers() does the job
because the latter doesn't care about the event queue.
BUG: 354301
FIXED-IN: 16.08.2
REVIEW: 128972
Commit d48b733 introduced support for kfileitemaction plugins with json
metadata, but forgot to filter them by the commonMimeType (like
KMimeTypeTrader::query() does with old-style plugins).
So we need to load a plugin only when commonMimeType is equal to (or child of) one
of the mimetypes supported by the plugin.
Otherwise KRun opens a separate instance for every URL passed although Dolphin
already has logic to open different folders in tabs if neccessary.
REVIEW: 128306
The KAuthorized key to prevent shell access according the documentation
is simply "shell_action" not "action/shellAction" so should use
authorize not authorizeKAction
This appears to have come about as part of a porting bug when going from
KApplication::authorize to KAuthorized in kdelibs3 to kdelibs4.
To currently block shell access a sysadmin currently needs to
have both keys set already, so we can be confident it won't have any
actual compatibility problems.
KPluginLoader::instantiatePlugins() wraps QPluginLoader::instace(),
which doesn't return a new object for each call, so if we set the
KFileItemModelRolesUpdater instance as parent to the plugin the shared
instance will be deleted leading to crashes when other instances of
KFileItemModelRolesUpdater tries to use their plugin objects.
To fix this, set the QApplication as a parent.
BUG: 357479
REVIEW: 127930
KPluginLoader::instantiatePlugins() wraps QPluginLoader::instace(),
which doesn't return a new object for each call, so if we set the
KFileItemModelRolesUpdater instance as parent to the plugin the shared
instance will be deleted leading to crashes when other instances of
KFileItemModelRolesUpdater tries to use their plugin objects.
To fix this, set the QApplication as a parent.
BUG: 357479
REVIEW: 127930
Since now the breeze icons can be recolored by kiconloader
with svg stylesheets, use this feature to recolor the
currently selected icon in the sidebar and in the
details view (not the icon view)
look wouldn't change if used with icon themes that
don't support this feature
This makes it look more in line with the breeze style
REVIEW:127877