use KRecentFilesAction like Kate and others to signal used
files/dirs
could later be used to plug-in a recently used menu, too,
if ever wanted
avoids that this dependency could be missed and the functionality
is not there, too
This commit adds a guided setup that leads users from a situation
in which they try to "sudo dolphin" towards them successfully
setting up and using kio-admin.
1. When users enter "sudo dolphin", they are told to start Dolphin
by typing "dolphin --sudo" or "dolphin --admin" instead.
2. When Dolphin is started with "--sudo" or "--admin" it checks
whether an "admin" protocol is installed. If not, a guided
setup leads users towards installing it.
3. After that, Dolphin starts with an installed "admin" protocoll
like kio-admin. Now a non-modal information dialog appears that
explains how to activate and use kio-admin.
This is a fix for a bug where in network views (or otherwise slow
systems), pressing `Ctrl+Shift+N` multiple times opens multiple popup
windows and thus causes a crash when any of the popups is interacted
with after closing the topmost one. The problem is not the crash with
popups themselves, but that we're opening multiple popups in the first
place.
In regular views this works fine, since the `nameJob` does not take
long time at all and only one popup opens, immediately blocking the
shortcut.
In network views, the `nameJob` seems to take a while to run, since it
is loading info from network. If user spams `Ctrl+Shift+N` shortcut in
frustration, it starts more `nameJob`s and eventually when those jobs
are done, it opens multiple popups.
This code checks that if we're already running a `namejob`, we're very
likely waiting for the `createDir` popup to appear, so we don't do
anything until there is no more `nameJob` running.
I've tested that it works in both network and regular Dolphin views.
BUG:481401
The idea behind KMoreTools was to point the user at external tools for a given job.
It provides a rather complex framework for that, including suggesting not-yet-installed tools.
The UX behind that isn't great though, which somewhat deep menu hierarchies and a somewhat arbitrary list of tools.
Most KDE apps have moved away from it, with only Dolphin remaining.
Instead provide direct integration with relevant KDE tools (Filelight, KDiskFree, KFind)
musl does not support fts. There is however a standalone package that
can be used, but it must be linked against. This commit adds a check
that makes sure to link to the external library if it is required.
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.
ecm_set_disabled_deprecation_versions() in versions < 5.96 was brokwn
when it comes to SHOW_DEPRECATIONS, warnings for newer deprecations
were disabled if the flag was set or not.
Starting with ECM 5.96 the macro now enables warnings by default,
so the flag is no longer needed.
GIT_SILENT
Now that you can get elevated privileges while using the app, we can
display a more useful and descriptive error message when people try to
run Dolphin using `sudo` or `kdesu`.
Also bump the frameworks dependency to 5.90 since that's the KIO
version that includes this change, so we can be sure that the message is
always accurate.