Felix Ernst [Sat, 11 May 2024 17:16:35 +0000 (17:16 +0000)]
Add "Act as Administrator" toggle action
This commit adds an "Act as Administrator" toggle action to the
View menu if kio-admin is installed. The action allows switching
between acting as an admin with root-access or not.
This was already possible in Dolphin when kio-admin is installed by
editing the location bar directly. However this is somewhat
unintuitive and there are no warnings at all about the dangers of
acting as an administrator.
This commit adds a warning dialog when triggering the action. It is
somewhat explicit about the risks because this is in fact very
dangerous.
Furthermore, while acting on a view with administrative privileges,
a bar above the view shows up that contains a warning. The bar can
be closed to stop acting with elevated privileges.
The warning dialog can be disabled and re-enabled from the Dolphin
settings but only if the action is even available.
There is a lot more to be done to further improve this feature both
security-wise as well as when it comes to usability. But
considering that we are already encouraging users to use this
feature without any warnings at all, I feel like now is a good time
to merge this.
This work is part of a project funded through the NGI0 Entrust
Fund, a fund established by NLnet with financial support from the
European Commission's Next Generation Internet programme, under the
aegis of DG Communications Networks, Content and Technology. As
such, please contact me if you plan on doing related work so what
you are doing doesn't collide with work I am being funded to do.
Akseli Lahtinen [Sat, 11 May 2024 15:59:03 +0000 (15:59 +0000)]
Check if namejob is already being run before opening new createDirectory dialog
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.
Felix Ernst [Thu, 18 Apr 2024 10:28:28 +0000 (10:28 +0000)]
Add branding colors for Flathub
This is needed or they definitely won't feature us.
The light blue color is chosen because it is vibrant and fits the
association with "Dolphin". The very dark color is chosen to still have
a good contrast with the Dolphin icon even though it is already quite
dark at the top left corner.
For more information see:
https://docs.flathub.org/blog/introducing-app-brand-colors/
Felix Ernst [Wed, 17 Apr 2024 07:32:27 +0000 (07:32 +0000)]
Fix crash while entering selection mode with Qt6.7
`deleteLater()` on a non-existing object seems to cause a crash with
Qt6.7. This makes some sense but wasn't the case previously.
I didn't test this yet but it is a harmless change so if anyone can confirm we can IMO merge directly.
This was brought up in https://invent.kde.org/system/dolphin/-/merge_requests/764#note_920935, reported in the bug linked below, and the sentry crash reporting page also has a few dozen reports (https://crash-reports.kde.org/organizations/kde/issues/13589/?project=4&query=is%3Aunresolved&referrer=issue-stream&stream_index=1).
Dolphin 24.02 is also affected but we are already past the last bug fix release for it.
Felix Ernst [Tue, 9 Apr 2024 05:53:41 +0000 (05:53 +0000)]
Fix saving sort role after change from header
This is a partial revert of 5186f09cabf0af4b0683e75b0bcde1061f84a67e. That commit tried to
simplify code, however this lead to the saving of view properties
being skipped, introducing the linked bug.
The issue is that by the time the slotSortRoleChangedFromHeader()
method is called, the model already changed its sort role.
Therefore the check if the new role is identical to the old sort
role fails and no saving would occur.
With this partial revert the header will continue to change the
sort role itself (which allows a minor optimization of not double
sorting when also changing the sort order at the same time). The
method slotSortRoleChangedFromHeader() is then only responsible
for saving that change in the ViewProperties and telling the
SortBy menu in the user interface that the sorting has changed.
Jin Liu [Wed, 3 Apr 2024 12:34:50 +0000 (12:34 +0000)]
DolphinMainWindow: show a banner when the user presses the shortcut of a disabled action
Currently, there's no feedback when the user presses a shortcut of a disabled
action, e.g. cut / paste in a read-only directory. This patch shows a banner
in that case.
It's implemented by enabling a QShortcut for each disabled action. the
QShortcut is deleted when the action is enabled again.
The following actions are included:
cut
paste
rename
moveToTrash
deleteWithTrashShortcut
deleted
createDir
copyToOtherView
moveToOtherView
Nate Graham [Mon, 1 Apr 2024 19:25:13 +0000 (13:25 -0600)]
Mark servicemenu items' KNS content as risky
By design, these items will run arbitrary shell scripts on the user's
machine. That makes them security-sensitive and risky. Mark them
accordingly so the user is informed of the risk.
Depends on https://invent.kde.org/frameworks/knewstuff/-/merge_requests/309
Tem PQD [Wed, 27 Mar 2024 23:52:18 +0000 (23:52 +0000)]
Touch up various user-visible strings
This improves consistency among wording. More clarity is achieved
by avoiding technical terms or terms with multiple meanings.
Notable changes:
-Specify full settings path: "Configure Dolphin > View > General"
in Show Hidden Files whatsThis
-Mention setting to hide files with application/x-trash MIME type
in "Show Hidden Files" whatsThis
-Mention Split View mode in "Copy/Move to Other View" whatsThis
-Reword "Activate Tab" actions to "Go to Tab" (Next, Previous,
Last, numbers)
-Add "Last Tab" iconText, consistent with "Next Tab" & "Previous
Tab"
-Update Split View whatsthis to explain how to tell which view is
"in focus" visually
-Replace "pane" with "view" in split view settings text, and
clarify tooltip text
-Reword "objects" to "items" in whatsThis texts
-Reword "find bar" to "search bar" in Search button whatsThis text
Eugene Popov [Wed, 27 Mar 2024 10:28:15 +0000 (10:28 +0000)]
Better support for RTL
This MR fixes some issues related to RTL scripts:
- wrong layout in Compact View mode
- broken horizontal scrolling in Icon View and Details View modes
- broken navigation with left and right arrow keys in Details View mode
Méven Car [Sat, 23 Mar 2024 10:55:37 +0000 (11:55 +0100)]
versioncontrol: Prevent a use-after-free in UpdateItemStatesThread
UpdateItemStatesThread kept a pointer reference to m_plugin whose
lifetime was tied to VersionControlObserver parents.
On application shutdown it could happen the thread is still running when
the Observer is destroyed.
Make the plugin pointer a weak reference, allowing to stop the thread
when the plugin is gone.