Serg Podtynnyi [Fri, 27 Jan 2023 10:54:35 +0000 (17:54 +0700)]
Add new settings for permissions column format
Ability to configure column for the file/dir permissions in
Numeric(Octal)/Textual/Combined style and update field display style to be right-alighed.
Add toolips to column menu items
BUG: 227745
Forest ix [Mon, 6 Feb 2023 02:38:55 +0000 (18:38 -0800)]
Reveal the Backspace shortcut in the UI
Since the Back action already has two standard shortcuts, a third one appended
to the list will be invisible in the UI, which shows only the first two. This
leaves users unable to reassign it.
We therefore make it the first shortcut in the list, so that the hidden third
entry will be the dedicated Back button, which users are far less likely to
want reassigned.
KFileItemModelRolesUpdater: Skip directory item count if it isSlow()
This makes the behavior of kernel cifs/nfs mounts the same as with kio's
smb://. It also helps reduce the chance of the UI hanging due to
opendir/readdir slowing down stat calls on the UI thread.
Signed-off-by: Andrew Gunnerson <accounts+kde@chiller3.com>
Felix Ernst [Wed, 11 Jan 2023 15:11:36 +0000 (16:11 +0100)]
Adapt autotest to new expected "Space" key behaviour
The old expected behaviour was that pressing Space would select
the current item. We now trigger selection mode instead and don't
select. At some point in the future we might want to instead have
Space trigger a "QuickLook" feature for quick viewing of full
files. In any case, the old behaviour of having Space select is
no longer expected, but Ctrl+Space can still be used for this.
It might also make sense to have Space trigger the old selection
behaviour if both selection mode and "QuickLook" are disabled, but
that is very low priority and will cause more code complexity than
the non-default benefits are worth.
Felix Ernst [Mon, 2 Jan 2023 15:01:49 +0000 (16:01 +0100)]
Make space shortcut for selection mode view-local instead of global
Before this commit, the "Space" keyboard shortcut was bound to
triggering selection mode by default. After this commit, pressing
"Space" will only trigger selection mode when the file view area
has keyboard focus.
Pros:
+ Other buttons in the UI can be triggered with Space once again
just like it is expected from an accessibility point of view.
+ "Type-ahead" searching works once more when typing the space
char for file names containing such a space char.
Cons:
- "Space" can no longer be used to add the currently underlined
item to the selection. Instead "Ctrl+Space" needs to be used.
(However, this is the current status anyway unless a user has
manually unbound "Space" as a shortcut from Selection Mode.)
- The Selection Mode action will no longer show "Space" as its
shortcut in menus.
Overall, I see solutions to all of these problems, but they seem
over-engineered for the issues they are trying to solve, so I
believe this somewhat small commit is the best solution for now.
Fabian Vogt [Mon, 2 Jan 2023 13:53:42 +0000 (14:53 +0100)]
Don't recurse into symlinks when counting directory contents
Symlink contents should not be visited for the purpose of displaying sizes.
Not only is potentially misleading because the storage is actually used
elsewhere (the target location), it can be completely wrong as contents can
be visited multiple times, even recursively.
Felix Ernst [Sun, 8 Jan 2023 14:07:16 +0000 (15:07 +0100)]
Fix potential nullptr de-reference
The `break` that is replaced by a `return` here would only break
out of the innermost while loop so the std::vector::end could still
become accessed after that. By returning here we completely exit
out of both nested loops and therefore don't access the
std::vector::end.
Nicolas Fella [Wed, 14 Dec 2022 23:56:11 +0000 (00:56 +0100)]
Properly use X11 startup ids
When one instance of Dolphin activates another it passes a startupId (X11) / activation token (wayland) along.
On X11 this is passed using the DESKTOP_STARTUP_ID environment variable. The code tries to read that through KStartupInfo::startupId().
That doesn't work though, since Qt at startup reads the environment variable afterwards. However, it is nice enough to allow us to access
it through QX11Info::nextStartupId(). Use that to read the token in the first instance and pass it to the second instance like we do on Wayland
The user-facing impact of this is minimal since KStartupInfo::setNewStartupId internally falls back to KWindowSystem::forceActiveWindow when no
startupId is passed.