Bug 416257

Summary: mailto feature does not work anymore
Product: [Plasma] krunner Reporter: Méven Car <meven29>
Component: locationsAssignee: Sebastian Kügler <sebas>
Status: RESOLVED FIXED    
Severity: normal CC: aspotashev, hoea, mail, nate, pablerkas
Priority: NOR Keywords: usability
Version: 5.17.5   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In: 5.21
Sentry Crash Report:

Description Méven Car 2020-01-14 16:50:17 UTC
SUMMARY

Try to send a mail using krunner does suggest anything and thus does not work.

STEPS TO REPRODUCE
1. Have kmail or any other email client setup in kcm componenentchooser
2. type "test@test.com" or "mailto:test@test.com"

OBSERVED RESULT
No completion

EXPECTED RESULT
Completion allowing to open a compose mail to the typed-in address window in the default email client

Documentation at :
https://userbase.kde.org/Plasma/Krunner#Talk_to_people
Is outdated consequently

Previously the runner location responsible for mailto used kmailservice exec helper helper protocol which was removed : https://cgit.kde.org/kio.git/commit/?id=2e6980e9ba3b91798dad0db9f9d78317b2d7e4a2

We need to use KToolInvocation::invokeMailer or better QDesktopServices::openUrl to implement the feature again.
Comment 1 Alexander Lohnau 2020-06-27 19:38:02 UTC
*** Bug 304149 has been marked as a duplicate of this bug. ***
Comment 2 Alexander Lohnau 2020-07-11 15:33:42 UTC
*** Bug 327677 has been marked as a duplicate of this bug. ***
Comment 3 Alexander Lohnau 2020-07-11 18:14:03 UTC
*** Bug 222503 has been marked as a duplicate of this bug. ***
Comment 4 Kai Uwe Broulik 2020-11-30 10:52:39 UTC
Git commit 7da3e583cab231b7505acb3dbc6ee63c6d557929 by Kai Uwe Broulik.
Committed on 30/11/2020 at 10:50.
Pushed by broulik into branch 'master'.

[Location Runner] Also explicitly look for URL scheme handlers

KProtocolInfo handles only protocols KIO knows but apps can also register to be
a URL scheme handler independently of this.

This patch makes the location runner also query for the preferred URL scheme handler
when no known protocol is found. It also prefers the scheme handler over the helper
protocol since a service has a name.

While at it, also format the protocol "exec" using DesktopExecParser to avoid
showing placeholders like '%u' to the user. Also use PreferLocalFile for "go to".

M  +22   -9    runners/locations/locationrunner.cpp

https://invent.kde.org/plasma/plasma-workspace/commit/7da3e583cab231b7505acb3dbc6ee63c6d557929