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